TODO:
 1) Figure out how to specify that LVDS is used instead of RGB.
 2) Should we move the tcon0, fe0 and be0 bits to a10.dtsi?

Signed-off-by: Priit Laes <[email protected]>
---
 arch/arm/boot/dts/sun4i-a10-gemei-g9.dts | 175 +++++++++++++++++++++++++++++--
 1 file changed, 166 insertions(+), 9 deletions(-)

diff --git a/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts 
b/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
index ac64781..e2c9e49 100644
--- a/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
+++ b/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts
@@ -1,5 +1,5 @@
 /*
- * Copyright 2015 Priit Laes
+ * Copyright 2015, 2016 Priit Laes
  *
  * Priit Laes <[email protected]>
  *
@@ -53,6 +53,17 @@
        model = "Gemei G9 Tablet";
        compatible = "gemei,g9", "allwinner,sun4i-a10";
 
+       /*
+        * TODO:
+        *   2x cameras via CSI
+        *   AXP battery management
+        *   NAND
+        *   OTG
+        *   Touchscreen - gt801_2plus1 @ i2c adapter 2 @ 0x48
+        *   Panel backlight (PH7) and PWM (PB2)
+        *   HDMI output
+        */
+
        aliases {
                serial0 = &uart0;
        };
@@ -60,16 +71,140 @@
        chosen {
                stdout-path = "serial0:115200n8";
        };
+
+       panel: panel {
+               /* TODO: Backlight PWM (PB2) */
+               /* TODO: Specify that output is LVDS */
+               compatible = "lg,lp097x02-slq2";
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_backlight_pin>, <&lcd_enable_pin>, 
<&lcd_lvds0_pins>;
+               enable-gpios =
+                       <&pio 7 8 GPIO_ACTIVE_HIGH>,  /* Power (PH8) */
+                       <&pio 7 7 GPIO_ACTIVE_HIGH>;  /* Backlight (PH7) */
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       panel_input: endpoint {
+                               remote-endpoint = <&tcon0_out_panel>;
+                       };
+               };
+       };
+
+       tcon0: lcd-controller@1c0c000 {
+               compatible = "allwinner,sun5i-a13-tcon";
+               reg = <0x01c0c000 0x1000>;
+               interrupts = <44>;
+               resets = <&tcon0_ch0_clk 1>;
+               reset-names = "lcd";
+               clocks = <&ahb_gates 36>,
+                        <&tcon0_ch0_clk>,
+                        <&tcon0_ch1_clk>;
+               clock-names = "ahb",
+                             "tcon-ch0",
+                             "tcon-ch1";
+               clock-output-names = "tcon-pixel-clock";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       tcon0_in: port@0 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <0>;
+
+                               tcon0_in_be0: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&be0_out_tcon0>;
+                               };
+                       };
+
+                       tcon0_out: port@1 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <1>;
+
+                               tcon0_out_panel: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&panel_input>;
+                               };
+                       };
+               };
+       };
+
+       fe0: display-frontend@1e00000 {
+               compatible = "allwinner,sun5i-a13-display-frontend";
+               reg = <0x01e00000 0x20000>;
+               interrupts = <47>;
+               clocks = <&ahb_gates 46>, <&de_fe0_clk>,
+                        <&dram_gates 25>;
+               clock-names = "ahb", "mod",
+                             "ram";
+               resets = <&de_fe0_clk>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       fe0_out: port@1 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <1>;
+
+                               fe0_out_be0: endpoint {
+                                       remote-endpoint = <&be0_in_fe0>;
+                               };
+                       };
+               };
+       };
+
+       be0: display-backend@1e60000 {
+               compatible = "allwinner,sun5i-a13-display-backend";
+               reg = <0x01e60000 0x10000>;
+               clocks = <&ahb_gates 44>, <&de_be0_clk>,
+                        <&dram_gates 26>;
+               clock-names = "ahb", "mod",
+                             "ram";
+               resets = <&de_be0_clk>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       be0_in: port@0 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <0>;
+
+                               be0_in_fe0: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&fe0_out_be0>;
+                               };
+                       };
+
+                       be0_out: port@1 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <1>;
+
+                               be0_out_tcon0: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&tcon0_in_be0>;
+                               };
+                       };
+               };
+       };
+
+       display-engine {
+               compatible = "allwinner,sun5i-a13-display-engine";
+               allwinner,pipelines = <&fe0>;
+       };
 };
 
-/*
- * TODO:
- *   2x cameras via CSI
- *   AXP battery management
- *   NAND
- *   OTG
- *   Touchscreen - gt801_2plus1 @ i2c adapter 2 @ 0x48
- */
 &codec {
        /* PH15 controls power to external amplifier (ft2012q) */
        pinctrl-names = "default";
@@ -161,6 +296,28 @@
                allwinner,drive = <SUN4I_PINCTRL_10_MA>;
                allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
        };
+
+       lcd_backlight_pin: lcd_backlight_pin@0 {
+               allwinner,pins = "PH7";
+               allwinner,function = "gpio_out";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
+
+       lcd_enable_pin: lcd_enable_pin@0 {
+               allwinner,pins = "PH8";
+               allwinner,function = "gpio_out";
+               allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+               allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+       };
+
+       lcd_lvds0_pins: lcd_lvds0_pins@0 {
+               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>;
+       };
 };
 
 &reg_dcdc2 {
-- 
2.7.4

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to