Re: [PATCH v2 2/2] ARM: sun7i: dts: Add LVDS panel support on A20

From: Maxime Ripard
Date: Thu Feb 13 2020 - 04:43:09 EST


On Thu, Feb 13, 2020 at 12:23:57AM +0200, andrey.lebedev@xxxxxxxxx wrote:
> From: Andrey Lebedev <andrey@xxxxxxxxxx>
>
> Define pins for LVDS channels 0 and 1, configure reset line for tcon0 and
> provide sample LVDS panel, connected to tcon0.
>
> Signed-off-by: Andrey Lebedev <andrey@xxxxxxxxxx>

And this prefix should be ARM: dts: sun7i ;)

> ---
> arch/arm/boot/dts/sun7i-a20.dtsi | 45 +++++++++++++++++++++++++++++---
> 1 file changed, 42 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
> index 92b5be97085d..b05fdf8df32e 100644
> --- a/arch/arm/boot/dts/sun7i-a20.dtsi
> +++ b/arch/arm/boot/dts/sun7i-a20.dtsi
> @@ -47,6 +47,7 @@
> #include <dt-bindings/dma/sun4i-a10.h>
> #include <dt-bindings/clock/sun7i-a20-ccu.h>
> #include <dt-bindings/reset/sun4i-a10-ccu.h>
> +#include <dt-bindings/pinctrl/sun4i-a10.h>
>
> / {
> interrupt-parent = <&gic>;
> @@ -407,8 +408,8 @@
> compatible = "allwinner,sun7i-a20-tcon";
> reg = <0x01c0c000 0x1000>;
> interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
> - resets = <&ccu RST_TCON0>;
> - reset-names = "lcd";
> + resets = <&ccu RST_TCON0>, <&ccu RST_LVDS>;
> + reset-names = "lcd", "lvds";
> clocks = <&ccu CLK_AHB_LCD0>,
> <&ccu CLK_TCON0_CH0>,
> <&ccu CLK_TCON0_CH1>;
> @@ -444,6 +445,11 @@
> #size-cells = <0>;
> reg = <1>;
>
> + tcon0_out_lvds: endpoint@0 {
> + reg = <0>;
> + remote-endpoint = <&lvds_in_tcon0>;
> + allwinner,tcon-channel = <0>;
> + };

A new line here would be nice

> tcon0_out_hdmi: endpoint@1 {
> reg = <1>;
> remote-endpoint = <&hdmi_in_tcon0>;
> @@ -686,6 +692,19 @@
> };
> };
>
> + lvds_panel: panel@1c16500 {
> + compatible = "panel-lvds";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "disabled";
> +
> + port {
> + lvds_in_tcon0: endpoint {
> + remote-endpoint = <&tcon0_out_lvds>;
> + };
> + };
> + };
> +

There's no point in creating that panel.

> spi2: spi@1c17000 {
> compatible = "allwinner,sun4i-a10-spi";
> reg = <0x01c17000 0x1000>;
> @@ -872,7 +891,7 @@
> gmac_rgmii_pins: gmac-rgmii-pins {
> pins = "PA0", "PA1", "PA2",
> "PA3", "PA4", "PA5", "PA6",
> - "PA7", "PA8", "PA10",
> + "PA7", "PA8", "PA10",
> "PA11", "PA12", "PA13",
> "PA15", "PA16";
> function = "gmac";
> @@ -1162,6 +1181,26 @@
> pins = "PI20", "PI21";
> function = "uart7";
> };
> +
> + /omit-if-no-ref/
> + lcd_lvds0_pins: lcd_lvds0_pins {

underscores in the node names will create a dtc warning at
compilation, you should use lcd-lvds0-pins instead.

> + allwinner,pins =
> + "PD0", "PD1", "PD2", "PD3", "PD4",
> + "PD5", "PD6", "PD7", "PD8", "PD9";
> + allwinner,function = "lvds0";
> + allwinner,drive = <SUN4I_PINCTRL_10_MA>;
> + allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;

Those properties are deprecated and should be replaced by pins and
functions. allwinner,drive and allwinner,pull are at their default
values and can be dropped.

This will create a spurious warning message for TCON1, since we
adjusted the driver to tell it supports LVDS, but there's no LVDS
reset line, so we need to make it finer grained.

Maybe adding a tcon0 / tcon1 compatible? Chen-Yu, any thought?

Maxime

Attachment: signature.asc
Description: PGP signature