Other Parts Discussed in Thread: SK-AM68
Tool/software:
Hello,
We are trying to get a MIPI LCD touchscreen working on a custom board using the AM68A on its DSI0 interface. We're using the Linux SDK v 10.00.08. The LCD touchscreen is a Winstar WF101JSYAHMNB0. So far, we have the backlight working but we see no image on the screen. As a starting point, we modify the kernel driver drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c to include info from manufacturer datasheet and datasheet from output driver (things like timings, power on sequence, and MIPI commands init commands). Linux creates a framebuffer at /dev/fb0 and thinks a panel is connected, however, we are still unable to get even a test image to display. We can run tools like kmstest or run cat /dev/urandom > /dev/fb0 but is has no real effect.
I used my scope and probed the DSI0 clock and data lines. I found no clock and the data lines were floating at about 1V. It was like the DSI0 interface was not properly initialized or something. So now I am back to looking at my device tree and wondering if it is correct with respect to the dss, dsi , and panel nodes. Below is the device tree:
// SPDX-License-Identifier: GPL-2.0 /* * * Based on SK-AM68 from Texas Instruments. * See arch/arm64/boot/dts/ti/k3-am68-sk-board.dts */ /dts-v1/; #include "arm64/ti/k3-j721s2.dtsi" #include "memory.dtsi" #include <dt-bindings/net/ti-dp83867.h> #include <dt-bindings/phy/phy-cadence.h> #include <dt-bindings/phy/phy.h> #include <dt-bindings/gpio/gpio.h> #include "arm64/ti/k3-serdes.h" / { compatible = "company,product"; model = "Company Name Product Name"; chosen { stdout-path = "serial3:115200n8"; }; aliases { serial1 = &main_uart1; serial3 = &main_uart3; }; vsys_5v0: regulator-vsys5v0 { /* main supply */ compatible = "regulator-fixed"; regulator-name = "vsys_5v0"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-always-on; regulator-boot-on; }; vsys_3v3: regulator-vsys3v3 { /* Output of LM1086 */ compatible = "regulator-fixed"; regulator-name = "vsys_3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vsys_5v0>; regulator-always-on; regulator-boot-on; }; vdd_mmc1: regulator-sd { /* Output of TPS22918 */ compatible = "regulator-fixed"; regulator-name = "vdd_mmc1"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-boot-on; enable-active-high; vin-supply = <&vsys_3v3>; gpio = <&main_gpio0 50 GPIO_ACTIVE_HIGH>; }; vdd_sd_dv: regulator-tlv71033 { /* Output of TLV71033 */ compatible = "regulator-gpio"; regulator-name = "tlv71033"; pinctrl-names = "default"; pinctrl-0 = <&vdd_sd_dv_pins_default>; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-boot-on; vin-supply = <&vsys_3v3>; gpios = <&main_gpio0 49 GPIO_ACTIVE_HIGH>; states = <1800000 0x0>, <3300000 0x1>; }; vsys_io_1v8: regulator-vsys-io-1v8 { compatible = "regulator-fixed"; regulator-name = "vsys_io_1v8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; regulator-boot-on; }; vsys_io_1v2: regulator-vsys-io-1v2 { compatible = "regulator-fixed"; regulator-name = "vsys_io_1v2"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-always-on; regulator-boot-on; }; backlight: lcd-backlight { status = "okay"; compatible = "pwm-backlight"; pinctrl-names = "default"; pinctrl-0 = <&backlight_pins_default>; pwms = <&main_ehrpwm3 1 1000000 0>; brightness-levels = <0 32 64 96 128 160 192 224 255>; default-brightness-level = <6>; }; }; &main_ehrpwm3 { // for LCD backlight status = "okay"; }; &dphy_tx0 { status = "okay"; }; &dss { status = "okay"; assigned-clocks = <&k3_clks 158 2>, <&k3_clks 158 5>, <&k3_clks 158 14>, <&k3_clks 158 18>; assigned-clock-parents = <&k3_clks 158 3>, <&k3_clks 158 7>, <&k3_clks 158 16>, <&k3_clks 158 22>; }; &dss_ports { #address-cells = <1>; #size-cells = <0>; /* DSI */ port@2 { reg = <2>; dpi2_out: endpoint { remote-endpoint = <&dsi0_in>; }; }; }; &dsi0 { status = "okay"; #address-cells = <1>; #size-cells = <0>; mipi_panel: panel@0 { reg = <0>; compatible = "feiyang,fy07024di26a30d"; avdd-supply = <&vsys_io_1v8>; dvdd-supply = <&vsys_io_1v8>; reset-gpios = <&main_gpio0 27 GPIO_ACTIVE_LOW>; port { panel_in: endpoint { remote-endpoint = <&dsi0_out>; }; }; }; }; &dsi0_ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; dsi0_out: endpoint { remote-endpoint = <&panel_in>; }; }; port@1 { reg = <1>; dsi0_in: endpoint { remote-endpoint = <&dpi2_out>; }; }; }; &main_pmx0 { // MIDI main_uart3_pins_default: main-uart3-default-pins { pinctrl-single,pins = < J721S2_IOPAD(0x074, PIN_INPUT, 11) /* (R28) MCAN2_TX.UART3_RXD */ J721S2_IOPAD(0x078, PIN_OUTPUT, 11) /* (Y25) MCAN2_RX.UART3_TXD */ >; }; // TOUCHSCREEN main_i2c0_pins_default: main-i2c0-default-pins { pinctrl-single,pins = < J721S2_IOPAD(0x0e0, PIN_OUTPUT_PULLUP, 0) /* (AH25) I2C0_SCL */ J721S2_IOPAD(0x0e4, PIN_OUTPUT_PULLUP, 0) /* (AE24) I2C0_SDA */ >; }; lcd_pins_default: lcd-pins-default { pinctrl-single,pins = < J721S2_IOPAD(0x06c, PIN_OUTPUT_PULLDOWN, 7) /* (T24) GPIO0_27 - LCD_RST */ >; }; backlight_pins_default: backlight-pins-default { pinctrl-single,pins = < J721S2_IOPAD(0x09c, PIN_OUTPUT_PULLUP, 9) /* (T24) ESRPWM3_B */ >; }; // FOOTSWITCH BD main_i2c1_pins_default: main-i2c1-default-pins { pinctrl-single,pins = < J721S2_IOPAD(0x0ac, PIN_INPUT, 13) /* (AC25) MCASP0_AXR15.I2C1_SCL */ J721S2_IOPAD(0x0b0, PIN_INPUT, 13) /* (AD26) MCASP1_AXR3.I2C1_SDA */ >; }; // FRONT PANEL main_i2c4_pins_default: main-i2c4-default-pins { pinctrl-single,pins = < J721S2_IOPAD(0x010, PIN_INPUT_PULLUP, 8) /* (AF28) MCAN13_RX.I2C4_SDA */ J721S2_IOPAD(0x014, PIN_INPUT_PULLUP, 8) /* (AD25) MCAN14_TX.I2C4_SCL */ >; }; // SDCARD V_SEL vdd_sd_dv_pins_default: vdd-sd-dv-default-pins { pinctrl-single,pins = < J721S2_IOPAD(0x0c4, PIN_INPUT, 7) /* (AB26) ECAP0_IN_APWM_OUT.GPIO0_49 */ >; }; // SDCARD main_mmc1_pins_default: main-mmc1-default-pins { pinctrl-single,pins = < J721S2_IOPAD(0x104, PIN_INPUT, 0) /* (P23) MMC1_CLK */ J721S2_IOPAD(0x108, PIN_INPUT, 0) /* (N24) MMC1_CMD */ J721S2_IOPAD(0x100, PIN_INPUT, 0) /* (###) MMC1_CLKLB */ J721S2_IOPAD(0x0fc, PIN_INPUT, 0) /* (M23) MMC1_DAT0 */ J721S2_IOPAD(0x0f8, PIN_INPUT, 0) /* (P24) MMC1_DAT1 */ J721S2_IOPAD(0x0f4, PIN_INPUT, 0) /* (R24) MMC1_DAT2 */ J721S2_IOPAD(0x0f0, PIN_INPUT, 0) /* (R22) MMC1_DAT3 */ J721S2_IOPAD(0x0e8, PIN_INPUT, 8) /* (AE25) TIMER_IO0.MMC1_SDCD */ >; }; // ATWILC300 main_wifi_pins_default: main-wifi-default-pins { pinctrl-single,pins = < J721S2_IOPAD(0x0a0, PIN_OUTPUT_PULLDOWN, 10) /* (AB25) MCASP0_AXR12.SPI2_CLK */ J721S2_IOPAD(0x0a4, PIN_OUTPUT_PULLUP, 10) /* (T23) MCASP0_AXR13.SPI2_CS0 */ J721S2_IOPAD(0x0a8, PIN_OUTPUT_PULLDOWN, 10) /* (U24) MCASP0_AXR14.SPI2_D0 */ J721S2_IOPAD(0x0ac, PIN_INPUT_PULLDOWN, 10) /* (AC25) MCASP0_AXR15.SPI2_D1 */ J721S2_IOPAD(0x004, PIN_OUTPUT, 7) /* (W25) MCAN12_TX.GPIO0_1 RADIO_RSTN */ J721S2_IOPAD(0x008, PIN_OUTPUT, 7) /* (AC24) MCAN12_RX.GPIO0_2 RADIO_EN */ J721S2_IOPAD(0x024, PIN_INPUT_PULLUP, 7) /* (Y28) MCAN16_TX.GPIO0_9 RADIO_INTN */ J721S2_IOPAD(0x05c, PIN_INPUT, 11) /* (AA26) MCASP2_AXR0.UART1_CTSn */ J721S2_IOPAD(0x060, PIN_OUTPUT, 11) /* (AC27) MCASP2_AXR1.UART1_RTSn */ J721S2_IOPAD(0x054, PIN_INPUT, 11) /* (Y27) MCASP2_ACLKX.UART1_RXD */ J721S2_IOPAD(0x058, PIN_OUTPUT, 11) /* (AA27) MCASP2_AFSX.UART1_TXD */ >; }; // DAT/EEPROM SPI spi0_dat_eeprom_pins_default: spi0_dat_eeprom-default-pins { pinctrl-single,pins = < J721S2_IOPAD(0x0d4, PIN_OUTPUT_PULLDOWN, 0) /* (AH27) SPI0_CLK */ J721S2_IOPAD(0x0cc, PIN_OUTPUT_PULLUP, 0) /* (AE27) SPI0_CS0 */ J721S2_IOPAD(0x0d0, PIN_OUTPUT_PULLUP, 0) /* (AF26) SPI0_CS1 */ J721S2_IOPAD(0x0d8, PIN_OUTPUT_PULLDOWN, 0) /* (AG26) SPI0_D0 */ J721S2_IOPAD(0x0dc, PIN_INPUT_PULLDOWN, 0) /* (AH26) SPI0_D1 */ >; }; gpio0_pins_default: gpio0-default-pins { pinctrl-single,pins = < /* ---DAT GPIOS--- */ J721S2_IOPAD(0x028, PIN_INPUT, 7) /* (AB24) MCAN16_RX.GPIO0_10 DIT_INT */ J721S2_IOPAD(0x048, PIN_OUTPUT, 7) /* (AB27) MCASP0_AXR2.GPIO0_18 DIT_RSTN */ J721S2_IOPAD(0x050, PIN_OUTPUT, 7) /* (W27) MCASP1_AXR2.GPIO0_20 DIT_VAID */ >; }; // Analog Board Header SPI spi5_analog_board_pins_default: spi5_analog_board-default-pins { pinctrl-single,pins = < J721S2_IOPAD(0x07c, PIN_OUTPUT_PULLDOWN, 8) /* (T27) MCASP0_AXR3.SPI5_CLK */ J721S2_IOPAD(0x068, PIN_OUTPUT_PULLUP, 8) /* (U28) MCAN0_RX.SPI5_CS0 */ J721S2_IOPAD(0x070, PIN_OUTPUT_PULLDOWN, 8) /* (R27) MCAN1_RX.SPI5_D0 */ >; }; }; &wkup_pmx2 { // ETHERNET mcu_cpsw_pins_default: mcu-cpsw-default-pins { pinctrl-single,pins = < J721S2_WKUP_IOPAD(0x02C, PIN_INPUT, 0) /* (B22) MCU_RGMII1_RD0 */ J721S2_WKUP_IOPAD(0x028, PIN_INPUT, 0) /* (B21) MCU_RGMII1_RD1 */ J721S2_WKUP_IOPAD(0x024, PIN_INPUT, 0) /* (C22) MCU_RGMII1_RD2 */ J721S2_WKUP_IOPAD(0x020, PIN_INPUT, 0) /* (D23) MCU_RGMII1_RD3 */ J721S2_WKUP_IOPAD(0x01C, PIN_INPUT, 0) /* (D22) MCU_RGMII1_RXC */ J721S2_WKUP_IOPAD(0x004, PIN_INPUT, 0) /* (E23) MCU_RGMII1_RX_CTL */ J721S2_WKUP_IOPAD(0x014, PIN_OUTPUT, 0) /* (F23) MCU_RGMII1_TD0 */ J721S2_WKUP_IOPAD(0x010, PIN_OUTPUT, 0) /* (G22) MCU_RGMII1_TD1 */ J721S2_WKUP_IOPAD(0x00C, PIN_OUTPUT, 0) /* (E21) MCU_RGMII1_TD2 */ J721S2_WKUP_IOPAD(0x008, PIN_OUTPUT, 0) /* (E22) MCU_RGMII1_TD3 */ J721S2_WKUP_IOPAD(0x018, PIN_OUTPUT, 0) /* (F21) MCU_RGMII1_TXC */ J721S2_WKUP_IOPAD(0x000, PIN_OUTPUT, 0) /* (F22) MCU_RGMII1_TX_CTL */ >; }; // ETHERNET mcu_mdio_pins_default: mcu-mdio-default-pins { pinctrl-single,pins = < J721S2_WKUP_IOPAD(0x034, PIN_OUTPUT, 0) /* (A21) MCU_MDIO0_MDC */ J721S2_WKUP_IOPAD(0x030, PIN_INPUT, 0) /* (A22) MCU_MDIO0_MDIO */ >; }; // PMIC wkup_i2c0_pins_default: wkup-i2c0-default-pins { pinctrl-single,pins = < J721S2_WKUP_IOPAD(0x098, PIN_INPUT, 0) /* (H24) WKUP_I2C0_SCL */ J721S2_WKUP_IOPAD(0x09c, PIN_INPUT, 0) /* (H27) WKUP_I2C0_SDA */ >; }; }; &main_uart1 { status = "okay"; dmas = <&main_udmap 0xc701>, <&main_udmap 0x4701>; dma-names = "tx", "rx"; }; &main_spi0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&spi0_dat_eeprom_pins_default>; ti,pindir-d0-out-d1-in; ti,spi-num-cs = <4>; // EEPROM spidev@0 { spi-max-frequency = <24000000>; reg = <0>; compatible = "rohm,dh2228fv"; }; // DAT spidev@1 { spi-max-frequency = <24000000>; reg = <1>; compatible = "rohm,dh2228fv"; }; }; &main_spi2 { status = "okay"; ti,pindir-d0-out-d1-in; ti,spi-num-cs = <1>; dmas = <&main_udmap 0xc608>, <&main_udmap 0x4608>; dma-names = "tx0", "rx0"; wilc_spi@0 { compatible = "microchip,wilc3000"; pinctrl-names = "default"; pinctrl-0 = <&main_wifi_pins_default>; spi-max-frequency = <48000000>; reg = <0>; reset-gpios = <&main_gpio0 1 GPIO_ACTIVE_LOW>; chip_en-gpios = <&main_gpio0 2 GPIO_ACTIVE_HIGH>; interrupt-parent = <&main_gpio0>; interrupts = <9 0>; status = "okay"; }; }; &main_spi5 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&spi5_analog_board_pins_default>; ti,pindir-d0-out-d1-in; ti,spi-num-cs = <1>; // Analog Board spidev@0 { spi-max-frequency = <24000000>; reg = <0>; compatible = "rohm,dh2228fv"; }; }; &main_gpio0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&gpio0_pins_default>, <&lcd_pins_default>; //, <&main_i2c0_pins_default>; }; // Touchscreen comm interface &main_i2c0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_i2c0_pins_default>; clock-frequency = <400000>; ili2511: touch@41 { compatible = "ilitek,ili2511"; reg = <0x41>; /* I2C address */ interrupt-parent = <&main_gpio0>; //interrupts = <0 0 IRQ_TYPE_EDGE_FALLING>; interrupts = <0 0>; reset-gpios = <&main_gpio0 25 GPIO_ACTIVE_LOW>; /* reset GPIO */ touchscreen-size-x = <1024>; touchscreen-size-y = <600>; //touchscreen-inverted-x; //touchscreen-inverted-y; //touchscreen-swapped-x-y; }; }; &wkup_i2c0 { bootph-all; clock-frequency = <400000>; pinctrl-names = "default"; pinctrl-0 = <&wkup_i2c0_pins_default>; status = "okay"; lp8733: pmic@60 { compatible = "ti,lp8733"; reg = <0x60>; buck0-in-supply = <&vsys_3v3>; buck1-in-supply = <&vsys_3v3>; ldo0-in-supply = <&vsys_3v3>; ldo1-in-supply = <&vsys_3v3>; lp8733_regulators: regulators { lp8733_buck0_reg: buck0 { /* FB_B0 -> LP8733-BUCK1 - VDD_MCU_0V85 */ regulator-name = "lp8733-buck0"; regulator-min-microvolt = <850000>; regulator-max-microvolt = <850000>; regulator-always-on; regulator-boot-on; }; lp8733_buck1_reg: buck1 { /* FB_B1 -> LP8733-BUCK2 - VDD_DDR_1V1 */ regulator-name = "lp8733-buck1"; regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1100000>; regulator-always-on; regulator-boot-on; }; lp8733_ldo0_reg: ldo0 { /* LDO0 -> LP8733-LDO1 - VDA_DLL_0V8 */ regulator-name = "lp8733-ldo0"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <800000>; regulator-boot-on; regulator-always-on; }; lp8733_ldo1_reg: ldo1 { /* LDO1 -> LP8733-LDO2 - VDA_LN_1V8 */ regulator-name = "lp8733-ldo1"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; regulator-boot-on; }; }; }; tps62873a: regulator@40 { compatible = "ti,tps62873"; reg = <0x40>; bootph-pre-ram; regulator-name = "VDD_CPU_AVS"; regulator-min-microvolt = <600000>; regulator-max-microvolt = <900000>; regulator-boot-on; regulator-always-on; }; tps62873b: regulator@43 { compatible = "ti,tps62873"; reg = <0x43>; regulator-name = "VDD_CORE_0V8"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <800000>; regulator-boot-on; regulator-always-on; }; }; &main_uart3 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_uart3_pins_default>; /* Shared with TFA on this platform */ power-domains = <&k3_pds 352 TI_SCI_PD_SHARED>; }; &main_sdhci1 { /* SD card */ status = "okay"; pinctrl-0 = <&main_mmc1_pins_default>; pinctrl-names = "default"; disable-wp; vmmc-supply = <&vdd_mmc1>; //vqmmc-supply = <&vdd_sd_dv>; no-1-8-v; }; &mcu_cpsw { pinctrl-names = "default"; pinctrl-0 = <&mcu_cpsw_pins_default>, <&mcu_mdio_pins_default>; }; &davinci_mdio { phy0: ethernet-phy@0 { reg = <0>; ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; ti,min-output-impedance; }; }; &cpsw_port1 { phy-mode = "rgmii-rxid"; phy-handle = <&phy0>; }; &serdes_ln_ctrl { idle-states = <J721S2_SERDES0_LANE0_PCIE1_LANE0>, <J721S2_SERDES0_LANE1_PCIE1_LANE1>, <J721S2_SERDES0_LANE2_USB_SWAP>, <J721S2_SERDES0_LANE3_USB>; }; &serdes_refclk { clock-frequency = <100000000>; }; &serdes0 { status = "okay"; serdes0_pcie_link: phy@0 { reg = <0>; cdns,num-lanes = <2>; #phy-cells = <0>; cdns,phy-type = <PHY_TYPE_PCIE>; resets = <&serdes_wiz0 1>, <&serdes_wiz0 2>; }; serdes0_usb_link: phy@2 { status = "okay"; reg = <2>; cdns,num-lanes = <1>; #phy-cells = <0>; cdns,phy-type = <PHY_TYPE_USB3>; resets = <&serdes_wiz0 3>; }; }; &usb_serdes_mux { idle-states = <0>; /* USB0 to SERDES lane 2 */ }; &usbss0 { status = "okay"; ti,vbus-divider; }; &usb0 { dr_mode = "peripheral"; maximum-speed = "high-speed"; phys = <&serdes0_usb_link>; phy-names = "cdns3,usb3-phy"; }; &mailbox0_cluster0 { status = "okay"; interrupts = <436>; mbox_mcu_r5fss0_core0: mbox-mcu-r5fss0-core0 { ti,mbox-rx = <0 0 0>; ti,mbox-tx = <1 0 0>; }; mbox_mcu_r5fss0_core1: mbox-mcu-r5fss0-core1 { ti,mbox-rx = <2 0 0>; ti,mbox-tx = <3 0 0>; }; }; &mailbox0_cluster1 { status = "okay"; interrupts = <432>; mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 { ti,mbox-rx = <0 0 0>; ti,mbox-tx = <1 0 0>; }; mbox_main_r5fss0_core1: mbox-main-r5fss0-core1 { ti,mbox-rx = <2 0 0>; ti,mbox-tx = <3 0 0>; }; }; &mailbox0_cluster2 { status = "okay"; interrupts = <428>; mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 { ti,mbox-rx = <0 0 0>; ti,mbox-tx = <1 0 0>; }; mbox_main_r5fss1_core1: mbox-main-r5fss1-core1 { ti,mbox-rx = <2 0 0>; ti,mbox-tx = <3 0 0>; }; }; &mailbox0_cluster4 { status = "okay"; interrupts = <420>; mbox_c71_0: mbox-c71-0 { ti,mbox-rx = <0 0 0>; ti,mbox-tx = <1 0 0>; }; mbox_c71_1: mbox-c71-1 { ti,mbox-rx = <2 0 0>; ti,mbox-tx = <3 0 0>; }; }; &mcu_r5fss0_core0 { mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core0>; memory-region = <&mcu_r5fss0_core0_dma_memory_region>, <&mcu_r5fss0_core0_memory_region>; }; &mcu_r5fss0_core1 { mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core1>; memory-region = <&mcu_r5fss0_core1_dma_memory_region>, <&mcu_r5fss0_core1_memory_region>; }; &main_r5fss0_core0 { mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core0>; memory-region = <&main_r5fss0_core0_dma_memory_region>, <&main_r5fss0_core0_memory_region>; }; &main_r5fss0_core1 { mboxes = <&mailbox0_cluster1 &mbox_main_r5fss0_core1>; memory-region = <&main_r5fss0_core1_dma_memory_region>, <&main_r5fss0_core1_memory_region>; }; &main_r5fss1_core0 { mboxes = <&mailbox0_cluster2 &mbox_main_r5fss1_core0>; memory-region = <&main_r5fss1_core0_dma_memory_region>, <&main_r5fss1_core0_memory_region>; }; &main_r5fss1_core1 { mboxes = <&mailbox0_cluster2 &mbox_main_r5fss1_core1>; memory-region = <&main_r5fss1_core1_dma_memory_region>, <&main_r5fss1_core1_memory_region>; }; &c71_0 { status = "disable"; mboxes = <&mailbox0_cluster4 &mbox_c71_0>; memory-region = <&c71_0_dma_memory_region>, <&c71_0_memory_region>; }; &c71_1 { status = "disable"; mboxes = <&mailbox0_cluster4 &mbox_c71_1>; memory-region = <&c71_1_dma_memory_region>, <&c71_1_memory_region>; }; &main_r5fss0 { status = "disable"; }; &main_r5fss1 { status = "disable"; };
Would you please review and comment if this looks correct? I'm not sure what the purpose of connecting ports from dss <--> dsi <-->dsi<-->panel but I copied that approach from other examples I've seen. Is the the dsi0 node an internal bridge? Is the native output of the dss dpi and so if you want dsi output you must route it through the dsi ports as shown?
Any advice you can give would be much appreciated, thanks!