arm64: dts: ti: k3-j721e: Add overlay for J721E Infotainment Expansion Board
J721E common processor board can be interfaced with the infotainment expansion board[0] to enable the following audio/video interfaces in addition to the peripherals provided by the common processor board: - Two Audio codecs each with three Stereo Inputs and four Stereo Outputs - Audio input over FPD Link III - Digital Audio Interface TX/RX - HDMI/FPD LINK III Display out - LI/OV Camera input Add support for TFP410 HDMI bridge located on the Infotainment Expansion Board (connected to J46 & J51). Add a HDMI connector node and connect the endpoints as below: DSS => TFP410 bridge => HDMI connector Also add the pinmux data and board muxes for DPI. Rest of the peripherals are not added as of now. [0]: <https://www.ti.com/lit/ug/spruit0a/spruit0a.pdf> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> [j-choudhary@ti.com: minor cleanup] Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com> Reviewed-by: Aradhya Bhatia <a-bhatia1@ti.com> Link: https://lore.kernel.org/r/20240613093706.480700-1-j-choudhary@ti.com Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
This commit is contained in:
committed by
Vignesh Raghavendra
parent
e9bb631b3e
commit
9c0fa304fa
@@ -84,6 +84,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-j7200-evm.dtb
|
||||
# Boards with J721e SoC
|
||||
k3-j721e-evm-dtbs := k3-j721e-common-proc-board.dtb k3-j721e-evm-quad-port-eth-exp.dtbo
|
||||
dtb-$(CONFIG_ARCH_K3) += k3-j721e-beagleboneai64.dtb
|
||||
dtb-$(CONFIG_ARCH_K3) += k3-j721e-common-proc-board-infotainment.dtbo
|
||||
dtb-$(CONFIG_ARCH_K3) += k3-j721e-evm.dtb
|
||||
dtb-$(CONFIG_ARCH_K3) += k3-j721e-evm-gesi-exp-board.dtbo
|
||||
dtb-$(CONFIG_ARCH_K3) += k3-j721e-evm-pcie0-ep.dtbo
|
||||
@@ -154,6 +155,8 @@ k3-am68-sk-base-board-csi2-dual-imx219-dtbs := k3-am68-sk-base-board.dtb \
|
||||
k3-j721e-sk-csi2-dual-imx219.dtbo
|
||||
k3-am69-sk-csi2-dual-imx219-dtbs := k3-am69-sk.dtb \
|
||||
k3-j721e-sk-csi2-dual-imx219.dtbo
|
||||
k3-j721e-common-proc-board-infotainment-dtbs := k3-j721e-common-proc-board.dtb \
|
||||
k3-j721e-common-proc-board-infotainment.dtbo
|
||||
k3-j721e-evm-pcie0-ep-dtbs := k3-j721e-common-proc-board.dtb \
|
||||
k3-j721e-evm-pcie0-ep.dtbo
|
||||
k3-j721e-sk-csi2-dual-imx219-dtbs := k3-j721e-sk.dtb \
|
||||
@@ -185,6 +188,7 @@ dtb- += k3-am625-beagleplay-csi2-ov5640.dtb \
|
||||
k3-am642-tqma64xxl-mbax4xxl-wlan.dtb \
|
||||
k3-am68-sk-base-board-csi2-dual-imx219.dtb \
|
||||
k3-am69-sk-csi2-dual-imx219.dtb \
|
||||
k3-j721e-common-proc-board-infotainment.dtb \
|
||||
k3-j721e-evm-pcie0-ep.dtb \
|
||||
k3-j721e-sk-csi2-dual-imx219.dtb \
|
||||
k3-j721s2-evm-pcie1-ep.dtb \
|
||||
|
||||
@@ -0,0 +1,164 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR MIT
|
||||
/*
|
||||
* Infotainment Expansion Board for j721e-evm
|
||||
* User Guide: <https://www.ti.com/lit/ug/spruit0a/spruit0a.pdf>
|
||||
*
|
||||
* Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
#include "k3-pinctrl.h"
|
||||
|
||||
&{/} {
|
||||
hdmi-connector {
|
||||
compatible = "hdmi-connector";
|
||||
label = "hdmi";
|
||||
type = "a";
|
||||
ddc-i2c-bus = <&main_i2c1>;
|
||||
digital;
|
||||
/* P12 - HDMI_HPD */
|
||||
hpd-gpios = <&exp6 10 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
port {
|
||||
hdmi_connector_in: endpoint {
|
||||
remote-endpoint = <&tfp410_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dvi-bridge {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "ti,tfp410";
|
||||
/* P10 - HDMI_PDn */
|
||||
powerdown-gpios = <&exp6 8 GPIO_ACTIVE_LOW>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
tfp410_in: endpoint {
|
||||
remote-endpoint = <&dpi_out0>;
|
||||
pclk-sample = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
tfp410_out: endpoint {
|
||||
remote-endpoint =
|
||||
<&hdmi_connector_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&main_pmx0 {
|
||||
main_i2c1_exp6_pins_default: main-i2c1-exp6-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
J721E_IOPAD(0x264, PIN_INPUT, 7) /* (T29) MMC2_DAT2.GPIO1_24 */
|
||||
>;
|
||||
};
|
||||
|
||||
dss_vout0_pins_default: dss-vout0-default-pins {
|
||||
pinctrl-single,pins = <
|
||||
J721E_IOPAD(0x58, PIN_OUTPUT, 10) /* (AE22) PRG1_PRU1_GPO0.VOUT0_DATA0 */
|
||||
J721E_IOPAD(0x5c, PIN_OUTPUT, 10) /* (AG23) PRG1_PRU1_GPO1.VOUT0_DATA1 */
|
||||
J721E_IOPAD(0x60, PIN_OUTPUT, 10) /* (AF23) PRG1_PRU1_GPO2.VOUT0_DATA2 */
|
||||
J721E_IOPAD(0x64, PIN_OUTPUT, 10) /* (AD23) PRG1_PRU1_GPO3.VOUT0_DATA3 */
|
||||
J721E_IOPAD(0x68, PIN_OUTPUT, 10) /* (AH24) PRG1_PRU1_GPO4.VOUT0_DATA4 */
|
||||
J721E_IOPAD(0x6c, PIN_OUTPUT, 10) /* (AG21) PRG1_PRU1_GPO5.VOUT0_DATA5 */
|
||||
J721E_IOPAD(0x70, PIN_OUTPUT, 10) /* (AE23) PRG1_PRU1_GPO6.VOUT0_DATA6 */
|
||||
J721E_IOPAD(0x74, PIN_OUTPUT, 10) /* (AC21) PRG1_PRU1_GPO7.VOUT0_DATA7 */
|
||||
J721E_IOPAD(0x78, PIN_OUTPUT, 10) /* (Y23) PRG1_PRU1_GPO8.VOUT0_DATA8 */
|
||||
J721E_IOPAD(0x7c, PIN_OUTPUT, 10) /* (AF21) PRG1_PRU1_GPO9.VOUT0_DATA9 */
|
||||
J721E_IOPAD(0x80, PIN_OUTPUT, 10) /* (AB23) PRG1_PRU1_GPO10.VOUT0_DATA10 */
|
||||
J721E_IOPAD(0x84, PIN_OUTPUT, 10) /* (AJ25) PRG1_PRU1_GPO11.VOUT0_DATA11 */
|
||||
J721E_IOPAD(0x88, PIN_OUTPUT, 10) /* (AH25) PRG1_PRU1_GPO12.VOUT0_DATA12 */
|
||||
J721E_IOPAD(0x8c, PIN_OUTPUT, 10) /* (AG25) PRG1_PRU1_GPO13.VOUT0_DATA13 */
|
||||
J721E_IOPAD(0x90, PIN_OUTPUT, 10) /* (AH26) PRG1_PRU1_GPO14.VOUT0_DATA14 */
|
||||
J721E_IOPAD(0x94, PIN_OUTPUT, 10) /* (AJ27) PRG1_PRU1_GPO15.VOUT0_DATA15 */
|
||||
J721E_IOPAD(0x30, PIN_OUTPUT, 10) /* (AF24) PRG1_PRU0_GPO11.VOUT0_DATA16 */
|
||||
J721E_IOPAD(0x34, PIN_OUTPUT, 10) /* (AJ24) PRG1_PRU0_GPO12.VOUT0_DATA17 */
|
||||
J721E_IOPAD(0x38, PIN_OUTPUT, 10) /* (AG24) PRG1_PRU0_GPO13.VOUT0_DATA18 */
|
||||
J721E_IOPAD(0x3c, PIN_OUTPUT, 10) /* (AD24) PRG1_PRU0_GPO14.VOUT0_DATA19 */
|
||||
J721E_IOPAD(0x40, PIN_OUTPUT, 10) /* (AC24) PRG1_PRU0_GPO15.VOUT0_DATA20 */
|
||||
J721E_IOPAD(0x44, PIN_OUTPUT, 10) /* (AE24) PRG1_PRU0_GPO16.VOUT0_DATA21 */
|
||||
J721E_IOPAD(0x24, PIN_OUTPUT, 10) /* (AJ20) PRG1_PRU0_GPO8.VOUT0_DATA22 */
|
||||
J721E_IOPAD(0x28, PIN_OUTPUT, 10) /* (AG20) PRG1_PRU0_GPO9.VOUT0_DATA23 */
|
||||
J721E_IOPAD(0x9c, PIN_OUTPUT, 10) /* (AC22) PRG1_PRU1_GPO17.VOUT0_DE */
|
||||
J721E_IOPAD(0x98, PIN_OUTPUT, 10) /* (AJ26) PRG1_PRU1_GPO16.VOUT0_HSYNC */
|
||||
J721E_IOPAD(0xa4, PIN_OUTPUT, 10) /* (AH22) PRG1_PRU1_GPO19.VOUT0_PCLK */
|
||||
J721E_IOPAD(0xa0, PIN_OUTPUT, 10) /* (AJ22) PRG1_PRU1_GPO18.VOUT0_VSYNC */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&exp1 {
|
||||
p14-hog {
|
||||
/* P14 - VINOUT_MUX_SEL0 */
|
||||
gpio-hog;
|
||||
gpios = <12 GPIO_ACTIVE_HIGH>;
|
||||
output-low;
|
||||
line-name = "VINOUT_MUX_SEL0";
|
||||
};
|
||||
|
||||
p15-hog {
|
||||
/* P15 - VINOUT_MUX_SEL1 */
|
||||
gpio-hog;
|
||||
gpios = <13 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
line-name = "VINOUT_MUX_SEL1";
|
||||
};
|
||||
};
|
||||
|
||||
&main_i2c1 {
|
||||
/* i2c1 is used for DVI DDC, so we need to use 100kHz */
|
||||
clock-frequency = <100000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
exp6: gpio@21 {
|
||||
compatible = "ti,tca6416";
|
||||
reg = <0x21>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&main_i2c1_exp6_pins_default>;
|
||||
interrupt-parent = <&main_gpio1>;
|
||||
interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
p11-hog {
|
||||
/* P11 - HDMI_DDC_OE */
|
||||
gpio-hog;
|
||||
gpios = <9 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
line-name = "HDMI_DDC_OE";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&dss {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&dss_vout0_pins_default>;
|
||||
};
|
||||
|
||||
&dss_ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
dpi_out0: endpoint {
|
||||
remote-endpoint = <&tfp410_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user