On 4/19/25 11:08 AM, Luca Weiss wrote: > From: Adam Honse <calcprogramm...@gmail.com> > > Add support for the touchkeys on the Samsung Galaxy Note 3 (hlte). > > Signed-off-by: Adam Honse <calcprogramm...@gmail.com> > --- > Signed-off-by: Luca Weiss <l...@lucaweiss.eu> > --- > .../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