ARM: dts: exynos: Add support for the touch-sensitive buttons on Midas family
authorSimon Shields <simon@lineageos.org>
Tue, 12 Nov 2019 15:53:23 +0000 (16:53 +0100)
committerKrzysztof Kozlowski <krzk@kernel.org>
Wed, 13 Nov 2019 13:18:34 +0000 (14:18 +0100)
Add support for the capacitive touch-sensitive buttons of the
following smartphones:
- Samsung Galaxy SIII (I9300)
- Samsung Galaxy SIII 4G (I9305)
- Samsung Galaxy Note II (N7100)
- Samsung Galaxy Note II 4G (N7105)

The keycodes correspond to markings on the phone case.

Signed-off-by: Simon Shields <simon@lineageos.org>
[GNUtoo@cyberdimension.org: Fixed keycodes, modified commit message]
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi
arch/arm/boot/dts/exynos4412-midas.dtsi
arch/arm/boot/dts/exynos4412-n710x.dts

index ce87d2f..31719c0 100644 (file)
        vdda-supply = <&ldo17_reg>;
        status = "okay";
 };
+
+&touchkey_reg {
+       gpio = <&gpm0 0 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
index 83be3a7..3023bc3 100644 (file)
@@ -13,6 +13,7 @@
 #include "exynos4412.dtsi"
 #include "exynos4412-ppmu-common.dtsi"
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/clock/maxim,max77686.h>
 #include <dt-bindings/pinctrl/samsung.h>
                enable-active-high;
        };
 
+       touchkey_reg: voltage-regulator-6 {
+               compatible = "regulator-fixed";
+               regulator-name = "LED_VDD_3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               enable-active-high;
+               status = "disabled";
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
                pinctrl-names = "default";
                };
        };
 
+       i2c-gpio-4 {
+               compatible = "i2c-gpio";
+               sda-gpios = <&gpl0 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&gpl0 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               i2c-gpio,delay-us = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               touchkey@20 {
+                       compatible = "cypress,midas-touchkey";
+                       reg = <0x20>;
+                       vdd-supply = <&touchkey_reg>;
+                       vcc-supply = <&ldo5_reg>;
+                       interrupt-parent = <&gpj0>;
+                       interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
+                       linux,keycodes = <KEY_BACK KEY_MENU>;
+               };
+       };
+
        i2c-mhl {
                compatible = "i2c-gpio";
                gpios = <&gpf0 4 GPIO_ACTIVE_HIGH>, <&gpf0 6 GPIO_ACTIVE_HIGH>;
index fe2bfd7..98cd128 100644 (file)
@@ -73,3 +73,8 @@
        vdda-supply = <&cam_vdda_reg>;
        status = "okay";
 };
+
+&touchkey_reg {
+       gpio = <&gpm0 5 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};