OSDN Git Service

arm64: dts: qcom: msm8998-fxtec-pro1: Add tlmm keyboard keys
authorAngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
Thu, 9 Sep 2021 12:38:23 +0000 (14:38 +0200)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Mon, 27 Sep 2021 22:47:57 +0000 (17:47 -0500)
This device has a physical matrix keyboard, connected to a GPIO
expander, for which there's still no support yet.
Though, some of the keys are connected to the MSM8998 GPIOs and not
as a matrix, so these can be added.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20210909123823.368199-4-angelogioacchino.delregno@somainline.org
arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dts

index deabb00..49705fe 100644 (file)
                };
        };
 
+       gpio-kb-extra-keys {
+               compatible = "gpio-keys";
+               input-name = "extra-kb-keys";
+               label = "Keyboard extra keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_kb_pins_extra>;
+
+               home {
+                       label = "Home";
+                       gpios = <&tlmm 21 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_HOMEPAGE>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+               };
+
+               super-l {
+                       label = "Super Left";
+                       gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_FN>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+               };
+
+               super-r {
+                       label = "Super Right";
+                       gpios = <&tlmm 33 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_FN>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+               };
+
+               shift {
+                       label = "Shift";
+                       gpios = <&tlmm 114 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RIGHTSHIFT>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+               };
+
+               ctrl {
+                       label = "Ctrl";
+                       gpios = <&tlmm 128 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_LEFTCTRL>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+               };
+
+               alt {
+                       label = "Alt";
+                       gpios = <&tlmm 129 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_LEFTALT>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+               };
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
                input-name = "side-buttons";
                drive-strength = <2>;
        };
 
+       gpio_kb_pins_extra: gpio-kb-pins-extra {
+               pins = "gpio21", "gpio32", "gpio33", "gpio114",
+                      "gpio128", "gpio129";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
        ts_vio_default: ts-vio-def {
                pins = "gpio81";
                function = "gpio";