How to enable HSIC on MCIMX7ULP-EVK

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to enable HSIC on MCIMX7ULP-EVK

2,024 Views
leavwu
Contributor II

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

Tags (1)
0 Kudos
8 Replies

1,782 Views
leavwu
Contributor II

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:

  1. The patch is based on BSP L4.14.98_2.0.0_MX7ULP1
  2. You have to enable menuconfig -> Device Drivers -> Pin controllers -> One-register-per-pin...

More detail:

  • imx7ulp's device-tree file is incomplete.  It lacks usbotg2 & iomuxc1_ddr modules.
  • The BSP does not provide iomuxc1_ddr driver.  Here I use the generic pinctrl-single driver instead.
  • I can't make both USB hosts work. It seems that the clock interconnection among these USB-related modules is complicated and not well documented. Also, the drivers do not separate these resources well.

It was painful to make it work. I wonder if I should promote NXP's solution to our customers.

1,508 Views
terry_lv
NXP Employee
NXP Employee

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

0 Kudos

1,782 Views
igorpadykov
NXP Employee
NXP Employee

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!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,782 Views
leavwu
Contributor II

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.

0 Kudos

1,782 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos

1,782 Views
leavwu
Contributor II

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?

0 Kudos

1,782 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos

1,782 Views
leavwu
Contributor II

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.

0 Kudos