We are currently working on a custom carrier board for the Verdin IMX8MM 1GB DL module.
I am getting stuck on the device tree.
Our board is based on the Yavia board, so we are using the imx8mm-verdin-nonwifi-yavia.dts device tree as a starting point and we are writing an overlay on top of it.
In the overlay, we use pin SODIMM 19 for PWM_3_DSI instead of PWM1_out.
I have disabled pwm1, but the uboot keeps providing this message:
Starting kernel ...
[ 0.871983] imx-drm 32c00000.bus:display-subsystem: no available port
[ 2.479132] regulator-dummy: Underflow of regulator enable count
Starting version 250.5+
[ 5.436245] imx8mm-pinctrl 30330000.pinctrl: pin MX8MM_IOMUXC_GPIO1_IO01 already requested by 30660000.pwm; cannot claim for hdmi-connector
[ 5.502170] imx8mm-pinctrl 30330000.pinctrl: pin-11 (hdmi-connector) status -22
[ 5.538075] imx8mm-pinctrl 30330000.pinctrl: could not request pin 11 (MX8MM_IOMUXC_GPIO1_IO01) from group pwm3dsihpdgpiogrp on device 30330000.pinctrl
[ 5.553075] display-connector hdmi-connector: Error applying setting, reverse things back
[ 8.375964] mcp251xfd spi2.0 (unnamed net_device) (uninitialized): Failed to detect MCP251xFD (osc=0x00000000).
In the device tree, I am trying to add the HDMI controller, which is connected to i2c3. Moreover, I am trying to get a CAN connector working, which is connected to Toradex SPI2, so escpi1 in the device tree. We have a CAN chip on our external board.
Both the HDMI controller and CAN chip do not seem to work.
I do not know exactly what a BSP is, but I am using the torizoncore 6.2 without evaluation containers as base image.
*small correction, BSP is being use behind the scene, I was more interested if you are using yocto or TorizonCore.
I’m a little confused on this. PWM_3_DSI is the Verdin function on pin 19 for PWM1_OUT. We can see this via the datasheet on 5**.13 PWM**. And on 5.6 Displays, where it is used for backlight brightness control. So it doesn’t make sense to disable/enable this pin for the same function. Can you elaborate on what you are trying to do here?
The SCL and SDA of I2C_4 of the verdin module are directly connected to the Lontium chip.
I understood that the I2C_4 corresponds with the i2c3 in the device tree, so I added the information to the i2c3 part.
The i2c2 signal is also used , but this is used for a HDMI i2c level shifter.
Blockquote And on 5.6 Displays, where it is used for backlight brightness control. So it doesn’t make sense to disable/enable this pin for the same function. Can you elaborate on what you are trying to do here?
I think, what I was trying to achieve is to use the SODIMM 19 pin as hdp-gpio.
In the posted device tree, i have commented the whole HDMI part out and this resolves this error:
imx8mm-pinctrl 30330000.pinctrl: pin MX8MM_IOMUXC_GPIO1_IO01 already requested by 30660000.pwm; cannot claim for hdmi-connector
However, I do not understand what I should adapt to avoid to get this error.
That error is based on two drivers attempting to use the same pin. MX8MM_IOMUXC_GPIO1_IO01 is in a two pin control groups: pwm1grp, pwm3dsihpdgpiogrp. So you’re correct to disable pwm1.
It’s a bit hard to understand what was enabled when testing. And your hdmi_connector group looks a bit more complicated than it needs to be. I’m not sure you need pinctrl-0 property, or if this is where its seeing the conflict.
Here is our imx8mm-verdin hdmi connector node hdmi_connector
And we also have our sample overlay that modifies the node: overlay @ hdmi node
Are you able to mimic these nodes for for system to see if will fix the error?
Taking a look at the dts for imx8mm, I believe you want to use the &i2c4 node and not &i2c3.
Looking at the schematics for the Yavia board. the I2C connection for the lt8912 traces back to SODIMM pin 14 and 12.This is associated with pinctrl_i2c4:i2c4grp which has a reference note of Verdin I2C_1. Which is used by the &I2c4 node.
Here is the device tree imx8mm dts. I believe this to be correct. Would you mind trying to use this node instead?
Took a while but I’m back working on the HDMI port. We have changed the wiring of our custom board, so that it is wired the same as the Yavia board, which means that now the HDMI port is indeed on I2C_4.
However, I do see the Easy Installer on the board, but it does not work afterwards.
I’m just using the dsi_to_hdmi overlay which is also used for the Verdin board.
I mean that the HDMI adapter is working when I’m in the Easy Installer. However, if I download an image from the Easy Installer, the HDMI adapter is not working anymore.