arm64: dts: apq8016-sbc: Add HDMI display support
authorArchit Taneja <architt@codeaurora.org>
Thu, 23 Jun 2016 14:13:30 +0000 (19:43 +0530)
committerAndy Gross <andy.gross@linaro.org>
Fri, 26 Aug 2016 20:31:51 +0000 (15:31 -0500)
The APQ8016-sbc provides a HDMI output. The APQ8016 display block only
provides a MIPI DSI output. So, the board has a ADV7533 DSI to HDMI
encoder chip that sits between the DSI PHY output and the HDMI
connector.

Add the ADV7533 DT node under its I2C control bus, and tie the DSI
output port to the ADV7533's input port.

Cc: Andy Gross <andy.gross@linaro.org>
Cc: Rob Herring <robh@kernel.org>
Cc: devicetree@vger.kernel.org
Signed-off-by: Archit Taneja <architt@codeaurora.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
arch/arm64/boot/dts/qcom/apq8016-sbc-soc-pins.dtsi
arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi

index ee828a8..e1e6c6b 100644 (file)
                        bias-pull-up;
                };
        };
+
+       adv7533_int_active: adv533_int_active {
+               pinmux {
+                       function = "gpio";
+                       pins = "gpio31";
+               };
+               pinconf {
+                       pins = "gpio31";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+       };
+
+       adv7533_int_suspend: adv7533_int_suspend {
+               pinmux {
+                       function = "gpio";
+                       pins = "gpio31";
+               };
+               pinconf {
+                       pins = "gpio31";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+
+       adv7533_switch_active: adv7533_switch_active {
+               pinmux {
+                       function = "gpio";
+                       pins = "gpio32";
+               };
+               pinconf {
+                       pins = "gpio32";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+       };
+
+       adv7533_switch_suspend: adv7533_switch_suspend {
+               pinmux {
+                       function = "gpio";
+                       pins = "gpio32";
+               };
+               pinconf {
+                       pins = "gpio32";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
 };
index 18639bc..bb062b5 100644 (file)
                /* On High speed expansion */
                        label = "HS-I2C2";
                        status = "okay";
+
+                       adv_bridge: bridge@39 {
+                               status = "okay";
+
+                               compatible = "adi,adv7533";
+                               reg = <0x39>;
+
+                               interrupt-parent = <&msmgpio>;
+                               interrupts = <31 2>;
+
+                               adi,dsi-lanes = <4>;
+
+                               pd-gpios = <&msmgpio 32 0>;
+
+                               avdd-supply = <&pm8916_l6>;
+                               v1p2-supply = <&pm8916_l6>;
+                               v3p3-supply = <&pm8916_l17>;
+
+                               pinctrl-names = "default","sleep";
+                               pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
+                               pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               adv7533_in: endpoint {
+                                                       remote-endpoint = <&dsi0_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               adv7533_out: endpoint {
+                                                       remote-endpoint = <&hdmi_con>;
+                                               };
+                                       };
+                               };
+                       };
                };
 
                i2c@78ba000 {
                lpass@07708000 {
                        status = "okay";
                };
+
+               mdss@1a00000 {
+                       status = "okay";
+
+                       mdp@1a01000 {
+                               status = "okay";
+                       };
+
+                       dsi@1a98000 {
+                               status = "okay";
+
+                               vdda-supply = <&pm8916_l2>;
+                               vddio-supply = <&pm8916_l6>;
+
+                               ports {
+                                       port@1 {
+                                               endpoint {
+                                                       remote-endpoint = <&adv7533_in>;
+                                                       data-lanes = <0 1 2 3>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       dsi-phy@1a98300 {
+                               status = "okay";
+
+                               vddio-supply = <&pm8916_l6>;
+                       };
+               };
        };
 
        usb2513 {
                pinctrl-names = "default";
                pinctrl-0 = <&usb_id_default>;
        };
+
+       hdmi-out {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con: endpoint {
+                               remote-endpoint = <&adv7533_out>;
+                       };
+               };
+       };
 };
 
 &smd_rpm_regulators {