]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
Merge branch 'sa11x0-ir' into sa11x0
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 25 Mar 2012 22:54:52 +0000 (23:54 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 25 Mar 2012 22:54:57 +0000 (23:54 +0100)
1  2 
arch/arm/mach-sa1100/generic.c

index 2b33b459746812153f90f2ed18ecc00e178496a5,52ea6229818f45e6b9bb5419e24102bac348e56f..1752686e9abc3691a5925620fc555e48100abdd0
@@@ -14,6 -14,7 +14,7 @@@
  #include <linux/kernel.h>
  #include <linux/init.h>
  #include <linux/delay.h>
+ #include <linux/dma-mapping.h>
  #include <linux/pm.h>
  #include <linux/cpufreq.h>
  #include <linux/ioport.h>
@@@ -149,8 -150,16 +150,8 @@@ static void sa11x0_register_device(stru
  
  
  static struct resource sa11x0udc_resources[] = {
 -      [0] = {
 -              .start  = __PREG(Ser0UDCCR),
 -              .end    = __PREG(Ser0UDCCR) + 0xffff,
 -              .flags  = IORESOURCE_MEM,
 -      },
 -      [1] = {
 -              .start  = IRQ_Ser0UDC,
 -              .end    = IRQ_Ser0UDC,
 -              .flags  = IORESOURCE_IRQ,
 -      },
 +      [0] = DEFINE_RES_MEM(__PREG(Ser0UDCCR), SZ_64K),
 +      [1] = DEFINE_RES_IRQ(IRQ_Ser0UDC),
  };
  
  static u64 sa11x0udc_dma_mask = 0xffffffffUL;
@@@ -167,8 -176,16 +168,8 @@@ static struct platform_device sa11x0udc
  };
  
  static struct resource sa11x0uart1_resources[] = {
 -      [0] = {
 -              .start  = __PREG(Ser1UTCR0),
 -              .end    = __PREG(Ser1UTCR0) + 0xffff,
 -              .flags  = IORESOURCE_MEM,
 -      },
 -      [1] = {
 -              .start  = IRQ_Ser1UART,
 -              .end    = IRQ_Ser1UART,
 -              .flags  = IORESOURCE_IRQ,
 -      },
 +      [0] = DEFINE_RES_MEM(__PREG(Ser1UTCR0), SZ_64K),
 +      [1] = DEFINE_RES_IRQ(IRQ_Ser1UART),
  };
  
  static struct platform_device sa11x0uart1_device = {
  };
  
  static struct resource sa11x0uart3_resources[] = {
 -      [0] = {
 -              .start  = __PREG(Ser3UTCR0),
 -              .end    = __PREG(Ser3UTCR0) + 0xffff,
 -              .flags  = IORESOURCE_MEM,
 -      },
 -      [1] = {
 -              .start  = IRQ_Ser3UART,
 -              .end    = IRQ_Ser3UART,
 -              .flags  = IORESOURCE_IRQ,
 -      },
 +      [0] = DEFINE_RES_MEM(__PREG(Ser3UTCR0), SZ_64K),
 +      [1] = DEFINE_RES_IRQ(IRQ_Ser3UART),
  };
  
  static struct platform_device sa11x0uart3_device = {
  };
  
  static struct resource sa11x0mcp_resources[] = {
 -      [0] = {
 -              .start  = __PREG(Ser4MCCR0),
 -              .end    = __PREG(Ser4MCCR0) + 0xffff,
 -              .flags  = IORESOURCE_MEM,
 -      },
 -      [1] = {
 -              .start  = IRQ_Ser4MCP,
 -              .end    = IRQ_Ser4MCP,
 -              .flags  = IORESOURCE_IRQ,
 -      },
 +      [0] = DEFINE_RES_MEM(__PREG(Ser4MCCR0), SZ_64K),
 +      [1] = DEFINE_RES_IRQ(IRQ_Ser4MCP),
  };
  
  static u64 sa11x0mcp_dma_mask = 0xffffffffUL;
@@@ -214,8 -247,16 +215,8 @@@ void sa11x0_register_mcp(struct mcp_pla
  }
  
  static struct resource sa11x0ssp_resources[] = {
 -      [0] = {
 -              .start  = 0x80070000,
 -              .end    = 0x8007ffff,
 -              .flags  = IORESOURCE_MEM,
 -      },
 -      [1] = {
 -              .start  = IRQ_Ser4SSP,
 -              .end    = IRQ_Ser4SSP,
 -              .flags  = IORESOURCE_IRQ,
 -      },
 +      [0] = DEFINE_RES_MEM(0x80070000, SZ_64K),
 +      [1] = DEFINE_RES_IRQ(IRQ_Ser4SSP),
  };
  
  static u64 sa11x0ssp_dma_mask = 0xffffffffUL;
@@@ -232,8 -273,16 +233,8 @@@ static struct platform_device sa11x0ssp
  };
  
  static struct resource sa11x0fb_resources[] = {
 -      [0] = {
 -              .start  = 0xb0100000,
 -              .end    = 0xb010ffff,
 -              .flags  = IORESOURCE_MEM,
 -      },
 -      [1] = {
 -              .start  = IRQ_LCD,
 -              .end    = IRQ_LCD,
 -              .flags  = IORESOURCE_IRQ,
 -      },
 +      [0] = DEFINE_RES_MEM(0xb0100000, SZ_64K),
 +      [1] = DEFINE_RES_IRQ(IRQ_LCD),
  };
  
  static struct platform_device sa11x0fb_device = {
@@@ -266,10 -315,23 +267,10 @@@ void sa11x0_register_mtd(struct flash_p
  }
  
  static struct resource sa11x0ir_resources[] = {
 -      {
 -              .start  = __PREG(Ser2UTCR0),
 -              .end    = __PREG(Ser2UTCR0) + 0x24 - 1,
 -              .flags  = IORESOURCE_MEM,
 -      }, {
 -              .start  = __PREG(Ser2HSCR0),
 -              .end    = __PREG(Ser2HSCR0) + 0x1c - 1,
 -              .flags  = IORESOURCE_MEM,
 -      }, {
 -              .start  = __PREG(Ser2HSCR2),
 -              .end    = __PREG(Ser2HSCR2) + 0x04 - 1,
 -              .flags  = IORESOURCE_MEM,
 -      }, {
 -              .start  = IRQ_Ser2ICP,
 -              .end    = IRQ_Ser2ICP,
 -              .flags  = IORESOURCE_IRQ,
 -      }
 +      DEFINE_RES_MEM(__PREG(Ser2UTCR0), 0x24),
 +      DEFINE_RES_MEM(__PREG(Ser2HSCR0), 0x1c),
 +      DEFINE_RES_MEM(__PREG(Ser2HSCR2), 0x04),
 +      DEFINE_RES_IRQ(IRQ_Ser2ICP),
  };
  
  static struct platform_device sa11x0ir_device = {
@@@ -289,6 -351,29 +290,29 @@@ static struct platform_device sa11x0rtc
        .id             = -1,
  };
  
+ static struct resource sa11x0dma_resources[] = {
+       DEFINE_RES_MEM(__PREG(DDAR(0)), 6 * DMASp),
+       DEFINE_RES_IRQ(IRQ_DMA0),
+       DEFINE_RES_IRQ(IRQ_DMA1),
+       DEFINE_RES_IRQ(IRQ_DMA2),
+       DEFINE_RES_IRQ(IRQ_DMA3),
+       DEFINE_RES_IRQ(IRQ_DMA4),
+       DEFINE_RES_IRQ(IRQ_DMA5),
+ };
+ static u64 sa11x0dma_dma_mask = DMA_BIT_MASK(32);
+ static struct platform_device sa11x0dma_device = {
+       .name           = "sa11x0-dma",
+       .id             = -1,
+       .dev = {
+               .dma_mask = &sa11x0dma_dma_mask,
+               .coherent_dma_mask = 0xffffffff,
+       },
+       .num_resources  = ARRAY_SIZE(sa11x0dma_resources),
+       .resource       = sa11x0dma_resources,
+ };
  static struct platform_device *sa11x0_devices[] __initdata = {
        &sa11x0udc_device,
        &sa11x0uart1_device,
        &sa11x0pcmcia_device,
        &sa11x0fb_device,
        &sa11x0rtc_device,
+       &sa11x0dma_device,
  };
  
  static int __init sa1100_init(void)
@@@ -367,7 -453,7 +392,7 @@@ void __init sa1100_map_io(void
   * the MBGNT signal false to ensure the SA1111 doesn't own the
   * SDRAM bus.
   */
 -void __init sa1110_mb_disable(void)
 +void sa1110_mb_disable(void)
  {
        unsigned long flags;
  
   * If the system is going to use the SA-1111 DMA engines, set up
   * the memory bus request/grant pins.
   */
 -void __devinit sa1110_mb_enable(void)
 +void sa1110_mb_enable(void)
  {
        unsigned long flags;