forked from luck/tmp_suning_uos_patched
[ARM] pxa/vpac270: add ide support
This patch adds support for the on-board IDE channel. I tested this with a CDROM connected over 2.5-3.5 IDE reduction with external power supplied to the CDROM. This was not tested with the Voipac 270-HDD-000 (official Voipac HDD module), but I expect no problems. Signed-off-by: Marek Vasut <marek.vasut@gmail.com> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
This commit is contained in:
parent
83a4a10226
commit
052345aec0
|
@ -252,6 +252,7 @@ config MACH_COLIBRI320
|
|||
config MACH_VPAC270
|
||||
bool "Voipac PXA270"
|
||||
select PXA27x
|
||||
select HAVE_PATA_PLATFORM
|
||||
help
|
||||
PXA270 based Single Board Computer.
|
||||
|
||||
|
|
|
@ -35,4 +35,6 @@
|
|||
|
||||
#define GPIO114_VPAC270_ETH_IRQ 114
|
||||
|
||||
#define GPIO36_VPAC270_IDE_IRQ 36
|
||||
|
||||
#endif
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/dm9000.h>
|
||||
#include <linux/ucb1400.h>
|
||||
#include <linux/ata_platform.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -138,6 +139,10 @@ static unsigned long vpac270_pin_config[] __initdata = {
|
|||
/* I2C */
|
||||
GPIO117_I2C_SCL,
|
||||
GPIO118_I2C_SDA,
|
||||
|
||||
/* IDE */
|
||||
GPIO36_GPIO, /* IDE IRQ */
|
||||
GPIO80_DREQ_1,
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
|
@ -486,6 +491,50 @@ static void __init vpac270_lcd_init(void)
|
|||
static inline void vpac270_lcd_init(void) {}
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
* PATA IDE
|
||||
******************************************************************************/
|
||||
#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
|
||||
static struct pata_platform_info vpac270_pata_pdata = {
|
||||
.ioport_shift = 1,
|
||||
.irq_flags = IRQF_TRIGGER_RISING,
|
||||
};
|
||||
|
||||
static struct resource vpac270_ide_resources[] = {
|
||||
[0] = { /* I/O Base address */
|
||||
.start = PXA_CS3_PHYS + 0x120,
|
||||
.end = PXA_CS3_PHYS + 0x13f,
|
||||
.flags = IORESOURCE_MEM
|
||||
},
|
||||
[1] = { /* CTL Base address */
|
||||
.start = PXA_CS3_PHYS + 0x15c,
|
||||
.end = PXA_CS3_PHYS + 0x15f,
|
||||
.flags = IORESOURCE_MEM
|
||||
},
|
||||
[2] = { /* IDE IRQ pin */
|
||||
.start = gpio_to_irq(GPIO36_VPAC270_IDE_IRQ),
|
||||
.end = gpio_to_irq(GPIO36_VPAC270_IDE_IRQ),
|
||||
.flags = IORESOURCE_IRQ
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device vpac270_ide_device = {
|
||||
.name = "pata_platform",
|
||||
.num_resources = ARRAY_SIZE(vpac270_ide_resources),
|
||||
.resource = vpac270_ide_resources,
|
||||
.dev = {
|
||||
.platform_data = &vpac270_pata_pdata,
|
||||
}
|
||||
};
|
||||
|
||||
static void __init vpac270_ide_init(void)
|
||||
{
|
||||
platform_device_register(&vpac270_ide_device);
|
||||
}
|
||||
#else
|
||||
static inline void vpac270_ide_init(void) {}
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
* Machine init
|
||||
******************************************************************************/
|
||||
|
@ -507,6 +556,7 @@ static void __init vpac270_init(void)
|
|||
vpac270_eth_init();
|
||||
vpac270_ts_init();
|
||||
vpac270_rtc_init();
|
||||
vpac270_ide_init();
|
||||
}
|
||||
|
||||
MACHINE_START(VPAC270, "Voipac PXA270")
|
||||
|
|
Loading…
Reference in New Issue
Block a user