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

From: Bjorn Andersson
Date: Sun Mar 17 2024 - 22:43:38 EST


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@xxxxxxxxxxxxxxxx>
> ---
> .../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
>