Commit d4ec0cb0 authored by Simon Shields's avatar Simon Shields Committed by Krzysztof Kozlowski
Browse files

ARM: dts: exynos: Add support for the touch-sensitive buttons on Midas family



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: default avatarSimon Shields <simon@lineageos.org>
[GNUtoo@cyberdimension.org: Fixed keycodes, modified commit message]
Signed-off-by: default avatarDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Signed-off-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
parent b6df5e2b
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -168,3 +168,8 @@
	vdda-supply = <&ldo17_reg>;
	status = "okay";
};

&touchkey_reg {
	gpio = <&gpm0 0 GPIO_ACTIVE_HIGH>;
	status = "okay";
};
+29 −0
Original line number Diff line number Diff line
@@ -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>
@@ -92,6 +93,15 @@
		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";
@@ -197,6 +207,25 @@
		};
	};

	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>;
+5 −0
Original line number Diff line number Diff line
@@ -73,3 +73,8 @@
	vdda-supply = <&cam_vdda_reg>;
	status = "okay";
};

&touchkey_reg {
	gpio = <&gpm0 5 GPIO_ACTIVE_HIGH>;
	status = "okay";
};