Message ID | 20240203191200.99185-5-jenneron@postmarketos.org (mailing list archive) |
---|---|
State | Changes Requested, archived |
Headers | show |
Series | Device-tree improvements for Lenovo Flex/Yoga 5G laptop | expand |
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
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 >
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 --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";
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(-)