xref: /freebsd/sys/contrib/device-tree/src/arm64/ti/k3-j721e-common-proc-board-infotainment.dtso (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only OR MIT
2*0e8011faSEmmanuel Vadot/*
3*0e8011faSEmmanuel Vadot * Infotainment Expansion Board for j721e-evm
4*0e8011faSEmmanuel Vadot * User Guide: <https://www.ti.com/lit/ug/spruit0a/spruit0a.pdf>
5*0e8011faSEmmanuel Vadot *
6*0e8011faSEmmanuel Vadot * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
7*0e8011faSEmmanuel Vadot */
8*0e8011faSEmmanuel Vadot
9*0e8011faSEmmanuel Vadot/dts-v1/;
10*0e8011faSEmmanuel Vadot/plugin/;
11*0e8011faSEmmanuel Vadot
12*0e8011faSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
13*0e8011faSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
14*0e8011faSEmmanuel Vadot
15*0e8011faSEmmanuel Vadot#include "k3-pinctrl.h"
16*0e8011faSEmmanuel Vadot
17*0e8011faSEmmanuel Vadot&{/} {
18*0e8011faSEmmanuel Vadot	hdmi-connector {
19*0e8011faSEmmanuel Vadot		compatible = "hdmi-connector";
20*0e8011faSEmmanuel Vadot		label = "hdmi";
21*0e8011faSEmmanuel Vadot		type = "a";
22*0e8011faSEmmanuel Vadot		ddc-i2c-bus = <&main_i2c1>;
23*0e8011faSEmmanuel Vadot		digital;
24*0e8011faSEmmanuel Vadot		/* P12 - HDMI_HPD */
25*0e8011faSEmmanuel Vadot		hpd-gpios = <&exp6 10 GPIO_ACTIVE_HIGH>;
26*0e8011faSEmmanuel Vadot
27*0e8011faSEmmanuel Vadot		port {
28*0e8011faSEmmanuel Vadot			hdmi_connector_in: endpoint {
29*0e8011faSEmmanuel Vadot				remote-endpoint = <&tfp410_out>;
30*0e8011faSEmmanuel Vadot			};
31*0e8011faSEmmanuel Vadot		};
32*0e8011faSEmmanuel Vadot	};
33*0e8011faSEmmanuel Vadot
34*0e8011faSEmmanuel Vadot	dvi-bridge {
35*0e8011faSEmmanuel Vadot		#address-cells = <1>;
36*0e8011faSEmmanuel Vadot		#size-cells = <0>;
37*0e8011faSEmmanuel Vadot		compatible = "ti,tfp410";
38*0e8011faSEmmanuel Vadot		/* P10 - HDMI_PDn */
39*0e8011faSEmmanuel Vadot		powerdown-gpios = <&exp6 8 GPIO_ACTIVE_LOW>;
40*0e8011faSEmmanuel Vadot
41*0e8011faSEmmanuel Vadot		port@0 {
42*0e8011faSEmmanuel Vadot			reg = <0>;
43*0e8011faSEmmanuel Vadot
44*0e8011faSEmmanuel Vadot			tfp410_in: endpoint {
45*0e8011faSEmmanuel Vadot				remote-endpoint = <&dpi_out0>;
46*0e8011faSEmmanuel Vadot				pclk-sample = <1>;
47*0e8011faSEmmanuel Vadot			};
48*0e8011faSEmmanuel Vadot		};
49*0e8011faSEmmanuel Vadot
50*0e8011faSEmmanuel Vadot		port@1 {
51*0e8011faSEmmanuel Vadot			reg = <1>;
52*0e8011faSEmmanuel Vadot
53*0e8011faSEmmanuel Vadot			tfp410_out: endpoint {
54*0e8011faSEmmanuel Vadot				remote-endpoint =
55*0e8011faSEmmanuel Vadot					<&hdmi_connector_in>;
56*0e8011faSEmmanuel Vadot			};
57*0e8011faSEmmanuel Vadot		};
58*0e8011faSEmmanuel Vadot	};
59*0e8011faSEmmanuel Vadot};
60*0e8011faSEmmanuel Vadot
61*0e8011faSEmmanuel Vadot&main_pmx0 {
62*0e8011faSEmmanuel Vadot	main_i2c1_exp6_pins_default: main-i2c1-exp6-default-pins {
63*0e8011faSEmmanuel Vadot		pinctrl-single,pins = <
64*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x264, PIN_INPUT, 7) /* (T29) MMC2_DAT2.GPIO1_24 */
65*0e8011faSEmmanuel Vadot		>;
66*0e8011faSEmmanuel Vadot	};
67*0e8011faSEmmanuel Vadot
68*0e8011faSEmmanuel Vadot	dss_vout0_pins_default: dss-vout0-default-pins {
69*0e8011faSEmmanuel Vadot		pinctrl-single,pins = <
70*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x58, PIN_OUTPUT, 10) /* (AE22) PRG1_PRU1_GPO0.VOUT0_DATA0 */
71*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x5c, PIN_OUTPUT, 10) /* (AG23) PRG1_PRU1_GPO1.VOUT0_DATA1 */
72*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x60, PIN_OUTPUT, 10) /* (AF23) PRG1_PRU1_GPO2.VOUT0_DATA2 */
73*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x64, PIN_OUTPUT, 10) /* (AD23) PRG1_PRU1_GPO3.VOUT0_DATA3 */
74*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x68, PIN_OUTPUT, 10) /* (AH24) PRG1_PRU1_GPO4.VOUT0_DATA4 */
75*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x6c, PIN_OUTPUT, 10) /* (AG21) PRG1_PRU1_GPO5.VOUT0_DATA5 */
76*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x70, PIN_OUTPUT, 10) /* (AE23) PRG1_PRU1_GPO6.VOUT0_DATA6 */
77*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x74, PIN_OUTPUT, 10) /* (AC21) PRG1_PRU1_GPO7.VOUT0_DATA7 */
78*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x78, PIN_OUTPUT, 10) /* (Y23)  PRG1_PRU1_GPO8.VOUT0_DATA8 */
79*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x7c, PIN_OUTPUT, 10) /* (AF21) PRG1_PRU1_GPO9.VOUT0_DATA9 */
80*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x80, PIN_OUTPUT, 10) /* (AB23) PRG1_PRU1_GPO10.VOUT0_DATA10 */
81*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x84, PIN_OUTPUT, 10) /* (AJ25) PRG1_PRU1_GPO11.VOUT0_DATA11 */
82*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x88, PIN_OUTPUT, 10) /* (AH25) PRG1_PRU1_GPO12.VOUT0_DATA12 */
83*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x8c, PIN_OUTPUT, 10) /* (AG25) PRG1_PRU1_GPO13.VOUT0_DATA13 */
84*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x90, PIN_OUTPUT, 10) /* (AH26) PRG1_PRU1_GPO14.VOUT0_DATA14 */
85*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x94, PIN_OUTPUT, 10) /* (AJ27) PRG1_PRU1_GPO15.VOUT0_DATA15 */
86*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x30, PIN_OUTPUT, 10) /* (AF24) PRG1_PRU0_GPO11.VOUT0_DATA16 */
87*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x34, PIN_OUTPUT, 10) /* (AJ24) PRG1_PRU0_GPO12.VOUT0_DATA17 */
88*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x38, PIN_OUTPUT, 10) /* (AG24) PRG1_PRU0_GPO13.VOUT0_DATA18 */
89*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x3c, PIN_OUTPUT, 10) /* (AD24) PRG1_PRU0_GPO14.VOUT0_DATA19 */
90*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x40, PIN_OUTPUT, 10) /* (AC24) PRG1_PRU0_GPO15.VOUT0_DATA20 */
91*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x44, PIN_OUTPUT, 10) /* (AE24) PRG1_PRU0_GPO16.VOUT0_DATA21 */
92*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x24, PIN_OUTPUT, 10) /* (AJ20) PRG1_PRU0_GPO8.VOUT0_DATA22 */
93*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x28, PIN_OUTPUT, 10) /* (AG20) PRG1_PRU0_GPO9.VOUT0_DATA23 */
94*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x9c, PIN_OUTPUT, 10) /* (AC22) PRG1_PRU1_GPO17.VOUT0_DE */
95*0e8011faSEmmanuel Vadot			J721E_IOPAD(0x98, PIN_OUTPUT, 10) /* (AJ26) PRG1_PRU1_GPO16.VOUT0_HSYNC */
96*0e8011faSEmmanuel Vadot			J721E_IOPAD(0xa4, PIN_OUTPUT, 10) /* (AH22) PRG1_PRU1_GPO19.VOUT0_PCLK */
97*0e8011faSEmmanuel Vadot			J721E_IOPAD(0xa0, PIN_OUTPUT, 10) /* (AJ22) PRG1_PRU1_GPO18.VOUT0_VSYNC */
98*0e8011faSEmmanuel Vadot		>;
99*0e8011faSEmmanuel Vadot	};
100*0e8011faSEmmanuel Vadot};
101*0e8011faSEmmanuel Vadot
102*0e8011faSEmmanuel Vadot&exp1 {
103*0e8011faSEmmanuel Vadot	p14-hog {
104*0e8011faSEmmanuel Vadot		/* P14 - VINOUT_MUX_SEL0 */
105*0e8011faSEmmanuel Vadot		gpio-hog;
106*0e8011faSEmmanuel Vadot		gpios = <12 GPIO_ACTIVE_HIGH>;
107*0e8011faSEmmanuel Vadot		output-low;
108*0e8011faSEmmanuel Vadot		line-name = "VINOUT_MUX_SEL0";
109*0e8011faSEmmanuel Vadot	};
110*0e8011faSEmmanuel Vadot
111*0e8011faSEmmanuel Vadot	p15-hog {
112*0e8011faSEmmanuel Vadot		/* P15 - VINOUT_MUX_SEL1 */
113*0e8011faSEmmanuel Vadot		gpio-hog;
114*0e8011faSEmmanuel Vadot		gpios = <13 GPIO_ACTIVE_HIGH>;
115*0e8011faSEmmanuel Vadot		output-high;
116*0e8011faSEmmanuel Vadot		line-name = "VINOUT_MUX_SEL1";
117*0e8011faSEmmanuel Vadot	};
118*0e8011faSEmmanuel Vadot};
119*0e8011faSEmmanuel Vadot
120*0e8011faSEmmanuel Vadot&main_i2c1 {
121*0e8011faSEmmanuel Vadot	/* i2c1 is used for DVI DDC, so we need to use 100kHz */
122*0e8011faSEmmanuel Vadot	clock-frequency = <100000>;
123*0e8011faSEmmanuel Vadot	#address-cells = <1>;
124*0e8011faSEmmanuel Vadot	#size-cells = <0>;
125*0e8011faSEmmanuel Vadot
126*0e8011faSEmmanuel Vadot	exp6: gpio@21 {
127*0e8011faSEmmanuel Vadot		compatible = "ti,tca6416";
128*0e8011faSEmmanuel Vadot		reg = <0x21>;
129*0e8011faSEmmanuel Vadot		gpio-controller;
130*0e8011faSEmmanuel Vadot		#gpio-cells = <2>;
131*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
132*0e8011faSEmmanuel Vadot		pinctrl-0 = <&main_i2c1_exp6_pins_default>;
133*0e8011faSEmmanuel Vadot		interrupt-parent = <&main_gpio1>;
134*0e8011faSEmmanuel Vadot		interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
135*0e8011faSEmmanuel Vadot		interrupt-controller;
136*0e8011faSEmmanuel Vadot		#interrupt-cells = <2>;
137*0e8011faSEmmanuel Vadot
138*0e8011faSEmmanuel Vadot		p11-hog {
139*0e8011faSEmmanuel Vadot			/* P11 - HDMI_DDC_OE */
140*0e8011faSEmmanuel Vadot			gpio-hog;
141*0e8011faSEmmanuel Vadot			gpios = <9 GPIO_ACTIVE_HIGH>;
142*0e8011faSEmmanuel Vadot			output-high;
143*0e8011faSEmmanuel Vadot			line-name = "HDMI_DDC_OE";
144*0e8011faSEmmanuel Vadot		};
145*0e8011faSEmmanuel Vadot	};
146*0e8011faSEmmanuel Vadot};
147*0e8011faSEmmanuel Vadot
148*0e8011faSEmmanuel Vadot&dss {
149*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
150*0e8011faSEmmanuel Vadot	pinctrl-0 = <&dss_vout0_pins_default>;
151*0e8011faSEmmanuel Vadot};
152*0e8011faSEmmanuel Vadot
153*0e8011faSEmmanuel Vadot&dss_ports {
154*0e8011faSEmmanuel Vadot	#address-cells = <1>;
155*0e8011faSEmmanuel Vadot	#size-cells = <0>;
156*0e8011faSEmmanuel Vadot
157*0e8011faSEmmanuel Vadot	port@1 {
158*0e8011faSEmmanuel Vadot		reg = <1>;
159*0e8011faSEmmanuel Vadot
160*0e8011faSEmmanuel Vadot		dpi_out0: endpoint {
161*0e8011faSEmmanuel Vadot			remote-endpoint = <&tfp410_in>;
162*0e8011faSEmmanuel Vadot		};
163*0e8011faSEmmanuel Vadot	};
164*0e8011faSEmmanuel Vadot};
165