diff options
-rw-r--r-- | arch/arm/mach-davinci/dm646x.c | 32 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/dm646x.h | 3 |
2 files changed, 35 insertions, 0 deletions
diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c index 50f01e013aa8..3516f7699db2 100644 --- a/arch/arm/mach-davinci/dm646x.c +++ b/arch/arm/mach-davinci/dm646x.c | |||
@@ -600,6 +600,32 @@ static struct platform_device dm646x_edma_device = { | |||
600 | .resource = edma_resources, | 600 | .resource = edma_resources, |
601 | }; | 601 | }; |
602 | 602 | ||
603 | static struct resource ide_resources[] = { | ||
604 | { | ||
605 | .start = DM646X_ATA_REG_BASE, | ||
606 | .end = DM646X_ATA_REG_BASE + 0x7ff, | ||
607 | .flags = IORESOURCE_MEM, | ||
608 | }, | ||
609 | { | ||
610 | .start = IRQ_DM646X_IDE, | ||
611 | .end = IRQ_DM646X_IDE, | ||
612 | .flags = IORESOURCE_IRQ, | ||
613 | }, | ||
614 | }; | ||
615 | |||
616 | static u64 ide_dma_mask = DMA_BIT_MASK(32); | ||
617 | |||
618 | static struct platform_device ide_dev = { | ||
619 | .name = "palm_bk3710", | ||
620 | .id = -1, | ||
621 | .resource = ide_resources, | ||
622 | .num_resources = ARRAY_SIZE(ide_resources), | ||
623 | .dev = { | ||
624 | .dma_mask = &ide_dma_mask, | ||
625 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
626 | }, | ||
627 | }; | ||
628 | |||
603 | static struct resource dm646x_mcasp0_resources[] = { | 629 | static struct resource dm646x_mcasp0_resources[] = { |
604 | { | 630 | { |
605 | .name = "mcasp0", | 631 | .name = "mcasp0", |
@@ -769,6 +795,12 @@ static struct davinci_soc_info davinci_soc_info_dm646x = { | |||
769 | .sram_len = SZ_32K, | 795 | .sram_len = SZ_32K, |
770 | }; | 796 | }; |
771 | 797 | ||
798 | void __init dm646x_init_ide() | ||
799 | { | ||
800 | davinci_cfg_reg(DM646X_ATAEN); | ||
801 | platform_device_register(&ide_dev); | ||
802 | } | ||
803 | |||
772 | void __init dm646x_init_mcasp0(struct snd_platform_data *pdata) | 804 | void __init dm646x_init_mcasp0(struct snd_platform_data *pdata) |
773 | { | 805 | { |
774 | dm646x_mcasp0_device.dev.platform_data = pdata; | 806 | dm646x_mcasp0_device.dev.platform_data = pdata; |
diff --git a/arch/arm/mach-davinci/include/mach/dm646x.h b/arch/arm/mach-davinci/include/mach/dm646x.h index 05854846242a..feb1e02cdbd8 100644 --- a/arch/arm/mach-davinci/include/mach/dm646x.h +++ b/arch/arm/mach-davinci/include/mach/dm646x.h | |||
@@ -22,7 +22,10 @@ | |||
22 | #define DM646X_EMAC_MDIO_OFFSET (0x4000) | 22 | #define DM646X_EMAC_MDIO_OFFSET (0x4000) |
23 | #define DM646X_EMAC_CNTRL_RAM_SIZE (0x2000) | 23 | #define DM646X_EMAC_CNTRL_RAM_SIZE (0x2000) |
24 | 24 | ||
25 | #define DM646X_ATA_REG_BASE (0x01C66000) | ||
26 | |||
25 | void __init dm646x_init(void); | 27 | void __init dm646x_init(void); |
28 | void __init dm646x_init_ide(void); | ||
26 | void __init dm646x_init_mcasp0(struct snd_platform_data *pdata); | 29 | void __init dm646x_init_mcasp0(struct snd_platform_data *pdata); |
27 | void __init dm646x_init_mcasp1(struct snd_platform_data *pdata); | 30 | void __init dm646x_init_mcasp1(struct snd_platform_data *pdata); |
28 | 31 | ||