we are using a colibri imx8x with an iris carrier board. We want to use the micro-usb port as a usb-host and i have problems figuring out how to achieve this.
In the iris data sheet the micro-usb is marked as Host/Client (X12), with USBC_N and USBC_P connected tor SODIMM-Pin 145 and 143.
The data sheet for colibri marks those Pins as:
143 USB Client DP USB_OTG1_DP
145 USB Client DM USB_OTG1_DN
Is it possible to set this micro usb port to host mode?
From the Device Tree Customization page I know there is a solution to set a usb mode, via the device tree, so I looked for the nodes for the usb devices in the dtb files on the system. I could only find one node where the dr_mode is set to host, but i could not find another usb node (or maybe I just did not recognise it?).
the dtbs on our system are:
imx8qxp-colibri-aster.dtb
imx8qxp-colibri-dsihdmi-eval-v3.dtb
imx8qxp-colibri-eval-v3.dtb
and in imx8qxp-colibri-eval-v3.dtb I could find the following node:
So if it is even possible to reset the micro-usb port to host?
Where can i find the node or the identifier needed to set the host mode for X12 micro-usb port?
Would you mind sharing some more information:
What carrier board ( w/ version) are you using?
Are you using Torizoncore builder?
Here is a related article on USB Device mode that should shed some light.
Specifically:
With Colibri modules if you are using a OTG Micro-B cable (ID pin is grounded) this may give you the functionality you need (power driven to client). There is also software configurable solutions via a control signal USBC_DET that allows configuration. Do you know which solution fits your needs?
We are using the Iris Board V 2.0.
We using, for now, standard Torizon Core, only thing we did was applying device tree overlays to get our display running. (capacitive touch 10.1" LVDS)
We do not want to use the micro port to plug in clients that need to be powered, but we have a USV (unterbrechungsfreie Stromversorgung), which should communicate via serial communication.
When plugging this device directly into my development pc, I can find the device and a hardware address and talk to it (using minicom or similar).
Here is what i do:
connect cable from usb on USV to laptop
open temrinal
use dmesg | grep (or similar command)
i get an address ( …/ttyAMC0 )
communication between devices can be started
And that is what i want to achieve using X12 on the Iris board, but using this method, the dmesg command does not give anything for the manufacturer. So I thought the usb micro port could not recognize the device? And reading Colibri imx8x datasheet I thought the config of the port would be not as we need it to be?
it took me a moment to evaluate our connection against a standard USB OTG cable. Here is what we found:
We do not use a ready to use USB OTG cable, but a micro USB connected to a pin header.
But according to the specifications of the USV the pin connecting to our ID is in fact grounded.
See following picture form the manual: