All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] Enable USB OTG on Allwinner H3 and two boards
@ 2017-01-16 19:14 ` Icenowy Zheng
  0 siblings, 0 replies; 41+ messages in thread
From: Icenowy Zheng @ 2017-01-16 19:14 UTC (permalink / raw)
  To: Rob Herring, Maxime Ripard, Chen-Yu Tsai, Kishon Vijay Abraham I,
	Greg Kroah-Hartman, Bin Liu
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-usb-u79uwXL29TY76Z2rM5mHXA,
	linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, Icenowy Zheng

This patchset depends on the following patch (only the patch, as it adds the
MUSB controller used in H3, the patchset itself is for V3s):
http://lists.infradead.org/pipermail/linux-arm-kernel/2017-January/476387.html

This patchset enables USB OTG ports on Orange Pi Zero and One board, using the
SoC's MUSB controller.

The mode of PHY0 is currently set to MUSB mode, as supporting EHCI/OHCI will
cost more time and code; but MUSB can supply both host and peripheral mode.

OTG function is only enabled for these two boards, as they're the only H3/H2+
boards that I have.

I think other boards' owners can easily enable their boards' OTG function with
these patches.

Icenowy Zheng (4):
  phy: sun4i-usb: support PHY0 on H3 in MUSB mode
  ARM: dts: sun8i: add MUSB node to H3 SoC
  ARM: dts: sun8i: enable USB OTG for Orange Pi Zero board
  ARM: dts: sun8i: enable USB OTG on Orange Pi One board

 arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts |  6 ++++++
 arch/arm/boot/dts/sun8i-h3-orangepi-one.dts       | 12 +++++++++++
 arch/arm/boot/dts/sun8i-h3.dtsi                   | 13 ++++++++++++
 drivers/phy/phy-sun4i-usb.c                       | 25 ++++++++---------------
 4 files changed, 40 insertions(+), 16 deletions(-)

-- 
2.11.0

^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: [PATCH 1/4] phy: sun4i-usb: support PHY0 on H3 in MUSB mode
@ 2017-01-17  1:26 Icenowy Zheng
  0 siblings, 0 replies; 41+ messages in thread
From: Icenowy Zheng @ 2017-01-17  1:26 UTC (permalink / raw)
  To: Ondřej Jirman
  Cc: Greg Kroah-Hartman, Rob Herring,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA, Bin Liu,
	devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-usb-u79uwXL29TY76Z2rM5mHXA, Kishon Vijay Abraham I,
	Maxime Ripard, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, Chen-Yu Tsai


2017年1月17日 06:57于 Ondřej Jirman <megous@megous.com>写道:
>
> Dne 16.1.2017 v 20:14 Icenowy Zheng napsal(a): 
> > The PHY0 on H3 can be wired either to MUSB controller or OHCI/EHCI 
> > controller. 
> > 
> > The original driver wired it to OHCI/EHCI controller; however, as the 
> > code to use PHY0 as OHCI/EHCI is missing, it makes the PHY fully 
> > unusable. 
> > 
> > Rename the register (according to its function and the name in BSP 
> > driver), and remove the code which wires the PHY0 to OHCI/EHCI, as MUSB 
> > can support both peripheral and host mode (although the host mode of 
> > MUSB is buggy). 
> > 
> > The register that is renamed is now unused, as its initial value is just 
> > MUSB mode. However, when OHCI/EHCI mode support is added, the register 
> > can be used again. 
> > 
> > Signed-off-by: Icenowy Zheng <icenowy-ymACFijhrKM@public.gmane.org> 
> > --- 
> >  drivers/phy/phy-sun4i-usb.c | 25 +++++++++---------------- 
> >  1 file changed, 9 insertions(+), 16 deletions(-) 
> > 
> > diff --git a/drivers/phy/phy-sun4i-usb.c b/drivers/phy/phy-sun4i-usb.c 
> > index bf28a0fdd569..6b193a635c6b 100644 
> > --- a/drivers/phy/phy-sun4i-usb.c 
> > +++ b/drivers/phy/phy-sun4i-usb.c 
> > @@ -49,7 +49,7 @@ 
> >  #define REG_PHYBIST 0x08 
> >  #define REG_PHYTUNE 0x0c 
> >  #define REG_PHYCTL_A33 0x10 
> > -#define REG_PHY_UNK_H3 0x20 
> > +#define REG_PHY_OTGCTL 0x20 
>
> You have added REG_PHY_OTGCTL, but it is not used below. 

See the commit message.

I know it's now unused :-) It's just because the default mode is musb.

>
> regards, 
>   o. 
>
> >  #define REG_PMU_UNK1 0x10 
> >  
> > @@ -269,23 +269,16 @@ static int sun4i_usb_phy_init(struct phy *_phy) 
> >  writel(val & ~2, phy->pmu + REG_PMU_UNK1); 
> >  } 
> >  
> > - if (data->cfg->type == sun8i_h3_phy) { 
> > - if (phy->index == 0) { 
> > - val = readl(data->base + REG_PHY_UNK_H3); 
> > - writel(val & ~1, data->base + REG_PHY_UNK_H3); 
> > - } 
> > - } else { 
> > - /* Enable USB 45 Ohm resistor calibration */ 
> > - if (phy->index == 0) 
> > - sun4i_usb_phy_write(phy, PHY_RES45_CAL_EN, 0x01, 1); 
> > + /* Enable USB 45 Ohm resistor calibration */ 
> > + if (phy->index == 0) 
> > + sun4i_usb_phy_write(phy, PHY_RES45_CAL_EN, 0x01, 1); 
> >  
> > - /* Adjust PHY's magnitude and rate */ 
> > - sun4i_usb_phy_write(phy, PHY_TX_AMPLITUDE_TUNE, 0x14, 5); 
> > + /* Adjust PHY's magnitude and rate */ 
> > + sun4i_usb_phy_write(phy, PHY_TX_AMPLITUDE_TUNE, 0x14, 5); 
> >  
> > - /* Disconnect threshold adjustment */ 
> > - sun4i_usb_phy_write(phy, PHY_DISCON_TH_SEL, 
> > -     data->cfg->disc_thresh, 2); 
> > - } 
> > + /* Disconnect threshold adjustment */ 
> > + sun4i_usb_phy_write(phy, PHY_DISCON_TH_SEL, 
> > +     data->cfg->disc_thresh, 2); 
> >  
> >  sun4i_usb_phy_passby(phy, 1); 
> >  
> > 

-- 
You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: [PATCH 1/4] phy: sun4i-usb: support PHY0 on H3 in MUSB mode
@ 2017-01-18  3:13 Icenowy Zheng
  0 siblings, 0 replies; 41+ messages in thread
From: Icenowy Zheng @ 2017-01-18  3:13 UTC (permalink / raw)
  To: Chen-Yu Tsai
  Cc: linux-kernel, Greg Kroah-Hartman,
		linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
	Rob Herring, Bin Liu,
		linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Kishon Vijay Abraham I,
		linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Maxime Ripard,
	 devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org


2017年1月18日 04:09于 Chen-Yu Tsai <wens@csie.org>写道:
>
> Hi, 
>
> On Wed, Jan 18, 2017 at 4:06 AM, Maxime Ripard 
> <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> wrote: 
> > On Wed, Jan 18, 2017 at 12:57:08AM +0800, Icenowy Zheng wrote: 
> >> 
> >> 
> >> 17.01.2017, 16:06, "Maxime Ripard" <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>: 
> >> > On Tue, Jan 17, 2017 at 03:14:46AM +0800, Icenowy Zheng wrote: 
> >> >>  The PHY0 on H3 can be wired either to MUSB controller or OHCI/EHCI 
> >> >>  controller. 
> >> >> 
> >> >>  The original driver wired it to OHCI/EHCI controller; however, as the 
> >> >>  code to use PHY0 as OHCI/EHCI is missing, it makes the PHY fully 
> >> >>  unusable. 
> >> >> 
> >> >>  Rename the register (according to its function and the name in BSP 
> >> >>  driver), and remove the code which wires the PHY0 to OHCI/EHCI, as MUSB 
> >> >>  can support both peripheral and host mode (although the host mode of 
> >> >>  MUSB is buggy). 
> >> > 
> >> > Can you elaborate on that? What's wrong with it? 
> >> 
> >> The configuration is at bit 0 of register 0x20 in PHY. 
> >> 
> >> When the PHY is reseted, it defaults as MUSB mode. 
> >> 
> >> However, the original author of the H3 PHY code seems to be lack of 
> >> this knowledge (He named it PHY_UNK_H3), and changed the PHY to HCI 
> >> mode. 
> >> 
> >> I just removed the code that wires it to HCI mode, thus it will work 
> >> in MUSB mode, with my sun8i-h3-musb patch. 
> > 
> > I have no idea what you mean by MUSB mode. 
> > 
> > Do you mean that the previous code was only working in host mode, and 
> > now it only works in peripheral? 
>
> From what I understand, with the H3, Allwinner has put a mux 
> in front of the MUSB controller. The mux can send the USB data 
> to/from the MUSB controller, or a standard EHCI/OHCI pair. 
> This register controls said mux. 
>
> This means we can use a proper USB host for host mode, 
> instead of the limited support in MUSB. 
>

Yes you got it.

The MUSB controller can also be used in host mode, but weaker then EHCI/OHCI.

> ChenYu 
>
> > 
> > Maxime 
> > 
> > -- 
> > Maxime Ripard, Free Electrons 
> > Embedded Linux and Kernel engineering 
> > http://free-electrons.com 

-- 
You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/d/optout.

^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2017-01-22  9:58 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-16 19:14 [PATCH 0/4] Enable USB OTG on Allwinner H3 and two boards Icenowy Zheng
2017-01-16 19:14 ` Icenowy Zheng
     [not found] ` <20170116191449.50397-1-icenowy-ymACFijhrKM@public.gmane.org>
2017-01-16 19:14   ` [PATCH 1/4] phy: sun4i-usb: support PHY0 on H3 in MUSB mode Icenowy Zheng
2017-01-16 19:14     ` Icenowy Zheng
2017-01-16 22:57     ` [linux-sunxi] " Ondřej Jirman
2017-01-16 22:57       ` Ondřej Jirman
2017-01-16 22:57       ` Ondřej Jirman
2017-01-17  8:06     ` Maxime Ripard
2017-01-17  8:06       ` Maxime Ripard
2017-01-17  8:06       ` Maxime Ripard
2017-01-17 16:57       ` Icenowy Zheng
2017-01-17 16:57         ` Icenowy Zheng
2017-01-17 20:06         ` Maxime Ripard
2017-01-17 20:06           ` Maxime Ripard
2017-01-17 20:06           ` Maxime Ripard
2017-01-17 20:09           ` Chen-Yu Tsai
2017-01-17 20:09             ` Chen-Yu Tsai
2017-01-17 20:09             ` Chen-Yu Tsai
2017-01-19 14:34             ` Maxime Ripard
2017-01-19 14:34               ` Maxime Ripard
2017-01-19 14:34               ` Maxime Ripard
2017-01-19 15:10               ` Icenowy Zheng
2017-01-19 15:10                 ` Icenowy Zheng
2017-01-19 20:27                 ` [linux-sunxi] " Karsten Merker
2017-01-19 20:27                   ` Karsten Merker
2017-01-20  8:04                   ` [linux-sunxi] " Hans de Goede
2017-01-20  8:04                     ` Hans de Goede
2017-01-20  8:04                     ` Hans de Goede
     [not found]                     ` <93a01892-47b5-5445-d802-f56bdac8371f-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-01-22  9:39                       ` Icenowy Zheng
2017-01-22  9:39                         ` [linux-sunxi] " Icenowy Zheng
2017-01-22  9:58                         ` Hans de Goede
2017-01-22  9:58                           ` Hans de Goede
2017-01-22  9:58                           ` Hans de Goede
2017-01-16 19:14   ` [PATCH 2/4] ARM: dts: sun8i: add MUSB node to H3 SoC Icenowy Zheng
2017-01-16 19:14     ` Icenowy Zheng
2017-01-16 19:14   ` [PATCH 3/4] ARM: dts: sun8i: enable USB OTG for Orange Pi Zero board Icenowy Zheng
2017-01-16 19:14     ` Icenowy Zheng
2017-01-16 19:14   ` [PATCH 4/4] ARM: dts: sun8i: enable USB OTG on Orange Pi One board Icenowy Zheng
2017-01-16 19:14     ` Icenowy Zheng
2017-01-17  1:26 [PATCH 1/4] phy: sun4i-usb: support PHY0 on H3 in MUSB mode Icenowy Zheng
2017-01-18  3:13 Icenowy Zheng

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.