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