]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/arm/mach-iop32x/iq80321.c
iop3xx: surface the iop3xx DMA and AAU units to the iop-adma driver
[karo-tx-linux.git] / arch / arm / mach-iop32x / iq80321.c
index 1f37b550188840d6263c5275c52fb50e4e64b371..18ad29f213b2a42759b97cacf11a78f3adfc9e1f 100644 (file)
@@ -33,6 +33,7 @@
 #include <asm/mach-types.h>
 #include <asm/page.h>
 #include <asm/pgtable.h>
+#include <asm/arch/time.h>
 
 /*
  * IQ80321 timer tick configuration.
 static void __init iq80321_timer_init(void)
 {
        /* 33.333 MHz crystal.  */
-       iop3xx_init_time(200000000);
+       iop_init_time(200000000);
 }
 
 static struct sys_timer iq80321_timer = {
        .init           = iq80321_timer_init,
-       .offset         = iop3xx_gettimeoffset,
+       .offset         = iop_gettimeoffset,
 };
 
 
@@ -71,7 +72,7 @@ void __init iq80321_map_io(void)
 /*
  * IQ80321 PCI.
  */
-static inline int __init
+static int __init
 iq80321_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
 {
        int irq;
@@ -112,7 +113,8 @@ static struct hw_pci iq80321_pci __initdata = {
 
 static int __init iq80321_pci_init(void)
 {
-       if (machine_is_iq80321())
+       if ((iop3xx_get_init_atu() == IOP3XX_INIT_ATU_ENABLE) &&
+               machine_is_iq80321())
                pci_common_init(&iq80321_pci);
 
        return 0;
@@ -179,6 +181,9 @@ static void __init iq80321_init_machine(void)
        platform_device_register(&iop3xx_i2c1_device);
        platform_device_register(&iq80321_flash_device);
        platform_device_register(&iq80321_serial_device);
+       platform_device_register(&iop3xx_dma_0_channel);
+       platform_device_register(&iop3xx_dma_1_channel);
+       platform_device_register(&iop3xx_aau_channel);
 }
 
 MACHINE_START(IQ80321, "Intel IQ80321")