AnsweredAssumed Answered

USBH on imx7d (kernel v5.3)

Question asked by André Draszik on Aug 29, 2019
Latest reply on Aug 30, 2019 by André Draszik

I have an imx7d based board that is using the USBH port.


This port isn't working with the upstream kernel since
commit 7c8e8909417e ("usb: chipidea: imx: add HSIC support")
because the pinctrl is non-optional (as opposed to the NXP
kernel 4.19.35 where it appears to work fine for us).


Now, I'd like to restore support, but I am not sure the relevant pinmux
setting is documented in the IMX7D applications processor reference
manual IMX7DRM.pdf that I have.


As far as I understand, I need to provide pinctrl settings for 'idle' and 'active' states, sth like the following:


&usbh {
        pinctrl-names = "idle", "active";
        pinctrl-0 = <&pinctrl_usbh_idle>;
        pinctrl-1 = <&pinctrl_usbh_active>;


pinctrl_usbh_idle: usbhgrp-idle {
        fsl,pins = <
                MX7D_PAD_USB_H_DATA__USB_H_DATA         0x........
                MX7D_PAD_USB_H_STROBE__USB_H_STROBE     0x........


pinctrl_usbh_active: usbhgrp-active {
        fsl,pins = <
                MX7D_PAD_USB_H_DATA__USB_H_DATA         0x........
                MX7D_PAD_USB_H_STROBE__USB_H_STROBE     0x........


My questions hence are:
* is my understanding correct?
* where can I find the relevant documentation for defining
* what should be the actual register setting
* given USB_H_DATA and USB_H_STROBE don't appear to be board specific
  ('No muxing' is mentioned in the data sheet), should any such configuration
  really go into imx7s.dtsi?


Alternatively, given that this works without the extra pinctrl dance in the
i.MX specific kernel, is it really needed on i.MX7, and can the upstream
kernel be changed to make this optional there as well?


Thank you,