arm64: allwinner: a64: enable LCD-related hardware for Pinebook
authorIcenowy Zheng <icenowy@aosc.io>
Wed, 26 Feb 2020 08:10:11 +0000 (00:10 -0800)
committerMaxime Ripard <maxime@cerno.tech>
Thu, 27 Feb 2020 12:52:55 +0000 (13:52 +0100)
Pinebook has an ANX6345 bridge connected to the RGB666 LCD output and
eDP panel input. The bridge is controlled via I2C that's connected to
R_I2C bus.

Enable all this hardware in device tree.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts

index 12e513b..64b1c54 100644 (file)
                };
        };
 
+       panel_edp: panel-edp {
+               compatible = "neweast,wjfh116008a";
+               backlight = <&backlight>;
+               power-supply = <&reg_dc1sw>;
+
+               port {
+                       panel_edp_in: endpoint {
+                               remote-endpoint = <&anx6345_out_edp>;
+                       };
+               };
+       };
+
        reg_vbklt: vbklt {
                compatible = "regulator-fixed";
                regulator-name = "vbklt";
        status = "okay";
 };
 
+&de {
+       status = "okay";
+};
+
 &ehci0 {
        phys = <&usbphy 0>;
        phy-names = "usb";
        status = "okay";
 };
 
+&mixer0 {
+       status = "okay";
+};
+
 &mmc0 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc0_pins>;
        status = "okay";
 };
 
-/* The ANX6345 eDP-bridge is on r_i2c */
 &r_i2c {
        clock-frequency = <100000>;
        pinctrl-names = "default";
        pinctrl-0 = <&r_i2c_pl89_pins>;
        status = "okay";
+
+       anx6345: anx6345@38 {
+               compatible = "analogix,anx6345";
+               reg = <0x38>;
+               reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
+               dvdd25-supply = <&reg_dldo2>;
+               dvdd12-supply = <&reg_fldo1>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       anx6345_in: port@0 {
+                               reg = <0>;
+                               anx6345_in_tcon0: endpoint {
+                                       remote-endpoint = <&tcon0_out_anx6345>;
+                               };
+                       };
+
+                       anx6345_out: port@1 {
+                               reg = <1>;
+                               anx6345_out_edp: endpoint {
+                                       remote-endpoint = <&panel_edp_in>;
+                               };
+                       };
+               };
+       };
 };
 
 &r_pio {
                        "MIC2", "Internal Microphone Right";
 };
 
+&tcon0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&lcd_rgb666_pins>;
+
+       status = "okay";
+};
+
+&tcon0_out {
+       tcon0_out_anx6345: endpoint {
+               remote-endpoint = <&anx6345_in_tcon0>;
+       };
+};
+
 &uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_pb_pins>;