Message ID | 20200807174954.14448-8-prabhakar.mahadev-lad.rj@bp.renesas.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | r8a7742: Enable DU and LVDS | expand |
Hi Laurent, Thank you for the review. On Sat, Aug 8, 2020 at 10:23 PM Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > > Hi Prabhakar, > > Thank you for the patch. > > On Fri, Aug 07, 2020 at 06:49:54PM +0100, Lad Prabhakar wrote: > > The iwg21d comes with a 7" capacitive touch screen, therefore > > add support for it. > > I can't review most of this properly as I don't have access to the > schematics. Is there a way to get it ? > I'll check with Chris, how we could get the schematics for you. > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > Reviewed-by: Marian-Cristian Rotariu <marian-cristian.rotariu.rb@bp.renesas.com> > > --- > > arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 84 +++++++++++++++++++++++++ > > 1 file changed, 84 insertions(+) > > > > diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts > > index b3461a61a4bf..cf59fd61e422 100644 > > --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts > > +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts > > @@ -30,6 +30,7 @@ > > > > /dts-v1/; > > #include "r8a7742-iwg21m.dtsi" > > +#include <dt-bindings/pwm/pwm.h> > > > > / { > > model = "iWave Systems RainboW-G21D-Qseven board based on RZ/G1H"; > > @@ -52,6 +53,50 @@ > > clock-frequency = <26000000>; > > }; > > > > + lcd_backlight: backlight { > > + compatible = "pwm-backlight"; > > + pwms = <&tpu 2 5000000 0>; > > + brightness-levels = <0 4 8 16 32 64 128 255>; > > + pinctrl-0 = <&backlight_pins>; > > + pinctrl-names = "default"; > > + default-brightness-level = <7>; > > + enable-gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>; > > + }; > > + > > + lvds-receiver { > > + compatible = "ti,ds90cf384a", "lvds-decoder"; > > + powerdown-gpios = <&gpio5 28 GPIO_ACTIVE_LOW>; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + lvds_receiver_in: endpoint { > > + remote-endpoint = <&lvds0_out>; > > + }; > > + }; > > + port@1 { > > + reg = <1>; > > + lvds_receiver_out: endpoint { > > + remote-endpoint = <&panel_in>; > > + }; > > + }; > > + }; > > + }; > > + > > + panel { > > + compatible = "edt,etm0700g0dh6"; > > + backlight = <&lcd_backlight>; > > + > > + port { > > + panel_in: endpoint { > > + remote-endpoint = <&lvds_receiver_out>; > > + }; > > + }; > > + }; > > + > > reg_1p5v: 1p5v { > > compatible = "regulator-fixed"; > > regulator-name = "1P5V"; > > @@ -129,12 +174,31 @@ > > VDDIO-supply = <®_3p3v>; > > VDDD-supply = <®_1p5v>; > > }; > > + > > + touch: touchpanel@38 { > > + compatible = "edt,edt-ft5406"; > > + reg = <0x38>; > > + interrupt-parent = <&gpio0>; > > + interrupts = <24 IRQ_TYPE_EDGE_FALLING>; > > + }; > > }; > > > > &cmt0 { > > status = "okay"; > > }; > > > > +&du { > > + status = "okay"; > > +}; > > + > > +&gpio0 { > > + touch-interrupt { > > + gpio-hog; > > + gpios = <24 GPIO_ACTIVE_LOW>; > > + input; > > Is this required, won't requesting the interrupt be enough to configure > the pin properly ? > Agreed. Cheers, Prabhakar > > + }; > > +}; > > + > > &hsusb { > > pinctrl-0 = <&usb0_pins>; > > pinctrl-names = "default"; > > @@ -165,6 +229,11 @@ > > function = "avb"; > > }; > > > > + backlight_pins: backlight { > > + groups = "tpu0_to2"; > > + function = "tpu0"; > > + }; > > + > > i2c2_pins: i2c2 { > > groups = "i2c2_b"; > > function = "i2c2"; > > @@ -208,6 +277,17 @@ > > }; > > }; > > > > +&lvds0 { > > + status = "okay"; > > + ports { > > + port@1 { > > + lvds0_out: endpoint { > > + remote-endpoint = <&lvds_receiver_in>; > > + }; > > + }; > > + }; > > +}; > > + > > &rcar_sound { > > pinctrl-0 = <&sound_pins>; > > pinctrl-names = "default"; > > @@ -261,6 +341,10 @@ > > shared-pin; > > }; > > > > +&tpu { > > + status = "okay"; > > +}; > > + > > &usbphy { > > status = "okay"; > > }; > > -- > Regards, > > Laurent Pinchart
Hi Prabhakar, Thank you for the patch. On Fri, Aug 07, 2020 at 06:49:54PM +0100, Lad Prabhakar wrote: > The iwg21d comes with a 7" capacitive touch screen, therefore > add support for it. > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > Reviewed-by: Marian-Cristian Rotariu <marian-cristian.rotariu.rb@bp.renesas.com> > --- > arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 84 +++++++++++++++++++++++++ > 1 file changed, 84 insertions(+) > > diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts > index b3461a61a4bf..cf59fd61e422 100644 > --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts > +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts > @@ -30,6 +30,7 @@ > > /dts-v1/; > #include "r8a7742-iwg21m.dtsi" > +#include <dt-bindings/pwm/pwm.h> > > / { > model = "iWave Systems RainboW-G21D-Qseven board based on RZ/G1H"; > @@ -52,6 +53,50 @@ > clock-frequency = <26000000>; > }; > > + lcd_backlight: backlight { > + compatible = "pwm-backlight"; > + pwms = <&tpu 2 5000000 0>; > + brightness-levels = <0 4 8 16 32 64 128 255>; > + pinctrl-0 = <&backlight_pins>; > + pinctrl-names = "default"; > + default-brightness-level = <7>; > + enable-gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>; It's actually a power supply, not an enable GPIO, but it doesn't matter much, I don't think there's a need to declare a regulator just for the sake of it. > + }; > + > + lvds-receiver { > + compatible = "ti,ds90cf384a", "lvds-decoder"; > + powerdown-gpios = <&gpio5 28 GPIO_ACTIVE_LOW>; This should be handled as a shared power supply, as it's also needed for the touch screen. Biju has sent patches for the iwg20d that fixes a probe issue due to that problem, I think you can just copy the fix. > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + lvds_receiver_in: endpoint { > + remote-endpoint = <&lvds0_out>; > + }; > + }; > + port@1 { > + reg = <1>; > + lvds_receiver_out: endpoint { > + remote-endpoint = <&panel_in>; > + }; > + }; > + }; > + }; > + > + panel { > + compatible = "edt,etm0700g0dh6"; > + backlight = <&lcd_backlight>; > + > + port { > + panel_in: endpoint { > + remote-endpoint = <&lvds_receiver_out>; > + }; > + }; > + }; > + > reg_1p5v: 1p5v { > compatible = "regulator-fixed"; > regulator-name = "1P5V"; > @@ -129,12 +174,31 @@ > VDDIO-supply = <®_3p3v>; > VDDD-supply = <®_1p5v>; > }; > + > + touch: touchpanel@38 { > + compatible = "edt,edt-ft5406"; > + reg = <0x38>; > + interrupt-parent = <&gpio0>; > + interrupts = <24 IRQ_TYPE_EDGE_FALLING>; Should the reset GPIO also be wired ? It seems to be shared with the audio codec though, which is annoying. > + }; > }; > > &cmt0 { > status = "okay"; > }; > > +&du { > + status = "okay"; > +}; > + > +&gpio0 { > + touch-interrupt { > + gpio-hog; > + gpios = <24 GPIO_ACTIVE_LOW>; > + input; > + }; Is this needed, or does requesting the interrupt in the touch screen driver configured the GPIO to an input automatically ? > +}; > + > &hsusb { > pinctrl-0 = <&usb0_pins>; > pinctrl-names = "default"; > @@ -165,6 +229,11 @@ > function = "avb"; > }; > > + backlight_pins: backlight { > + groups = "tpu0_to2"; > + function = "tpu0"; > + }; > + > i2c2_pins: i2c2 { > groups = "i2c2_b"; > function = "i2c2"; > @@ -208,6 +277,17 @@ > }; > }; > > +&lvds0 { > + status = "okay"; > + ports { > + port@1 { > + lvds0_out: endpoint { > + remote-endpoint = <&lvds_receiver_in>; > + }; > + }; > + }; > +}; > + > &rcar_sound { > pinctrl-0 = <&sound_pins>; > pinctrl-names = "default"; > @@ -261,6 +341,10 @@ > shared-pin; > }; > > +&tpu { > + status = "okay"; > +}; > + > &usbphy { > status = "okay"; > };
Hi Laurent, Thank you for the review. On Tue, Aug 11, 2020 at 12:26 PM Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > > Hi Prabhakar, > > Thank you for the patch. > > On Fri, Aug 07, 2020 at 06:49:54PM +0100, Lad Prabhakar wrote: > > The iwg21d comes with a 7" capacitive touch screen, therefore > > add support for it. > > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > Reviewed-by: Marian-Cristian Rotariu <marian-cristian.rotariu.rb@bp.renesas.com> > > --- > > arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 84 +++++++++++++++++++++++++ > > 1 file changed, 84 insertions(+) > > > > diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts > > index b3461a61a4bf..cf59fd61e422 100644 > > --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts > > +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts > > @@ -30,6 +30,7 @@ > > > > /dts-v1/; > > #include "r8a7742-iwg21m.dtsi" > > +#include <dt-bindings/pwm/pwm.h> > > > > / { > > model = "iWave Systems RainboW-G21D-Qseven board based on RZ/G1H"; > > @@ -52,6 +53,50 @@ > > clock-frequency = <26000000>; > > }; > > > > + lcd_backlight: backlight { > > + compatible = "pwm-backlight"; > > + pwms = <&tpu 2 5000000 0>; > > + brightness-levels = <0 4 8 16 32 64 128 255>; > > + pinctrl-0 = <&backlight_pins>; > > + pinctrl-names = "default"; > > + default-brightness-level = <7>; > > + enable-gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>; > > It's actually a power supply, not an enable GPIO, but it doesn't matter > much, I don't think there's a need to declare a regulator just for the > sake of it. > Agreed will leave it as is. > > + }; > > + > > + lvds-receiver { > > + compatible = "ti,ds90cf384a", "lvds-decoder"; > > + powerdown-gpios = <&gpio5 28 GPIO_ACTIVE_LOW>; > > This should be handled as a shared power supply, as it's also needed for > the touch screen. Biju has sent patches for the iwg20d that fixes a > probe issue due to that problem, I think you can just copy the fix. > Done. > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + lvds_receiver_in: endpoint { > > + remote-endpoint = <&lvds0_out>; > > + }; > > + }; > > + port@1 { > > + reg = <1>; > > + lvds_receiver_out: endpoint { > > + remote-endpoint = <&panel_in>; > > + }; > > + }; > > + }; > > + }; > > + > > + panel { > > + compatible = "edt,etm0700g0dh6"; > > + backlight = <&lcd_backlight>; > > + > > + port { > > + panel_in: endpoint { > > + remote-endpoint = <&lvds_receiver_out>; > > + }; > > + }; > > + }; > > + > > reg_1p5v: 1p5v { > > compatible = "regulator-fixed"; > > regulator-name = "1P5V"; > > @@ -129,12 +174,31 @@ > > VDDIO-supply = <®_3p3v>; > > VDDD-supply = <®_1p5v>; > > }; > > + > > + touch: touchpanel@38 { > > + compatible = "edt,edt-ft5406"; > > + reg = <0x38>; > > + interrupt-parent = <&gpio0>; > > + interrupts = <24 IRQ_TYPE_EDGE_FALLING>; > > Should the reset GPIO also be wired ? It seems to be shared with the > audio codec though, which is annoying. > Done. > > + }; > > }; > > > > &cmt0 { > > status = "okay"; > > }; > > > > +&du { > > + status = "okay"; > > +}; > > + > > +&gpio0 { > > + touch-interrupt { > > + gpio-hog; > > + gpios = <24 GPIO_ACTIVE_LOW>; > > + input; > > + }; > > Is this needed, or does requesting the interrupt in the touch screen > driver configured the GPIO to an input automatically ? > Yes this is needed, the touch driver does not configure the pin as GPIO input without this touch doesn't work. Cheers, Prabhakar
diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts index b3461a61a4bf..cf59fd61e422 100644 --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts @@ -30,6 +30,7 @@ /dts-v1/; #include "r8a7742-iwg21m.dtsi" +#include <dt-bindings/pwm/pwm.h> / { model = "iWave Systems RainboW-G21D-Qseven board based on RZ/G1H"; @@ -52,6 +53,50 @@ clock-frequency = <26000000>; }; + lcd_backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&tpu 2 5000000 0>; + brightness-levels = <0 4 8 16 32 64 128 255>; + pinctrl-0 = <&backlight_pins>; + pinctrl-names = "default"; + default-brightness-level = <7>; + enable-gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>; + }; + + lvds-receiver { + compatible = "ti,ds90cf384a", "lvds-decoder"; + powerdown-gpios = <&gpio5 28 GPIO_ACTIVE_LOW>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + lvds_receiver_in: endpoint { + remote-endpoint = <&lvds0_out>; + }; + }; + port@1 { + reg = <1>; + lvds_receiver_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + }; + }; + + panel { + compatible = "edt,etm0700g0dh6"; + backlight = <&lcd_backlight>; + + port { + panel_in: endpoint { + remote-endpoint = <&lvds_receiver_out>; + }; + }; + }; + reg_1p5v: 1p5v { compatible = "regulator-fixed"; regulator-name = "1P5V"; @@ -129,12 +174,31 @@ VDDIO-supply = <®_3p3v>; VDDD-supply = <®_1p5v>; }; + + touch: touchpanel@38 { + compatible = "edt,edt-ft5406"; + reg = <0x38>; + interrupt-parent = <&gpio0>; + interrupts = <24 IRQ_TYPE_EDGE_FALLING>; + }; }; &cmt0 { status = "okay"; }; +&du { + status = "okay"; +}; + +&gpio0 { + touch-interrupt { + gpio-hog; + gpios = <24 GPIO_ACTIVE_LOW>; + input; + }; +}; + &hsusb { pinctrl-0 = <&usb0_pins>; pinctrl-names = "default"; @@ -165,6 +229,11 @@ function = "avb"; }; + backlight_pins: backlight { + groups = "tpu0_to2"; + function = "tpu0"; + }; + i2c2_pins: i2c2 { groups = "i2c2_b"; function = "i2c2"; @@ -208,6 +277,17 @@ }; }; +&lvds0 { + status = "okay"; + ports { + port@1 { + lvds0_out: endpoint { + remote-endpoint = <&lvds_receiver_in>; + }; + }; + }; +}; + &rcar_sound { pinctrl-0 = <&sound_pins>; pinctrl-names = "default"; @@ -261,6 +341,10 @@ shared-pin; }; +&tpu { + status = "okay"; +}; + &usbphy { status = "okay"; };