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

From: andrey . lebedev
Date: Wed Feb 12 2020 - 17:25:41 EST


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>
---
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>;
+ };
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>;
+ };
+ };
+ };
+
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 {
+ 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>;
+ };
+
+ /omit-if-no-ref/
+ lcd_lvds1_pins: lcd_lvds1_pins {
+ allwinner,pins =
+ "PD10", "PD11", "PD12", "PD13", "PD14",
+ "PD15", "PD16", "PD17", "PD18", "PD19";
+ allwinner,function = "lvds1";
+ allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+ allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+ };
};

timer@1c20c00 {
--
2.20.1