arm64: dts: ti: k3-j784s4-evm: Enable DisplayPort-0
authorRahul T R <r-ravikumar@ti.com>
Thu, 19 Oct 2023 05:40:21 +0000 (11:10 +0530)
committerVignesh Raghavendra <vigneshr@ti.com>
Thu, 19 Oct 2023 10:16:32 +0000 (15:46 +0530)
Enable display for J784S4 EVM.

Add assigned clocks for DSS, DT node for DisplayPort PHY and pinmux for
DP HPD. Add the clock frequency for serdes_refclk.

Add the endpoint nodes to describe connection from:
DSS => MHDP => DisplayPort connector.

Also add the GPIO expander-4 node and pinmux for main_i2c4 which is
required for controlling DP power. Set status for all required nodes
for DP-0 as "okay".

Signed-off-by: Rahul T R <r-ravikumar@ti.com>
[j-choudhary@ti.com: move all the changes together to enable DP-0 in EVM]
Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
Reviewed-by: Aradhya Bhatia <a-bhatia1@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Link: https://lore.kernel.org/r/20231019054022.175163-5-j-choudhary@ti.com
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
arch/arm64/boot/dts/ti/k3-j784s4-evm.dts

index 5991c2e1d994c8a5234f28030da11c4f10a0304c..f1f4c8634ab690d0ea63990a5fa7ac5da1a1aa1e 100644 (file)
                states = <1800000 0x0>,
                         <3300000 0x1>;
        };
+
+       dp0_pwr_3v3: regulator-dp0-prw {
+               compatible = "regulator-fixed";
+               regulator-name = "dp0-pwr";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&exp4 0 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       dp0: connector-dp0 {
+               compatible = "dp-connector";
+               label = "DP0";
+               type = "full-size";
+               dp-pwr-supply = <&dp0_pwr_3v3>;
+
+               port {
+                       dp0_connector_in: endpoint {
+                               remote-endpoint = <&dp0_out>;
+                       };
+               };
+       };
 };
 
 &main_pmx0 {
                        J784S4_IOPAD(0x020, PIN_INPUT, 7) /* (AJ35) MCAN15_RX.GPIO0_8 */
                >;
        };
+
+       dp0_pins_default: dp0-default-pins {
+               pinctrl-single,pins = <
+                       J784S4_IOPAD(0x0cc, PIN_INPUT, 12) /* (AM37) SPI0_CS0.DP0_HPD */
+               >;
+       };
+
+       main_i2c4_pins_default: main-i2c4-default-pins {
+               pinctrl-single,pins = <
+                       J784S4_IOPAD(0x014, PIN_INPUT_PULLUP, 8) /* (AG33) MCAN14_TX.I2C4_SCL */
+                       J784S4_IOPAD(0x010, PIN_INPUT_PULLUP, 8) /* (AH33) MCAN13_RX.I2C4_SDA */
+               >;
+       };
 };
 
 &wkup_pmx2 {
                ti,adc-channels = <0 1 2 3 4 5 6 7>;
        };
 };
+
+&serdes_refclk {
+       status = "okay";
+       clock-frequency = <100000000>;
+};
+
+&dss {
+       status = "okay";
+       assigned-clocks = <&k3_clks 218 2>,
+                         <&k3_clks 218 5>,
+                         <&k3_clks 218 14>,
+                         <&k3_clks 218 18>;
+       assigned-clock-parents = <&k3_clks 218 3>,
+                                <&k3_clks 218 7>,
+                                <&k3_clks 218 16>,
+                                <&k3_clks 218 22>;
+};
+
+&serdes_wiz4 {
+       status = "okay";
+};
+
+&serdes4 {
+       status = "okay";
+       serdes4_dp_link: phy@0 {
+               reg = <0>;
+               cdns,num-lanes = <4>;
+               #phy-cells = <0>;
+               cdns,phy-type = <PHY_TYPE_DP>;
+               resets = <&serdes_wiz4 1>, <&serdes_wiz4 2>,
+                        <&serdes_wiz4 3>, <&serdes_wiz4 4>;
+       };
+};
+
+&mhdp {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&dp0_pins_default>;
+       phys = <&serdes4_dp_link>;
+       phy-names = "dpphy";
+};
+
+&dss_ports {
+       /* DP */
+       port {
+               dpi0_out: endpoint {
+                       remote-endpoint = <&dp0_in>;
+               };
+       };
+};
+
+&main_i2c4 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_i2c4_pins_default>;
+       clock-frequency = <400000>;
+
+       exp4: gpio@20 {
+               compatible = "ti,tca6408";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+};
+
+&dp0_ports {
+       port@0 {
+               reg = <0>;
+
+               dp0_in: endpoint {
+                       remote-endpoint = <&dpi0_out>;
+               };
+       };
+
+       port@4 {
+               reg = <4>;
+
+               dp0_out: endpoint {
+                       remote-endpoint = <&dp0_connector_in>;
+               };
+       };
+};