Skip to content

Commit 1f7226a

Browse files
committed
arm64: dts: ti: k3-am625-beagleplay: Add HDMI support
The DSS outputs DPI signals via its second video port (VP2). The DPI output from DSS is 24 bits (RGB888) and is forwarded to an HDMI transmitter (ITE-IT66121) on the BeaglePlay platform. For audio output, BeaglePlay uses mcasp1. Add pinmux info for DSS DPI signals. Further, add support for HDMI audio and video output. Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com> Link: https://lore.kernel.org/r/20230809084559.17322-6-a-bhatia1@ti.com Signed-off-by: Nishanth Menon <nm@ti.com>
1 parent b50ccab commit 1f7226a

1 file changed

Lines changed: 150 additions & 0 deletions

File tree

arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,34 @@
192192

193193
};
194194

195+
hdmi0: connector-hdmi {
196+
compatible = "hdmi-connector";
197+
label = "hdmi";
198+
type = "a";
199+
port {
200+
hdmi_connector_in: endpoint {
201+
remote-endpoint = <&it66121_out>;
202+
};
203+
};
204+
};
205+
206+
sound {
207+
compatible = "simple-audio-card";
208+
simple-audio-card,name = "it66121 HDMI";
209+
simple-audio-card,format = "i2s";
210+
simple-audio-card,bitclock-master = <&hdmi_dailink_master>;
211+
simple-audio-card,frame-master = <&hdmi_dailink_master>;
212+
213+
hdmi_dailink_master: simple-audio-card,cpu {
214+
sound-dai = <&mcasp1>;
215+
system-clock-direction-out;
216+
};
217+
218+
simple-audio-card,codec {
219+
sound-dai = <&it66121>;
220+
};
221+
};
222+
195223
/* Workaround for errata i2329 - just use mdio bitbang */
196224
mdio0: mdio {
197225
compatible = "virtual,mdio-gpio";
@@ -422,6 +450,57 @@
422450
AM62X_IOPAD(0x01f4, PIN_INPUT_PULLUP, 0) /* (D16) EXTINTn */
423451
>;
424452
};
453+
454+
hdmi_gpio_pins_default: hdmi-gpio-default-pins {
455+
pinctrl-single,pins = <
456+
AM62X_IOPAD(0x0094, PIN_INPUT_PULLUP | PIN_DEBOUNCE_CONF6, 7) /* (N20) GPMC0_BE1n.GPIO0_36 */
457+
AM62X_IOPAD(0x0054, PIN_OUTPUT_PULLUP, 7) /* (P21) GPMC0_AD6.GPIO0_21 */
458+
>;
459+
};
460+
461+
mcasp_hdmi_pins_default: mcasp-hdmi-default-pins {
462+
pinctrl-single,pins = <
463+
AM62X_IOPAD(0x0090, PIN_INPUT, 2) /* (M24) GPMC0_BE0n_CLE.MCASP1_ACLKX */
464+
AM62X_IOPAD(0x0098, PIN_INPUT, 2) /* (U23) GPMC0_WAIT0.MCASP1_AFSX */
465+
AM62X_IOPAD(0x008c, PIN_OUTPUT, 2) /* (L25) GPMC0_WEn.MCASP1_AXR0 */
466+
AM62X_IOPAD(0x0088, PIN_INPUT, 2) /* (L24) GPMC0_OEn_REn.MCASP1_AXR1 */
467+
AM62X_IOPAD(0x0084, PIN_INPUT, 2) /* (L23) GPMC0_ADVn_ALE.MCASP1_AXR2 */
468+
AM62X_IOPAD(0x007c, PIN_INPUT, 2) /* (P25) GPMC0_CLK.MCASP1_AXR3 */
469+
>;
470+
};
471+
472+
dss0_pins_default: dss0-default-pins {
473+
pinctrl-single,pins = <
474+
AM62X_IOPAD(0x0100, PIN_OUTPUT, 0) /* (AC25) VOUT0_VSYNC */
475+
AM62X_IOPAD(0x00f8, PIN_OUTPUT, 0) /* (AB24) VOUT0_HSYNC */
476+
AM62X_IOPAD(0x0104, PIN_OUTPUT, 0) /* (AC24) VOUT0_PCLK */
477+
AM62X_IOPAD(0x00fc, PIN_OUTPUT, 0) /* (Y20) VOUT0_DE */
478+
AM62X_IOPAD(0x00b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
479+
AM62X_IOPAD(0x00bc, PIN_OUTPUT, 0) /* (V24) VOUT0_DATA1 */
480+
AM62X_IOPAD(0x00c0, PIN_OUTPUT, 0) /* (W25) VOUT0_DATA2 */
481+
AM62X_IOPAD(0x00c4, PIN_OUTPUT, 0) /* (W24) VOUT0_DATA3 */
482+
AM62X_IOPAD(0x00c8, PIN_OUTPUT, 0) /* (Y25) VOUT0_DATA4 */
483+
AM62X_IOPAD(0x00cc, PIN_OUTPUT, 0) /* (Y24) VOUT0_DATA5 */
484+
AM62X_IOPAD(0x00d0, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA6 */
485+
AM62X_IOPAD(0x00d4, PIN_OUTPUT, 0) /* (AA25) VOUT0_DATA7 */
486+
AM62X_IOPAD(0x00d8, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA8 */
487+
AM62X_IOPAD(0x00dc, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA9 */
488+
AM62X_IOPAD(0x00e0, PIN_OUTPUT, 0) /* (V20) VOUT0_DATA10 */
489+
AM62X_IOPAD(0x00e4, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA11 */
490+
AM62X_IOPAD(0x00e8, PIN_OUTPUT, 0) /* (AB25) VOUT0_DATA12 */
491+
AM62X_IOPAD(0x00ec, PIN_OUTPUT, 0) /* (AA24) VOUT0_DATA13 */
492+
AM62X_IOPAD(0x00f0, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA14 */
493+
AM62X_IOPAD(0x00f4, PIN_OUTPUT, 0) /* (AA21) VOUT0_DATA15 */
494+
AM62X_IOPAD(0x005c, PIN_OUTPUT, 1) /* (R24) GPMC0_AD8.VOUT0_DATA16 */
495+
AM62X_IOPAD(0x0060, PIN_OUTPUT, 1) /* (R25) GPMC0_AD9.VOUT0_DATA17 */
496+
AM62X_IOPAD(0x0064, PIN_OUTPUT, 1) /* (T25) GPMC0_AD10.VOUT0_DATA18 */
497+
AM62X_IOPAD(0x0068, PIN_OUTPUT, 1) /* (R21) GPMC0_AD11.VOUT0_DATA19 */
498+
AM62X_IOPAD(0x006c, PIN_OUTPUT, 1) /* (T22) GPMC0_AD12.VOUT0_DATA20 */
499+
AM62X_IOPAD(0x0070, PIN_OUTPUT, 1) /* (T24) GPMC0_AD13.VOUT0_DATA21 */
500+
AM62X_IOPAD(0x0074, PIN_OUTPUT, 1) /* (U25) GPMC0_AD14.VOUT0_DATA22 */
501+
AM62X_IOPAD(0x0078, PIN_OUTPUT, 1) /* (U24) GPMC0_AD15.VOUT0_DATA23 */
502+
>;
503+
};
425504
};
426505

427506
&mcu_pmx0 {
@@ -670,6 +749,42 @@
670749
pinctrl-0 = <&i2c2_1v8_pins_default>;
671750
clock-frequency = <100000>;
672751
status = "okay";
752+
753+
it66121: bridge-hdmi@4c {
754+
compatible = "ite,it66121";
755+
reg = <0x4c>;
756+
pinctrl-names = "default";
757+
pinctrl-0 = <&hdmi_gpio_pins_default>;
758+
vcn33-supply = <&vdd_3v3>;
759+
vcn18-supply = <&buck2_reg>;
760+
vrf12-supply = <&buck3_reg>;
761+
reset-gpios = <&main_gpio0 21 GPIO_ACTIVE_LOW>;
762+
interrupt-parent = <&main_gpio0>;
763+
interrupts = <36 IRQ_TYPE_EDGE_FALLING>;
764+
#sound-dai-cells = <0>;
765+
766+
ports {
767+
#address-cells = <1>;
768+
#size-cells = <0>;
769+
770+
port@0 {
771+
reg = <0>;
772+
773+
it66121_in: endpoint {
774+
bus-width = <24>;
775+
remote-endpoint = <&dpi1_out>;
776+
};
777+
};
778+
779+
port@1 {
780+
reg = <1>;
781+
782+
it66121_out: endpoint {
783+
remote-endpoint = <&hdmi_connector_in>;
784+
};
785+
};
786+
};
787+
};
673788
};
674789

675790
&main_i2c3 {
@@ -756,3 +871,38 @@
756871
pinctrl-0 = <&wifi_debug_uart_pins_default>;
757872
status = "okay";
758873
};
874+
875+
&dss {
876+
status = "okay";
877+
pinctrl-names = "default";
878+
pinctrl-0 = <&dss0_pins_default>;
879+
};
880+
881+
&dss_ports {
882+
/* VP2: DPI Output */
883+
port@1 {
884+
reg = <1>;
885+
886+
dpi1_out: endpoint {
887+
remote-endpoint = <&it66121_in>;
888+
};
889+
};
890+
};
891+
892+
&mcasp1 {
893+
status = "okay";
894+
#sound-dai-cells = <0>;
895+
pinctrl-names = "default";
896+
pinctrl-0 = <&mcasp_hdmi_pins_default>;
897+
auxclk-fs-ratio = <2177>;
898+
op-mode = <0>; /* MCASP_IIS_MODE */
899+
tdm-slots = <2>;
900+
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
901+
1 0 0 0
902+
0 0 0 0
903+
0 0 0 0
904+
0 0 0 0
905+
>;
906+
tx-num-evt = <32>;
907+
rx-num-evt = <32>;
908+
};

0 commit comments

Comments
 (0)