]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
arm64: dts: msm8916-samsung-a2015: add tactile buttons and hall sensor
authorMichael Srba <Michael.Srba@seznam.cz>
Mon, 7 Oct 2019 06:45:28 +0000 (08:45 +0200)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Thu, 10 Oct 2019 04:02:27 +0000 (21:02 -0700)
Add nodes for basic GPIO connected hardware to the Samsung A3/A5 common dtsi.
This includes the Volume UP button, the Home button, and the hall sensor used
to sense "smart cover" open state. Related to that, add a node for the Volume
DOWN button, which is handled by the pm8916 as is common with msm8916 devices.

Tested-by: Stephan Gerhold <stephan@gerhold.net> # a5u
Reviewed-by: Stephan Gerhold <stephan@gerhold.net>
Signed-off-by: Michael Srba <Michael.Srba@seznam.cz>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi

index 6fc0b80d1f90581dc30c12a2502f1032537dba0c..bd1eb3eeca53fdc5a5009fb3717bb61971e8e577 100644 (file)
@@ -3,6 +3,7 @@
 #include "msm8916.dtsi"
 #include "pm8916.dtsi"
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 
 / {
@@ -91,6 +92,44 @@ wcnss@a21b000 {
                etm@85f000 { status = "disabled"; };
        };
 
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_default>;
+
+               label = "GPIO Buttons";
+
+               volume-up {
+                       label = "Volume Up";
+                       gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+
+               home {
+                       label = "Home";
+                       gpios = <&msmgpio 109 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_HOMEPAGE>;
+               };
+       };
+
+       gpio-hall-sensor {
+               compatible = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_hall_sensor_default>;
+
+               label = "GPIO Hall Effect Sensor";
+
+               hall-sensor {
+                       label = "Hall Effect Sensor";
+                       gpios = <&msmgpio 52 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       linux,can-disable;
+               };
+       };
+
        i2c-muic {
                compatible = "i2c-gpio";
                sda-gpios = <&msmgpio 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
@@ -113,6 +152,30 @@ muic: sm5502@25 {
 };
 
 &msmgpio {
+       gpio_keys_default: gpio_keys_default {
+               pinmux {
+                       function = "gpio";
+                       pins = "gpio107", "gpio109";
+               };
+               pinconf {
+                       pins = "gpio107", "gpio109";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
+       gpio_hall_sensor_default: gpio_hall_sensor_default {
+               pinmux {
+                       function = "gpio";
+                       pins = "gpio52";
+               };
+               pinconf {
+                       pins = "gpio52";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+
        muic_int_default: muic_int_default {
                pinmux {
                        function = "gpio";
@@ -238,3 +301,16 @@ l18 {
                regulator-max-microvolt = <2700000>;
        };
 };
+
+&spmi_bus {
+       pm8916@0 {
+               pon@800 {
+                       volume-down {
+                               compatible = "qcom,pm8941-resin";
+                               interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
+                               bias-pull-up;
+                               linux,code = <KEY_VOLUMEDOWN>;
+                       };
+               };
+       };
+};