With a single device DT overrides can become messy, especially when
keys are added or removed. Multiple devices also allow to
enable/disable wakeup per key/group.

Signed-off-by: Matthias Kaehlcke <m...@chromium.org>
---
 .../boot/dts/rk3288-veyron-chromebook.dtsi    | 26 +++++++------
 arch/arm/boot/dts/rk3288-veyron-minnie.dts    | 38 ++++++++++---------
 arch/arm/boot/dts/rk3288-veyron-pinky.dts     |  2 +-
 arch/arm/boot/dts/rk3288-veyron.dtsi          |  4 +-
 4 files changed, 37 insertions(+), 33 deletions(-)

diff --git a/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi 
b/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi
index fbef34578100..c5f71af84a40 100644
--- a/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi
+++ b/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi
@@ -70,6 +70,20 @@
                pinctrl-0 = <&ac_present_ap>;
        };
 
+       lid_switch: lid-switch {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&ap_lid_int_l>;
+               lid {
+                       label = "Lid";
+                       gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+                       linux,code = <0>; /* SW_LID */
+                       linux,input-type = <5>; /* EV_SW */
+                       debounce-interval = <1>;
+               };
+       };
+
        panel: panel {
                compatible ="innolux,n116bge", "simple-panel";
                status = "okay";
@@ -149,18 +163,6 @@
        status = "okay";
 };
 
-&gpio_keys {
-       pinctrl-0 = <&pwr_key_l &ap_lid_int_l>;
-       lid {
-               label = "Lid";
-               gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
-               wakeup-source;
-               linux,code = <0>; /* SW_LID */
-               linux,input-type = <5>; /* EV_SW */
-               debounce-interval = <1>;
-       };
-};
-
 &pwm0 {
        status = "okay";
 };
diff --git a/arch/arm/boot/dts/rk3288-veyron-minnie.dts 
b/arch/arm/boot/dts/rk3288-veyron-minnie.dts
index a65099b4aef1..b2cc70a08554 100644
--- a/arch/arm/boot/dts/rk3288-veyron-minnie.dts
+++ b/arch/arm/boot/dts/rk3288-veyron-minnie.dts
@@ -48,6 +48,26 @@
                regulator-boot-on;
                vin-supply = <&vcc18_wl>;
        };
+
+       volume_buttons: volume-buttons {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&volum_down_l &volum_up_l>;
+
+               volum_down {
+                       label = "Volum_down";
+                       gpios = <&gpio5 RK_PB3 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <100>;
+               };
+
+               volum_up {
+                       label = "Volum_up";
+                       gpios = <&gpio5 RK_PB2 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <100>;
+               };
+       };
 };
 
 &backlight {
@@ -90,24 +110,6 @@
        pwm-off-delay-ms = <200>;
 };
 
-&gpio_keys {
-       pinctrl-0 = <&pwr_key_l &ap_lid_int_l &volum_down_l &volum_up_l>;
-
-       volum_down {
-               label = "Volum_down";
-               gpios = <&gpio5 RK_PB3 GPIO_ACTIVE_LOW>;
-               linux,code = <KEY_VOLUMEDOWN>;
-               debounce-interval = <100>;
-       };
-
-       volum_up {
-               label = "Volum_up";
-               gpios = <&gpio5 RK_PB2 GPIO_ACTIVE_LOW>;
-               linux,code = <KEY_VOLUMEUP>;
-               debounce-interval = <100>;
-       };
-};
-
 &i2c_tunnel {
        battery: bq27500@55 {
                compatible = "ti,bq27500";
diff --git a/arch/arm/boot/dts/rk3288-veyron-pinky.dts 
b/arch/arm/boot/dts/rk3288-veyron-pinky.dts
index 9645be7b3d8c..9b6f4d9b03b6 100644
--- a/arch/arm/boot/dts/rk3288-veyron-pinky.dts
+++ b/arch/arm/boot/dts/rk3288-veyron-pinky.dts
@@ -35,7 +35,7 @@
        force-hpd;
 };
 
-&gpio_keys {
+&lid_switch {
        pinctrl-0 = <&pwr_key_h &ap_lid_int_l>;
 
        power {
diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi 
b/arch/arm/boot/dts/rk3288-veyron.dtsi
index 90c8312d01ff..cc4c3595f145 100644
--- a/arch/arm/boot/dts/rk3288-veyron.dtsi
+++ b/arch/arm/boot/dts/rk3288-veyron.dtsi
@@ -23,11 +23,11 @@
                reg = <0x0 0x0 0x0 0x80000000>;
        };
 
-       gpio_keys: gpio-keys {
+       power_button: power-button {
                compatible = "gpio-keys";
-
                pinctrl-names = "default";
                pinctrl-0 = <&pwr_key_l>;
+
                power {
                        label = "Power";
                        gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
-- 
2.22.0.rc2.383.gf4fbbf30c2-goog

Reply via email to