Add support for the touchkey found on the Samsung Galaxy S5. The
touchkey is responsible for handling the application and back buttons
found around the home button.

Signed-off-by: Iskren Chernev <iskren.cher...@gmail.com>
---
 .../boot/dts/qcom-msm8974-samsung-klte.dts    | 44 ++++++++++++++++++-
 1 file changed, 43 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts 
b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
index 9520c6e7910ce..750e2f261139a 100644
--- a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
@@ -145,7 +145,7 @@ pma8084_l18: l18 {
                                        };
 
                                        pma8084_l19: l19 {
-                                               regulator-min-microvolt = 
<2900000>;
+                                               regulator-min-microvolt = 
<3300000>;
                                                regulator-max-microvolt = 
<3300000>;
                                        };
 
@@ -203,6 +203,31 @@ pma8084_l27: l27 {
                };
        };
 
+       i2c-gpio-touchkey {
+               compatible = "i2c-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               sda-gpios = <&msmgpio 95 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&msmgpio 96 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c_touchkey_pins>;
+
+               touchkey@20 {
+                       compatible = "cypress,tm2-touchkey";
+                       reg = <0x20>;
+
+                       interrupt-parent = <&pma8084_gpios>;
+                       interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&touchkey_pin>;
+
+                       vcc-supply = <&max77826_ldo15>;
+                       vdd-supply = <&pma8084_l19>;
+
+                       linux,keycodes = <KEY_APPSELECT KEY_BACK>;
+               };
+       };
+
        /delete-node/ vreg-boost;
 };
 
@@ -268,6 +293,15 @@ mux {
                                bias-disable;
                        };
                };
+
+               i2c_touchkey_pins: i2c-touchkey {
+                       mux {
+                               pins = "gpio95", "gpio96";
+                               function = "gpio";
+                               input-enable;
+                               bias-pull-up;
+                       };
+               };
        };
 
        sdhci@f9824900 {
@@ -418,6 +452,14 @@ gpio_keys_pin_a: gpio-keys-active {
                                bias-pull-up;
                                power-source = <PMA8084_GPIO_S4>;
                        };
+
+                       touchkey_pin: touchkey-int-pin {
+                               pins = "gpio6";
+                               function = "normal";
+                               bias-disable;
+                               input-enable;
+                               power-source = <PMA8084_GPIO_S4>;
+                       };
                };
        };
 };
-- 
2.27.0

Reply via email to