for ttc_dkb board, add udc/otg/ehci support Signed-off-by: Chao Xie <chao.xie@xxxxxxxxxxx> --- arch/arm/mach-mmp/ttc_dkb.c | 50 +++++++++++++++++++++++++++++++++--------- 1 files changed, 39 insertions(+), 11 deletions(-) diff --git a/arch/arm/mach-mmp/ttc_dkb.c b/arch/arm/mach-mmp/ttc_dkb.c index ce55fd8..5622092 100644 --- a/arch/arm/mach-mmp/ttc_dkb.c +++ b/arch/arm/mach-mmp/ttc_dkb.c @@ -18,6 +18,8 @@ #include <linux/i2c/pca953x.h> #include <linux/gpio.h> #include <linux/mfd/88pm860x.h> +#include <linux/usb/phy.h> +#include <linux/usb/mv_usb2.h> #include <linux/platform_data/mv_usb.h> #include <asm/mach-types.h> @@ -27,7 +29,6 @@ #include <mach/mfp-pxa910.h> #include <mach/pxa910.h> #include <mach/irqs.h> -#include <mach/regs-usb.h> #include "common.h" @@ -158,20 +159,24 @@ static struct i2c_board_info ttc_dkb_i2c_info[] = { }; #ifdef CONFIG_USB_SUPPORT -#if defined(CONFIG_USB_MV_UDC) || defined(CONFIG_USB_EHCI_MV_U2O) static char *pxa910_usb_clock_name[] = { - [0] = "U2OCLK", + [0] = "usb_clk", }; +static struct mv_usb_phy_platform_data ttc_usb_phy_pdata = { + .clknum = 1, + .clkname = pxa910_usb_clock_name, +}; + +#if defined(CONFIG_USB_MV_UDC) || defined(CONFIG_USB_EHCI_MV_U2O) + static struct mv_usb_platform_data ttc_usb_pdata = { .clknum = 1, .clkname = pxa910_usb_clock_name, .vbus = NULL, .mode = MV_USB_MODE_OTG, .otg_force_a_bus_req = 1, - .phy_init = pxa_usb_phy_init, - .phy_deinit = pxa_usb_phy_deinit, .set_vbus = NULL, }; #endif @@ -198,19 +203,42 @@ static void __init ttc_dkb_init(void) pxa910_add_twsi(0, NULL, ARRAY_AND_SIZE(ttc_dkb_i2c_info)); platform_add_devices(ARRAY_AND_SIZE(ttc_dkb_devices)); +#ifdef CONFIG_USB_SUPPORT + pxa_register_device(&pxa910_device_u2ophy, &ttc_usb_phy_pdata, + sizeof(ttc_usb_phy_pdata)); +#endif + #ifdef CONFIG_USB_MV_UDC - pxa168_device_u2o.dev.platform_data = &ttc_usb_pdata; - platform_device_register(&pxa168_device_u2o); + /* for usb2 phy */ + usb_bind_phy(pxa910_device_u2o.drv_name, MV_USB2_PHY_INDEX, + pxa910_device_u2ophy.drv_name); +#ifdef CONFIG_USB_MV_OTG + /* for usb2 otg phy */ + usb_bind_phy(pxa910_device_u2o.drv_name, MV_USB2_OTG_PHY_INDEX, + pxa910_device_u2ootg.drv_name); +#endif + pxa_register_device(&pxa910_device_u2o, &ttc_usb_pdata, + sizeof(ttc_usb_pdata)); #endif #ifdef CONFIG_USB_EHCI_MV_U2O - pxa168_device_u2oehci.dev.platform_data = &ttc_usb_pdata; - platform_device_register(&pxa168_device_u2oehci); + /* for usb2 phy */ + usb_bind_phy(pxa910_device_u2oehci.drv_name, MV_USB2_PHY_INDEX, + pxa910_device_u2ophy.drv_name); +#ifdef CONFIG_USB_MV_OTG + /* for usb2 otg phy */ + usb_bind_phy(pxa910_device_u2oehci.drv_name, MV_USB2_OTG_PHY_INDEX, + pxa910_device_u2ootg.drv_name); +#endif + pxa_register_device(&pxa910_device_u2oehci, &ttc_usb_pdata, + sizeof(ttc_usb_pdata)); #endif #ifdef CONFIG_USB_MV_OTG - pxa168_device_u2ootg.dev.platform_data = &ttc_usb_pdata; - platform_device_register(&pxa168_device_u2ootg); + usb_bind_phy(pxa910_device_u2ootg.drv_name, MV_USB2_PHY_INDEX, + pxa910_device_u2ophy.drv_name); + pxa_register_device(&pxa910_device_u2ootg, &ttc_usb_pdata, + sizeof(ttc_usb_pdata)); #endif } -- 1.7.4.1 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html