diff mbox series

[v2,4/6] arm64: dts: qcom: sc8180x-lenovo-flex-5g: enable touchscreen

Message ID 20240203191200.99185-5-jenneron@postmarketos.org (mailing list archive)
State Changes Requested
Headers show
Series Device-tree improvements for Lenovo Flex/Yoga 5G laptop | expand

Commit Message

Anton Bambura Feb. 3, 2024, 7:11 p.m. UTC
Set regulators, reset gpio and delays according to ACPI tables.

Signed-off-by: Anton Bambura <jenneron@postmarketos.org>
---
 .../boot/dts/qcom/sc8180x-lenovo-flex-5g.dts  | 30 ++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

Comments

Konrad Dybcio Feb. 3, 2024, 7:25 p.m. UTC | #1
On 3.02.2024 20:11, Anton Bambura wrote:
> Set regulators, reset gpio and delays according to ACPI tables.
> 
> Signed-off-by: Anton Bambura <jenneron@postmarketos.org>
> ---

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>

Konrad
Bjorn Andersson March 18, 2024, 2:43 a.m. UTC | #2
On Sat, Feb 03, 2024 at 09:11:58PM +0200, Anton Bambura wrote:
> Set regulators, reset gpio and delays according to ACPI tables.
> 
> Signed-off-by: Anton Bambura <jenneron@postmarketos.org>
> ---
>  .../boot/dts/qcom/sc8180x-lenovo-flex-5g.dts  | 30 ++++++++++++++++++-
>  1 file changed, 29 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts b/arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts
> index 6ae6cb030b70..5bf6285f905f 100644
> --- a/arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts
> +++ b/arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts
> @@ -271,6 +271,12 @@ vreg_l3c_1p2: ldo3 {
>  			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>  		};
>  
> +		vreg_l4c_3p3: ldo4 {
> +			regulator-min-microvolt = <3296000>;
> +			regulator-max-microvolt = <3304000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
>  		vreg_l10c_3p3: ldo10 {
>  			regulator-min-microvolt = <3000000>;
>  			regulator-max-microvolt = <3312000>;
> @@ -337,6 +343,12 @@ vreg_l10e_2p9: ldo10 {
>  			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>  		};
>  
> +		vreg_l12e_1p8: ldo12 {
> +			regulator-min-microvolt = <1800000>;
> +			regulator-max-microvolt = <1800000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +		};
> +
>  		vreg_l16e_3p0: ldo16 {
>  			regulator-min-microvolt = <3072000>;
>  			regulator-max-microvolt = <3072000>;
> @@ -365,11 +377,19 @@ &i2c1 {
>  	touchscreen@10 {
>  		compatible = "hid-over-i2c";
>  		reg = <0x10>;
> +
>  		hid-descr-addr = <0x1>;
> +		reset-gpios = <&tlmm 54 GPIO_ACTIVE_LOW>;
> +
> +		vdd-supply = <&vreg_l4c_3p3>;
> +		vddl-supply = <&vreg_l12e_1p8>;
> +
> +		post-power-on-delay-ms = <3>;
> +		post-reset-deassert-delay-ms = <200>;

As I ran into with the X13s, post-reset-deassert-delay-ms is not an
accepted property for hid-over-i2c. I think the desired path forward is
to extend elan,ekth6915.yaml and i2c-hid-of-elan.c and hard code these
values there instead.

But I suspect you, like me, are unaware of the actual name of the
device? Perhaps it's acceptable to make something up based on the
reported product id?

Regards,
Bjorn

>  
>  		interrupts-extended = <&tlmm 122 IRQ_TYPE_LEVEL_LOW>;
>  
> -		pinctrl-0 = <&ts_int_default>;
> +		pinctrl-0 = <&ts_int_default>, <&ts_reset_default>;
>  		pinctrl-names = "default";
>  	};
>  };
> @@ -735,6 +755,14 @@ ts_int_default: ts-int-default-state {
>  		drive-strength = <2>;
>  	};
>  
> +	ts_reset_default: ts-reset-default-state {
> +		pins = "gpio54";
> +		function = "gpio";
> +
> +		bias-disable;
> +		drive-strength = <16>;
> +	};
> +
>  	usbprim_sbu_default: usbprim-sbu-state {
>  		oe-n-pins {
>  			pins = "gpio152";
> -- 
> 2.42.0
>
Anton Bambura March 19, 2024, 10:13 p.m. UTC | #3
March 18, 2024 at 4:43 AM, "Bjorn Andersson" <andersson@kernel.org> wrote:



> 
> On Sat, Feb 03, 2024 at 09:11:58PM +0200, Anton Bambura wrote:
> 
> > 
> > Set regulators, reset gpio and delays according to ACPI tables.
> > 
> >  
> > 
> >  Signed-off-by: Anton Bambura <jenneron@postmarketos.org>
> > 
> >  ---
> > 
> >  .../boot/dts/qcom/sc8180x-lenovo-flex-5g.dts | 30 ++++++++++++++++++-
> > 
> >  1 file changed, 29 insertions(+), 1 deletion(-)
> > 
> >  
> > 
> >  diff --git a/arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts b/arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts
> > 
> >  index 6ae6cb030b70..5bf6285f905f 100644
> > 
> >  --- a/arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts
> > 
> >  +++ b/arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts
> > 
> >  @@ -271,6 +271,12 @@ vreg_l3c_1p2: ldo3 {
> > 
> >  regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > 
> >  };
> > 
> >  
> > 
> >  + vreg_l4c_3p3: ldo4 {
> > 
> >  + regulator-min-microvolt = <3296000>;
> > 
> >  + regulator-max-microvolt = <3304000>;
> > 
> >  + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > 
> >  + };
> > 
> >  +
> > 
> >  vreg_l10c_3p3: ldo10 {
> > 
> >  regulator-min-microvolt = <3000000>;
> > 
> >  regulator-max-microvolt = <3312000>;
> > 
> >  @@ -337,6 +343,12 @@ vreg_l10e_2p9: ldo10 {
> > 
> >  regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > 
> >  };
> > 
> >  
> > 
> >  + vreg_l12e_1p8: ldo12 {
> > 
> >  + regulator-min-microvolt = <1800000>;
> > 
> >  + regulator-max-microvolt = <1800000>;
> > 
> >  + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > 
> >  + };
> > 
> >  +
> > 
> >  vreg_l16e_3p0: ldo16 {
> > 
> >  regulator-min-microvolt = <3072000>;
> > 
> >  regulator-max-microvolt = <3072000>;
> > 
> >  @@ -365,11 +377,19 @@ &i2c1 {
> > 
> >  touchscreen@10 {
> > 
> >  compatible = "hid-over-i2c";
> > 
> >  reg = <0x10>;
> > 
> >  +
> > 
> >  hid-descr-addr = <0x1>;
> > 
> >  + reset-gpios = <&tlmm 54 GPIO_ACTIVE_LOW>;
> > 
> >  +
> > 
> >  + vdd-supply = <&vreg_l4c_3p3>;
> > 
> >  + vddl-supply = <&vreg_l12e_1p8>;
> > 
> >  +
> > 
> >  + post-power-on-delay-ms = <3>;
> > 
> >  + post-reset-deassert-delay-ms = <200>;
> > 
> 
> As I ran into with the X13s, post-reset-deassert-delay-ms is not an
> 
> accepted property for hid-over-i2c. I think the desired path forward is
> 
> to extend elan,ekth6915.yaml and i2c-hid-of-elan.c and hard code these
> 
> values there instead.
> 
> But I suspect you, like me, are unaware of the actual name of the
> 
> device? Perhaps it's acceptable to make something up based on the
> 
> reported product id?

Indeed, I don't know the actual IC. evtest reports this:

Input device ID: bus 0x18 vendor 0x4f3 product 0x2a7d version 0x100
Input device name: "hid-over-i2c 04F3:2A7D"

> 
> Regards,
> 
> Bjorn
> 
> > 
> > interrupts-extended = <&tlmm 122 IRQ_TYPE_LEVEL_LOW>;
> > 
> >  
> > 
> >  - pinctrl-0 = <&ts_int_default>;
> > 
> >  + pinctrl-0 = <&ts_int_default>, <&ts_reset_default>;
> > 
> >  pinctrl-names = "default";
> > 
> >  };
> > 
> >  };
> > 
> >  @@ -735,6 +755,14 @@ ts_int_default: ts-int-default-state {
> > 
> >  drive-strength = <2>;
> > 
> >  };
> > 
> >  
> > 
> >  + ts_reset_default: ts-reset-default-state {
> > 
> >  + pins = "gpio54";
> > 
> >  + function = "gpio";
> > 
> >  +
> > 
> >  + bias-disable;
> > 
> >  + drive-strength = <16>;
> > 
> >  + };
> > 
> >  +
> > 
> >  usbprim_sbu_default: usbprim-sbu-state {
> > 
> >  oe-n-pins {
> > 
> >  pins = "gpio152";
> > 
> >  -- 
> > 
> >  2.42.0
> >
>
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts b/arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts
index 6ae6cb030b70..5bf6285f905f 100644
--- a/arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts
+++ b/arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts
@@ -271,6 +271,12 @@  vreg_l3c_1p2: ldo3 {
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
+		vreg_l4c_3p3: ldo4 {
+			regulator-min-microvolt = <3296000>;
+			regulator-max-microvolt = <3304000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
 		vreg_l10c_3p3: ldo10 {
 			regulator-min-microvolt = <3000000>;
 			regulator-max-microvolt = <3312000>;
@@ -337,6 +343,12 @@  vreg_l10e_2p9: ldo10 {
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
+		vreg_l12e_1p8: ldo12 {
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <1800000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+
 		vreg_l16e_3p0: ldo16 {
 			regulator-min-microvolt = <3072000>;
 			regulator-max-microvolt = <3072000>;
@@ -365,11 +377,19 @@  &i2c1 {
 	touchscreen@10 {
 		compatible = "hid-over-i2c";
 		reg = <0x10>;
+
 		hid-descr-addr = <0x1>;
+		reset-gpios = <&tlmm 54 GPIO_ACTIVE_LOW>;
+
+		vdd-supply = <&vreg_l4c_3p3>;
+		vddl-supply = <&vreg_l12e_1p8>;
+
+		post-power-on-delay-ms = <3>;
+		post-reset-deassert-delay-ms = <200>;
 
 		interrupts-extended = <&tlmm 122 IRQ_TYPE_LEVEL_LOW>;
 
-		pinctrl-0 = <&ts_int_default>;
+		pinctrl-0 = <&ts_int_default>, <&ts_reset_default>;
 		pinctrl-names = "default";
 	};
 };
@@ -735,6 +755,14 @@  ts_int_default: ts-int-default-state {
 		drive-strength = <2>;
 	};
 
+	ts_reset_default: ts-reset-default-state {
+		pins = "gpio54";
+		function = "gpio";
+
+		bias-disable;
+		drive-strength = <16>;
+	};
+
 	usbprim_sbu_default: usbprim-sbu-state {
 		oe-n-pins {
 			pins = "gpio152";