Hi all,
I'm testing the HSIC host on MCIMX7ULP-EVK board. I connected it to an HSIC hub, and then booted the board with the bundled Linux OS. However, the HSIC signals (DATA/STROBE) keep silent.
According the the i.MX 7ULP Reference Manual, the HSIC function is configured from USBOTG2, whose physical address should reside at 0x40340000. However, when I looked into the kernel device tree source (arch/arm/boot/dts/imx7ulp.dtsi), I found that there is no mention about this USBOTG2 device:
usbotg1: usb@40330000 {
compatible = "fsl,imx7ulp-usb", "fsl,imx6ul-usb",
"fsl,imx27-usb";
reg = <0x40330000 0x200>;
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks IMX7ULP_CLK_USB0>;
fsl,usbphy = <&usbphy1>;
fsl,usbmisc = <&usbmisc1 0>;
ahb-burst-config = <0x0>;
tx-burst-size-dword = <0x8>;
rx-burst-size-dword = <0x8>;
status = "disabled";
};
usbmisc1: usbmisc@40330200 {
#index-cells = <1>;
compatible = "fsl,imx7ulp-usbmisc", "fsl,imx7d-usbmisc",
"fsl,imx6q-usbmisc";
reg = <0x40330200 0x200>;
};
usbphy1: usbphy@0x40350000 {
compatible = "fsl,imx7ulp-usbphy",
"fsl,imx6ul-usbphy", "fsl,imx23-usbphy";
reg = <0x40350000 0x1000>;
interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks IMX7ULP_CLK_USB_PHY>;
nxp,sim = <&sim>;
};
How can I enable the HSIC host?
Best regards,
Leav
Hi all,
Finally I made the HSIC host on i.MX7ULP connect to our new HSIC hub product successfully. For whom are looking for a solution, you can refer to my patch freely.
Note:
More detail:
It was painful to make it work. I wonder if I should promote NXP's solution to our customers.
Hi leavwu,
Thank you very much for your patch.
I'm also trying to enable HSIC on iMX7ULP-EVK board with a USB4604 HSIC board.
About your change on clk-imx7ulp.c.
/* U-boot has already enabled usb0 clock. In order to switch to USB-PLL later, it must be disabled here. */
writel (0x80000000, base + 0xCC);
I'm still puzzled by this. Why USB0 clock need to be disabled here?
Could you give some more details?
Thanks!
Regards
Terry
Hi Leav
patch was sent via mail.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi igorpadykov,
It has been 5 days and I still have no idea how to enable HSIC on MCIMX7ULP-EVK.
BTW I checked the patch you sent. They quite differ from the files provided in the official Yocto BSP (L4.14.98_2.0.0_MX7ULP1)
I wonder that we are working on different BSP.
I attached the source files I got for your reference.
Hi Leav
unfortunately hsic is not supported, please refer to attached Release Notes
for linux bsp supported features. Standard support option for such case is to
proceed with extended support of Commercial Support and Engineering Services | NXP
Best regards
igor
Hi igorpadykov,
I do not think that HSIC is *not* supported.
NXP **claims** that the HSIC interface is supported on the product page (i.MX 7ULP Evaluation Kit | NXP). My company bought this **official evaluation kit** because of HSIC support. It is not even a custom hardware. I am not sure that I should pay $10,000+ to unlock this feature.
In fact, I think the board development team **shall have verified** that HSIC is working. They shall have a driver solution. Can you forward this issue to the board development team for us?
Hi Leav
it is supported in hardware, but in software BSP unfortunately it is not supported.
Please proceed with extended support of Commercial Support and Engineering Services | NXP
Best regards
igor
Hi igorpadykov,
Thanks for your reply. I tried the patch, but there was still no signal on DATA/STROBE.
I tested 2 configurations:
1. DATA/STROBE unconnected
2. Connect DATA/STROBE to the upstream port of the HSIC HUB (Microchip EVB-USB4624, powered by adapter)
In both cases, the DATA/STROBE signals kept at 0V.
I uploaded the full kernel debug message. There is something wrong in the log:
[ 0.149053] 40350000.usbphynop2 supply phy-3p0 not found, using dummy regulator
[ 2.074005] 40340200.usbmisc2 supply vbus-wakeup not found, using dummy regulator
[ 2.081001] imx_usb 40340000.usb: could not find pctldev for node /ahb-bridge1@40800000/iomuxc1@40ad0000/imx7ulp-evk/init_gpio_pinsGrp, deferring probe
[ 3.753155] imx_usb 40340000.usb: could not find pctldev for node /ahb-bridge1@40800000/iomuxc1@40ad0000/imx7ulp-evk/init_gpio_pinsGrp, deferring probe
[ 4.058718] imx_usb 40340000.usb: could not find pctldev for node /ahb-bridge1@40800000/iomuxc1@40ad0000/imx7ulp-evk/init_gpio_pinsGrp, deferring probe
[ 4.097107] usb_otg1_vbus: disabling
[ 4.453483] imx_usb 40340000.usb: could not find pctldev for node /ahb-bridge1@40800000/iomuxc1@40ad0000/imx7ulp-evk/init_gpio_pinsGrp, deferring probe
[ 6.419311] imx_usb 40340000.usb: could not find pctldev for node /ahb-bridge1@40800000/iomuxc1@40ad0000/imx7ulp-evk/init_gpio_pinsGrp, deferring probe
Please check the attachment. Thank you.