sunxi: musb: Properly put the musb controller back in reset on exit
Subsystems (2)
PATCH 1/1 sunxi: musb: Properly put the musb controller back in reset on exit
Assert reset and disable the clock to properly put the musb controller back in reset on exit.
--- drivers/usb/musb-new/sunxi.c | 7 +++++++ 1 file changed, 7 insertions(+)
drivers/usb/musb-new/sunxi.c +7 -0
@@ -284,6 +284,8 @@ static int sunxi_musb_init(struct musb *musb)static int sunxi_musb_exit (struct musb *musb) { +struct sunxi_ccm_reg *ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE ; +pr_debug ("%s():\n" , __func__);USBC_DisableDpDmPullUp (musb->mregs);
@@ -291,6 +293,11 @@ static int sunxi_musb_exit(struct musb *musb)sunxi_usb_phy_power_off (0 );sunxi_usb_phy_exit (0 ); +#ifdef CONFIG_SUNXI_GEN_SUN6I +clrbits_le32 (&ccm->ahb_reset0_cfg,1 <<AHB_GATE_OFFSET_USB0 ); +#endif +clrbits_le32 (&ccm->ahb_gate0,1 <<AHB_GATE_OFFSET_USB0 ); +return 0 ; }
Signature · 1 line
2.4.1
PATCH 1/1 sunxi: musb: Properly put the musb controller back in reset on exit
Quoted 2 lines · Hans de Goede
Assert reset and disable the clock to properly put the musb controller back in reset on exit.
Last I checked the exit functions are not called except for error handling in the probe sequence. Has this been fixed?
ChenYu
Quoted 37 lines
Signed-off-by Hans de Goede <[email protected]>--- drivers/usb/musb-new/sunxi.c | 7 +++++++ 1 file changed, 7 insertions(+)drivers/usb/musb-new/sunxi.c +7
-1@@ -284,6 +284,8 @@ static int sunxi_musb_init(struct musb *musb)static int sunxi_musb_exit (struct musb *musb) { +struct sunxi_ccm_reg *ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE ; +pr_debug ("%s():\n" , __func__);USBC_DisableDpDmPullUp (musb->mregs);@@ -291,6 +293,11 @@ static int sunxi_musb_exit(struct musb *musb)sunxi_usb_phy_power_off (0 );sunxi_usb_phy_exit (0 ); +#ifdef CONFIG_SUNXI_GEN_SUN6I +clrbits_le32 (&ccm->ahb_reset0_cfg,1 <<AHB_GATE_OFFSET_USB0 ); +#endif +clrbits_le32 (&ccm->ahb_gate0,1 <<AHB_GATE_OFFSET_USB0 ); +return 0 ; } --2.4.1
_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
PATCH 1/1 sunxi: musb: Properly put the musb controller back in reset on exit
Hi,
Quoted 6 lines · Chen-Yu Tsai
Quoted 2 lines · Hans de Goede
Assert reset and disable the clock to properly put the musb controller back in reset on exit.
Last I checked the exit functions are not called except for error handling in the probe sequence. Has this been fixed?
It seems not, I made this patch because Paul (added to the Cc) was having some troubles when changing the gadget role. It looks like you're right and unfortunately this function never gets called though ...
Worse it seems that in gadget mode even all calls to musb_stop() are commented out of the musb-new code...
Note all this does not mean that this patch is incorrect though, just that it is not really useful atm.
Regards,
Hans
Quoted 40 lines
ChenYu
Quoted 37 lines
Signed-off-by Hans de Goede <[email protected]>--- drivers/usb/musb-new/sunxi.c | 7 +++++++ 1 file changed, 7 insertions(+)drivers/usb/musb-new/sunxi.c +7
-1@@ -284,6 +284,8 @@ static int sunxi_musb_init(struct musb *musb)static int sunxi_musb_exit (struct musb *musb) { +struct sunxi_ccm_reg *ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE ; +pr_debug ("%s():\n" , __func__);USBC_DisableDpDmPullUp (musb->mregs);@@ -291,6 +293,11 @@ static int sunxi_musb_exit(struct musb *musb)sunxi_usb_phy_power_off (0 );sunxi_usb_phy_exit (0 ); +#ifdef CONFIG_SUNXI_GEN_SUN6I +clrbits_le32 (&ccm->ahb_reset0_cfg,1 <<AHB_GATE_OFFSET_USB0 ); +#endif +clrbits_le32 (&ccm->ahb_gate0,1 <<AHB_GATE_OFFSET_USB0 ); +return 0 ; } --2.4.1
_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
PATCH 1/1 sunxi: musb: Properly put the musb controller back in reset on exit
Le jeudi 21 mai 2015 ? 15:13 +0200, Hans de Goede a ?crit :
Quoted 10 lines
Hi,
Quoted 6 lines · Chen-Yu Tsai
Quoted 2 lines · Hans de Goede
Assert reset and disable the clock to properly put the musb controller back in reset on exit.
Last I checked the exit functions are not called except for error handling in the probe sequence. Has this been fixed?
Quoted 6 lines
It seems not, I made this patch because Paul (added to the Cc) was having some troubles when changing the gadget role. It looks like you're right and unfortunately this function never gets called though ...
Worse it seems that in gadget mode even all calls to
musb_stop()are commented out of the musb-new code...
It seems to be the problem here. I added an explicit call to musb_stop in usb_gadget_unregister_driver and it seems to solve the problem: I can run fastboot multiple times and the host always enumerates it correctly.
I'll submit some patches implementing this correctly, probably next week-end.
However, it doesn't work as well with the USB mass storage function. I'll have to take a closer look at it later.
Quoted 41 lines
Note all this does not mean that this patch is incorrect though, just that it is not really useful atm.
Regards,
Hans
Quoted 33 lines
ChenYu
Quoted 30 lines
Signed-off-by Hans de Goede <[email protected]>--- drivers/usb/musb-new/sunxi.c | 7 +++++++ 1 file changed, 7 insertions(+)drivers/usb/musb-new/sunxi.c +7
-0@@ -284,6 +284,8 @@ static int sunxi_musb_init(struct musb *musb)static int sunxi_musb_exit (struct musb *musb) { +struct sunxi_ccm_reg *ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE ; +pr_debug ("%s():\n" , __func__);USBC_DisableDpDmPullUp (musb->mregs);@@ -291,6 +293,11 @@ static int sunxi_musb_exit(struct musb *musb)sunxi_usb_phy_power_off (0 );sunxi_usb_phy_exit (0 ); +#ifdef CONFIG_SUNXI_GEN_SUN6I +clrbits_le32 (&ccm->ahb_reset0_cfg,1 <<AHB_GATE_OFFSET_USB0 ); +#endif +clrbits_le32 (&ccm->ahb_gate0,1 <<AHB_GATE_OFFSET_USB0 ); +return 0 ; }
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
--
2.4.1_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150524/2d6d70a3/attachment.sig>