Register the USB misc devices and provide convenience wrappers to register the USB ports for i.MX27. Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> --- arch/arm/mach-imx/devices.c | 5 +++++ arch/arm/mach-imx/imx27.c | 1 + arch/arm/mach-imx/include/mach/devices-imx27.h | 15 +++++++++++++++ arch/arm/mach-imx/include/mach/devices.h | 2 ++ 4 files changed, 23 insertions(+) diff --git a/arch/arm/mach-imx/devices.c b/arch/arm/mach-imx/devices.c index d82fbf7..682f39a 100644 --- a/arch/arm/mach-imx/devices.c +++ b/arch/arm/mach-imx/devices.c @@ -72,3 +72,8 @@ struct device_d *imx_add_pata(void *base) { return imx_add_device("imx-pata", -1, base, 0x1000, NULL); } + +struct device_d *imx_add_usb(void *base, int id, struct imxusb_platformdata *pdata) +{ + return imx_add_device("imx-usb", id, base, 0x200, pdata); +} diff --git a/arch/arm/mach-imx/imx27.c b/arch/arm/mach-imx/imx27.c index 31117f4..6d30276 100644 --- a/arch/arm/mach-imx/imx27.c +++ b/arch/arm/mach-imx/imx27.c @@ -118,6 +118,7 @@ static int imx27_init(void) add_generic_device("imx1-gpio", 5, NULL, MX27_GPIO6_BASE_ADDR, 0x100, IORESOURCE_MEM, NULL); add_generic_device("imx21-wdt", 0, NULL, MX27_WDOG_BASE_ADDR, 0x1000, IORESOURCE_MEM, NULL); add_generic_device("imx27-esdctl", 0, NULL, MX27_ESDCTL_BASE_ADDR, 0x1000, IORESOURCE_MEM, NULL); + add_generic_device("imx27-usb-misc", 0, NULL, MX27_USB_OTG_BASE_ADDR + 0x600, 0x100, IORESOURCE_MEM, NULL); return 0; } diff --git a/arch/arm/mach-imx/include/mach/devices-imx27.h b/arch/arm/mach-imx/include/mach/devices-imx27.h index 79da935..d6c884a 100644 --- a/arch/arm/mach-imx/include/mach/devices-imx27.h +++ b/arch/arm/mach-imx/include/mach/devices-imx27.h @@ -70,3 +70,18 @@ static inline struct device_d *imx27_add_mmc2(void *pdata) { return imx_add_mmc((void *)MX27_SDHC3_BASE_ADDR, 2, pdata); } + +static inline struct device_d *imx27_add_usbotg(void *pdata) +{ + return imx_add_usb((void *)MX27_USB_OTG_BASE_ADDR, 0, pdata); +} + +static inline struct device_d *imx27_add_usbh1(void *pdata) +{ + return imx_add_usb((void *)MX27_USB_OTG_BASE_ADDR + 0x200, 1, pdata); +} + +static inline struct device_d *imx27_add_usbh2(void *pdata) +{ + return imx_add_usb((void *)MX27_USB_OTG_BASE_ADDR + 0x400, 2, pdata); +} diff --git a/arch/arm/mach-imx/include/mach/devices.h b/arch/arm/mach-imx/include/mach/devices.h index 016778a..5929658 100644 --- a/arch/arm/mach-imx/include/mach/devices.h +++ b/arch/arm/mach-imx/include/mach/devices.h @@ -7,6 +7,7 @@ #include <mach/imxfb.h> #include <mach/imx-ipu-fb.h> #include <mach/esdhc.h> +#include <usb/chipidea-imx.h> struct device_d *imx_add_fec_imx27(void *base, struct fec_platform_data *pdata); struct device_d *imx_add_fec_imx6(void *base, struct fec_platform_data *pdata); @@ -21,3 +22,4 @@ struct device_d *imx_add_mmc(void *base, int id, void *pdata); struct device_d *imx_add_esdhc(void *base, int id, struct esdhc_platform_data *pdata); struct device_d *imx_add_kpp(void *base, struct matrix_keymap_data *pdata); struct device_d *imx_add_pata(void *base); +struct device_d *imx_add_usb(void *base, int id, struct imxusb_platformdata *pdata); -- 1.7.10.4 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox