[U-Boot] [RESEND PATCH 5/6] usb: host: Add ehci-vf USB driver for ARM Vybrid SoC's

maitysanchayan at gmail.com maitysanchayan at gmail.com
Thu Apr 9 19:05:15 CEST 2015


Hello,

On 15-04-09 18:09:46, Marek Vasut wrote:
> On Tuesday, April 07, 2015 at 09:03:45 AM, maitysanchayan at gmail.com wrote:
> > Hello,
> > 
> > On 15-04-01 21:15:21, Marek Vasut wrote:
> > > On Wednesday, April 01, 2015 at 11:54:22 AM, Sanchayan Maity wrote:
> > > 
> > > The commit message is missing, please fix in v2.
> > > 
> > > > Signed-off-by: Sanchayan Maity <maitysanchayan at gmail.com>
> > > 
> > > [...]
> > > 
> > > > +#define USB_NC_REG_OFFSET				0x00000800
> > > > +#define USBCx_CTRL_OFFSET				0x00000000
> > > > +#define USBCx_PHY_CTRL_OFFSET			0x00000018
> > > 
> > > Please define the register offsets using the regular struct {} method,
> > > see for example struct mxs_usbphy_regs and it's usage in ehci-mxs.c .
> > 
> > I had a query here, just to be sure and avoid rework. The vybrid defines
> > would be similar to mxs. I assume I can add them to the regs-common.h
> > file along with a note that the VF610 also has the same _set, _clr,
> > _tog register? Or perhaps it would be more appropriate to have the file
> > have generic names which mxs, vf and imx can all leverage? Though for
> > now this would require reworking all the three drivers.
> > 
> > The USB phy definitions part is ok, as they would go in the arch
> > specific folder.
> 
> If these are really IMX/MXS/VF specific, then the defines should go into
> arch/arm/include/asm/imx-common/ . Otherwise, you can make chipidea specific 
> file in include/usb/ .

Not really much VF specific. I was not sure about using the mxs_ prefix 
accessors for VF as well. In the end I found usage in one iMX6 file and 
decided that it makes better sense to actually use the mxs_ existing 
defines. They can be used for Vybrid as well. Except for the non core 
regsiters and a few others no other difference.

I send a v2 version of the patchset based taking your suggestion into 
account. The driver looks cleaner in comparison to the previous :) 
IMHO. Thanks.

https://www.mail-archive.com/u-boot@lists.denx.de/msg168727.html


- Sanchayan.

> 
> > > > +#define USBPHY_CTRL						
> 0x00000030
> > > > +#define USBPHY_CTRL_SET					0x00000034
> > > > +#define USBPHY_CTRL_CLR					0x00000038
> > > > +#define USBPHY_CTRL_TOG					0x0000003c
> > > > +
> > > > +#define USBPHY_PWD						
> 0x00000000
> > > > +#define USBPHY_TX						
> 0x00000010
> > > > +#define USBPHY_RX						
> 0x00000020
> > > > +#define USBPHY_DEBUG					0x00000050
> > > > +#define USBPHY_CTRL_SFTRST				0x80000000
> > > > +#define USBPHY_CTRL_CLKGATE				0x40000000
> > > > +#define USBPHY_CTRL_ENUTMILEVEL3		0x00008000
> > > > +#define USBPHY_CTRL_ENUTMILEVEL2		0x00004000
> > > > +#define USBPHY_CTRL_OTG_ID				0x08000000
> > > > +
> > > > +#define ANADIG_PLL_CTRL_BYPASS			0x00010000
> > > > +#define ANADIG_PLL_CTRL_ENABLE			0x00002000
> > > > +#define ANADIG_PLL_CTRL_POWER			0x00001000
> > > > +#define ANADIG_PLL_CTRL_EN_USB_CLKS		0x00000040
> > > > +
> > > > +#define UCTRL_OVER_CUR_POL	(1 << 8) /* OTG Polarity of Overcurrent 
> */
> > > > +#define UCTRL_OVER_CUR_DIS	(1 << 7) /* Disable OTG Overcurrent
> > > > Detection */ +
> > > > +/* USBCMD */
> > > > +#define UCMD_RUN_STOP		(1 << 0) /* controller run/stop */
> > > > +#define UCMD_RESET			(1 << 1) /* controller reset */
> > > 
> > > This looks very much like the USB PHY used on MX28 , can you double-check
> > > this please ?
> > 
> > MX28 IP also seems similar to the Vybrid USB IP except for a few
> > registers and the non core registers. Perhaps to be expected as they all
> > have a common chipidea IP core, though having a different version
> > thereof.
> 
> Yep, I agree :)
> 
> Thanks!


More information about the U-Boot mailing list