arm64: dts: qcom: sm8350-sagami: Rectify GPIO keys
authorKonrad Dybcio <konrad.dybcio@linaro.org>
Thu, 29 Dec 2022 10:27:12 +0000 (11:27 +0100)
committerBjorn Andersson <andersson@kernel.org>
Thu, 29 Dec 2022 16:06:49 +0000 (10:06 -0600)
With enough pins set properly, the hardware buttons now also work
like a charm.

Fixes: c2721b0c23d9 ("arm64: dts: qcom: Add support for Xperia 1 III / 5 III")
Tested-by: Marijn Suijten <marijn.suijten@somainline.org> # On Xperia 1 III and Xperia 5 III
Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20221229102712.983306-1-konrad.dybcio@linaro.org
arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi

index 41c4101ec8f0894d75be852af2bb84d25e0ef875..8df6ccbedfae76223d4af0296d2e2ac962f3ec98 100644 (file)
        gpio-keys {
                compatible = "gpio-keys";
 
-               /* For reasons still unknown, GAssist key and Camera Focus/Shutter don't work.. */
+               pinctrl-names = "default";
+               pinctrl-0 = <&focus_n &snapshot_n &vol_down_n &g_assist_n>;
+
+               key-camera-focus {
+                       label = "Camera Focus";
+                       linux,code = <KEY_CAMERA_FOCUS>;
+                       gpios = <&pm8350b_gpios 8 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+
+               key-camera-snapshot {
+                       label = "Camera Snapshot";
+                       linux,code = <KEY_CAMERA>;
+                       gpios = <&pm8350b_gpios 5 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+
+               key-google-assist {
+                       label = "Google Assistant Key";
+                       gpios = <&pm8350_gpios 9 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_LEFTMETA>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
 
                key-vol-down {
                        label = "Volume Down";
@@ -57,7 +85,7 @@
                        gpios = <&pmk8350_gpios 3 GPIO_ACTIVE_LOW>;
                        debounce-interval = <15>;
                        linux,can-disable;
-                       gpio-key,wakeup;
+                       wakeup-source;
                };
        };
 
                          "NC",
                          "G_ASSIST_N",
                          "PM8350_OPTION"; /* GPIO_10 */
+
+       g_assist_n: g-assist-n-state {
+               pins = "gpio9";
+               function = "normal";
+               power-source = <1>;
+               bias-pull-up;
+               input-enable;
+       };
+};
+
+&pm8350b_gpios {
+       snapshot_n: snapshot-n-state {
+               pins = "gpio5";
+               function = "normal";
+               power-source = <0>;
+               bias-pull-up;
+               input-enable;
+       };
+
+       focus_n: focus-n-state {
+               pins = "gpio8";
+               function = "normal";
+               power-source = <0>;
+               input-enable;
+               bias-pull-up;
+       };
 };
 
 &pmk8350_gpios {
                          "NC",
                          "VOL_DOWN_N",
                          "PMK8350_OPTION";
+
+       vol_down_n: vol-down-n-state {
+               pins = "gpio3";
+               function = "normal";
+               power-source = <0>;
+               bias-pull-up;
+               input-enable;
+       };
 };
 
 &pmk8350_rtc {