This patch adds support for USB on OMAP34XX. This adds a working board-3430sdp-usb.c file. Signed-off-by: Anand Gadiyar <gadiyar@xxxxxx> Signed-off-by: Vikram Pandita <vikram.pandita@xxxxxx> Signed-off-by: Nishant Kamat <nskamat@xxxxxx> --- arch/arm/mach-omap2/Makefile | 3 - arch/arm/mach-omap2/board-3430sdp-usb.c | 77 ++++++++++++++++++++++++++++++++ arch/arm/mach-omap2/board-3430sdp.c | 3 + 3 files changed, 82 insertions(+), 1 deletion(-) Index: linux-omap/arch/arm/mach-omap2/Makefile =================================================================== --- linux-omap.orig/arch/arm/mach-omap2/Makefile 2007-12-05 10:02:53.000000000 +0530 +++ linux-omap/arch/arm/mach-omap2/Makefile 2007-12-05 17:04:09.664182922 +0530 @@ -26,7 +26,8 @@ board-2430sdp-flash.o \ board-2430sdp-usb.o obj-$(CONFIG_MACH_OMAP_2430OSK) += board-2430osk.o -obj-$(CONFIG_MACH_OMAP_3430SDP) += board-3430sdp.o +obj-$(CONFIG_MACH_OMAP_3430SDP) += board-3430sdp.o \ + board-3430sdp-usb.o obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o \ board-apollon-mmc.o \ board-apollon-keys.o Index: linux-omap/arch/arm/mach-omap2/board-3430sdp-usb.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ linux-omap/arch/arm/mach-omap2/board-3430sdp-usb.c 2007-12-05 17:04:09.664182922 +0530 @@ -0,0 +1,77 @@ +/* + * linux/arch/arm/mach-omap2/board-3430sdp-usb.c + * + * This file will contain the board specific details for the + * MENTOR USB OTG and Synopsys EHCI host controllers on OMAP3430 + * + * Copyright (C) 2007 Texas Instruments + * Author: Vikram Pandita + * + * 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. + */ + +#include <linux/types.h> +#include <linux/errno.h> +#include <linux/delay.h> +#include <linux/platform_device.h> +#include <linux/usb/musb.h> + +#include <asm/arch/hardware.h> +#include <asm/arch/usb.h> + +#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE) +static struct resource musb_resources[] = { + [0] = { + .start = OMAP34XX_HSUSB_OTG_BASE, + .end = OMAP34XX_HSUSB_OTG_BASE + SZ_8K, + .flags = IORESOURCE_MEM, + }, + [1] = { /* general IRQ */ + .start = INT_243X_HS_USB_MC, + .flags = IORESOURCE_IRQ, + }, + [2] = { /* DMA IRQ */ + .start = INT_243X_HS_USB_DMA, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct musb_hdrc_platform_data musb_plat = { +#ifdef CONFIG_USB_MUSB_OTG + .mode = MUSB_OTG, +#elif defined(CONFIG_USB_MUSB_HDRC_HCD) + .mode = MUSB_HOST, +#elif defined(CONFIG_USB_GADGET_MUSB_HDRC) + .mode = MUSB_PERIPHERAL, +#endif + .multipoint = 1, + .clock = NULL, + .set_clock = NULL, +}; + +static u64 musb_dmamask = ~(u32)0; + +static struct platform_device musb_device = { + .name = "musb_hdrc", + .id = 0, + .dev = { + .dma_mask = &musb_dmamask, + .coherent_dma_mask = 0xffffffff, + .platform_data = &musb_plat, + }, + .num_resources = ARRAY_SIZE(musb_resources), + .resource = musb_resources, +}; +#endif + +void __init sdp3430_usb_init(void) +{ +#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE) + if (platform_device_register(&musb_device) < 0) { + printk(KERN_ERR "Unable to register HS-USB (MUSB) device\n"); + return; + } +#endif +} Index: linux-omap/arch/arm/mach-omap2/board-3430sdp.c =================================================================== --- linux-omap.orig/arch/arm/mach-omap2/board-3430sdp.c 2007-12-05 10:02:53.000000000 +0530 +++ linux-omap/arch/arm/mach-omap2/board-3430sdp.c 2007-12-05 17:04:09.664182922 +0530 @@ -307,6 +307,8 @@ return 0; } +extern void __init sdp3430_usb_init(void); + static void __init omap_3430sdp_init(void) { platform_add_devices(sdp3430_devices, ARRAY_SIZE(sdp3430_devices)); @@ -316,6 +318,7 @@ ARRAY_SIZE(sdp3430_spi_board_info)); ads7846_dev_init(); omap_serial_init(); + sdp3430_usb_init(); } static void __init omap_3430sdp_map_io(void) - To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html