[ARM] 3958/1: add platform device (pxa2xx-udc)to ixp4xx
Create include/asm-arm/arch-ixp4xx/udc.h and add platfrom device ixp4xx_udc_device into arch/arm/mach-ixp4xx/common.c. This allows us to use pxa2xx-udc on the ixp4xx platfrom. Both pxa2xx and ixp4xx use the same device controller. Signed-off-by:Milan Svoboda <msvoboda@ra.rockwell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
2024c39dbb
commit
e520a36de2
2 changed files with 49 additions and 0 deletions
|
@ -28,6 +28,7 @@
|
|||
#include <linux/timex.h>
|
||||
#include <linux/clocksource.h>
|
||||
|
||||
#include <asm/arch/udc.h>
|
||||
#include <asm/hardware.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/io.h>
|
||||
|
@ -286,6 +287,44 @@ struct sys_timer ixp4xx_timer = {
|
|||
.init = ixp4xx_timer_init,
|
||||
};
|
||||
|
||||
static struct pxa2xx_udc_mach_info ixp4xx_udc_info;
|
||||
|
||||
void __init ixp4xx_set_udc_info(struct pxa2xx_udc_mach_info *info)
|
||||
{
|
||||
memcpy(&ixp4xx_udc_info, info, sizeof *info);
|
||||
}
|
||||
|
||||
static struct resource ixp4xx_udc_resources[] = {
|
||||
[0] = {
|
||||
.start = 0xc800b000,
|
||||
.end = 0xc800bfff,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.start = IRQ_IXP4XX_USB,
|
||||
.end = IRQ_IXP4XX_USB,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
/*
|
||||
* USB device controller. The IXP4xx uses the same controller as PXA2XX,
|
||||
* so we just use the same device.
|
||||
*/
|
||||
static struct platform_device ixp4xx_udc_device = {
|
||||
.name = "pxa2xx-udc",
|
||||
.id = -1,
|
||||
.num_resources = 2,
|
||||
.resource = ixp4xx_udc_resources,
|
||||
.dev = {
|
||||
.platform_data = &ixp4xx_udc_info,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device *ixp4xx_devices[] __initdata = {
|
||||
&ixp4xx_udc_device,
|
||||
};
|
||||
|
||||
static struct resource ixp46x_i2c_resources[] = {
|
||||
[0] = {
|
||||
.start = 0xc8011000,
|
||||
|
@ -321,6 +360,8 @@ void __init ixp4xx_sys_init(void)
|
|||
{
|
||||
ixp4xx_exp_bus_size = SZ_16M;
|
||||
|
||||
platform_add_devices(ixp4xx_devices, ARRAY_SIZE(ixp4xx_devices));
|
||||
|
||||
if (cpu_is_ixp46x()) {
|
||||
int region;
|
||||
|
||||
|
|
8
include/asm-arm/arch-ixp4xx/udc.h
Normal file
8
include/asm-arm/arch-ixp4xx/udc.h
Normal file
|
@ -0,0 +1,8 @@
|
|||
/*
|
||||
* linux/include/asm-arm/arch-ixp4xx/udc.h
|
||||
*
|
||||
*/
|
||||
#include <asm/mach/udc_pxa2xx.h>
|
||||
|
||||
extern void ixp4xx_set_udc_info(struct pxa2xx_udc_mach_info *info);
|
||||
|
Loading…
Add table
Reference in a new issue