* using cdns3-imx driver on imx8qm @ 2020-03-26 17:01 Oliver Graute 2020-03-27 9:05 ` Peter Chen 0 siblings, 1 reply; 14+ messages in thread From: Oliver Graute @ 2020-03-26 17:01 UTC (permalink / raw) To: linux-usb Cc: Peter Chen, Felipe Balbi, Greg Kroah-Hartman, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Oliver Graute, NXP Linux Team Hello, What is the right way for using the new cdns3-imx glue usb driver on a imx8qm soc with linux-next. I added this snippet in imx8qm.dtsi and enabled the driver in the kernel configuration. usbotg3: usb3@5b110000 { compatible = "cdns,usb3"; reg = <0x0 0x5B110000 0x0 0x10000>, <0x0 0x5B130000 0x0 0x10000>, <0x0 0x5B140000 0x0 0x10000>, <0x0 0x5B160000 0x0 0x40000>, <0x0 0x5B120000 0x0 0x10000>; interrupt-parent = <&gic>; interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>; clocks = <&usb3_lpcg 1>, <&usb3_lpcg 0>, <&usb3_lpcg 5>, <&usb3_lpcg 2>, <&usb3_lpcg 3>; clock-names = "usb3_lpm_clk", "usb3_bus_clk", "usb3_aclk", "usb3_ipg_clk", "usb3_core_pclk"; assigned-clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; assigned-clock-rates = <125000000>, <12000000>, <250000000>; power-domains = <&pd IMX_SC_R_USB_2>; cdns3,usbphy = <&usb3phynop1>; status = "disabled"; }; In board dts I enabled this: &usbotg3 { dr_mode = "host"; status = "okay"; }; On probing I got: [ 2.932089] cdns-usb3 5b110000.usb3: missing host IRQ I also tried to enable "fsl,imx8qm-usb3" compatible buts this results directly into a crash. What do I miss here? some comments would be helpful. Best Regards, Oliver ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: using cdns3-imx driver on imx8qm 2020-03-26 17:01 using cdns3-imx driver on imx8qm Oliver Graute @ 2020-03-27 9:05 ` Peter Chen 2020-03-27 9:50 ` Oliver Graute 0 siblings, 1 reply; 14+ messages in thread From: Peter Chen @ 2020-03-27 9:05 UTC (permalink / raw) To: Oliver Graute Cc: linux-usb, Felipe Balbi, Greg Kroah-Hartman, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Oliver Graute, dl-linux-imx On 20-03-26 18:01:09, Oliver Graute wrote: > Hello, > > What is the right way for using the new cdns3-imx glue usb driver on a > imx8qm soc with linux-next. I added this snippet in imx8qm.dtsi and > enabled the driver in the kernel configuration. > Hi Oliver, I just checked linux-next-0326, there is no imx8qm dtsi. When I worked this driver, I use a internal version based on v5.4, the dts layout is different with internal tree. Besides, you need a PHY driver for upstream version: https://patchwork.kernel.org/patch/11454581/ Peter > usbotg3: usb3@5b110000 { > compatible = "cdns,usb3"; > reg = <0x0 0x5B110000 0x0 0x10000>, > <0x0 0x5B130000 0x0 0x10000>, > <0x0 0x5B140000 0x0 0x10000>, > <0x0 0x5B160000 0x0 0x40000>, > <0x0 0x5B120000 0x0 0x10000>; > interrupt-parent = <&gic>; > interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>; > clocks = <&usb3_lpcg 1>, > <&usb3_lpcg 0>, > <&usb3_lpcg 5>, > <&usb3_lpcg 2>, > <&usb3_lpcg 3>; > clock-names = "usb3_lpm_clk", "usb3_bus_clk", "usb3_aclk", > "usb3_ipg_clk", "usb3_core_pclk"; > assigned-clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > assigned-clock-rates = <125000000>, <12000000>, <250000000>; > power-domains = <&pd IMX_SC_R_USB_2>; > cdns3,usbphy = <&usb3phynop1>; > status = "disabled"; > }; > > In board dts I enabled this: > > &usbotg3 { > dr_mode = "host"; > status = "okay"; > }; > > > On probing I got: > > [ 2.932089] cdns-usb3 5b110000.usb3: missing host IRQ > > I also tried to enable "fsl,imx8qm-usb3" compatible buts this results > directly into a crash. > > What do I miss here? some comments would be helpful. > > Best Regards, > > Oliver -- Thanks, Peter Chen ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: using cdns3-imx driver on imx8qm 2020-03-27 9:05 ` Peter Chen @ 2020-03-27 9:50 ` Oliver Graute 2020-03-27 13:21 ` Peter Chen 0 siblings, 1 reply; 14+ messages in thread From: Oliver Graute @ 2020-03-27 9:50 UTC (permalink / raw) To: Peter Chen Cc: linux-usb, Felipe Balbi, Greg Kroah-Hartman, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Oliver Graute, dl-linux-imx On 27/03/20, Peter Chen wrote: > On 20-03-26 18:01:09, Oliver Graute wrote: > > Hello, > > > > What is the right way for using the new cdns3-imx glue usb driver on a > > imx8qm soc with linux-next. I added this snippet in imx8qm.dtsi and > > enabled the driver in the kernel configuration. > > > > Hi Oliver, > > I just checked linux-next-0326, there is no imx8qm dtsi. I'am currently using this series on top of linux-next-0214. https://patchwork.kernel.org/patch/11248331/ > When I worked this driver, I use a internal version > based on v5.4, the dts layout is different with internal tree. I looked also at: https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi?h=imx_5.4.3_2.0.0 How do I adapt the usbotg3 for linux-next? I already ported some usb related dependencies from imx8-ss-conn.dtsi. But the cdns3 core driver is stucked at probe and currently I don't understand how the cdns3-imx glue layer comes into play. > > Besides, you need a PHY driver for upstream version: > https://patchwork.kernel.org/patch/11454581/ Best Regards, Oliver ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: using cdns3-imx driver on imx8qm 2020-03-27 9:50 ` Oliver Graute @ 2020-03-27 13:21 ` Peter Chen 2020-03-31 14:25 ` Oliver Graute 0 siblings, 1 reply; 14+ messages in thread From: Peter Chen @ 2020-03-27 13:21 UTC (permalink / raw) To: Oliver Graute Cc: linux-usb, Felipe Balbi, Greg Kroah-Hartman, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Oliver Graute, dl-linux-imx On 20-03-27 10:50:28, Oliver Graute wrote: > On 27/03/20, Peter Chen wrote: > > On 20-03-26 18:01:09, Oliver Graute wrote: > > > Hello, > > > > > > What is the right way for using the new cdns3-imx glue usb driver on a > > > imx8qm soc with linux-next. I added this snippet in imx8qm.dtsi and > > > enabled the driver in the kernel configuration. > > > > > > > Hi Oliver, > > > > I just checked linux-next-0326, there is no imx8qm dtsi. > > I'am currently using this series on top of linux-next-0214. > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatchwork.kernel.org%2Fpatch%2F11248331%2F&data=02%7C01%7Cpeter.chen%40nxp.com%7C1b6963823b924b76684908d7d2344976%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637208994318640157&sdata=HGG4r65ROTeY54uQArcWTZGT9%2BLrr0kndwmDegULtDw%3D&reserved=0 > > > > When I worked this driver, I use a internal version > > based on v5.4, the dts layout is different with internal tree. > > I looked also at: > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsource.codeaurora.org%2Fexternal%2Fimx%2Flinux-imx%2Ftree%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx8-ss-conn.dtsi%3Fh%3Dimx_5.4.3_2.0.0&data=02%7C01%7Cpeter.chen%40nxp.com%7C1b6963823b924b76684908d7d2344976%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637208994318640157&sdata=yTiMWh5BpWdtA%2B8Vy06KeCvg2jPzlgPOmKaM3fmK%2F6w%3D&reserved=0 > > How do I adapt the usbotg3 for linux-next? I already ported some usb > related dependencies from imx8-ss-conn.dtsi. But the cdns3 core driver > is stucked at probe and currently I don't understand how the cdns3-imx glue > layer comes into play. > cdns3-imx is the parent device, the cdns3 core is the child device. The example dts like below: usb3_lpcg: clock-controller@5b280000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x5b280000 0x10000>; #clock-cells = <1>; bit-offset = <0 4 16 20 24 28>; clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, <&conn_ipg_clk>, <&conn_ipg_clk>, <&conn_ipg_clk>, <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; clock-output-names = "usb3_app_clk", "usb3_lpm_clk", "usb3_ipg_clk", "usb3_core_pclk", "usb3_phy_clk", "usb3_aclk"; power-domains = <&pd IMX_SC_R_USB_2_PHY>; }; usbotg3: usb3@5b110000 { compatible = "fsl,imx8qm-usb3"; #address-cells = <1>; #size-cells = <1>; ranges; reg = <0x5B110000 0x10000>; clocks = <&usb3_lpcg 1>, <&usb3_lpcg 0>, <&usb3_lpcg 5>, <&usb3_lpcg 2>, <&usb3_lpcg 3>; clock-names = "usb3_lpm_clk", "usb3_bus_clk", "usb3_aclk", "usb3_ipg_clk", "usb3_core_pclk"; assigned-clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; assigned-clock-rates = <125000000>, <12000000>, <250000000>; power-domains = <&pd IMX_SC_R_USB_2>; status = "disabled"; usbotg3_cdns3: cdns3 { compatible = "cdns,usb3"; #address-cells = <1>; #size-cells = <1>; interrupt-parent = <&gic>; interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "host", "peripheral", "otg"; reg = <0x5B130000 0x10000>, /* memory area for HOST registers */ <0x5B140000 0x10000>, /* memory area for DEVICE registers */ <0x5B120000 0x10000>; /* memory area for OTG/DRD registers */ reg-names = "xhci", "dev", "otg"; phys = <&usb3_phy>; phy-names = "cdns3,usb3-phy"; status = "disabled"; }; }; After kernel boots up, it neither at host mode nor device mode, you need to echo host or device to role-switch sys entry. -- Thanks, Peter Chen ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: using cdns3-imx driver on imx8qm 2020-03-27 13:21 ` Peter Chen @ 2020-03-31 14:25 ` Oliver Graute 2020-03-31 14:39 ` Peter Chen 0 siblings, 1 reply; 14+ messages in thread From: Oliver Graute @ 2020-03-31 14:25 UTC (permalink / raw) To: Peter Chen Cc: linux-usb, Felipe Balbi, Greg Kroah-Hartman, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Oliver Graute, dl-linux-imx On 27/03/20, Peter Chen wrote: > On 20-03-27 10:50:28, Oliver Graute wrote: > > On 27/03/20, Peter Chen wrote: > > > On 20-03-26 18:01:09, Oliver Graute wrote: > > > > Hello, > > > > > > > > What is the right way for using the new cdns3-imx glue usb driver on a > > > > imx8qm soc with linux-next. I added this snippet in imx8qm.dtsi and > > > > enabled the driver in the kernel configuration. > > > > > > > > > > Hi Oliver, > > > > > > I just checked linux-next-0326, there is no imx8qm dtsi. > > > > I'am currently using this series on top of linux-next-0214. > > > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatchwork.kernel.org%2Fpatch%2F11248331%2F&data=02%7C01%7Cpeter.chen%40nxp.com%7C1b6963823b924b76684908d7d2344976%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637208994318640157&sdata=HGG4r65ROTeY54uQArcWTZGT9%2BLrr0kndwmDegULtDw%3D&reserved=0 > > > > > > > When I worked this driver, I use a internal version > > > based on v5.4, the dts layout is different with internal tree. > > > > I looked also at: > > > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsource.codeaurora.org%2Fexternal%2Fimx%2Flinux-imx%2Ftree%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx8-ss-conn.dtsi%3Fh%3Dimx_5.4.3_2.0.0&data=02%7C01%7Cpeter.chen%40nxp.com%7C1b6963823b924b76684908d7d2344976%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637208994318640157&sdata=yTiMWh5BpWdtA%2B8Vy06KeCvg2jPzlgPOmKaM3fmK%2F6w%3D&reserved=0 > > > > How do I adapt the usbotg3 for linux-next? I already ported some usb > > related dependencies from imx8-ss-conn.dtsi. But the cdns3 core driver > > is stucked at probe and currently I don't understand how the cdns3-imx glue > > layer comes into play. > > > > cdns3-imx is the parent device, the cdns3 core is the child device. The > example dts like below: > > usb3_lpcg: clock-controller@5b280000 { > compatible = "fsl,imx8qxp-lpcg"; > reg = <0x5b280000 0x10000>; > #clock-cells = <1>; > bit-offset = <0 4 16 20 24 28>; > clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > <&conn_ipg_clk>, > <&conn_ipg_clk>, > <&conn_ipg_clk>, > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > clock-output-names = "usb3_app_clk", > "usb3_lpm_clk", > "usb3_ipg_clk", > "usb3_core_pclk", > "usb3_phy_clk", > "usb3_aclk"; > power-domains = <&pd IMX_SC_R_USB_2_PHY>; > }; > > usbotg3: usb3@5b110000 { > compatible = "fsl,imx8qm-usb3"; > #address-cells = <1>; > #size-cells = <1>; > ranges; > reg = <0x5B110000 0x10000>; > clocks = <&usb3_lpcg 1>, > <&usb3_lpcg 0>, > <&usb3_lpcg 5>, > <&usb3_lpcg 2>, > <&usb3_lpcg 3>; > clock-names = "usb3_lpm_clk", "usb3_bus_clk", "usb3_aclk", > "usb3_ipg_clk", "usb3_core_pclk"; > assigned-clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > assigned-clock-rates = <125000000>, <12000000>, <250000000>; > power-domains = <&pd IMX_SC_R_USB_2>; > status = "disabled"; > > usbotg3_cdns3: cdns3 { > compatible = "cdns,usb3"; > #address-cells = <1>; > #size-cells = <1>; > interrupt-parent = <&gic>; > interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>; > interrupt-names = "host", "peripheral", "otg"; > reg = <0x5B130000 0x10000>, /* memory area for HOST registers */ > <0x5B140000 0x10000>, /* memory area for DEVICE registers */ > <0x5B120000 0x10000>; /* memory area for OTG/DRD registers */ > reg-names = "xhci", "dev", "otg"; > phys = <&usb3_phy>; > phy-names = "cdns3,usb3-phy"; > status = "disabled"; > }; > }; Hello Peter, thx for the dts example. Now I get "wait clkvld timeout" in "cdns_imx_noncore_init()" So USB3_SSPHY_STATUS register seems to be wrong. dmesg | grep imx [ 1.065445] cdns3-imx 5b110000.usb3: Adding to iommu group 0 [ 1.257309] imx-scu scu: NXP i.MX SCU Initialized [ 1.275489] imx-scu-clk: probe of gpt0_clk failed with error -5 [ 1.291143] imx-scu-clk: probe of pwm_clk failed with error -22 [ 1.302517] imx-scu-clk: probe of lcd_clk failed with error -22 [ 1.341405] imx8qm-pinctrl scu:pinctrl: initialized IMX pinctrl driver [ 3.029484] cdns3-imx 5b110000.usb3: wait clkvld timeout [ 3.034891] cdns3-imx: probe of 5b110000.usb3 failed with error -110 [ 3.237393] sdhci-esdhc-imx 5b030000.mmc: Got CD GPIO [ 3.242468] sdhci-esdhc-imx 5b030000.mmc: Got WP GPIO [ 3.316687] imx8qxp-lpcg-clk 5a4a0000.clock-controller: ignoring dependency for device, assuming no driver Some Idea howto fix that? Best regards, Oliver ^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: using cdns3-imx driver on imx8qm 2020-03-31 14:25 ` Oliver Graute @ 2020-03-31 14:39 ` Peter Chen 2020-04-01 10:34 ` Oliver Graute 2020-04-03 14:40 ` Oliver Graute 0 siblings, 2 replies; 14+ messages in thread From: Peter Chen @ 2020-03-31 14:39 UTC (permalink / raw) To: Oliver Graute Cc: linux-usb, Felipe Balbi, Greg Kroah-Hartman, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Oliver Graute, dl-linux-imx > > compatible = "fsl,imx8qxp-lpcg"; > > reg = <0x5b280000 0x10000>; > > #clock-cells = <1>; > > bit-offset = <0 4 16 20 24 28>; > > clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > > <&conn_ipg_clk>, > > <&conn_ipg_clk>, > > <&conn_ipg_clk>, > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > > clock-output-names = "usb3_app_clk", > > "usb3_lpm_clk", > > "usb3_ipg_clk", > > "usb3_core_pclk", > > "usb3_phy_clk", > > "usb3_aclk"; > > power-domains = <&pd IMX_SC_R_USB_2_PHY>; > > }; > > > > usbotg3: usb3@5b110000 { > > compatible = "fsl,imx8qm-usb3"; > > #address-cells = <1>; > > #size-cells = <1>; > > ranges; > > reg = <0x5B110000 0x10000>; > > clocks = <&usb3_lpcg 1>, > > <&usb3_lpcg 0>, > > <&usb3_lpcg 5>, > > <&usb3_lpcg 2>, > > <&usb3_lpcg 3>; > > clock-names = "usb3_lpm_clk", "usb3_bus_clk", "usb3_aclk", > > "usb3_ipg_clk", "usb3_core_pclk"; > > assigned-clocks = <&clk IMX_SC_R_USB_2 > IMX_SC_PM_CLK_PER>, > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > > assigned-clock-rates = <125000000>, <12000000>, <250000000>; > > power-domains = <&pd IMX_SC_R_USB_2>; > > status = "disabled"; > > > > usbotg3_cdns3: cdns3 { > > compatible = "cdns,usb3"; > > #address-cells = <1>; > > #size-cells = <1>; > > interrupt-parent = <&gic>; > > interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>; > > interrupt-names = "host", "peripheral", "otg"; > > reg = <0x5B130000 0x10000>, /* memory area for HOST > registers */ > > <0x5B140000 0x10000>, /* memory area for > DEVICE registers */ > > <0x5B120000 0x10000>; /* memory area for > OTG/DRD registers */ > > reg-names = "xhci", "dev", "otg"; > > phys = <&usb3_phy>; > > phy-names = "cdns3,usb3-phy"; > > status = "disabled"; > > }; > > }; > > Hello Peter, > > thx for the dts example. Now I get "wait clkvld timeout" in "cdns_imx_noncore_init()" > So USB3_SSPHY_STATUS register seems to be wrong. > > dmesg | grep imx > [ 1.065445] cdns3-imx 5b110000.usb3: Adding to iommu group 0 > [ 1.257309] imx-scu scu: NXP i.MX SCU Initialized > [ 1.275489] imx-scu-clk: probe of gpt0_clk failed with error -5 > [ 1.291143] imx-scu-clk: probe of pwm_clk failed with error -22 > [ 1.302517] imx-scu-clk: probe of lcd_clk failed with error -22 > [ 1.341405] imx8qm-pinctrl scu:pinctrl: initialized IMX pinctrl driver > [ 3.029484] cdns3-imx 5b110000.usb3: wait clkvld timeout > [ 3.034891] cdns3-imx: probe of 5b110000.usb3 failed with error -110 > [ 3.237393] sdhci-esdhc-imx 5b030000.mmc: Got CD GPIO > [ 3.242468] sdhci-esdhc-imx 5b030000.mmc: Got WP GPIO > [ 3.316687] imx8qxp-lpcg-clk 5a4a0000.clock-controller: ignoring dependency for > device, assuming no driver > Make sure the five clocks in dts are correct, and print the USB3_SSPHY_STATUS if timeout still exists. Peter ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: using cdns3-imx driver on imx8qm 2020-03-31 14:39 ` Peter Chen @ 2020-04-01 10:34 ` Oliver Graute 2020-04-01 11:36 ` Felipe Balbi 2020-04-02 1:16 ` Peter Chen 2020-04-03 14:40 ` Oliver Graute 1 sibling, 2 replies; 14+ messages in thread From: Oliver Graute @ 2020-04-01 10:34 UTC (permalink / raw) To: Peter Chen Cc: linux-usb, Felipe Balbi, Greg Kroah-Hartman, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, oliver.graute, dl-linux-imx > Make sure the five clocks in dts are correct, and print the USB3_SSPHY_STATUS if > timeout still exists. ok I got this for USB3_SSPHY_STATUS [ 3.057122] cdns3-imx 5b110000.usb3: wait clkvld timeout 0xb0b03827 Unfortunally my imx8qm spec is incomplete regarding the USB3_SSPHY_STATUS register. this are my related DTS nodes: usb3_lpcg: clock-controller@5b280000 { compatible = "fsl,imx8qxp-lpcg"; reg = <0x5b280000 0x10000>; #clock-cells = <1>; /* bit-offset = <0 4 16 20 24 28>; */ clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>, <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>, <IMX_LPCG_CLK_6>, <IMX_LPCG_CLK_7>; clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, <&conn_ipg_clk>, <&conn_ipg_clk>, <&conn_ipg_clk>, <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; clock-output-names = "usb3_app_clk", "usb3_lpm_clk", "usb3_ipg_clk", "usb3_core_pclk", "usb3_phy_clk", "usb3_aclk"; power-domains = <&pd IMX_SC_R_USB_2_PHY>; }; usbotg3: usb3@5b110000 { compatible = "fsl,imx8qm-usb3"; #address-cells = <1>; #size-cells = <1>; /* ranges; */ reg = <0x0 0x5B110000 0x0 0x10000>; clocks = <&usb3_lpcg 1>, <&usb3_lpcg 0>, <&usb3_lpcg 5>, <&usb3_lpcg 2>, <&usb3_lpcg 3>; clock-names = "usb3_lpm_clk", "usb3_bus_clk", "usb3_aclk", "usb3_ipg_clk", "usb3_core_pclk"; assigned-clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; assigned-clock-rates = <125000000>, <12000000>, <250000000>; power-domains = <&pd IMX_SC_R_USB_2>; status = "disabled"; usbotg3_cdns3: cdns3 { compatible = "cdns,usb3"; #address-cells = <1>; #size-cells = <1>; interrupt-parent = <&gic>; interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "host", "peripheral", "otg"; reg = <0x5B130000 0x10000>, /* memory area for HOST registers */ <0x5B140000 0x10000>, /* memory area for DEVICE registers */ <0x5B120000 0x10000>; /* memory area for OTG/DRD registers */ reg-names = "xhci", "dev", "otg"; phys = <&usbphynop2>; phy-names = "cdns3,usb2-phy"; status = "disabled"; }; }; I'am also using the SCU related clock patches from here: https://patchwork.kernel.org/patch/11248255/ Thx for your comments, Best regards, Oliver ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: using cdns3-imx driver on imx8qm 2020-04-01 10:34 ` Oliver Graute @ 2020-04-01 11:36 ` Felipe Balbi 2020-04-02 1:16 ` Peter Chen 1 sibling, 0 replies; 14+ messages in thread From: Felipe Balbi @ 2020-04-01 11:36 UTC (permalink / raw) To: Oliver Graute, Peter Chen Cc: linux-usb, Greg Kroah-Hartman, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, oliver.graute, dl-linux-imx [-- Attachment #1: Type: text/plain, Size: 630 bytes --] Hi, Oliver Graute <oliver.graute@kococonnector.com> writes: >> Make sure the five clocks in dts are correct, and print the USB3_SSPHY_STATUS if >> timeout still exists. > > ok I got this for USB3_SSPHY_STATUS > > [ 3.057122] cdns3-imx 5b110000.usb3: wait clkvld timeout 0xb0b03827 > > Unfortunally my imx8qm spec is incomplete regarding the > USB3_SSPHY_STATUS register. for testing purposes, you could just have the bootloader enable the necessary clocks and use dummy fixed-clock in your DTS. At least you could get something working from USB-side and focus on the clock tree after that. -- balbi [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: using cdns3-imx driver on imx8qm 2020-04-01 10:34 ` Oliver Graute 2020-04-01 11:36 ` Felipe Balbi @ 2020-04-02 1:16 ` Peter Chen 1 sibling, 0 replies; 14+ messages in thread From: Peter Chen @ 2020-04-02 1:16 UTC (permalink / raw) To: Oliver Graute Cc: linux-usb, Felipe Balbi, Greg Kroah-Hartman, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, oliver.graute, dl-linux-imx On 20-04-01 12:34:34, Oliver Graute wrote: > > Make sure the five clocks in dts are correct, and print the USB3_SSPHY_STATUS if > > timeout still exists. > > ok I got this for USB3_SSPHY_STATUS > > [ 3.057122] cdns3-imx 5b110000.usb3: wait clkvld timeout 0xb0b03827 > It indicates usb3_aclk did not open correctly. Tried to see if u-boot could work well, and see if set its assigned-clock-rates as 500000000 could work. Peter > Unfortunally my imx8qm spec is incomplete regarding the USB3_SSPHY_STATUS register. > > this are my related DTS nodes: > > usb3_lpcg: clock-controller@5b280000 { > compatible = "fsl,imx8qxp-lpcg"; > reg = <0x5b280000 0x10000>; > #clock-cells = <1>; > /* bit-offset = <0 4 16 20 24 28>; */ > clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>, > <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>, > <IMX_LPCG_CLK_6>, <IMX_LPCG_CLK_7>; > clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > <&conn_ipg_clk>, > <&conn_ipg_clk>, > <&conn_ipg_clk>, > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > clock-output-names = "usb3_app_clk", > "usb3_lpm_clk", > "usb3_ipg_clk", > "usb3_core_pclk", > "usb3_phy_clk", > "usb3_aclk"; > power-domains = <&pd IMX_SC_R_USB_2_PHY>; > }; > > usbotg3: usb3@5b110000 { > compatible = "fsl,imx8qm-usb3"; > #address-cells = <1>; > #size-cells = <1>; > /* ranges; */ > reg = <0x0 0x5B110000 0x0 0x10000>; > clocks = <&usb3_lpcg 1>, > <&usb3_lpcg 0>, > <&usb3_lpcg 5>, > <&usb3_lpcg 2>, > <&usb3_lpcg 3>; > clock-names = "usb3_lpm_clk", "usb3_bus_clk", "usb3_aclk", > "usb3_ipg_clk", "usb3_core_pclk"; > assigned-clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > assigned-clock-rates = <125000000>, <12000000>, <250000000>; > power-domains = <&pd IMX_SC_R_USB_2>; > status = "disabled"; > > usbotg3_cdns3: cdns3 { > compatible = "cdns,usb3"; > #address-cells = <1>; > #size-cells = <1>; > interrupt-parent = <&gic>; > interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>; > interrupt-names = "host", "peripheral", "otg"; > reg = <0x5B130000 0x10000>, /* memory area for HOST registers */ > <0x5B140000 0x10000>, /* memory area for DEVICE registers */ > <0x5B120000 0x10000>; /* memory area for OTG/DRD registers */ > reg-names = "xhci", "dev", "otg"; > phys = <&usbphynop2>; > phy-names = "cdns3,usb2-phy"; > status = "disabled"; > }; > }; > > I'am also using the SCU related clock patches from here: > > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatchwork.kernel.org%2Fpatch%2F11248255%2F&data=02%7C01%7Cpeter.chen%40nxp.com%7Ce6d163e72ed14b064f4208d7d629842f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C1%7C637213346107862080&sdata=ChqqxYqxdJysskHzHP1dmF69zGVzw4PfDz%2Fim%2F0khHc%3D&reserved=0 > > Thx for your comments, > > Best regards, > > Oliver -- Thanks, Peter Chen ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: using cdns3-imx driver on imx8qm 2020-03-31 14:39 ` Peter Chen 2020-04-01 10:34 ` Oliver Graute @ 2020-04-03 14:40 ` Oliver Graute 2020-04-06 16:25 ` Oliver Graute 1 sibling, 1 reply; 14+ messages in thread From: Oliver Graute @ 2020-04-03 14:40 UTC (permalink / raw) To: Peter Chen Cc: linux-usb, Felipe Balbi, Greg Kroah-Hartman, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Mathias Nyman, dl-linux-imx On 31/03/20, Peter Chen wrote: > > > > compatible = "fsl,imx8qxp-lpcg"; > > > reg = <0x5b280000 0x10000>; > > > #clock-cells = <1>; > > > bit-offset = <0 4 16 20 24 28>; > > > clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > > > <&conn_ipg_clk>, > > > <&conn_ipg_clk>, > > > <&conn_ipg_clk>, > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > > > clock-output-names = "usb3_app_clk", > > > "usb3_lpm_clk", > > > "usb3_ipg_clk", > > > "usb3_core_pclk", > > > "usb3_phy_clk", > > > "usb3_aclk"; > > > power-domains = <&pd IMX_SC_R_USB_2_PHY>; > > > }; > > > > > > usbotg3: usb3@5b110000 { > > > compatible = "fsl,imx8qm-usb3"; > > > #address-cells = <1>; > > > #size-cells = <1>; > > > ranges; > > > reg = <0x5B110000 0x10000>; > > > clocks = <&usb3_lpcg 1>, > > > <&usb3_lpcg 0>, > > > <&usb3_lpcg 5>, > > > <&usb3_lpcg 2>, > > > <&usb3_lpcg 3>; > > > clock-names = "usb3_lpm_clk", "usb3_bus_clk", "usb3_aclk", > > > "usb3_ipg_clk", "usb3_core_pclk"; > > > assigned-clocks = <&clk IMX_SC_R_USB_2 > > IMX_SC_PM_CLK_PER>, > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > > > assigned-clock-rates = <125000000>, <12000000>, <250000000>; > > > power-domains = <&pd IMX_SC_R_USB_2>; > > > status = "disabled"; > > > > > > usbotg3_cdns3: cdns3 { > > > compatible = "cdns,usb3"; > > > #address-cells = <1>; > > > #size-cells = <1>; > > > interrupt-parent = <&gic>; > > > interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > > > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > > > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>; > > > interrupt-names = "host", "peripheral", "otg"; > > > reg = <0x5B130000 0x10000>, /* memory area for HOST > > registers */ > > > <0x5B140000 0x10000>, /* memory area for > > DEVICE registers */ > > > <0x5B120000 0x10000>; /* memory area for > > OTG/DRD registers */ > > > reg-names = "xhci", "dev", "otg"; > > > phys = <&usb3_phy>; > > > phy-names = "cdns3,usb3-phy"; > > > status = "disabled"; > > > }; > > > }; > > > > Hello Peter, > > > > thx for the dts example. Now I get "wait clkvld timeout" in "cdns_imx_noncore_init()" > > So USB3_SSPHY_STATUS register seems to be wrong. > > > > dmesg | grep imx > > [ 1.065445] cdns3-imx 5b110000.usb3: Adding to iommu group 0 > > [ 1.257309] imx-scu scu: NXP i.MX SCU Initialized > > [ 1.275489] imx-scu-clk: probe of gpt0_clk failed with error -5 > > [ 1.291143] imx-scu-clk: probe of pwm_clk failed with error -22 > > [ 1.302517] imx-scu-clk: probe of lcd_clk failed with error -22 > > [ 1.341405] imx8qm-pinctrl scu:pinctrl: initialized IMX pinctrl driver > > [ 3.029484] cdns3-imx 5b110000.usb3: wait clkvld timeout > > [ 3.034891] cdns3-imx: probe of 5b110000.usb3 failed with error -110 > > [ 3.237393] sdhci-esdhc-imx 5b030000.mmc: Got CD GPIO > > [ 3.242468] sdhci-esdhc-imx 5b030000.mmc: Got WP GPIO > > [ 3.316687] imx8qxp-lpcg-clk 5a4a0000.clock-controller: ignoring dependency for > > device, assuming no driver > > > > Make sure the five clocks in dts are correct, and print the USB3_SSPHY_STATUS if > timeout still exists. ok thx, we got it fixed by replacing: clocks = <&usb3_lpcg 1>, <&usb3_lpcg 0>, <&usb3_lpcg 4>, <&usb3_lpcg 2>, <&usb3_lpcg 3>; with this: clocks = <&usb3_lpcg IMX_LPCG_CLK_1>, <&usb3_lpcg IMX_LPCG_CLK_0>, <&usb3_lpcg IMX_LPCG_CLK_7>, <&usb3_lpcg IMX_LPCG_CLK_4>, <&usb3_lpcg IMX_LPCG_CLK_5>; now the "wait clkvld timeout" is gone and the USB3_SSPHY_STATUS register is very similar to another imx8qm device which runs linux-imx from NXP. Now I try to get into USB HOST mode: --- a/drivers/usb/cdns3/cdns3-imx.c +++ b/drivers/usb/cdns3/cdns3-imx.c @@ -113,11 +115,11 @@ static int cdns_imx_noncore_init(struct cdns_imx *data) udelay(1); value = cdns_imx_readl(data, USB3_CORE_CTRL1); - value = (value & ~MODE_STRAP_MASK) | OTG_MODE | OC_DISABLE; + value = (value & ~MODE_STRAP_MASK) | HOST_MODE | OC_DISABLE; cdns_imx_writel(data, USB3_CORE_CTRL1, value); Is this change necessary? Do I need special changes on xhci.c do get it work with cdns-imx in host mode? I'am stuck at: [ 16.697525] xhci-hcd xhci-hcd.0.auto: can't setup: -110 I already tried to add the Intel quirk: udelay(1000) in xhci_reset() but without success. Is the host mode working on your side? Best regards, Oliver ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: using cdns3-imx driver on imx8qm 2020-04-03 14:40 ` Oliver Graute @ 2020-04-06 16:25 ` Oliver Graute 2020-04-07 2:46 ` Peter Chen 0 siblings, 1 reply; 14+ messages in thread From: Oliver Graute @ 2020-04-06 16:25 UTC (permalink / raw) To: Mathias Nyman Cc: Peter Chen, linux-usb, Felipe Balbi, Greg Kroah-Hartman, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Mathias Nyman, dl-linux-imx, Oliver Graute On 03/04/20, Oliver Graute wrote: > On 31/03/20, Peter Chen wrote: > > > > > > compatible = "fsl,imx8qxp-lpcg"; > > > > reg = <0x5b280000 0x10000>; > > > > #clock-cells = <1>; > > > > bit-offset = <0 4 16 20 24 28>; > > > > clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > > > > <&conn_ipg_clk>, > > > > <&conn_ipg_clk>, > > > > <&conn_ipg_clk>, > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > > > > clock-output-names = "usb3_app_clk", > > > > "usb3_lpm_clk", > > > > "usb3_ipg_clk", > > > > "usb3_core_pclk", > > > > "usb3_phy_clk", > > > > "usb3_aclk"; > > > > power-domains = <&pd IMX_SC_R_USB_2_PHY>; > > > > }; > > > > > > > > usbotg3: usb3@5b110000 { > > > > compatible = "fsl,imx8qm-usb3"; > > > > #address-cells = <1>; > > > > #size-cells = <1>; > > > > ranges; > > > > reg = <0x5B110000 0x10000>; > > > > clocks = <&usb3_lpcg 1>, > > > > <&usb3_lpcg 0>, > > > > <&usb3_lpcg 5>, > > > > <&usb3_lpcg 2>, > > > > <&usb3_lpcg 3>; > > > > clock-names = "usb3_lpm_clk", "usb3_bus_clk", "usb3_aclk", > > > > "usb3_ipg_clk", "usb3_core_pclk"; > > > > assigned-clocks = <&clk IMX_SC_R_USB_2 > > > IMX_SC_PM_CLK_PER>, > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > > > > assigned-clock-rates = <125000000>, <12000000>, <250000000>; > > > > power-domains = <&pd IMX_SC_R_USB_2>; > > > > status = "disabled"; > > > > > > > > usbotg3_cdns3: cdns3 { > > > > compatible = "cdns,usb3"; > > > > #address-cells = <1>; > > > > #size-cells = <1>; > > > > interrupt-parent = <&gic>; > > > > interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > > > > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > > > > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>; > > > > interrupt-names = "host", "peripheral", "otg"; > > > > reg = <0x5B130000 0x10000>, /* memory area for HOST > > > registers */ > > > > <0x5B140000 0x10000>, /* memory area for > > > DEVICE registers */ > > > > <0x5B120000 0x10000>; /* memory area for > > > OTG/DRD registers */ > > > > reg-names = "xhci", "dev", "otg"; > > > > phys = <&usb3_phy>; > > > > phy-names = "cdns3,usb3-phy"; > > > > status = "disabled"; > > > > }; > > > > }; > > > > > > Hello Peter, > > > > > > thx for the dts example. Now I get "wait clkvld timeout" in "cdns_imx_noncore_init()" > > > So USB3_SSPHY_STATUS register seems to be wrong. > > > > > > dmesg | grep imx > > > [ 1.065445] cdns3-imx 5b110000.usb3: Adding to iommu group 0 > > > [ 1.257309] imx-scu scu: NXP i.MX SCU Initialized > > > [ 1.275489] imx-scu-clk: probe of gpt0_clk failed with error -5 > > > [ 1.291143] imx-scu-clk: probe of pwm_clk failed with error -22 > > > [ 1.302517] imx-scu-clk: probe of lcd_clk failed with error -22 > > > [ 1.341405] imx8qm-pinctrl scu:pinctrl: initialized IMX pinctrl driver > > > [ 3.029484] cdns3-imx 5b110000.usb3: wait clkvld timeout > > > [ 3.034891] cdns3-imx: probe of 5b110000.usb3 failed with error -110 > > > [ 3.237393] sdhci-esdhc-imx 5b030000.mmc: Got CD GPIO > > > [ 3.242468] sdhci-esdhc-imx 5b030000.mmc: Got WP GPIO > > > [ 3.316687] imx8qxp-lpcg-clk 5a4a0000.clock-controller: ignoring dependency for > > > device, assuming no driver > > > > > > > Make sure the five clocks in dts are correct, and print the USB3_SSPHY_STATUS if > > timeout still exists. > > ok thx, we got it fixed by replacing: > > clocks = <&usb3_lpcg 1>, > <&usb3_lpcg 0>, > <&usb3_lpcg 4>, > <&usb3_lpcg 2>, > <&usb3_lpcg 3>; > > with this: > > clocks = <&usb3_lpcg IMX_LPCG_CLK_1>, > <&usb3_lpcg IMX_LPCG_CLK_0>, > <&usb3_lpcg IMX_LPCG_CLK_7>, > <&usb3_lpcg IMX_LPCG_CLK_4>, > <&usb3_lpcg IMX_LPCG_CLK_5>; > > now the "wait clkvld timeout" is gone and the USB3_SSPHY_STATUS register > is very similar to another imx8qm device which runs linux-imx from NXP. > > Now I try to get into USB HOST mode: > > --- a/drivers/usb/cdns3/cdns3-imx.c > +++ b/drivers/usb/cdns3/cdns3-imx.c > @@ -113,11 +115,11 @@ static int cdns_imx_noncore_init(struct cdns_imx *data) > udelay(1); > > value = cdns_imx_readl(data, USB3_CORE_CTRL1); > - value = (value & ~MODE_STRAP_MASK) | OTG_MODE | OC_DISABLE; > + value = (value & ~MODE_STRAP_MASK) | HOST_MODE | OC_DISABLE; > cdns_imx_writel(data, USB3_CORE_CTRL1, value); > > Is this change necessary? > > Do I need special changes on xhci.c do get it work with cdns-imx in host mode? > > I'am stuck at: > > [ 16.697525] xhci-hcd xhci-hcd.0.auto: can't setup: -110 A bit more debug information: [ 5.988571] cdns-usb3 5b130000.cdns3: DRD version v0 (00000100) [ 6.012664] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller [ 6.018173] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1 [ 6.036369] xhci-hcd xhci-hcd.0.auto: // Halt the HC [ 6.041335] xhci-hcd xhci-hcd.0.auto: Resetting HCD [ 6.056364] xhci-hcd xhci-hcd.0.auto: // Reset the HC [ 16.062450] xhci-hcd xhci-hcd.0.auto: can't setup: -110 [ 16.067686] xhci-hcd xhci-hcd.0.auto: USB bus 1 deregistered [ 16.073361] xhci-hcd: probe of xhci-hcd.0.auto failed with error -110 Best Regards, Oliver ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: using cdns3-imx driver on imx8qm 2020-04-06 16:25 ` Oliver Graute @ 2020-04-07 2:46 ` Peter Chen 2020-04-07 16:37 ` Oliver Graute 0 siblings, 1 reply; 14+ messages in thread From: Peter Chen @ 2020-04-07 2:46 UTC (permalink / raw) To: Oliver Graute Cc: Mathias Nyman, linux-usb, Felipe Balbi, Greg Kroah-Hartman, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, dl-linux-imx, Oliver Graute On 20-04-06 18:25:17, Oliver Graute wrote: > On 03/04/20, Oliver Graute wrote: > > On 31/03/20, Peter Chen wrote: > > > > > > > > compatible = "fsl,imx8qxp-lpcg"; > > > > > reg = <0x5b280000 0x10000>; > > > > > #clock-cells = <1>; > > > > > bit-offset = <0 4 16 20 24 28>; > > > > > clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, > > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > > > > > <&conn_ipg_clk>, > > > > > <&conn_ipg_clk>, > > > > > <&conn_ipg_clk>, > > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > > > > > clock-output-names = "usb3_app_clk", > > > > > "usb3_lpm_clk", > > > > > "usb3_ipg_clk", > > > > > "usb3_core_pclk", > > > > > "usb3_phy_clk", > > > > > "usb3_aclk"; > > > > > power-domains = <&pd IMX_SC_R_USB_2_PHY>; > > > > > }; > > > > > > > > > > usbotg3: usb3@5b110000 { > > > > > compatible = "fsl,imx8qm-usb3"; > > > > > #address-cells = <1>; > > > > > #size-cells = <1>; > > > > > ranges; > > > > > reg = <0x5B110000 0x10000>; > > > > > clocks = <&usb3_lpcg 1>, > > > > > <&usb3_lpcg 0>, > > > > > <&usb3_lpcg 5>, > > > > > <&usb3_lpcg 2>, > > > > > <&usb3_lpcg 3>; > > > > > clock-names = "usb3_lpm_clk", "usb3_bus_clk", "usb3_aclk", > > > > > "usb3_ipg_clk", "usb3_core_pclk"; > > > > > assigned-clocks = <&clk IMX_SC_R_USB_2 > > > > IMX_SC_PM_CLK_PER>, > > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > > > > > assigned-clock-rates = <125000000>, <12000000>, <250000000>; > > > > > power-domains = <&pd IMX_SC_R_USB_2>; > > > > > status = "disabled"; > > > > > > > > > > usbotg3_cdns3: cdns3 { > > > > > compatible = "cdns,usb3"; > > > > > #address-cells = <1>; > > > > > #size-cells = <1>; > > > > > interrupt-parent = <&gic>; > > > > > interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > > > > > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > > > > > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>; > > > > > interrupt-names = "host", "peripheral", "otg"; > > > > > reg = <0x5B130000 0x10000>, /* memory area for HOST > > > > registers */ > > > > > <0x5B140000 0x10000>, /* memory area for > > > > DEVICE registers */ > > > > > <0x5B120000 0x10000>; /* memory area for > > > > OTG/DRD registers */ > > > > > reg-names = "xhci", "dev", "otg"; > > > > > phys = <&usb3_phy>; > > > > > phy-names = "cdns3,usb3-phy"; > > > > > status = "disabled"; > > > > > }; > > > > > }; > > > > > > > > Hello Peter, > > > > > > > > thx for the dts example. Now I get "wait clkvld timeout" in "cdns_imx_noncore_init()" > > > > So USB3_SSPHY_STATUS register seems to be wrong. > > > > > > > > dmesg | grep imx > > > > [ 1.065445] cdns3-imx 5b110000.usb3: Adding to iommu group 0 > > > > [ 1.257309] imx-scu scu: NXP i.MX SCU Initialized > > > > [ 1.275489] imx-scu-clk: probe of gpt0_clk failed with error -5 > > > > [ 1.291143] imx-scu-clk: probe of pwm_clk failed with error -22 > > > > [ 1.302517] imx-scu-clk: probe of lcd_clk failed with error -22 > > > > [ 1.341405] imx8qm-pinctrl scu:pinctrl: initialized IMX pinctrl driver > > > > [ 3.029484] cdns3-imx 5b110000.usb3: wait clkvld timeout > > > > [ 3.034891] cdns3-imx: probe of 5b110000.usb3 failed with error -110 > > > > [ 3.237393] sdhci-esdhc-imx 5b030000.mmc: Got CD GPIO > > > > [ 3.242468] sdhci-esdhc-imx 5b030000.mmc: Got WP GPIO > > > > [ 3.316687] imx8qxp-lpcg-clk 5a4a0000.clock-controller: ignoring dependency for > > > > device, assuming no driver > > > > > > > > > > Make sure the five clocks in dts are correct, and print the USB3_SSPHY_STATUS if > > > timeout still exists. > > > > ok thx, we got it fixed by replacing: > > > > clocks = <&usb3_lpcg 1>, > > <&usb3_lpcg 0>, > > <&usb3_lpcg 4>, > > <&usb3_lpcg 2>, > > <&usb3_lpcg 3>; > > > > with this: > > > > clocks = <&usb3_lpcg IMX_LPCG_CLK_1>, > > <&usb3_lpcg IMX_LPCG_CLK_0>, > > <&usb3_lpcg IMX_LPCG_CLK_7>, > > <&usb3_lpcg IMX_LPCG_CLK_4>, > > <&usb3_lpcg IMX_LPCG_CLK_5>; > > > > now the "wait clkvld timeout" is gone and the USB3_SSPHY_STATUS register > > is very similar to another imx8qm device which runs linux-imx from NXP. > > > > Now I try to get into USB HOST mode: > > > > --- a/drivers/usb/cdns3/cdns3-imx.c > > +++ b/drivers/usb/cdns3/cdns3-imx.c > > @@ -113,11 +115,11 @@ static int cdns_imx_noncore_init(struct cdns_imx *data) > > udelay(1); > > > > value = cdns_imx_readl(data, USB3_CORE_CTRL1); > > - value = (value & ~MODE_STRAP_MASK) | OTG_MODE | OC_DISABLE; > > + value = (value & ~MODE_STRAP_MASK) | HOST_MODE | OC_DISABLE; > > cdns_imx_writel(data, USB3_CORE_CTRL1, value); > > > > Is this change necessary? No > > > > Do I need special changes on xhci.c do get it work with cdns-imx in host mode? > > No > > I'am stuck at: > > > > [ 16.697525] xhci-hcd xhci-hcd.0.auto: can't setup: -110 > > A bit more debug information: > > [ 5.988571] cdns-usb3 5b130000.cdns3: DRD version v0 (00000100) > [ 6.012664] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller > [ 6.018173] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1 > [ 6.036369] xhci-hcd xhci-hcd.0.auto: // Halt the HC > [ 6.041335] xhci-hcd xhci-hcd.0.auto: Resetting HCD > [ 6.056364] xhci-hcd xhci-hcd.0.auto: // Reset the HC > [ 16.062450] xhci-hcd xhci-hcd.0.auto: can't setup: -110 > [ 16.067686] xhci-hcd xhci-hcd.0.auto: USB bus 1 deregistered > [ 16.073361] xhci-hcd: probe of xhci-hcd.0.auto failed with error -110 > set dr_mode = "otg" at dts, and after boot up, run below commands at console: echo host > /sys/class/usb_role/5b130000.cdns3-role-switch/role -- Thanks, Peter Chen ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: using cdns3-imx driver on imx8qm 2020-04-07 2:46 ` Peter Chen @ 2020-04-07 16:37 ` Oliver Graute 2020-04-07 19:57 ` Oliver Graute 0 siblings, 1 reply; 14+ messages in thread From: Oliver Graute @ 2020-04-07 16:37 UTC (permalink / raw) To: Peter Chen Cc: Mathias Nyman, linux-usb, Felipe Balbi, Greg Kroah-Hartman, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, dl-linux-imx, Oliver Graute On 07/04/20, Peter Chen wrote: > On 20-04-06 18:25:17, Oliver Graute wrote: > > On 03/04/20, Oliver Graute wrote: > > > On 31/03/20, Peter Chen wrote: > > > > > > > > > > compatible = "fsl,imx8qxp-lpcg"; > > > > > > reg = <0x5b280000 0x10000>; > > > > > > #clock-cells = <1>; > > > > > > bit-offset = <0 4 16 20 24 28>; > > > > > > clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, > > > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > > > > > > <&conn_ipg_clk>, > > > > > > <&conn_ipg_clk>, > > > > > > <&conn_ipg_clk>, > > > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > > > > > > clock-output-names = "usb3_app_clk", > > > > > > "usb3_lpm_clk", > > > > > > "usb3_ipg_clk", > > > > > > "usb3_core_pclk", > > > > > > "usb3_phy_clk", > > > > > > "usb3_aclk"; > > > > > > power-domains = <&pd IMX_SC_R_USB_2_PHY>; > > > > > > }; > > > > > > > > > > > > usbotg3: usb3@5b110000 { > > > > > > compatible = "fsl,imx8qm-usb3"; > > > > > > #address-cells = <1>; > > > > > > #size-cells = <1>; > > > > > > ranges; > > > > > > reg = <0x5B110000 0x10000>; > > > > > > clocks = <&usb3_lpcg 1>, > > > > > > <&usb3_lpcg 0>, > > > > > > <&usb3_lpcg 5>, > > > > > > <&usb3_lpcg 2>, > > > > > > <&usb3_lpcg 3>; > > > > > > clock-names = "usb3_lpm_clk", "usb3_bus_clk", "usb3_aclk", > > > > > > "usb3_ipg_clk", "usb3_core_pclk"; > > > > > > assigned-clocks = <&clk IMX_SC_R_USB_2 > > > > > IMX_SC_PM_CLK_PER>, > > > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > > > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > > > > > > assigned-clock-rates = <125000000>, <12000000>, <250000000>; > > > > > > power-domains = <&pd IMX_SC_R_USB_2>; > > > > > > status = "disabled"; > > > > > > > > > > > > usbotg3_cdns3: cdns3 { > > > > > > compatible = "cdns,usb3"; > > > > > > #address-cells = <1>; > > > > > > #size-cells = <1>; > > > > > > interrupt-parent = <&gic>; > > > > > > interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > > > > > > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > > > > > > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>; > > > > > > interrupt-names = "host", "peripheral", "otg"; > > > > > > reg = <0x5B130000 0x10000>, /* memory area for HOST > > > > > registers */ > > > > > > <0x5B140000 0x10000>, /* memory area for > > > > > DEVICE registers */ > > > > > > <0x5B120000 0x10000>; /* memory area for > > > > > OTG/DRD registers */ > > > > > > reg-names = "xhci", "dev", "otg"; > > > > > > phys = <&usb3_phy>; > > > > > > phy-names = "cdns3,usb3-phy"; > > > > > > status = "disabled"; > > > > > > }; > > > > > > }; > > > > > > > > > > Hello Peter, > > > > > > > > > > thx for the dts example. Now I get "wait clkvld timeout" in "cdns_imx_noncore_init()" > > > > > So USB3_SSPHY_STATUS register seems to be wrong. > > > > > > > > > > dmesg | grep imx > > > > > [ 1.065445] cdns3-imx 5b110000.usb3: Adding to iommu group 0 > > > > > [ 1.257309] imx-scu scu: NXP i.MX SCU Initialized > > > > > [ 1.275489] imx-scu-clk: probe of gpt0_clk failed with error -5 > > > > > [ 1.291143] imx-scu-clk: probe of pwm_clk failed with error -22 > > > > > [ 1.302517] imx-scu-clk: probe of lcd_clk failed with error -22 > > > > > [ 1.341405] imx8qm-pinctrl scu:pinctrl: initialized IMX pinctrl driver > > > > > [ 3.029484] cdns3-imx 5b110000.usb3: wait clkvld timeout > > > > > [ 3.034891] cdns3-imx: probe of 5b110000.usb3 failed with error -110 > > > > > [ 3.237393] sdhci-esdhc-imx 5b030000.mmc: Got CD GPIO > > > > > [ 3.242468] sdhci-esdhc-imx 5b030000.mmc: Got WP GPIO > > > > > [ 3.316687] imx8qxp-lpcg-clk 5a4a0000.clock-controller: ignoring dependency for > > > > > device, assuming no driver > > > > > > > > > > > > > Make sure the five clocks in dts are correct, and print the USB3_SSPHY_STATUS if > > > > timeout still exists. > > > > > > ok thx, we got it fixed by replacing: > > > > > > clocks = <&usb3_lpcg 1>, > > > <&usb3_lpcg 0>, > > > <&usb3_lpcg 4>, > > > <&usb3_lpcg 2>, > > > <&usb3_lpcg 3>; > > > > > > with this: > > > > > > clocks = <&usb3_lpcg IMX_LPCG_CLK_1>, > > > <&usb3_lpcg IMX_LPCG_CLK_0>, > > > <&usb3_lpcg IMX_LPCG_CLK_7>, > > > <&usb3_lpcg IMX_LPCG_CLK_4>, > > > <&usb3_lpcg IMX_LPCG_CLK_5>; > > > > > > now the "wait clkvld timeout" is gone and the USB3_SSPHY_STATUS register > > > is very similar to another imx8qm device which runs linux-imx from NXP. > > > > > > Now I try to get into USB HOST mode: > > > > > > --- a/drivers/usb/cdns3/cdns3-imx.c > > > +++ b/drivers/usb/cdns3/cdns3-imx.c > > > @@ -113,11 +115,11 @@ static int cdns_imx_noncore_init(struct cdns_imx *data) > > > udelay(1); > > > > > > value = cdns_imx_readl(data, USB3_CORE_CTRL1); > > > - value = (value & ~MODE_STRAP_MASK) | OTG_MODE | OC_DISABLE; > > > + value = (value & ~MODE_STRAP_MASK) | HOST_MODE | OC_DISABLE; > > > cdns_imx_writel(data, USB3_CORE_CTRL1, value); > > > > > > Is this change necessary? > > No > > > > > > > Do I need special changes on xhci.c do get it work with cdns-imx in host mode? > > > > > No > > > > I'am stuck at: > > > > > > [ 16.697525] xhci-hcd xhci-hcd.0.auto: can't setup: -110 > > > > A bit more debug information: > > > > [ 5.988571] cdns-usb3 5b130000.cdns3: DRD version v0 (00000100) > > [ 6.012664] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller > > [ 6.018173] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1 > > [ 6.036369] xhci-hcd xhci-hcd.0.auto: // Halt the HC > > [ 6.041335] xhci-hcd xhci-hcd.0.auto: Resetting HCD > > [ 6.056364] xhci-hcd xhci-hcd.0.auto: // Reset the HC > > [ 16.062450] xhci-hcd xhci-hcd.0.auto: can't setup: -110 > > [ 16.067686] xhci-hcd xhci-hcd.0.auto: USB bus 1 deregistered > > [ 16.073361] xhci-hcd: probe of xhci-hcd.0.auto failed with error -110 > > > > set dr_mode = "otg" at dts, and after boot up, run below commands at > console: > > echo host > /sys/class/usb_role/5b130000.cdns3-role-switch/role I tried that but still get same result. Is there a reason to set dr_mode = "otg" and do the host mode later on? Are there any tweaks to get this usb controller working in host mode? Some further hints for debugging would be helpfull. Best Regards, Oliver ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: using cdns3-imx driver on imx8qm 2020-04-07 16:37 ` Oliver Graute @ 2020-04-07 19:57 ` Oliver Graute 0 siblings, 0 replies; 14+ messages in thread From: Oliver Graute @ 2020-04-07 19:57 UTC (permalink / raw) To: Peter Chen Cc: Mathias Nyman, linux-usb, Felipe Balbi, Greg Kroah-Hartman, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, dl-linux-imx, Oliver Graute On 07/04/20, Oliver Graute wrote: > On 07/04/20, Peter Chen wrote: > > On 20-04-06 18:25:17, Oliver Graute wrote: > > > On 03/04/20, Oliver Graute wrote: > > > > On 31/03/20, Peter Chen wrote: > > > > > > > > > > > > compatible = "fsl,imx8qxp-lpcg"; > > > > > > > reg = <0x5b280000 0x10000>; > > > > > > > #clock-cells = <1>; > > > > > > > bit-offset = <0 4 16 20 24 28>; > > > > > > > clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_PER>, > > > > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > > > > > > > <&conn_ipg_clk>, > > > > > > > <&conn_ipg_clk>, > > > > > > > <&conn_ipg_clk>, > > > > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > > > > > > > clock-output-names = "usb3_app_clk", > > > > > > > "usb3_lpm_clk", > > > > > > > "usb3_ipg_clk", > > > > > > > "usb3_core_pclk", > > > > > > > "usb3_phy_clk", > > > > > > > "usb3_aclk"; > > > > > > > power-domains = <&pd IMX_SC_R_USB_2_PHY>; > > > > > > > }; > > > > > > > > > > > > > > usbotg3: usb3@5b110000 { > > > > > > > compatible = "fsl,imx8qm-usb3"; > > > > > > > #address-cells = <1>; > > > > > > > #size-cells = <1>; > > > > > > > ranges; > > > > > > > reg = <0x5B110000 0x10000>; > > > > > > > clocks = <&usb3_lpcg 1>, > > > > > > > <&usb3_lpcg 0>, > > > > > > > <&usb3_lpcg 5>, > > > > > > > <&usb3_lpcg 2>, > > > > > > > <&usb3_lpcg 3>; > > > > > > > clock-names = "usb3_lpm_clk", "usb3_bus_clk", "usb3_aclk", > > > > > > > "usb3_ipg_clk", "usb3_core_pclk"; > > > > > > > assigned-clocks = <&clk IMX_SC_R_USB_2 > > > > > > IMX_SC_PM_CLK_PER>, > > > > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MISC>, > > > > > > > <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; > > > > > > > assigned-clock-rates = <125000000>, <12000000>, <250000000>; > > > > > > > power-domains = <&pd IMX_SC_R_USB_2>; > > > > > > > status = "disabled"; > > > > > > > > > > > > > > usbotg3_cdns3: cdns3 { > > > > > > > compatible = "cdns,usb3"; > > > > > > > #address-cells = <1>; > > > > > > > #size-cells = <1>; > > > > > > > interrupt-parent = <&gic>; > > > > > > > interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > > > > > > > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, > > > > > > > <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>; > > > > > > > interrupt-names = "host", "peripheral", "otg"; > > > > > > > reg = <0x5B130000 0x10000>, /* memory area for HOST > > > > > > registers */ > > > > > > > <0x5B140000 0x10000>, /* memory area for > > > > > > DEVICE registers */ > > > > > > > <0x5B120000 0x10000>; /* memory area for > > > > > > OTG/DRD registers */ > > > > > > > reg-names = "xhci", "dev", "otg"; > > > > > > > phys = <&usb3_phy>; > > > > > > > phy-names = "cdns3,usb3-phy"; > > > > > > > status = "disabled"; > > > > > > > }; > > > > > > > }; > > > > > > > > > > > > Hello Peter, > > > > > > > > > > > > thx for the dts example. Now I get "wait clkvld timeout" in "cdns_imx_noncore_init()" > > > > > > So USB3_SSPHY_STATUS register seems to be wrong. > > > > > > > > > > > > dmesg | grep imx > > > > > > [ 1.065445] cdns3-imx 5b110000.usb3: Adding to iommu group 0 > > > > > > [ 1.257309] imx-scu scu: NXP i.MX SCU Initialized > > > > > > [ 1.275489] imx-scu-clk: probe of gpt0_clk failed with error -5 > > > > > > [ 1.291143] imx-scu-clk: probe of pwm_clk failed with error -22 > > > > > > [ 1.302517] imx-scu-clk: probe of lcd_clk failed with error -22 > > > > > > [ 1.341405] imx8qm-pinctrl scu:pinctrl: initialized IMX pinctrl driver > > > > > > [ 3.029484] cdns3-imx 5b110000.usb3: wait clkvld timeout > > > > > > [ 3.034891] cdns3-imx: probe of 5b110000.usb3 failed with error -110 > > > > > > [ 3.237393] sdhci-esdhc-imx 5b030000.mmc: Got CD GPIO > > > > > > [ 3.242468] sdhci-esdhc-imx 5b030000.mmc: Got WP GPIO > > > > > > [ 3.316687] imx8qxp-lpcg-clk 5a4a0000.clock-controller: ignoring dependency for > > > > > > device, assuming no driver > > > > > > > > > > > > > > > > Make sure the five clocks in dts are correct, and print the USB3_SSPHY_STATUS if > > > > > timeout still exists. > > > > > > > > ok thx, we got it fixed by replacing: > > > > > > > > clocks = <&usb3_lpcg 1>, > > > > <&usb3_lpcg 0>, > > > > <&usb3_lpcg 4>, > > > > <&usb3_lpcg 2>, > > > > <&usb3_lpcg 3>; > > > > > > > > with this: > > > > > > > > clocks = <&usb3_lpcg IMX_LPCG_CLK_1>, > > > > <&usb3_lpcg IMX_LPCG_CLK_0>, > > > > <&usb3_lpcg IMX_LPCG_CLK_7>, > > > > <&usb3_lpcg IMX_LPCG_CLK_4>, > > > > <&usb3_lpcg IMX_LPCG_CLK_5>; > > > > > > > > now the "wait clkvld timeout" is gone and the USB3_SSPHY_STATUS register > > > > is very similar to another imx8qm device which runs linux-imx from NXP. > > > > > > > > Now I try to get into USB HOST mode: > > > > > > > > --- a/drivers/usb/cdns3/cdns3-imx.c > > > > +++ b/drivers/usb/cdns3/cdns3-imx.c > > > > @@ -113,11 +115,11 @@ static int cdns_imx_noncore_init(struct cdns_imx *data) > > > > udelay(1); > > > > > > > > value = cdns_imx_readl(data, USB3_CORE_CTRL1); > > > > - value = (value & ~MODE_STRAP_MASK) | OTG_MODE | OC_DISABLE; > > > > + value = (value & ~MODE_STRAP_MASK) | HOST_MODE | OC_DISABLE; > > > > cdns_imx_writel(data, USB3_CORE_CTRL1, value); > > > > > > > > Is this change necessary? > > > > No > > > > > > > > > > Do I need special changes on xhci.c do get it work with cdns-imx in host mode? > > > > > > > > No > > > > > > I'am stuck at: > > > > > > > > [ 16.697525] xhci-hcd xhci-hcd.0.auto: can't setup: -110 > > > > > > A bit more debug information: > > > > > > [ 5.988571] cdns-usb3 5b130000.cdns3: DRD version v0 (00000100) > > > [ 6.012664] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller > > > [ 6.018173] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1 > > > [ 6.036369] xhci-hcd xhci-hcd.0.auto: // Halt the HC > > > [ 6.041335] xhci-hcd xhci-hcd.0.auto: Resetting HCD > > > [ 6.056364] xhci-hcd xhci-hcd.0.auto: // Reset the HC > > > [ 16.062450] xhci-hcd xhci-hcd.0.auto: can't setup: -110 > > > [ 16.067686] xhci-hcd xhci-hcd.0.auto: USB bus 1 deregistered > > > [ 16.073361] xhci-hcd: probe of xhci-hcd.0.auto failed with error -110 > > > > > > > set dr_mode = "otg" at dts, and after boot up, run below commands at > > console: > > > > echo host > /sys/class/usb_role/5b130000.cdns3-role-switch/role > > I tried that but still get same result. Is there a reason to set > dr_mode = "otg" and do the host mode later on? > > Are there any tweaks to get this usb controller working in host mode? > > Some further hints for debugging would be helpfull. it is working now. The usb controller is in host mode now :-) Your cadence salvo phy driver makes the difference here. >https://patchwork.kernel.org/patch/11454581/ and the example from here: https://patchwork.kernel.org/patch/11454579/ Best regards, Oliver ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2020-04-07 19:57 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-03-26 17:01 using cdns3-imx driver on imx8qm Oliver Graute 2020-03-27 9:05 ` Peter Chen 2020-03-27 9:50 ` Oliver Graute 2020-03-27 13:21 ` Peter Chen 2020-03-31 14:25 ` Oliver Graute 2020-03-31 14:39 ` Peter Chen 2020-04-01 10:34 ` Oliver Graute 2020-04-01 11:36 ` Felipe Balbi 2020-04-02 1:16 ` Peter Chen 2020-04-03 14:40 ` Oliver Graute 2020-04-06 16:25 ` Oliver Graute 2020-04-07 2:46 ` Peter Chen 2020-04-07 16:37 ` Oliver Graute 2020-04-07 19:57 ` Oliver Graute
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).