Interfacing MIPI-DSI panel to IMX8M (Google Coral SoM)

cancel
Showing results for 
Search instead for 
Did you mean: 

Interfacing MIPI-DSI panel to IMX8M (Google Coral SoM)

146 Views
Contributor II

Hi all, I am trying to add a DSI display to a carrier board that uses the Coral SoM - this has an i.MX8M SoC and I believe uses the nxp kernel source.

I could use some beginner level help! 

Looking at the fsl-imx8mq-som.dtsi file

(https://coral.googlesource.com/linux-imx/+/refs/heads/alpha/arch/arm64/boot/dts/freescale/fsl-imx8mq... ),

relevant entries exist such as &dcss, &mipi_dsi, &mipi_dsi_bridge exist, configured to use the raydium,rm67191 driver.  I intended to enable these and then swap for the st7701 driver such as

https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/panel/panel-sitronix-st7701.c and adapt that to my panel.

However when I enable mipi_dsi and mipi_dsi_bridge, I have errors upon initialisation "could not get PHY" (as below).  If I enable &dcss, the device freezes early on in the boot.

What is the correct way to add and initialise the mipi-dsi interface and a dsi panel driver?  I know there are several similar topics, but I am not getting to the stage of a panel that is not initialised properly yet.  If there is a primer about this architecture please point me to that.

Also I am not sure what the mipi_dsi_bridge is and whether I should be using it.

Many thanks for any advice.

[5.658454] imx-sdma 302c0000.sdma: no iram assigned, using external mem
[ 5.679825] ina2xx 1-0040: error configuring the device: -6
[ 5.687147] imx-sdma 302c0000.sdma: loaded firmware 4.2
[ 5.696605] nwl-mipi-dsi 30a00000.mipi_dsi_bridge: Could not get PHY (-517)
[ 5.711258] ina2xx 1-0041: error configuring the device: -6
[ 5.776151] galcore: loading out-of-tree module taints kernel.
[ 5.789530] Galcore version 6.4.2.256507
[ 5.850436] wlan: loading driver v4.5.23.1
[ 5.860218] hif_pci_probe:, con_mode= 0x0
[ 5.865471] PCI device id is 003e :003e
[ 5.869812] hif_pci 0000:01:00.0: BAR 0: assigned [mem 0x18000000-0x181fffff 64bit]
[ 5.877767] hif_pci 0000:01:00.0: enabling device (0000 -> 0002)
[ 5.879299]
hif_pci_configure : num_desired MSI set to 1
[ 5.915323] hif_pci_probe: ramdump base 0xffff800024c00000 size 2095136
[ 5.941512] [drm] Initialized vivante 1.0.0 20170808 for 38000000.gpu on minor 0
[ 5.949900] nwl-mipi-dsi 30a00000.mipi_dsi_bridge: Could not get PHY (-517)
[ 5.953784] NUM_DEV=1 FWMODE=0x2 FWSUBMODE=0x0 FWBR_BUF 0
[ 6.205617] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)
[ 6.682848] +HWT
[ 6.695456] -HWT
[ 6.744574] HTT: full reorder offload enabled
[ 6.769551] Pkt log is disabled
[ 6.776838] Host SW:4.5.23.1, FW:2.0.1.1048, HW:QCA6174_REV3_2
[ 6.783127] target uses HTT version 3.50; host uses 3.28
[ 6.783551] ol_pktlog_init: pktlogmod_init successfull
[ 6.794693] wlan: driver loaded in 944000
[ 6.799935] nwl-mipi-dsi 30a00000.mipi_dsi_bridge: Could not get PHY (-517)
[ 7.349884] random: crng init done
[ 7.353357] random: 7 urandom warning(s) missed due to ratelimiting
[ 7.500757] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 7.509660] nwl-mipi-dsi 30a00000.mipi_dsi_bridge: Could not get PHY (-517)
[ 7.517780] Generic PHY 30be0000.ethernet-1:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=30be0000.ethernet-1:00, irq=POLL)

 

 

 

0 Kudos
5 Replies

78 Views
Contributor II

That's very helpful, thank you.

The examples .dts files all seem to refer to a bridge.  I assume this is some kind of mipi-dsi to parallel RGB bridge on the EVK?  

Are you aware of any example where the mipi-dsi display is connected directly?

0 Kudos

72 Views
NXP TechSupport
NXP TechSupport

Hi et0

 

it is not bridge, it is mipi lcd (rm67191) connected directly.

Example of such lcd using rm67191 :

http://www.mouser.com/catalog/specsheets/Microtips-7-28-2017-MTD0550AZOM-T_20151115.pdf

 

Best regards
igor

0 Kudos

120 Views
Contributor II

Hi Igor, thanks for the guidance.

The kernel included identifies as

4.14.98-imx #1 SMP PREEMPT Fri Jul 17 01:15:45 UTC 2020 aarch64 GNU/Linux

And the directory structure and sources look identical to the official ones, although the build process may be a bit different.  Is it OK to ask questions about this distribution here?

 

0 Kudos

107 Views
NXP TechSupport
NXP TechSupport

Hi et0

 

for MIPI-DSI display one can enable it using i.MX8MQ EVK, use dts

https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm64/boot/dts/freescale/fsl-imx8mq-e...

NXP Linux documentation:

https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applicat...

May be suggested to check initialization sequence with EVK board and compare it with

Som board. For debugging may be useful:

https://community.nxp.com/t5/i-MX-Processors/How-to-JTAG-debug-iMX8mq/m-p/837227

For support for coral board one can apply to  https://coral.ai/support/

 

Best regards
igor

0 Kudos

129 Views
NXP TechSupport
NXP TechSupport

Hi et0

 

one can look at coral tutorial

https://coral.ai/docs/dev-board/datasheet/#features

Since it uses Mendel Linux ( derivative Debian) more relevant to look at i.MX8M
boundary devices debian release

Debian Tutorial
https://boundarydevices.com/wiki/nitrogen8m-sbc/
https://boundarydevices.com/debian-10-buster-for-nitrogen8m-board-october-2019-kernel-4-14-x/

NXP does not support debian in its official linux releases.

MIPI-DSI initialization is described in 6.4.2 MIPI DSI Interface (drivers/video/fbdev/mxc/mipi_dsi_northwest.c)  i.MX Linux Reference Manual​

Below link of latest nxp official linux in source.codeaurora.org/external/imx/linux-imx repository

https://source.codeaurora.org/external/imx/linux-imx/tree/?h=imx_5.4.24_2.1.0

 

Best regards
igor