On 4/19/25 11:08 AM, Luca Weiss wrote:
> From: Adam Honse <[email protected]>
>
> Add support for the touchkeys on the Samsung Galaxy Note 3 (hlte).
>
> Signed-off-by: Adam Honse <[email protected]>
> ---
> Signed-off-by: Luca Weiss <[email protected]>
> ---
> .../boot/dts/qcom/qcom-msm8974-samsung-hlte.dts | 45
> ++++++++++++++++++++++
> 1 file changed, 45 insertions(+)
>
> diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974-samsung-hlte.dts
> b/arch/arm/boot/dts/qcom/qcom-msm8974-samsung-hlte.dts
> index
> 903bb4d125135771504281df50aa11c9b6576a28..17d3e319941b8fd0363af600d93fc10127e4ab21
> 100644
> --- a/arch/arm/boot/dts/qcom/qcom-msm8974-samsung-hlte.dts
> +++ b/arch/arm/boot/dts/qcom/qcom-msm8974-samsung-hlte.dts
> @@ -50,6 +50,34 @@ key-volume-up {
> };
> };
>
> + i2c-gpio-touchkey {
'i2c'?
> + compatible = "i2c-gpio";
> +
> + sda-gpios = <&tlmm 95 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> + scl-gpios = <&tlmm 96 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> +
> + pinctrl-0 = <&i2c_touchkey_pins>;
> + pinctrl-names = "default";
> +
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + touchkey@20 {
> + compatible = "cypress,midas-touchkey";
> + reg = <0x20>;
> +
> + interrupts-extended = <&pm8941_gpios 29
> IRQ_TYPE_EDGE_FALLING>;
> +
> + pinctrl-0 = <&touchkey_pin>;
> + pinctrl-names = "default";
> +
> + vcc-supply = <&pm8941_lvs3>;
> + vdd-supply = <&pm8941_l13>;
> +
> + linux,keycodes = <KEY_APPSELECT KEY_BACK>;
> + };
> + };
> +
> touch_ldo: regulator-touch {
> compatible = "regulator-fixed";
> regulator-name = "touch-ldo";
> @@ -149,6 +177,14 @@ touch_ldo_pin: touchscreen-ldo-state {
> power-source = <PM8941_GPIO_S3>;
> qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
> };
> +
> + touchkey_pin: touchkey-int-state {
> + pins = "gpio29";
> + function = "normal";
> + bias-disable;
> + input-enable;
> + power-source = <PM8941_GPIO_S3>;
> + };
> };
>
> &remoteproc_adsp {
> @@ -332,6 +368,9 @@ pm8941_l24: l24 {
> regulator-min-microvolt = <3075000>;
> regulator-max-microvolt = <3075000>;
> };
> +
> + pm8941_lvs1: lvs1 {};
LVS1 is unused by anything here - it's probably good to define it, so
that the driver picks it up and regulator_ignore_unused is aware of it
Konrad