diff mbox series

[v3] ARM: dts: iwg20d-q7-common: Fix touch controller probe failure

Message ID 20200810174944.2892-1-biju.das.jz@bp.renesas.com (mailing list archive)
State Superseded
Delegated to: Geert Uytterhoeven
Headers show
Series [v3] ARM: dts: iwg20d-q7-common: Fix touch controller probe failure | expand

Commit Message

Biju Das Aug. 10, 2020, 5:49 p.m. UTC
As per the iWave RZ/G1M schematic, the signal LVDS_PPEN controls supply
voltage for touch panel, LVDS receiver and RGB LCD panel. Add regulator
for these device nodes and remove powerdown-gpios property from
lvds-receiver node as it results in touch controller driver probe failure.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
This patch depend on below patches

1) https://patchwork.kernel.org/patch/11707595/
2) https://patchwork.kernel.org/patch/11707593/

v2->v3 : Added the missing part from the patch. removal of powerdown-gpios property.
v1->v2 : Add regulator in touch panel, LVDS receiver and RGB LCD panel device nodes
           (Ref: https://patchwork.kernel.org/patch/11707559/)
v1 : https://patchwork.kernel.org/patch/11705819/
---
 arch/arm/boot/dts/iwg20d-q7-common.dtsi | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

Comments

Laurent Pinchart Aug. 11, 2020, 10:50 a.m. UTC | #1
Hi Biju,

Thank you for the patch.

On Mon, Aug 10, 2020 at 06:49:44PM +0100, Biju Das wrote:
> As per the iWave RZ/G1M schematic, the signal LVDS_PPEN controls supply
> voltage for touch panel, LVDS receiver and RGB LCD panel. Add regulator
> for these device nodes and remove powerdown-gpios property from
> lvds-receiver node as it results in touch controller driver probe failure.
> 
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> This patch depend on below patches
> 
> 1) https://patchwork.kernel.org/patch/11707595/
> 2) https://patchwork.kernel.org/patch/11707593/
> 
> v2->v3 : Added the missing part from the patch. removal of powerdown-gpios property.
> v1->v2 : Add regulator in touch panel, LVDS receiver and RGB LCD panel device nodes
>            (Ref: https://patchwork.kernel.org/patch/11707559/)
> v1 : https://patchwork.kernel.org/patch/11705819/
> ---
>  arch/arm/boot/dts/iwg20d-q7-common.dtsi | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi
> index ebbe1518ef8a..056f93119d8a 100644
> --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi
> +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi
> @@ -57,7 +57,7 @@
>  
>  	lvds-receiver {
>  		compatible = "ti,ds90cf384a", "lvds-decoder";
> -		powerdown-gpios = <&gpio7 25 GPIO_ACTIVE_LOW>;
> +		vcc-supply = <&vcc_3v3_tft1>;
>  
>  		ports {
>  			#address-cells = <1>;
> @@ -81,6 +81,7 @@
>  	panel {
>  		compatible = "edt,etm0700g0dh6";
>  		backlight = <&lcd_backlight>;
> +		power-supply = <&vcc_3v3_tft1>;
>  
>  		port {
>  			panel_in: endpoint {
> @@ -113,6 +114,17 @@
>  		};
>  	};
>  
> +	vcc_3v3_tft1: regulator-panel {
> +		compatible = "regulator-fixed";
> +
> +		regulator-name = "Panel Vcc";

Should this be named vcc-3v3-tft1, to match the hardware ? It's not just
the panel, it's also the power supply to the LVDS receiver and touch
screen.

> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		enable-active-high;
> +		startup-delay-us = <70000>;

Where does the 70ms value come from ? The time constant of the VCC_3V3
-> VCC_3V3_TFT[12] switches circuitry is 0.1ms (RC = 100kΩ * 1nF), so
0.5ms (5*RC) should be enough there. Are there other delays that need to
be taken into account ?

With those small issues addressed,

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> +		gpio = <&gpio7 25 GPIO_ACTIVE_HIGH>;
> +	};
> +
>  	vcc_sdhi1: regulator-vcc-sdhi1 {
>  		compatible = "regulator-fixed";
>  
> @@ -207,6 +219,7 @@
>  		reg = <0x38>;
>  		interrupt-parent = <&gpio2>;
>  		interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
> +		vcc-supply = <&vcc_3v3_tft1>;
>  	};
>  };
>
Biju Das Aug. 11, 2020, 11:14 a.m. UTC | #2
Hi Laurent,

Thanks for the feedback.

> Subject: Re: [PATCH v3] ARM: dts: iwg20d-q7-common: Fix touch controller
> probe failure
>
> Hi Biju,
>
> Thank you for the patch.
>
> On Mon, Aug 10, 2020 at 06:49:44PM +0100, Biju Das wrote:
> > As per the iWave RZ/G1M schematic, the signal LVDS_PPEN controls
> > supply voltage for touch panel, LVDS receiver and RGB LCD panel. Add
> > regulator for these device nodes and remove powerdown-gpios property
> > from lvds-receiver node as it results in touch controller driver probe failure.
> >
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > ---
> > This patch depend on below patches
> >
> > 1) https://patchwork.kernel.org/patch/11707595/
> > 2) https://patchwork.kernel.org/patch/11707593/
> >
> > v2->v3 : Added the missing part from the patch. removal of powerdown-
> gpios property.
> > v1->v2 : Add regulator in touch panel, LVDS receiver and RGB LCD panel
> > v1->device nodes
> >            (Ref: https://patchwork.kernel.org/patch/11707559/)
> > v1 : https://patchwork.kernel.org/patch/11705819/
> > ---
> >  arch/arm/boot/dts/iwg20d-q7-common.dtsi | 15 ++++++++++++++-
> >  1 file changed, 14 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi
> > b/arch/arm/boot/dts/iwg20d-q7-common.dtsi
> > index ebbe1518ef8a..056f93119d8a 100644
> > --- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi
> > +++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi
> > @@ -57,7 +57,7 @@
> >
> >  lvds-receiver {
> >  compatible = "ti,ds90cf384a", "lvds-decoder";
> > -powerdown-gpios = <&gpio7 25 GPIO_ACTIVE_LOW>;
> > +vcc-supply = <&vcc_3v3_tft1>;
> >
> >  ports {
> >  #address-cells = <1>;
> > @@ -81,6 +81,7 @@
> >  panel {
> >  compatible = "edt,etm0700g0dh6";
> >  backlight = <&lcd_backlight>;
> > +power-supply = <&vcc_3v3_tft1>;
> >
> >  port {
> >  panel_in: endpoint {
> > @@ -113,6 +114,17 @@
> >  };
> >  };
> >
> > +vcc_3v3_tft1: regulator-panel {
> > +compatible = "regulator-fixed";
> > +
> > +regulator-name = "Panel Vcc";
>
> Should this be named vcc-3v3-tft1, to match the hardware ? It's not just the
> panel, it's also the power supply to the LVDS receiver and touch screen.

Ok. I will change this to vcc-3v3-tft1.

> > +regulator-min-microvolt = <3300000>;
> > +regulator-max-microvolt = <3300000>;
> > +enable-active-high;
> > +startup-delay-us = <70000>;
>
> Where does the 70ms value come from ? The time constant of the VCC_3V3
> -> VCC_3V3_TFT[12] switches circuitry is 0.1ms (RC = 100kΩ * 1nF), so
> 0.5ms (5*RC) should be enough there. Are there other delays that need to
> be taken into account ?

Ok Thanks , I will change it to 0.5 msec. Initially I  faced a probe failure, after turning on this regulator,  so I chosen a value
from the bindings examples and it seems to fix the issue.

Now I have changed this value to 0.5 msec and confirms it works fine.

Cheers,
Biju

> With those small issues addressed,
>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>
> > +gpio = <&gpio7 25 GPIO_ACTIVE_HIGH>;
> > +};
> > +
> >  vcc_sdhi1: regulator-vcc-sdhi1 {
> >  compatible = "regulator-fixed";
> >
> > @@ -207,6 +219,7 @@
> >  reg = <0x38>;
> >  interrupt-parent = <&gpio2>;
> >  interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
> > +vcc-supply = <&vcc_3v3_tft1>;
> >  };
> >  };
> >
>
> --
> Regards,
>
> Laurent Pinchart


Renesas Electronics Europe GmbH, Geschaeftsfuehrer/President: Carsten Jauch, Sitz der Gesellschaft/Registered office: Duesseldorf, Arcadiastrasse 10, 40472 Duesseldorf, Germany, Handelsregister/Commercial Register: Duesseldorf, HRB 3708 USt-IDNr./Tax identification no.: DE 119353406 WEEE-Reg.-Nr./WEEE reg. no.: DE 14978647
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi
index ebbe1518ef8a..056f93119d8a 100644
--- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi
+++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi
@@ -57,7 +57,7 @@ 
 
 	lvds-receiver {
 		compatible = "ti,ds90cf384a", "lvds-decoder";
-		powerdown-gpios = <&gpio7 25 GPIO_ACTIVE_LOW>;
+		vcc-supply = <&vcc_3v3_tft1>;
 
 		ports {
 			#address-cells = <1>;
@@ -81,6 +81,7 @@ 
 	panel {
 		compatible = "edt,etm0700g0dh6";
 		backlight = <&lcd_backlight>;
+		power-supply = <&vcc_3v3_tft1>;
 
 		port {
 			panel_in: endpoint {
@@ -113,6 +114,17 @@ 
 		};
 	};
 
+	vcc_3v3_tft1: regulator-panel {
+		compatible = "regulator-fixed";
+
+		regulator-name = "Panel Vcc";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		enable-active-high;
+		startup-delay-us = <70000>;
+		gpio = <&gpio7 25 GPIO_ACTIVE_HIGH>;
+	};
+
 	vcc_sdhi1: regulator-vcc-sdhi1 {
 		compatible = "regulator-fixed";
 
@@ -207,6 +219,7 @@ 
 		reg = <0x38>;
 		interrupt-parent = <&gpio2>;
 		interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
+		vcc-supply = <&vcc_3v3_tft1>;
 	};
 };