Enable pxa310 usb otg port host mode.
Subsystems (6)
cover Enable pxa310 usb otg port host mode.
This patch series extends the existing usb ulpi generic driver with support for Function and Interface control of the ULPI PHYs, adds support for SMSC USB3319 ulpi phy,
implement the pxa310 specific ulpi functionality and make pxa specific ohci implementation aware of pxa310 usb otg port host mode.
Igor Grinberg (5):
usb/otg/ulpi: extend the generic ulpi driver. usb/otg/ulpi: add support for SMSC USB3319 ulpi phy.
[ARM] pxa: add PXA310 specific ULPI implementation
[ARM] usb/host/ohci-pxa27x: make PXA310 USB OTG port work in host
mode.
[ARM] pxa/cm-x300: enable USB host port 2 on CM-X300 with PXA310 cpu.
arch/arm/mach-mx2/mach-pca100.c | 10 +- arch/arm/mach-mx3/mach-armadillo5x0.c | 10 +- arch/arm/mach-mx3/mach-mx31lite.c | 5 +- arch/arm/mach-mx3/mach-mx31moboard.c | 5 +- arch/arm/mach-mx3/mach-pcm037.c | 10 +- arch/arm/mach-mx3/mach-pcm043.c | 5 +- arch/arm/mach-pxa/Kconfig | 4 + arch/arm/mach-pxa/Makefile | 1 + arch/arm/mach-pxa/cm-x300.c | 102 ++++++++++++++ arch/arm/mach-pxa/include/mach/ohci.h | 3 + arch/arm/mach-pxa/include/mach/pxa310-ulpi.h | 19 +++ arch/arm/mach-pxa/include/mach/regs-u2d.h | 2 + arch/arm/mach-pxa/pxa310-ulpi.c | 110 +++++++++++++++ drivers/usb/host/ohci-pxa27x.c | 183 ++++++++++++++++++++++++++ drivers/usb/otg/Kconfig | 2 - drivers/usb/otg/ulpi.c | 65 ++++++++- include/linux/usb/ulpi.h | 25 ++++- 17 files changed, 542 insertions(+), 19 deletions(-) create mode 100644 arch/arm/mach-pxa/include/mach/pxa310-ulpi.h create mode 100644 arch/arm/mach-pxa/pxa310-ulpi.c
PATCH 1/5 usb/otg/ulpi: extend the generic ulpi driver.
This patch extends the generic ulpi driver with support for Function and Interface control of upli phy.
--- arch/arm/mach-mx2/mach-pca100.c | 10 ++++- arch/arm/mach-mx3/mach-armadillo5x0.c | 10 ++++- arch/arm/mach-mx3/mach-mx31lite.c | 5 ++- arch/arm/mach-mx3/mach-mx31moboard.c | 5 ++- arch/arm/mach-mx3/mach-pcm037.c | 10 ++++- arch/arm/mach-mx3/mach-pcm043.c | 5 ++- drivers/usb/otg/Kconfig | 2 - drivers/usb/otg/ulpi.c | 64 +++++++++++++++++++++++++++++---- include/linux/usb/ulpi.h | 25 ++++++++++++- 9 files changed, 117 insertions(+), 19 deletions(-)
arch/arm/mach-mx2/mach-pca100.c +8 -2
@@ -356,13 +356,19 @@ static void __init pca100_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +USB_OTG_DRV_VBUS | +USB_OTG_DRV_VBUS_EXT , +ULPI_IC_DEFAULT , +ULPI_FC_DEFAULT );mxc_register_device (&mxc_otg_host, &otg_pdata); } usbh2_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +USB_OTG_DRV_VBUS | +USB_OTG_DRV_VBUS_EXT , +ULPI_IC_DEFAULT , +ULPI_FC_DEFAULT );mxc_register_device (&mxc_usbh2, &usbh2_pdata);#endif
arch/arm/mach-mx3/mach-armadillo5x0.c +8 -2
@@ -552,9 +552,15 @@ static void __init armadillo5x0_init(void)/* USB */ #if defined(CONFIG_USB_ULPI ) usbotg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +USB_OTG_DRV_VBUS | +USB_OTG_DRV_VBUS_EXT , +ULPI_IC_DEFAULT , +ULPI_FC_DEFAULT ); usbh2_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +USB_OTG_DRV_VBUS | +USB_OTG_DRV_VBUS_EXT , +ULPI_IC_DEFAULT , +ULPI_FC_DEFAULT );mxc_register_device (&mxc_otg_host, &usbotg_pdata);mxc_register_device (&mxc_usbh2, &usbh2_pdata);
arch/arm/mach-mx3/mach-mx31lite.c +4 -1
@@ -261,7 +261,10 @@ static void __init mxc_board_init(void)#if defined(CONFIG_USB_ULPI )/* USB */ usbh2_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +USB_OTG_DRV_VBUS | +USB_OTG_DRV_VBUS_EXT , +ULPI_IC_DEFAULT , +ULPI_FC_DEFAULT );mxc_register_device (&mxc_usbh2, &usbh2_pdata);#endif
arch/arm/mach-mx3/mach-mx31moboard.c +4 -1
@@ -391,7 +391,10 @@ static struct mxc_usbh_platform_data usbh2_pdata = {static int __init moboard_usbh2_init (void ) { usbh2_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +USB_OTG_DRV_VBUS | +USB_OTG_DRV_VBUS_EXT , +ULPI_IC_DEFAULT , +ULPI_FC_DEFAULT );return mxc_register_device (&mxc_usbh2, &usbh2_pdata); }
arch/arm/mach-mx3/mach-pcm037.c +8 -2
@@ -657,13 +657,19 @@ static void __init mxc_board_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +USB_OTG_DRV_VBUS | +USB_OTG_DRV_VBUS_EXT , +ULPI_IC_DEFAULT , +ULPI_FC_DEFAULT );mxc_register_device (&mxc_otg_host, &otg_pdata); } usbh2_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +USB_OTG_DRV_VBUS | +USB_OTG_DRV_VBUS_EXT , +ULPI_IC_DEFAULT , +ULPI_FC_DEFAULT );mxc_register_device (&mxc_usbh2, &usbh2_pdata);#endif
arch/arm/mach-mx3/mach-pcm043.c +4 -1
@@ -379,7 +379,10 @@ static void __init mxc_board_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +USB_OTG_DRV_VBUS | +USB_OTG_DRV_VBUS_EXT , +ULPI_IC_DEFAULT , +ULPI_FC_DEFAULT );mxc_register_device (&mxc_otg_host, &otg_pdata); }
drivers/usb/otg/Kconfig +0 -2
@@ -49,8 +49,6 @@ config USB_ULPI Enable this to support ULPI connected USB OTG transceivers which are likely found on embedded boards. - The only chip currently supported is NXP's ISP1504 - config TWL4030_USB tristate "TWL4030 USB Transceiver Driver" depends on TWL4030_CORE && REGULATOR_TWL4030
drivers/usb/otg/ulpi.c +57 -7
110 lines not on this page · raw message
include/linux/usb/ulpi.h +24 -1
@@ -1,7 +1,30 @@#ifndef __LINUX_USB_ULPI_H#define __LINUX_USB_ULPI_H +/* ULPI Function Control Register bits */ +#define ULPI_FC_HS 0/* Enable HS tcvr */ +#define ULPI_FC_FS (0x1 << 0)/* Enable FS tcvr */ +#define ULPI_FC_LS (0x2 << 0)/* Enable LS tcvr */ +#define ULPI_FC_FS_LS (0x3 << 0)/* Enable FS tcvr for LS packets */ +#define ULPI_FC_TRM_SEL (0x1 << 2)/* Internal pullup and HS termination */ +#define ULPI_FC_NODRV (0x1 << 3)/* Non-Driving Operation */ +#define ULPI_FC_NONRZI (0x1 << 4)/* Disable bit-stuff and NRZI encode */ +#define ULPI_FC_RESET (0x1 << 5)/* Reset the UTMI core */ +#define ULPI_FC_DEFAULT 0x41/* Function Control Register Default */ + + +/* ULPI Interface Register bits */ +#define ULPI_IC_6PIN (1 << 0)/* XCVR 6 serial pin mode */ +#define ULPI_IC_3PIN (1 << 1)/* XCVR 3 serial pin mode */ +#define ULPI_IC_CARKIT (1 << 2)/* Carkit mode */ +#define ULPI_IC_CLKSPND (1 << 3)/* Active low clock suspend */ +#define ULPI_IC_AUTORES (1 << 4)/* PHY auto transmit resume signal */ +#define ULPI_IC_VBUSINV (1 << 5)/* Invert the external VBUS indicator */ +#define ULPI_IC_INDPT (1 << 6)/* Indicator Pass Through */ +#define ULPI_IC_DISPRT (1 << 7)/* Interface Protect Disable */ +#define ULPI_IC_DEFAULT 0x0/* Interface Control Register Default */ +struct otg_transceiver *otg_ulpi_create (struct otg_io_access_ops *ops, -unsigned int flags); +u8 fc_flags,u8 ic_flags,u8 otg_flags);#endif /* __LINUX_USB_ULPI_H */
Signature · 1 line
1.6.4.4
PATCH 2/5 usb/otg/ulpi: add support for SMSC USB3319 ulpi phy.
--- drivers/usb/otg/ulpi.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
drivers/usb/otg/ulpi.c +1 -0
@@ -59,6 +59,7 @@/* ULPI hardcoded IDs, used for probing */ static unsigned int ulpi_ids[] = {ULPI_ID (0x04cc ,0x1504 ),/* NXP ISP1504 */ +ULPI_ID (0x0424 ,0x0006 ),/* SMSC USB3319 */ };static int ulpi_set_otg_flags (struct otg_transceiver *otg)
Signature · 1 line
1.6.4.4
PATCH 3/5 pxa: add PXA310 specific ULPI implementation
--- arch/arm/mach-pxa/Kconfig | 4 + arch/arm/mach-pxa/Makefile | 1 + arch/arm/mach-pxa/include/mach/pxa310-ulpi.h | 19 +++++ arch/arm/mach-pxa/pxa310-ulpi.c | 110 ++++++++++++++++++++++++++ 4 files changed, 134 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-pxa/include/mach/pxa310-ulpi.h create mode 100644 arch/arm/mach-pxa/pxa310-ulpi.c
arch/arm/mach-pxa/Kconfig +4 -0
@@ -616,6 +616,7 @@ config CPU_PXA300 config CPU_PXA310 bool select CPU_PXA300 + select PXA310_ULPI if USB_ULPI help PXA310 (codename Monahans-LV)
@@ -681,4 +682,7 @@ config PXA_HAVE_BOARD_IRQS config PXA_HAVE_ISA_IRQS bool +config PXA310_ULPI + bool + endif
arch/arm/mach-pxa/Makefile +1 -0
@@ -21,6 +21,7 @@ obj-$(CONFIG_PXA25x) += mfp-pxa2xx.o pxa2xx.o pxa25x.o obj-$(CONFIG_PXA27x) += mfp-pxa2xx.o pxa2xx.o pxa27x.o obj-$(CONFIG_PXA3xx) += mfp-pxa3xx.o pxa3xx.o smemc.o obj-$(CONFIG_CPU_PXA300) += pxa300.o +obj-$(CONFIG_PXA310_ULPI) += pxa310-ulpi.o obj-$(CONFIG_CPU_PXA320) += pxa320.o obj-$(CONFIG_CPU_PXA930) += pxa930.o
arch/arm/mach-pxa/include/mach/pxa310-ulpi.h new file +19 -0
@@ -0,0 +1,19 @@ +/* +* PXA310 ULPI USB host header file. +* +* Copyright (C) 2010 CompuLab Ltd. +* +* Igor Grinberg <[email protected]> +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +*/ +#ifndef __PXA310_ULPI__ +#define __PXA310_ULPI__ + +#include <linux/usb/ulpi.h> + +extern struct otg_io_access_ops pxa310_ulpi_access_ops; + +#endif /* __PXA310_ULPI__ */
arch/arm/mach-pxa/pxa310-ulpi.c new file +110 -0
110 lines not on this page · raw message
Signature · 1 line
1.6.4.4
PATCH 4/5 usb/host/ohci-pxa27x: make PXA310 USB OTG port work in host mode.
--- arch/arm/mach-pxa/include/mach/ohci.h | 3 + arch/arm/mach-pxa/include/mach/regs-u2d.h | 2 + drivers/usb/host/ohci-pxa27x.c | 183 +++++++++++++++++++++++++++++ 3 files changed, 188 insertions(+), 0 deletions(-)
arch/arm/mach-pxa/include/mach/ohci.h +3 -0
@@ -29,6 +29,9 @@ struct pxaohci_platform_data {#define PMM_PERPORT_MODE 3int power_budget; + +struct otg_transceiver *otg; +unsigned long ulpi_mode; };extern void pxa_set_ohci_info (struct pxaohci_platform_data *info);
arch/arm/mach-pxa/include/mach/regs-u2d.h +2 -0
@@ -3,6 +3,8 @@#include <mach/bitfield.h> +#define U2D_PHYS_BASE 0x54100000 +/* * USB2 device controller registers and bits definitions */
drivers/usb/host/ohci-pxa27x.c +183 -0
246 lines not on this page · raw message
Signature · 1 line
1.6.4.4
PATCH 5/5 pxa/cm-x300: enable USB host port 2 on CM-X300 with PXA310 cpu.
--- arch/arm/mach-pxa/cm-x300.c | 102 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 102 insertions(+), 0 deletions(-)
arch/arm/mach-pxa/cm-x300.c +102 -0
@@ -19,6 +19,7 @@#include <linux/init.h> #include <linux/delay.h> #include <linux/platform_device.h> +#include <linux/clk.h> #include <linux/gpio.h> #include <linux/dm9000.h>
@@ -35,6 +36,9 @@#include <linux/spi/spi_gpio.h> #include <linux/spi/tdo24m.h> +#include <linux/usb/otg.h> +#include <linux/usb/ulpi.h> +#include <asm/mach-types.h> #include <asm/mach/arch.h> #include <asm/setup.h>
@@ -47,6 +51,7 @@#include <plat/i2c.h> #include <plat/pxa3xx_nand.h> #include <mach/audio.h> +#include <mach/pxa310-ulpi.h> #include <asm/mach/map.h>
@@ -65,6 +70,8 @@#define GPIO97_RTC_RD (97)#define GPIO98_RTC_IO (98) +#define GPIO127_ULPI_PHY_RST (127) +static mfp_cfg_t cm_x3xx_mfp_cfg[]__initdata = {/* LCD */ GPIO54_LCD_LDD_0 ,
@@ -470,23 +477,118 @@ static inline void cm_x300_init_mmc(void) {}#endif #if defined(CONFIG_USB_OHCI_HCD ) || defined(CONFIG_USB_OHCI_HCD_MODULE ) +#if defined(CONFIG_PXA310_ULPI ) +static struct clk *pout_clk; + +static int cm_x300_ulpi_clk_enable (void ) +{ +int err; + +/* CLK_POUT is connected to the ULPI PHY */ + pout_clk =clk_get (NULL ,"CLK_POUT" ); +if (IS_ERR (pout_clk)) { + err =PTR_ERR (pout_clk); +pr_err ("%s: failed to get CLK_POUT: %d\n" , __func__, err); +return err; + } +clk_enable (pout_clk); + +return 0 ; +} + +static inline void cm_x300_ulpi_clk_disable (void ) +{ +if (!IS_ERR (pout_clk)) { +clk_disable (pout_clk); +clk_put (pout_clk); + } +} + +static int cm_x300_ulpi_phy_reset (void ) +{ +int err; + +/* reset the PHY */ + err =gpio_request (GPIO127_ULPI_PHY_RST ,"ulpi reset" ); +if (err) { +pr_err ("%s: failed to request ULPI reset GPIO: %d\n" , + __func__, err); +return err; + } + +gpio_direction_output (GPIO127_ULPI_PHY_RST ,0 ); +msleep (10 ); +gpio_set_value (GPIO127_ULPI_PHY_RST ,1 ); +msleep (10 ); + +gpio_free (GPIO127_ULPI_PHY_RST ); + +return 0 ; +} + +static inline int cm_x300_ulpi_init (void ) +{ +int err; + + err =cm_x300_ulpi_clk_enable (); +if (err) +return err; + + err =cm_x300_ulpi_phy_reset (); +if (err) +pr_err ("%s: ULPI PHY init failed!\n" , __func__); + +return err; +} +#else +static inline int cm_x300_ulpi_init (void ) {return 0 ; } +static inline void cm_x300_ulpi_clk_disable (void ) {} +#endif /* CONFIG_PXA310_ULPI */ +static int cm_x300_ohci_init (struct device *dev) {if (cpu_is_pxa300 ())UP2OCR =UP2OCR_HXS |UP2OCR_HXOE |UP2OCR_DMPDE |UP2OCR_DPPDE ; +if (cpu_is_pxa310 ()) +cm_x300_ulpi_init (); +return 0 ; } +static void cm_x300_ohci_exit (struct device *dev) +{ +if (cpu_is_pxa310 ()) +cm_x300_ulpi_clk_disable (); +} +static struct pxaohci_platform_data cm_x300_ohci_platform_data = { .port_mode =PMM_PERPORT_MODE , .flags =ENABLE_PORT_ALL |POWER_CONTROL_LOW , .init = cm_x300_ohci_init, + .exit = cm_x300_ohci_exit, + +#if defined(CONFIG_PXA310_ULPI) + .ulpi_mode =ULPI_IC_6PIN , +#endif };static void __init cm_x300_init_ohci (void ) { +if (cpu_is_pxa310 ()) { +#if defined(CONFIG_PXA310_ULPI ) + cm_x300_ohci_platform_data.otg = +otg_ulpi_create (&pxa310_ulpi_access_ops, +USB_OTG_PULLDOWN_DM | +USB_OTG_PULLDOWN_DP | +USB_OTG_DRV_VBUS , +ULPI_IC_6PIN , +ULPI_FC_DEFAULT | +ULPI_FC_TRM_SEL ); +#endif + } +pxa_set_ohci_info (&cm_x300_ohci_platform_data); }#else
Signature · 1 line
1.6.4.4
PATCH 4/5 usb/host/ohci-pxa27x: make PXA310 USB OTG port work in host mode.
In reply to Igor GrinbergQuoted 7 lines · Igor Grinberg
Signed-off-by Igor Grinberg <[email protected]>Signed-off-by Mike Rapoport <[email protected]>---
?arch/arm/mach-pxa/include/mach/ohci.h ? ? | ? ?3 + ?arch/arm/mach-pxa/include/mach/regs-u2d.h | ? ?2 + ?drivers/usb/host/ohci-pxa27x.c ? ? ? ? ? ?| ?183 +++++++++++++++++++++++++++++
My feeling is on pxa310, the OTG/ULPI is actually closer to the UDC, so generally, I'd really like to see minimum change to ohci.
PATCH 4/5 usb/host/ohci-pxa27x: make PXA310 USB OTG port work in host mode.
Quoted 6 lines · Eric Miao
Quoted 1 line
?arch/arm/mach-pxa/include/mach/ohci.h ? ? | ? ?3
+
Quoted 1 line
?arch/arm/mach-pxa/include/mach/regs-u2d.h | ? ?2
+
Quoted 1 line
?drivers/usb/host/ohci-pxa27x.c ? ? ? ? ? ?|
?183 +++++++++++++++++++++++++++++
Doesn't touch generic OHCI code, so it looks
OK to me... ack.
Quoted 5 lines
My feeling is on pxa310, the OTG/ULPI is actually closer to the UDC, so
generally, I'd really like to see minimum change to ohci.
PATCH 4/5 usb/host/ohci-pxa27x: make PXA310 USB OTG port work in host mode.
In reply to Eric MiaoQuoted 10 lines · Eric Miao
Quoted 6 lines · Igor Grinberg
Signed-off-by Igor Grinberg <[email protected]>Signed-off-by Mike Rapoport <[email protected]>--- arch/arm/mach-pxa/include/mach/ohci.h | 3 + arch/arm/mach-pxa/include/mach/regs-u2d.h | 2 + drivers/usb/host/ohci-pxa27x.c | 183 +++++++++++++++++++++++++++++My feeling is on pxa310, the OTG/ULPI is actually closer to the UDC, so generally, I'd really like to see minimum change to ohci.
There are certain registers set up that should be done in order to enable the pxa310 otg port in the host mode. I agree that most of them should be done in the UDC driver, but since there's no UDC driver at all for pxa310, the most logical place for those register set ups would be pxa ohci glue driver.
Signature · 2 lines
Sincerely yours, Mike.
PATCH 4/5 usb/host/ohci-pxa27x: make PXA310 USB OTG port work in host mode.
Quoted 13 lines · Mike Rapoport
Quoted 12 lines · Eric Miao
Quoted 8 lines · Igor Grinberg
Signed-off-by Igor Grinberg <[email protected]>Signed-off-by Mike Rapoport <[email protected]>---
?arch/arm/mach-pxa/include/mach/ohci.h ? ? | ? ?3 + ?arch/arm/mach-pxa/include/mach/regs-u2d.h | ? ?2 + ?drivers/usb/host/ohci-pxa27x.c ? ? ? ? ? ?| ?183+++++++++++++++++++++++++++++
Quoted 6 lines
Quoted 2 lines
My feeling is on pxa310, the OTG/ULPI is actually closer to the UDC, so generally, I'd really like to see minimum change to ohci.
There are certain registers set up that should be done in order to enable the pxa310 otg port in the host mode. I agree that most of them should be done in the UDC driver, but since there's no UDC driver at all for pxa310,
Wow, that's a big problem.
Quoted 3 lines
the most logical place for those register set ups would be pxa ohci glue driver.
So, is there a simple way to setup the ULPI for the host within mach-pxa/*? We need really really simple code for that, so it has minimum impact when we move that part into pxa310-udc.c? I still want ohci-pxa27x to remain minimum impacted.
PATCH 4/5 usb/host/ohci-pxa27x: make PXA310 USB OTG port work in host mode.
Quoted 19 lines · Eric Miao
Quoted 10 lines · Mike Rapoport
Quoted 9 lines · Eric Miao
Quoted 7 lines · Igor Grinberg
Signed-off-by Igor Grinberg <[email protected]>Signed-off-by Mike Rapoport <[email protected]>--- arch/arm/mach-pxa/include/mach/ohci.h | 3 + arch/arm/mach-pxa/include/mach/regs-u2d.h | 2 + drivers/usb/host/ohci-pxa27x.c | 183+++++++++++++++++++++++++++++
Quoted 5 lines
Quoted 2 lines
My feeling is on pxa310, the OTG/ULPI is actually closer to the UDC, so generally, I'd really like to see minimum change to ohci.
There are certain registers set up that should be done in order to enable the pxa310 otg port in the host mode. I agree that most of them should be done in the UDC driver, but since there's no UDC driver at all for pxa310,
Wow, that's a big problem.
Quoted 8 lines
Quoted 3 lines
the most logical place for those register set ups would be pxa ohci glue driver.
So, is there a simple way to setup the ULPI for the host within mach-pxa/*? We need really really simple code for that, so it has minimum impact when we move that part into
pxa310-udc.c? I still want ohci-pxa27x to remain minimum impacted.
we can put most of the code in, say, arch/arm/mach-pxa/pxa3xx-u2d.c and add hooks in ohci-pxa27x.
Signature · 2 lines
Sincerely yours, Mike.
PATCH 1/5 usb/otg/ulpi: extend the generic ulpi driver.
In reply to Igor GrinbergQuoted 23 lines
(quoted diff) +23
-0+/* ULPI Function Control Register bits */ +#define ULPI_FC_HS ? ? 0 ? ? ? ? ? ? ? /* Enable HS tcvr */ +#define ULPI_FC_FS ? ? (0x1 << 0) ? ? ?/* Enable FS tcvr */ +#define ULPI_FC_LS ? ? (0x2 << 0) ? ? ?/* Enable LS tcvr */ +#define ULPI_FC_FS_LS ?(0x3 << 0) ? ? ?/* Enable FS tcvr for LS packets */ +#define ULPI_FC_TRM_SEL ? ? ? ?(0x1 << 2) ? ? ?/* Internal pullup and HS termination */ +#define ULPI_FC_NODRV ?(0x1 << 3) ? ? ?/* Non-Driving Operation */ +#define ULPI_FC_NONRZI (0x1 << 4) ? ? ?/* Disable bit-stuff and NRZI encode */ +#define ULPI_FC_RESET ?(0x1 << 5) ? ? ?/* Reset the UTMI core */ +#define ULPI_FC_DEFAULT ? ? ? ?0x41 ? ? ? ? ? ?/* Function Control Register Default */ + + +/* ULPI Interface Register bits */ +#define ULPI_IC_6PIN ? (1 << 0) ? ? ? ?/* XCVR 6 serial pin mode */ +#define ULPI_IC_3PIN ? (1 << 1) ? ? ? ?/* XCVR 3 serial pin mode */ +#define ULPI_IC_CARKIT (1 << 2) ? ? ? ?/* Carkit mode */ +#define ULPI_IC_CLKSPND ? ? ? ?(1 << 3) ? ? ? ?/* Active low clock suspend */ +#define ULPI_IC_AUTORES ? ? ? ?(1 << 4) ? ? ? ?/* PHY auto transmit resume signal */ +#define ULPI_IC_VBUSINV ? ? ? ?(1 << 5) ? ? ? ?/* Invert the external VBUS indicator */ +#define ULPI_IC_INDPT ?(1 << 6) ? ? ? ?/* Indicator Pass Through */ +#define ULPI_IC_DISPRT (1 << 7) ? ? ? ?/* Interface Protect Disable */ +#define ULPI_IC_DEFAULT ? ? ? ?0x0 ? ? ? ? ? ? /* Interface Control Register Default */ +
Quoted 4 lines
?struct
otg_transceiver*otg_ulpi_create(structotg_io_access_ops*ops,
- ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? unsigned int flags);
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? u8fc_flags, u8ic_flags, u8otg_flags);
Just one comment about the API, I might not know all the detail of these two FC/IC registers, but maybe it can be even better:
1. separate flags definition from the FC/IC register bits, i.e. sometimes not all the register bits will be used, and some times a meaningful flag name is better (though the flag definition can be encoded properly to simplify the algorithm to map into the actual register bits)
2. extend the original 'flags' variable and bits for the above definitions, so we can keep the API unchanged.
PATCH 1/5 usb/otg/ulpi: extend the generic ulpi driver.
Quoted 3 lines · Eric Miao
From: Eric Miao <[email protected]>
Subject: Re: [PATCH 1/5] usb/otg/ulpi: extend the generic ulpi driver.
To: "Igor Grinberg" <[email protected]>
Isn't this patch From: Igor?
It arrived in my mailbox a bit mangled.
A quick scan suggests its OK, but I can't test or evanulate it just now, e.g. to see if it breaks anything else, builds, etc. Plus, I've not looked at this driver.
Felipe, got any comments? Is this driver generic enough that MUSB could use it for ULPI access?
PATCH 1/5 usb/otg/ulpi: extend the generic ulpi driver.
In reply to Eric MiaoQuoted 31 lines · Eric Miao
Quoted 18 lines
include/linux/usb/ulpi.h +16
-0+/* ULPI Function Control Register bits */ +#define ULPI_FC_HS 0/* Enable HS tcvr */ +#define ULPI_FC_FS (0x1 << 0)/* Enable FS tcvr */ +#define ULPI_FC_LS (0x2 << 0)/* Enable LS tcvr */ +#define ULPI_FC_FS_LS (0x3 << 0)/* Enable FS tcvr for LS packets */ +#define ULPI_FC_TRM_SEL (0x1 << 2)/* Internal pullup and HS termination */ +#define ULPI_FC_NODRV (0x1 << 3)/* Non-Driving Operation */ +#define ULPI_FC_NONRZI (0x1 << 4)/* Disable bit-stuff and NRZI encode */ +#define ULPI_FC_RESET (0x1 << 5)/* Reset the UTMI core */ +#define ULPI_FC_DEFAULT 0x41/* Function Control Register Default */ + + +/* ULPI Interface Register bits */ +#define ULPI_IC_6PIN (1 << 0)/* XCVR 6 serial pin mode */ +#define ULPI_IC_3PIN (1 << 1)/* XCVR 3 serial pin mode */ +#define ULPI_IC_CARKIT (1 << 2)/* Carkit mode */ include/linux/usb/ulpi.h line 28
Quoted 10 lines
include/linux/usb/ulpi.h +8
-1+#define ULPI_IC_CLKSPND (1 << 3)/* Active low clock suspend */ +#define ULPI_IC_AUTORES (1 << 4)/* PHY auto transmit resume signal */ +#define ULPI_IC_VBUSINV (1 << 5)/* Invert the external VBUS indicator */ +#define ULPI_IC_INDPT (1 << 6)/* Indicator Pass Through */ +#define ULPI_IC_DISPRT (1 << 7)/* Interface Protect Disable */ +#define ULPI_IC_DEFAULT 0x0/* Interface Control Register Default */ +struct otg_transceiver *otg_ulpi_create (struct otg_io_access_ops *ops, -unsigned int flags); +u8 fc_flags,u8 ic_flags,u8 otg_flags);Just one comment about the API, I might not know all the detail of these two FC/IC registers, but maybe it can be even better:
Quoted 6 lines
1. separate flags definition from the FC/IC register bits, i.e. sometimes not all the register bits will be used, and some times a meaningful flag name is better (though the flag definition can be encoded properly to simplify the algorithm to map into the actual register bits)
I understand what you mean and I think it is indeed better to keep the bits and registers private
to the ulpi driver and export only some usable flags. Meanwhile, there is new ulpi.h, merged between 2.6.34 and 2.6.35-rc1 and it violates already
the concept of keeping the bits/regs private.
For now there are too many combinations of those bits and it is impossible to summarize them
in some way usable flags.
pxa310 uses only a reletively small subset of the ulpi register bits, so we could define
flags specific to pxa310 in the new pxa310-u2d.c or pxa310-u2d.h, so board will only pass those flags
to the pxa310-u2d.c driver which in turn will translate them to the ulpi register settings.
Quoted 3 lines
2. extend the original 'flags' variable and bits for the above definitions, so we can keep the API unchanged.
Well, I think that the current API is still fresh and it does only support current implementation
in which the flags are stored in otg_transceiver and there is no any private data to the ulpi driver.
Quoted 6 lines
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 2 lines
Regards, Igor.
PATCH 1/1 ARM: imx: fix build failure concerning otg/ulpi
In reply to Igor GrinbergThe build failure was introduced by
13dd0c9 (USB: otg/ulpi: extend the generic ulpi driver.)
--- arch/arm/mach-imx/mach-cpuimx27.c | 4 ++-- arch/arm/mach-imx/mach-pca100.c | 4 ++-- arch/arm/mach-mx25/mach-cpuimx25.c | 2 +- arch/arm/mach-mx3/mach-cpuimx35.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-)
arch/arm/mach-imx/mach-cpuimx27.c +2 -2
@@ -279,13 +279,13 @@ static void __init eukrea_cpuimx27_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_otg_host, &otg_pdata); } usbh2_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_usbh2, &usbh2_pdata);#endif
arch/arm/mach-imx/mach-pca100.c +2 -2
@@ -419,13 +419,13 @@ static void __init pca100_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_otg_host, &otg_pdata); } usbh2_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_usbh2, &usbh2_pdata);#endif
arch/arm/mach-mx25/mach-cpuimx25.c +1 -1
@@ -138,7 +138,7 @@ static void __init eukrea_cpuimx25_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +USB_OTG_DRV_VBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_otg, &otg_pdata); }
arch/arm/mach-mx3/mach-cpuimx35.c +1 -1
@@ -192,7 +192,7 @@ static void __init mxc_board_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +USB_OTG_DRV_VBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_otg_host, &otg_pdata); }
Signature · 1 line
1.7.1
Re: [PATCH] ARM: imx: fix build failure concerning otg/ulpi
Hello.
Quoted 7 lines · Uwe Kleine-K?nig
The build failure was introduced by
13dd0c9 (USB: otg/ulpi: extend the generic ulpi driver.)
Cc Igor Grinberg <[email protected]>Cc Mike Rapoport <[email protected]>Cc Greg Kroah-Hartman <[email protected]>
Signoff is missing.
Quoted 45 lines
arch/arm/mach-imx/mach-cpuimx27.c +2
-2@@ -279,13 +279,13 @@ static void __init eukrea_cpuimx27_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_otg_host, &otg_pdata); } usbh2_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_usbh2, &usbh2_pdata);#endif arch/arm/mach-imx/mach-pca100.c +2
-2@@ -419,13 +419,13 @@ static void __init pca100_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_otg_host, &otg_pdata); } usbh2_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_usbh2, &usbh2_pdata);#endif arch/arm/mach-mx25/mach-cpuimx25.c +0
-0
arch/arm/mach-mx25/mach-cpuimx25.c static void __init eukrea_cpuimx25_init(void) · line 141
Quoted 5 lines
arch/arm/mach-mx25/mach-cpuimx25.c +1
-1@@ -138,7 +138,7 @@ static void __init eukrea_cpuimx25_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +USB_OTG_DRV_VBUS |ULPI_OTG_DRVVBUS_EXT );
Not ULPI_OTG_DRVVBUS, like in other cases?
arch/arm/mach-mx3/mach-cpuimx35.c static void __init mxc_board_init(void) · line 195
Quoted 13 lines
arch/arm/mach-mx25/mach-cpuimx25.c +0
-0mxc_register_device (&mxc_otg, &otg_pdata); }arch/arm/mach-mx3/mach-cpuimx35.c +1
-1@@ -192,7 +192,7 @@ static void __init mxc_board_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +USB_OTG_DRV_VBUS |ULPI_OTG_DRVVBUS_EXT );
Same question here...
WBR, Sergei
PATCH v2 1/1 ARM: imx: fix build failure concerning otg/ulpi
The build failure was introduced by
13dd0c9 (USB: otg/ulpi: extend the generic ulpi driver.)
--- arch/arm/mach-imx/mach-cpuimx27.c | 4 ++-- arch/arm/mach-imx/mach-pca100.c | 4 ++-- arch/arm/mach-mx25/mach-cpuimx25.c | 2 +- arch/arm/mach-mx3/mach-cpuimx35.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-)
arch/arm/mach-imx/mach-cpuimx27.c +2 -2
@@ -279,13 +279,13 @@ static void __init eukrea_cpuimx27_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_otg_host, &otg_pdata); } usbh2_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_usbh2, &usbh2_pdata);#endif
arch/arm/mach-imx/mach-pca100.c +2 -2
@@ -419,13 +419,13 @@ static void __init pca100_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_otg_host, &otg_pdata); } usbh2_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_usbh2, &usbh2_pdata);#endif
arch/arm/mach-mx25/mach-cpuimx25.c +1 -1
@@ -138,7 +138,7 @@ static void __init eukrea_cpuimx25_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_otg, &otg_pdata); }
arch/arm/mach-mx3/mach-cpuimx35.c +1 -1
@@ -192,7 +192,7 @@ static void __init mxc_board_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_otg_host, &otg_pdata); }
Signature · 1 line
1.7.1
Re: [PATCH v2] ARM: imx: fix build failure concerning otg/ulpi
Quoted 9 lines · Uwe Kleine-K?nig
The build failure was introduced by
13dd0c9 (USB: otg/ulpi: extend the generic ulpi driver.)
Cc Igor Grinberg <[email protected]>Cc Mike Rapoport <[email protected]>Cc Greg Kroah-Hartman <[email protected]>Signed-off-by Uwe Kleine-K?nig <[email protected]>
I've based my patches on v2.6.35-rc6, so I could not patch those imx variants, sorry...
But I did deal with mach-pca100.c, so I think moving it from mach-mx2 to mach-imx is what made it miss my patch.
Anyway, this looks like the right addition.
Thanks
Quoted 74 lines
--- arch/arm/mach-imx/mach-cpuimx27.c | 4 ++-- arch/arm/mach-imx/mach-pca100.c | 4 ++-- arch/arm/mach-mx25/mach-cpuimx25.c | 2 +- arch/arm/mach-mx3/mach-cpuimx35.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-)arch/arm/mach-imx/mach-cpuimx27.c +2
-2@@ -279,13 +279,13 @@ static void __init eukrea_cpuimx27_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_otg_host, &otg_pdata); } usbh2_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_usbh2, &usbh2_pdata);#endif arch/arm/mach-imx/mach-pca100.c +2
-2@@ -419,13 +419,13 @@ static void __init pca100_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_otg_host, &otg_pdata); } usbh2_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_usbh2, &usbh2_pdata);#endif arch/arm/mach-mx25/mach-cpuimx25.c +1
-1@@ -138,7 +138,7 @@ static void __init eukrea_cpuimx25_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_otg, &otg_pdata); }arch/arm/mach-mx3/mach-cpuimx35.c +1
-1@@ -192,7 +192,7 @@ static void __init mxc_board_init(void)#if defined(CONFIG_USB_ULPI )if (otg_mode_host) { otg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); +ULPI_OTG_DRVVBUS |ULPI_OTG_DRVVBUS_EXT );mxc_register_device (&mxc_otg_host, &otg_pdata); }
Signature · 2 lines
Regards, Igor.
Re: [PATCH v2] ARM: imx: fix build failure concerning otg/ulpi
Hello Igor,
Quoted 11 lines · Igor Grinberg
Quoted 9 lines · Uwe Kleine-K?nig
The build failure was introduced by
13dd0c9 (USB: otg/ulpi: extend the generic ulpi driver.)
Cc Igor Grinberg <[email protected]>Cc Mike Rapoport <[email protected]>Cc Greg Kroah-Hartman <[email protected]>Signed-off-by Uwe Kleine-K?nig <[email protected]>
Quoted 6 lines
I've based my patches on v2.6.35-rc6, so I could not patch those imx variants, sorry...
But I did deal withmach-pca100.c, so I think moving it from mach-mx2 to mach-imx is what made it miss my patch.Anyway, this looks like the right addition.
I assume this is an Ack?
Best regards
Uwe
Signature · 2 lines
Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |
Igor Grinberg
Acked-byRe: [PATCH v2] ARM: imx: fix build failure concerning otg/ulpi
Quoted 16 lines · Uwe Kleine-K?nig
Hello Igor,
Quoted 12 lines · Igor Grinberg
Quoted 10 lines · Uwe Kleine-K?nig
The build failure was introduced by
13dd0c9 (USB: otg/ulpi: extend the generic ulpi driver.)
Cc Igor Grinberg <[email protected]>Cc Mike Rapoport <[email protected]>Cc Greg Kroah-Hartman <[email protected]>Signed-off-by Uwe Kleine-K?nig <[email protected]>
Quoted 9 lines
Quoted 7 lines
I've based my patches on v2.6.35-rc6, so I could not patch those imx variants, sorry...
But I did deal withmach-pca100.c, so I think moving it from mach-mx2 to mach-imx is what made it miss my patch.Anyway, this looks like the right addition.
I assume this is an Ack?
Greg,
Can you, please, add this as a fix (maybe urgent) for build failure?
Thanks
Quoted 4 lines
Best regards
Uwe
Signature · 2 lines
Regards, Igor.
Re: [PATCH v2] ARM: imx: fix build failure concerning otg/ulpi
Greg,
ping...
Quoted 39 lines · Igor Grinberg
Quoted 16 lines · Uwe Kleine-K?nig
Hello Igor,
Quoted 12 lines · Igor Grinberg
Quoted 10 lines · Uwe Kleine-K?nig
The build failure was introduced by
13dd0c9 (USB: otg/ulpi: extend the generic ulpi driver.)
Cc Igor Grinberg <[email protected]>Cc Mike Rapoport <[email protected]>Cc Greg Kroah-Hartman <[email protected]>Signed-off-by Uwe Kleine-K?nig <[email protected]>Quoted 9 lines
Quoted 7 lines
I've based my patches on v2.6.35-rc6, so I could not patch those imx variants, sorry...
But I did deal withmach-pca100.c, so I think moving it from mach-mx2 to mach-imx is what made it miss my patch.Anyway, this looks like the right addition.
I assume this is an Ack?
Acked-by Igor Grinberg <[email protected]>Greg,
Can you, please, add this as a fix (maybe urgent) for build failure?
Thanks
Quoted 4 lines
Best regards
Uwe
Signature · 2 lines
Regards, Igor.
Re: [PATCH v2] ARM: imx: fix build failure concerning otg/ulpi
Quoted 3 lines · Igor Grinberg
Greg,
ping...
Sorry, it's in my queue, swamped with -stable work at the moment. Will get to Linus soon...
greg k-h
cover Enable pxa310 usb otg port host mode.
In reply to Igor GrinbergQuoted 6 lines · Igor Grinberg
This patch series extends the existing usb ulpi generic driver with support for Function and Interface control of the ULPI PHYs, adds support for SMSC USB3319 ulpi phy,
implement the pxa310 specific ulpi functionality and make pxa specific ohci implementation aware of pxa310 usb otg port host mode.
Looks like a right way to go, include Haojian and Jing for review.
Quoted 30 lines
Igor Grinberg (5):
?usb/otg/ulpi: extend the generic ulpi driver. ?usb/otg/ulpi: add support for SMSC USB3319 ulpi phy. ?[ARM] pxa: add PXA310 specific ULPI implementation
?[ARM] usb/host/ohci-pxa27x: make PXA310 USB OTG port work in host ? ?mode.
?[ARM] pxa/cm-x300: enable USB host port 2 on CM-X300 with PXA310 cpu.?arch/arm/mach-mx2/mach-pca100.c ? ? ? ? ? ? ?| ? 10 +- ?arch/arm/mach-mx3/mach-armadillo5x0.c ? ? ? ?| ? 10 +- ?arch/arm/mach-mx3/mach-mx31lite.c ? ? ? ? ? ?| ? ?5 +- ?arch/arm/mach-mx3/mach-mx31moboard.c ? ? ? ? | ? ?5 +- ?arch/arm/mach-mx3/mach-pcm037.c ? ? ? ? ? ? ?| ? 10 +- ?arch/arm/mach-mx3/mach-pcm043.c ? ? ? ? ? ? ?| ? ?5 +- ?arch/arm/mach-pxa/Kconfig ? ? ? ? ? ? ? ? ? ?| ? ?4 + ?arch/arm/mach-pxa/Makefile ? ? ? ? ? ? ? ? ? | ? ?1 + ?arch/arm/mach-pxa/cm-x300.c ? ? ? ? ? ? ? ? ?| ?102 ++++++++++++++ ?arch/arm/mach-pxa/include/mach/ohci.h ? ? ? ?| ? ?3 + ?arch/arm/mach-pxa/include/mach/pxa310-ulpi.h | ? 19 +++ ?arch/arm/mach-pxa/include/mach/regs-u2d.h ? ?| ? ?2 + ?arch/arm/mach-pxa/pxa310-ulpi.c ? ? ? ? ? ? ?| ?110 +++++++++++++++ ?drivers/usb/host/ohci-pxa27x.c ? ? ? ? ? ? ? | ?183 ++++++++++++++++++++++++++ ?drivers/usb/otg/Kconfig ? ? ? ? ? ? ? ? ? ? ?| ? ?2 - ?drivers/usb/otg/ulpi.c ? ? ? ? ? ? ? ? ? ? ? | ? 65 ++++++++- ?include/linux/usb/ulpi.h ? ? ? ? ? ? ? ? ? ? | ? 25 ++++-?17 files changed, 542 insertions(+), 19 deletions(-) ?create mode 100644
arch/arm/mach-pxa/include/mach/pxa310-ulpi.h?create mode 100644arch/arm/mach-pxa/pxa310-ulpi.c
cover Enable pxa310 usb otg port host mode.
ping!
Quoted 44 lines · Eric Miao
Quoted 7 lines · Igor Grinberg
This patch series extends the existing usb ulpi generic driver with support for Function and Interface control of the ULPI PHYs, adds support for SMSC USB3319 ulpi phy,
implement the pxa310 specific ulpi functionality and make pxa specific ohci implementation aware of pxa310 usb otg port host mode.Looks like a right way to go, include Haojian and Jing for review.
Quoted 31 lines
Igor Grinberg (5):
usb/otg/ulpi: extend the generic ulpi driver. usb/otg/ulpi: add support for SMSC USB3319 ulpi phy.
[ARM] pxa: add PXA310 specific ULPI implementation
[ARM] usb/host/ohci-pxa27x: make PXA310 USB OTG port work in host
mode.
[ARM] pxa/cm-x300: enable USB host port 2 on CM-X300 with PXA310 cpu.arch/arm/mach-mx2/mach-pca100.c | 10 +- arch/arm/mach-mx3/mach-armadillo5x0.c | 10 +- arch/arm/mach-mx3/mach-mx31lite.c | 5 +- arch/arm/mach-mx3/mach-mx31moboard.c | 5 +- arch/arm/mach-mx3/mach-pcm037.c | 10 +- arch/arm/mach-mx3/mach-pcm043.c | 5 +- arch/arm/mach-pxa/Kconfig | 4 + arch/arm/mach-pxa/Makefile | 1 + arch/arm/mach-pxa/cm-x300.c | 102 ++++++++++++++ arch/arm/mach-pxa/include/mach/ohci.h | 3 + arch/arm/mach-pxa/include/mach/pxa310-ulpi.h | 19 +++ arch/arm/mach-pxa/include/mach/regs-u2d.h | 2 + arch/arm/mach-pxa/pxa310-ulpi.c | 110 +++++++++++++++ drivers/usb/host/ohci-pxa27x.c | 183 ++++++++++++++++++++++++++ drivers/usb/otg/Kconfig | 2 - drivers/usb/otg/ulpi.c | 65 ++++++++- include/linux/usb/ulpi.h | 25 ++++- 17 files changed, 542 insertions(+), 19 deletions(-) create mode 100644 arch/arm/mach-pxa/include/mach/pxa310-ulpi.h create mode 100644 arch/arm/mach-pxa/pxa310-ulpi.c
Signature · 2 lines
Regards, Igor.
cover Enable pxa310 usb otg port host mode.
In reply to Igor GrinbergEric, Greg,
Any comments on this?
Quoted 39 lines · Igor Grinberg
This patch series extends the existing usb ulpi generic driver with support for Function and Interface control of the ULPI PHYs, adds support for SMSC USB3319 ulpi phy,
implement the pxa310 specific ulpi functionality and make pxa specific ohci implementation aware of pxa310 usb otg port host mode.Igor Grinberg (5):
usb/otg/ulpi: extend the generic ulpi driver. usb/otg/ulpi: add support for SMSC USB3319 ulpi phy.
[ARM] pxa: add PXA310 specific ULPI implementation
[ARM] usb/host/ohci-pxa27x: make PXA310 USB OTG port work in host
mode.
[ARM] pxa/cm-x300: enable USB host port 2 on CM-X300 with PXA310 cpu.arch/arm/mach-mx2/mach-pca100.c | 10 +- arch/arm/mach-mx3/mach-armadillo5x0.c | 10 +- arch/arm/mach-mx3/mach-mx31lite.c | 5 +- arch/arm/mach-mx3/mach-mx31moboard.c | 5 +- arch/arm/mach-mx3/mach-pcm037.c | 10 +- arch/arm/mach-mx3/mach-pcm043.c | 5 +- arch/arm/mach-pxa/Kconfig | 4 + arch/arm/mach-pxa/Makefile | 1 + arch/arm/mach-pxa/cm-x300.c | 102 ++++++++++++++ arch/arm/mach-pxa/include/mach/ohci.h | 3 + arch/arm/mach-pxa/include/mach/pxa310-ulpi.h | 19 +++ arch/arm/mach-pxa/include/mach/regs-u2d.h | 2 + arch/arm/mach-pxa/pxa310-ulpi.c | 110 +++++++++++++++ drivers/usb/host/ohci-pxa27x.c | 183 ++++++++++++++++++++++++++ drivers/usb/otg/Kconfig | 2 - drivers/usb/otg/ulpi.c | 65 ++++++++- include/linux/usb/ulpi.h | 25 ++++- 17 files changed, 542 insertions(+), 19 deletions(-) create mode 100644 arch/arm/mach-pxa/include/mach/pxa310-ulpi.h create mode 100644 arch/arm/mach-pxa/pxa310-ulpi.c--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 2 lines
Sincerely yours, Mike.
cover Enable pxa310 usb otg port host mode.
Quoted 3 lines · Mike Rapoport
Eric, Greg,
Any comments on this?
The basic idea looks OK to me, but I need some time to look into the detail esp. those HW specific where Marvell guys are a bit silent :-/