arm64: dts: qcom: sm8250-edo: Rectify gpio-keys
authorKonrad Dybcio <konrad.dybcio@linaro.org>
Tue, 20 Jun 2023 11:05:37 +0000 (13:05 +0200)
committerBjorn Andersson <andersson@kernel.org>
Mon, 10 Jul 2023 04:26:42 +0000 (21:26 -0700)
Set up the corresponding GPIOs properly and add the leftover hardware
buttons to mark this piece of the puzzle complete.

Fixes: 46e14907c716 ("arm64: dts: qcom: sm8250-edo: Add hardware keys")
Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20230614-topic-edo_pinsgpiopmic-v2-4-6f90bba54c53@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx206.dts
arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi

index ea4571b..58a5210 100644 (file)
@@ -20,6 +20,8 @@
 };
 
 &gpio_keys {
+       pinctrl-0 = <&focus_n &snapshot_n &vol_down_n &g_assist_n>;
+
        g-assist-key {
                label = "Google Assistant Key";
                linux,code = <KEY_LEFTMETA>;
                          "SP_ARI_PWR_ALARM",
                          "NC",
                          "NC"; /* GPIO_10 */
+
+       g_assist_n: g-assist-n-state {
+               pins = "gpio6";
+               function = "normal";
+               power-source = <1>;
+               bias-pull-up;
+               input-enable;
+       };
 };
 
 &pm8150b_gpios {
index c88d125..cd27794 100644 (file)
        gpio_keys: gpio-keys {
                compatible = "gpio-keys";
 
-               /*
-                * Camera focus (light press) and camera snapshot (full press)
-                * seem not to work properly.. Adding the former one stalls the CPU
-                * and the latter kills the volume down key for whatever reason. In any
-                * case, they are both on &pm8150b_gpios: camera focus(2), camera snapshot(1).
-                */
+               pinctrl-0 = <&focus_n &snapshot_n &vol_down_n>;
+               pinctrl-names = "default";
+
+               key-camera-focus {
+                       label = "Camera Focus";
+                       linux,code = <KEY_CAMERA_FOCUS>;
+                       gpios = <&pm8150b_gpios 2 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       gpio-key,wakeup;
+               };
+
+               key-camera-snapshot {
+                       label = "Camera Snapshot";
+                       linux,code = <KEY_CAMERA>;
+                       gpios = <&pm8150b_gpios 1 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       gpio-key,wakeup;
+               };
 
                key-vol-down {
                        label = "Volume Down";
        vdda-pll-supply = <&vreg_l9a_1p2>;
 };
 
+&pm8150_gpios {
+       vol_down_n: vol-down-n-state {
+               pins = "gpio1";
+               function = "normal";
+               power-source = <0>;
+               bias-pull-up;
+               input-enable;
+       };
+};
+
+&pm8150b_gpios {
+       snapshot_n: snapshot-n-state {
+               pins = "gpio1";
+               function = "normal";
+               power-source = <0>;
+               bias-pull-up;
+               input-enable;
+       };
+
+       focus_n: focus-n-state {
+               pins = "gpio2";
+               function = "normal";
+               power-source = <0>;
+               bias-pull-up;
+               input-enable;
+       };
+};
+
 &pon_pwrkey {
        status = "okay";
 };