mxc_udc: add workaround for ENGcm09152 for i.MX35
Subsystems (4)
PATCH 1/1 mxc_udc: add workaround for ENGcm09152 for i.MX35
this patch gives the possibility to workaround bug ENGcm09152 on i.MX35 when the hardware workaround is also implemented on the board.
Signed-off-by Eric B?nard <[email protected]>
--- arch/arm/mach-mx3/mach-cpuimx35.c | 1 + drivers/usb/gadget/fsl_mxc_udc.c | 12 ++++++++++++ include/linux/fsl_devices.h | 3 +++ 3 files changed, 16 insertions(+), 0 deletions(-)
arch/arm/mach-mx3/mach-cpuimx35.c +1 -0
@@ -154,6 +154,7 @@ static struct mxc_usbh_platform_data usbh1_pdata = {static struct fsl_usb2_platform_data otg_device_pdata = { .operating_mode =FSL_USB2_DR_DEVICE , .phy_mode =FSL_USB2_PHY_UTMI , + .workaround =FLS_USB2_WORKAROUND_ENGCM09152 , };static int otg_mode_host;
drivers/usb/gadget/fsl_mxc_udc.c +12 -0
@@ -22,6 +22,10 @@static struct clk *mxc_ahb_clk;static struct clk *mxc_usb_clk; +/* workaround ENGcm09152 for i.MX35 */ +#define USBPHYCTRL_OTGBASE_OFFSET 0x608 +#define USBPHYCTRL_EVDO (1 << 23) +int fsl_udc_clk_init (struct platform_device *pdev) {struct fsl_usb2_platform_data *pdata;
@@ -84,6 +88,7 @@ eenahb:void fsl_udc_clk_finalize (struct platform_device *pdev) {struct fsl_usb2_platform_data *pdata = pdev->dev.platform_data; +unsigned int v;/* ULPI transceivers don't need usbpll */ if (pdata->phy_mode ==FSL_USB2_PHY_ULPI ) {
@@ -91,6 +96,13 @@ void fsl_udc_clk_finalize(struct platform_device *pdev)clk_put (mxc_usb_clk); mxc_usb_clk =NULL ; } +/* workaround ENGcm09152 for i.MX35 */ +if (pdata->workaround &FLS_USB2_WORKAROUND_ENGCM09152 ) { + v =readl (MX35_IO_ADDRESS (MX35_OTG_BASE_ADDR + +USBPHYCTRL_OTGBASE_OFFSET )); +writel (v |USBPHYCTRL_EVDO ,MX35_IO_ADDRESS (MX35_OTG_BASE_ADDR + +USBPHYCTRL_OTGBASE_OFFSET )); + } }void fsl_udc_clk_release (void )
include/linux/fsl_devices.h +3 -0
@@ -63,12 +63,15 @@ struct fsl_usb2_platform_data {enum fsl_usb2_operating_modes operating_mode;enum fsl_usb2_phy_modes phy_mode;unsigned int port_enables; +unsigned int workaround; };/* Flags in fsl_usb2_mph_platform_data */ #define FSL_USB2_PORT0_ENABLED 0x00000001#define FSL_USB2_PORT1_ENABLED 0x00000002 +#define FLS_USB2_WORKAROUND_ENGCM09152 (1 << 0) +struct spi_device ;struct fsl_spi_platform_data {
Signature · 1 line
1.6.3.3
PATCH 1/1 mxc_udc: add workaround for ENGcm09152 for i.MX35
Hi Sascha,
Le 16/07/2010 18:30, Eric B?nard a ?crit :
Quoted 4 lines
this patch gives the possibility to workaround bug ENGcm09152 on i.MX35 when the hardware workaround is also implemented on the board.
any comment concerning this patch ?
Thanks
Eric