Blackfin arch: Enable ISP1760 USB Host Driver in platform device initialization code.

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
This commit is contained in:
Michael Hennerich 2008-11-18 17:48:22 +08:00 committed by Bryan Wu
parent 5ff294fa00
commit 3f37569044
6 changed files with 160 additions and 198 deletions

View File

@ -61,51 +61,40 @@ const char bfin_board_name[] = "Bluetechnix CM-BF527";
* Driver needs to know address, irq and flag pin. * Driver needs to know address, irq and flag pin.
*/ */
#define ISP1761_BASE 0x203C0000
#define ISP1761_IRQ IRQ_PF7
#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
static struct resource bfin_isp1761_resources[] = { #include <linux/usb/isp1760.h>
static struct resource bfin_isp1760_resources[] = {
[0] = { [0] = {
.name = "isp1761-regs", .start = 0x203C0000,
.start = ISP1761_BASE + 0x00000000, .end = 0x203C0000 + 0x000fffff,
.end = ISP1761_BASE + 0x000fffff,
.flags = IORESOURCE_MEM, .flags = IORESOURCE_MEM,
}, },
[1] = { [1] = {
.start = ISP1761_IRQ, .start = IRQ_PF7,
.end = ISP1761_IRQ, .end = IRQ_PF7,
.flags = IORESOURCE_IRQ, .flags = IORESOURCE_IRQ,
}, },
}; };
static struct platform_device bfin_isp1761_device = { static struct isp1760_platform_data isp1760_priv = {
.name = "isp1761", .is_isp1761 = 0,
.port1_disable = 0,
.bus_width_16 = 1,
.port1_otg = 0,
.analog_oc = 0,
.dack_polarity_high = 0,
.dreq_polarity_high = 0,
};
static struct platform_device bfin_isp1760_device = {
.name = "isp1760-hcd",
.id = 0, .id = 0,
.num_resources = ARRAY_SIZE(bfin_isp1761_resources), .dev = {
.resource = bfin_isp1761_resources, .platform_data = &isp1760_priv,
},
.num_resources = ARRAY_SIZE(bfin_isp1760_resources),
.resource = bfin_isp1760_resources,
}; };
static struct platform_device *bfin_isp1761_devices[] = {
&bfin_isp1761_device,
};
int __init bfin_isp1761_init(void)
{
unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices);
printk(KERN_INFO "%s(): registering device resources\n", __func__);
set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING);
return platform_add_devices(bfin_isp1761_devices, num_devices);
}
void __exit bfin_isp1761_exit(void)
{
platform_device_unregister(&bfin_isp1761_device);
}
arch_initcall(bfin_isp1761_init);
#endif #endif
#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE) #if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
@ -885,6 +874,10 @@ static struct platform_device *stamp_devices[] __initdata = {
&isp1362_hcd_device, &isp1362_hcd_device,
#endif #endif
#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
&bfin_isp1760_device,
#endif
#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE) #if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
&musb_device, &musb_device,
#endif #endif

View File

@ -60,51 +60,40 @@ const char bfin_board_name[] = "ADDS-BF527-EZKIT";
* Driver needs to know address, irq and flag pin. * Driver needs to know address, irq and flag pin.
*/ */
#define ISP1761_BASE 0x203C0000
#define ISP1761_IRQ IRQ_PF7
#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
static struct resource bfin_isp1761_resources[] = { #include <linux/usb/isp1760.h>
static struct resource bfin_isp1760_resources[] = {
[0] = { [0] = {
.name = "isp1761-regs", .start = 0x203C0000,
.start = ISP1761_BASE + 0x00000000, .end = 0x203C0000 + 0x000fffff,
.end = ISP1761_BASE + 0x000fffff,
.flags = IORESOURCE_MEM, .flags = IORESOURCE_MEM,
}, },
[1] = { [1] = {
.start = ISP1761_IRQ, .start = IRQ_PF7,
.end = ISP1761_IRQ, .end = IRQ_PF7,
.flags = IORESOURCE_IRQ, .flags = IORESOURCE_IRQ,
}, },
}; };
static struct platform_device bfin_isp1761_device = { static struct isp1760_platform_data isp1760_priv = {
.name = "isp1761", .is_isp1761 = 0,
.port1_disable = 0,
.bus_width_16 = 1,
.port1_otg = 0,
.analog_oc = 0,
.dack_polarity_high = 0,
.dreq_polarity_high = 0,
};
static struct platform_device bfin_isp1760_device = {
.name = "isp1760-hcd",
.id = 0, .id = 0,
.num_resources = ARRAY_SIZE(bfin_isp1761_resources), .dev = {
.resource = bfin_isp1761_resources, .platform_data = &isp1760_priv,
},
.num_resources = ARRAY_SIZE(bfin_isp1760_resources),
.resource = bfin_isp1760_resources,
}; };
static struct platform_device *bfin_isp1761_devices[] = {
&bfin_isp1761_device,
};
int __init bfin_isp1761_init(void)
{
unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices);
printk(KERN_INFO "%s(): registering device resources\n", __func__);
set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING);
return platform_add_devices(bfin_isp1761_devices, num_devices);
}
void __exit bfin_isp1761_exit(void)
{
platform_device_unregister(&bfin_isp1761_device);
}
arch_initcall(bfin_isp1761_init);
#endif #endif
#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE) #if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
@ -944,6 +933,10 @@ static struct platform_device *stamp_devices[] __initdata = {
&isp1362_hcd_device, &isp1362_hcd_device,
#endif #endif
#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
&bfin_isp1760_device,
#endif
#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE) #if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
&musb_device, &musb_device,
#endif #endif

View File

@ -56,51 +56,40 @@ const char bfin_board_name[] = "GENERIC Board";
* Driver needs to know address, irq and flag pin. * Driver needs to know address, irq and flag pin.
*/ */
#define ISP1761_BASE 0x203C0000
#define ISP1761_IRQ IRQ_PF7
#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
static struct resource bfin_isp1761_resources[] = { #include <linux/usb/isp1760.h>
static struct resource bfin_isp1760_resources[] = {
[0] = { [0] = {
.name = "isp1761-regs", .start = 0x203C0000,
.start = ISP1761_BASE + 0x00000000, .end = 0x203C0000 + 0x000fffff,
.end = ISP1761_BASE + 0x000fffff,
.flags = IORESOURCE_MEM, .flags = IORESOURCE_MEM,
}, },
[1] = { [1] = {
.start = ISP1761_IRQ, .start = IRQ_PF7,
.end = ISP1761_IRQ, .end = IRQ_PF7,
.flags = IORESOURCE_IRQ, .flags = IORESOURCE_IRQ,
}, },
}; };
static struct platform_device bfin_isp1761_device = { static struct isp1760_platform_data isp1760_priv = {
.name = "isp1761", .is_isp1761 = 0,
.port1_disable = 0,
.bus_width_16 = 1,
.port1_otg = 0,
.analog_oc = 0,
.dack_polarity_high = 0,
.dreq_polarity_high = 0,
};
static struct platform_device bfin_isp1760_device = {
.name = "isp1760-hcd",
.id = 0, .id = 0,
.num_resources = ARRAY_SIZE(bfin_isp1761_resources), .dev = {
.resource = bfin_isp1761_resources, .platform_data = &isp1760_priv,
},
.num_resources = ARRAY_SIZE(bfin_isp1760_resources),
.resource = bfin_isp1760_resources,
}; };
static struct platform_device *bfin_isp1761_devices[] = {
&bfin_isp1761_device,
};
int __init bfin_isp1761_init(void)
{
unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices);
printk(KERN_INFO "%s(): registering device resources\n", __func__);
set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING);
return platform_add_devices(bfin_isp1761_devices, num_devices);
}
void __exit bfin_isp1761_exit(void)
{
platform_device_unregister(&bfin_isp1761_device);
}
arch_initcall(bfin_isp1761_init);
#endif #endif
#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) #if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
@ -651,6 +640,10 @@ static struct platform_device *stamp_devices[] __initdata = {
&net2272_bfin_device, &net2272_bfin_device,
#endif #endif
#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
&bfin_isp1760_device,
#endif
#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
&bfin_spi0_device, &bfin_spi0_device,
#endif #endif

View File

@ -61,51 +61,40 @@ const char bfin_board_name[] = "ADDS-BF537-STAMP";
* Driver needs to know address, irq and flag pin. * Driver needs to know address, irq and flag pin.
*/ */
#define ISP1761_BASE 0x203C0000
#define ISP1761_IRQ IRQ_PF7
#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
static struct resource bfin_isp1761_resources[] = { #include <linux/usb/isp1760.h>
static struct resource bfin_isp1760_resources[] = {
[0] = { [0] = {
.name = "isp1761-regs", .start = 0x203C0000,
.start = ISP1761_BASE + 0x00000000, .end = 0x203C0000 + 0x000fffff,
.end = ISP1761_BASE + 0x000fffff,
.flags = IORESOURCE_MEM, .flags = IORESOURCE_MEM,
}, },
[1] = { [1] = {
.start = ISP1761_IRQ, .start = IRQ_PF7,
.end = ISP1761_IRQ, .end = IRQ_PF7,
.flags = IORESOURCE_IRQ, .flags = IORESOURCE_IRQ,
}, },
}; };
static struct platform_device bfin_isp1761_device = { static struct isp1760_platform_data isp1760_priv = {
.name = "isp1761", .is_isp1761 = 0,
.port1_disable = 0,
.bus_width_16 = 1,
.port1_otg = 0,
.analog_oc = 0,
.dack_polarity_high = 0,
.dreq_polarity_high = 0,
};
static struct platform_device bfin_isp1760_device = {
.name = "isp1760-hcd",
.id = 0, .id = 0,
.num_resources = ARRAY_SIZE(bfin_isp1761_resources), .dev = {
.resource = bfin_isp1761_resources, .platform_data = &isp1760_priv,
},
.num_resources = ARRAY_SIZE(bfin_isp1760_resources),
.resource = bfin_isp1760_resources,
}; };
static struct platform_device *bfin_isp1761_devices[] = {
&bfin_isp1761_device,
};
int __init bfin_isp1761_init(void)
{
unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices);
printk(KERN_INFO "%s(): registering device resources\n", __func__);
set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING);
return platform_add_devices(bfin_isp1761_devices, num_devices);
}
void __exit bfin_isp1761_exit(void)
{
platform_device_unregister(&bfin_isp1761_device);
}
arch_initcall(bfin_isp1761_init);
#endif #endif
#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
@ -1057,6 +1046,10 @@ static struct platform_device *stamp_devices[] __initdata = {
&isp1362_hcd_device, &isp1362_hcd_device,
#endif #endif
#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
&bfin_isp1760_device,
#endif
#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
&smc91x_device, &smc91x_device,
#endif #endif

View File

@ -59,9 +59,9 @@ const char bfin_board_name[] = "ADSP-BF548-EZKIT";
*/ */
#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
static struct resource bfin_isp1761_resources[] = { #include <linux/usb/isp1760.h>
static struct resource bfin_isp1760_resources[] = {
[0] = { [0] = {
.name = "isp1761-regs",
.start = 0x2C0C0000, .start = 0x2C0C0000,
.end = 0x2C0C0000 + 0xfffff, .end = 0x2C0C0000 + 0xfffff,
.flags = IORESOURCE_MEM, .flags = IORESOURCE_MEM,
@ -73,32 +73,25 @@ static struct resource bfin_isp1761_resources[] = {
}, },
}; };
static struct platform_device bfin_isp1761_device = { static struct isp1760_platform_data isp1760_priv = {
.name = "isp1761", .is_isp1761 = 0,
.port1_disable = 0,
.bus_width_16 = 1,
.port1_otg = 0,
.analog_oc = 0,
.dack_polarity_high = 0,
.dreq_polarity_high = 0,
};
static struct platform_device bfin_isp1760_device = {
.name = "isp1760-hcd",
.id = 0, .id = 0,
.num_resources = ARRAY_SIZE(bfin_isp1761_resources), .dev = {
.resource = bfin_isp1761_resources, .platform_data = &isp1760_priv,
},
.num_resources = ARRAY_SIZE(bfin_isp1760_resources),
.resource = bfin_isp1760_resources,
}; };
static struct platform_device *bfin_isp1761_devices[] = {
&bfin_isp1761_device,
};
int __init bfin_isp1761_init(void)
{
unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices);
printk(KERN_INFO "%s(): registering device resources\n", __func__);
set_irq_type(bfin_isp1761_resources[1].start, IRQF_TRIGGER_FALLING);
return platform_add_devices(bfin_isp1761_devices, num_devices);
}
void __exit bfin_isp1761_exit(void)
{
platform_device_unregister(&bfin_isp1761_device);
}
arch_initcall(bfin_isp1761_init);
#endif #endif
#if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE) #if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE)
@ -827,6 +820,10 @@ static struct platform_device *ezkit_devices[] __initdata = {
&musb_device, &musb_device,
#endif #endif
#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
&bfin_isp1760_device,
#endif
#if defined(CONFIG_PATA_BF54X) || defined(CONFIG_PATA_BF54X_MODULE) #if defined(CONFIG_PATA_BF54X) || defined(CONFIG_PATA_BF54X_MODULE)
&bfin_atapi_device, &bfin_atapi_device,
#endif #endif

View File

@ -45,51 +45,40 @@
*/ */
const char bfin_board_name[] = "ADDS-BF561-EZKIT"; const char bfin_board_name[] = "ADDS-BF561-EZKIT";
#define ISP1761_BASE 0x2C0F0000
#define ISP1761_IRQ IRQ_PF10
#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) #if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
static struct resource bfin_isp1761_resources[] = { #include <linux/usb/isp1760.h>
{ static struct resource bfin_isp1760_resources[] = {
.name = "isp1761-regs", [0] = {
.start = ISP1761_BASE + 0x00000000, .start = 0x2C0F0000,
.end = ISP1761_BASE + 0x000fffff, .end = 0x203C0000 + 0xfffff,
.flags = IORESOURCE_MEM, .flags = IORESOURCE_MEM,
}, },
{ [1] = {
.start = ISP1761_IRQ, .start = IRQ_PF10,
.end = ISP1761_IRQ, .end = IRQ_PF10,
.flags = IORESOURCE_IRQ, .flags = IORESOURCE_IRQ,
}, },
}; };
static struct platform_device bfin_isp1761_device = { static struct isp1760_platform_data isp1760_priv = {
.name = "isp1761", .is_isp1761 = 0,
.port1_disable = 0,
.bus_width_16 = 1,
.port1_otg = 0,
.analog_oc = 0,
.dack_polarity_high = 0,
.dreq_polarity_high = 0,
};
static struct platform_device bfin_isp1760_device = {
.name = "isp1760-hcd",
.id = 0, .id = 0,
.num_resources = ARRAY_SIZE(bfin_isp1761_resources), .dev = {
.resource = bfin_isp1761_resources, .platform_data = &isp1760_priv,
},
.num_resources = ARRAY_SIZE(bfin_isp1760_resources),
.resource = bfin_isp1760_resources,
}; };
static struct platform_device *bfin_isp1761_devices[] = {
&bfin_isp1761_device,
};
int __init bfin_isp1761_init(void)
{
unsigned int num_devices = ARRAY_SIZE(bfin_isp1761_devices);
printk(KERN_INFO "%s(): registering device resources\n", __func__);
set_irq_type(ISP1761_IRQ, IRQF_TRIGGER_FALLING);
return platform_add_devices(bfin_isp1761_devices, num_devices);
}
void __exit bfin_isp1761_exit(void)
{
platform_device_unregister(&bfin_isp1761_device);
}
arch_initcall(bfin_isp1761_init);
#endif #endif
#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) #if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
@ -449,6 +438,10 @@ static struct platform_device *ezkit_devices[] __initdata = {
&net2272_bfin_device, &net2272_bfin_device,
#endif #endif
#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
&bfin_isp1760_device,
#endif
#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
&bfin_spi0_device, &bfin_spi0_device,
#endif #endif