]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'sound/for-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Wed, 12 Oct 2011 02:44:24 +0000 (13:44 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 12 Oct 2011 02:44:24 +0000 (13:44 +1100)
Conflicts:
arch/arm/plat-omap/devices.c
arch/mips/alchemy/devboards/db1x00/platform.c
sound/mips/Kconfig

13 files changed:
1  2 
arch/arm/mach-ep93xx/edb93xx.c
arch/arm/mach-ep93xx/simone.c
arch/arm/mach-ep93xx/snappercl15.c
arch/arm/mach-omap2/devices.c
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
arch/arm/plat-omap/devices.c
arch/mips/alchemy/devboards/db1200/platform.c
arch/mips/alchemy/devboards/db1x00/platform.c
drivers/base/regmap/regmap.c
include/linux/regulator/consumer.h
sound/mips/Kconfig
sound/soc/au1x/Kconfig
sound/soc/samsung/ac97.c

Simple merge
Simple merge
Simple merge
Simple merge
index acd132c296473b839964e2211a50f368baabd39d,40eca9b30d93194965785763e991aabe07afb92b..e2927d436025433c37d23ab6b1f76e528cd77467
  #include <plat/tc.h>
  #include <plat/board.h>
  #include <plat/mmc.h>
 -#include <mach/gpio.h>
  #include <plat/menelaus.h>
 -#include <plat/mcbsp.h>
  #include <plat/omap44xx.h>
  
- #if defined(CONFIG_SND_OMAP_SOC_MCPDM) || \
-               defined(CONFIG_SND_OMAP_SOC_MCPDM_MODULE)
- static struct resource mcpdm_resources[] = {
-       {
-               .name           = "mcpdm_mem",
-               .start          = OMAP44XX_MCPDM_BASE,
-               .end            = OMAP44XX_MCPDM_BASE + SZ_4K,
-               .flags          = IORESOURCE_MEM,
-       },
-       {
-               .name           = "mcpdm_irq",
-               .start          = OMAP44XX_IRQ_MCPDM,
-               .end            = OMAP44XX_IRQ_MCPDM,
-               .flags          = IORESOURCE_IRQ,
-       },
- };
- static struct platform_device omap_mcpdm_device = {
-       .name           = "omap-mcpdm",
-       .id             = -1,
-       .num_resources  = ARRAY_SIZE(mcpdm_resources),
-       .resource       = mcpdm_resources,
- };
- static void omap_init_mcpdm(void)
- {
-       (void) platform_device_register(&omap_mcpdm_device);
- }
- #else
- static inline void omap_init_mcpdm(void) {}
- #endif
  /*-------------------------------------------------------------------------*/
  
 -#if defined(CONFIG_OMAP_MCBSP) || defined(CONFIG_OMAP_MCBSP_MODULE)
 -
 -static struct platform_device **omap_mcbsp_devices;
 -
 -void omap_mcbsp_register_board_cfg(struct resource *res, int res_count,
 -                      struct omap_mcbsp_platform_data *config, int size)
 -{
 -      int i;
 -
 -      omap_mcbsp_devices = kzalloc(size * sizeof(struct platform_device *),
 -                                   GFP_KERNEL);
 -      if (!omap_mcbsp_devices) {
 -              printk(KERN_ERR "Could not register McBSP devices\n");
 -              return;
 -      }
 -
 -      for (i = 0; i < size; i++) {
 -              struct platform_device *new_mcbsp;
 -              int ret;
 -
 -              new_mcbsp = platform_device_alloc("omap-mcbsp", i + 1);
 -              if (!new_mcbsp)
 -                      continue;
 -              platform_device_add_resources(new_mcbsp, &res[i * res_count],
 -                                      res_count);
 -              new_mcbsp->dev.platform_data = &config[i];
 -              ret = platform_device_add(new_mcbsp);
 -              if (ret) {
 -                      platform_device_put(new_mcbsp);
 -                      continue;
 -              }
 -              omap_mcbsp_devices[i] = new_mcbsp;
 -      }
 -}
 -
 -#else
 -void omap_mcbsp_register_board_cfg(struct resource *res, int res_count,
 -                      struct omap_mcbsp_platform_data *config, int size)
 -{  }
 -#endif
 -
 -/*-------------------------------------------------------------------------*/
 -
  #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) || \
        defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
  
index 8704865306a5b3de6bc8f932ac56bd2426a0a693,7057d28f73016dffb4136fb7d5856c1e19f66dac..401d0495a018a286a0454857776d1418ecebc666
   */
  
  #include <linux/init.h>
 +#include <linux/dma-mapping.h>
+ #include <linux/interrupt.h>
  #include <linux/platform_device.h>
  
  #include <asm/mach-au1x00/au1000.h>
 -#include <asm/mach-au1x00/au1xxx.h>
+ #include <asm/mach-au1x00/au1000_dma.h>
  #include <asm/mach-db1x00/bcsr.h>
  #include "../platform.h"
  
@@@ -88,182 -88,79 +90,227 @@@ struct pci_dev
  #endif
  #endif
  
 +#ifdef CONFIG_PCI
 +#ifdef CONFIG_MIPS_DB1500
 +static int db1xxx_map_pci_irq(const struct pci_dev *d, u8 slot, u8 pin)
 +{
 +      if ((slot < 12) || (slot > 13) || pin == 0)
 +              return -1;
 +      if (slot == 12)
 +              return (pin == 1) ? AU1500_PCI_INTA : 0xff;
 +      if (slot == 13) {
 +              switch (pin) {
 +              case 1: return AU1500_PCI_INTA;
 +              case 2: return AU1500_PCI_INTB;
 +              case 3: return AU1500_PCI_INTC;
 +              case 4: return AU1500_PCI_INTD;
 +              }
 +      }
 +      return -1;
 +}
 +#endif
 +
 +#ifdef CONFIG_MIPS_DB1550
 +static int db1xxx_map_pci_irq(const struct pci_dev *d, u8 slot, u8 pin)
 +{
 +      if ((slot < 11) || (slot > 13) || pin == 0)
 +              return -1;
 +      if (slot == 11)
 +              return (pin == 1) ? AU1550_PCI_INTC : 0xff;
 +      if (slot == 12) {
 +              switch (pin) {
 +              case 1: return AU1550_PCI_INTB;
 +              case 2: return AU1550_PCI_INTC;
 +              case 3: return AU1550_PCI_INTD;
 +              case 4: return AU1550_PCI_INTA;
 +              }
 +      }
 +      if (slot == 13) {
 +              switch (pin) {
 +              case 1: return AU1550_PCI_INTA;
 +              case 2: return AU1550_PCI_INTB;
 +              case 3: return AU1550_PCI_INTC;
 +              case 4: return AU1550_PCI_INTD;
 +              }
 +      }
 +      return -1;
 +}
 +#endif
 +
 +#ifdef CONFIG_MIPS_BOSPORUS
 +static int db1xxx_map_pci_irq(const struct pci_dev *d, u8 slot, u8 pin)
 +{
 +      if ((slot < 11) || (slot > 13) || pin == 0)
 +              return -1;
 +      if (slot == 12)
 +              return (pin == 1) ? AU1500_PCI_INTA : 0xff;
 +      if (slot == 11) {
 +              switch (pin) {
 +              case 1: return AU1500_PCI_INTA;
 +              case 2: return AU1500_PCI_INTB;
 +              default: return 0xff;
 +              }
 +      }
 +      if (slot == 13) {
 +              switch (pin) {
 +              case 1: return AU1500_PCI_INTA;
 +              case 2: return AU1500_PCI_INTB;
 +              case 3: return AU1500_PCI_INTC;
 +              case 4: return AU1500_PCI_INTD;
 +              }
 +      }
 +      return -1;
 +}
 +#endif
 +
 +#ifdef CONFIG_MIPS_MIRAGE
 +static int db1xxx_map_pci_irq(const struct pci_dev *d, u8 slot, u8 pin)
 +{
 +      if ((slot < 11) || (slot > 13) || pin == 0)
 +              return -1;
 +      if (slot == 11)
 +              return (pin == 1) ? AU1500_PCI_INTD : 0xff;
 +      if (slot == 12)
 +              return (pin == 3) ? AU1500_PCI_INTC : 0xff;
 +      if (slot == 13) {
 +              switch (pin) {
 +              case 1: return AU1500_PCI_INTA;
 +              case 2: return AU1500_PCI_INTB;
 +              default: return 0xff;
 +              }
 +      }
 +      return -1;
 +}
 +#endif
 +
 +static struct resource alchemy_pci_host_res[] = {
 +      [0] = {
 +              .start  = AU1500_PCI_PHYS_ADDR,
 +              .end    = AU1500_PCI_PHYS_ADDR + 0xfff,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +};
 +
 +static struct alchemy_pci_platdata db1xxx_pci_pd = {
 +      .board_map_irq  = db1xxx_map_pci_irq,
 +};
 +
 +static struct platform_device db1xxx_pci_host_dev = {
 +      .dev.platform_data = &db1xxx_pci_pd,
 +      .name           = "alchemy-pci",
 +      .id             = 0,
 +      .num_resources  = ARRAY_SIZE(alchemy_pci_host_res),
 +      .resource       = alchemy_pci_host_res,
 +};
 +
 +static int __init db15x0_pci_init(void)
 +{
 +      return platform_device_register(&db1xxx_pci_host_dev);
 +}
 +/* must be arch_initcall; MIPS PCI scans busses in a subsys_initcall */
 +arch_initcall(db15x0_pci_init);
 +#endif
 +
 +#ifdef CONFIG_MIPS_DB1100
 +static struct resource au1100_lcd_resources[] = {
 +      [0] = {
 +              .start  = AU1100_LCD_PHYS_ADDR,
 +              .end    = AU1100_LCD_PHYS_ADDR + 0x800 - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [1] = {
 +              .start  = AU1100_LCD_INT,
 +              .end    = AU1100_LCD_INT,
 +              .flags  = IORESOURCE_IRQ,
 +      }
 +};
 +
 +static u64 au1100_lcd_dmamask = DMA_BIT_MASK(32);
 +
 +static struct platform_device au1100_lcd_device = {
 +      .name           = "au1100-lcd",
 +      .id             = 0,
 +      .dev = {
 +              .dma_mask               = &au1100_lcd_dmamask,
 +              .coherent_dma_mask      = DMA_BIT_MASK(32),
 +      },
 +      .num_resources  = ARRAY_SIZE(au1100_lcd_resources),
 +      .resource       = au1100_lcd_resources,
 +};
 +#endif
 +
+ static struct resource alchemy_ac97c_res[] = {
+       [0] = {
+               .start  = AU1000_AC97_PHYS_ADDR,
+               .end    = AU1000_AC97_PHYS_ADDR + 0xfff,
+               .flags  = IORESOURCE_MEM,
+       },
+       [1] = {
+               .start  = DMA_ID_AC97C_TX,
+               .end    = DMA_ID_AC97C_TX,
+               .flags  = IORESOURCE_DMA,
+       },
+       [2] = {
+               .start  = DMA_ID_AC97C_RX,
+               .end    = DMA_ID_AC97C_RX,
+               .flags  = IORESOURCE_DMA,
+       },
+ };
+ static struct platform_device alchemy_ac97c_dev = {
+       .name           = "alchemy-ac97c",
+       .id             = -1,
+       .resource       = alchemy_ac97c_res,
+       .num_resources  = ARRAY_SIZE(alchemy_ac97c_res),
+ };
+ static struct platform_device alchemy_ac97c_dma_dev = {
+       .name           = "alchemy-pcm-dma",
+       .id             = 0,
+ };
+ static struct platform_device db1x00_codec_dev = {
+       .name           = "ac97-codec",
+       .id             = -1,
+ };
+ static struct platform_device db1x00_audio_dev = {
+       .name           = "db1000-audio",
+ };
  static int __init db1xxx_dev_init(void)
  {
  #ifdef DB1XXX_HAS_PCMCIA
 -      db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR,
 -                                  PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
 -                                  PCMCIA_MEM_PHYS_ADDR,
 -                                  PCMCIA_MEM_PHYS_ADDR  + 0x000400000 - 1,
 -                                  PCMCIA_IO_PHYS_ADDR,
 -                                  PCMCIA_IO_PHYS_ADDR   + 0x000010000 - 1,
 -                                  DB1XXX_PCMCIA_CARD0,
 -                                  DB1XXX_PCMCIA_CD0,
 -                                  /*DB1XXX_PCMCIA_STSCHG0*/0,
 -                                  0,
 -                                  0);
 -
 -      db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR + 0x004000000,
 -                                  PCMCIA_ATTR_PHYS_ADDR + 0x004400000 - 1,
 -                                  PCMCIA_MEM_PHYS_ADDR  + 0x004000000,
 -                                  PCMCIA_MEM_PHYS_ADDR  + 0x004400000 - 1,
 -                                  PCMCIA_IO_PHYS_ADDR   + 0x004000000,
 -                                  PCMCIA_IO_PHYS_ADDR   + 0x004010000 - 1,
 -                                  DB1XXX_PCMCIA_CARD1,
 -                                  DB1XXX_PCMCIA_CD1,
 -                                  /*DB1XXX_PCMCIA_STSCHG1*/0,
 -                                  0,
 -                                  1);
 +      db1x_register_pcmcia_socket(
 +              AU1000_PCMCIA_ATTR_PHYS_ADDR,
 +              AU1000_PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
 +              AU1000_PCMCIA_MEM_PHYS_ADDR,
 +              AU1000_PCMCIA_MEM_PHYS_ADDR  + 0x000400000 - 1,
 +              AU1000_PCMCIA_IO_PHYS_ADDR,
 +              AU1000_PCMCIA_IO_PHYS_ADDR   + 0x000010000 - 1,
 +              DB1XXX_PCMCIA_CARD0, DB1XXX_PCMCIA_CD0,
 +              /*DB1XXX_PCMCIA_STSCHG0*/0, 0, 0);
 +
 +      db1x_register_pcmcia_socket(
 +              AU1000_PCMCIA_ATTR_PHYS_ADDR + 0x004000000,
 +              AU1000_PCMCIA_ATTR_PHYS_ADDR + 0x004400000 - 1,
 +              AU1000_PCMCIA_MEM_PHYS_ADDR  + 0x004000000,
 +              AU1000_PCMCIA_MEM_PHYS_ADDR  + 0x004400000 - 1,
 +              AU1000_PCMCIA_IO_PHYS_ADDR   + 0x004000000,
 +              AU1000_PCMCIA_IO_PHYS_ADDR   + 0x004010000 - 1,
 +              DB1XXX_PCMCIA_CARD1, DB1XXX_PCMCIA_CD1,
 +              /*DB1XXX_PCMCIA_STSCHG1*/0, 0, 1);
 +#endif
 +#ifdef CONFIG_MIPS_DB1100
 +      platform_device_register(&au1100_lcd_device);
  #endif
        db1x_register_norflash(BOARD_FLASH_SIZE, BOARD_FLASH_WIDTH, F_SWAPPED);
+       platform_device_register(&db1x00_codec_dev);
+       platform_device_register(&alchemy_ac97c_dma_dev);
+       platform_device_register(&alchemy_ac97c_dev);
+       platform_device_register(&db1x00_audio_dev);
        return 0;
  }
  device_initcall(db1xxx_dev_init);
Simple merge
Simple merge
index 0a0d5017a64214b097995349dd112f272fa9dd06,77dd0a13aecc40f59ac9361f241f376a61173934..d2f615ab177a7ca021d9f802d61ba2b57b10a7ca
@@@ -23,8 -23,8 +23,8 @@@ config SND_SGI_HAL
  
  
  config SND_AU1X00
-       tristate "Au1x00 AC97 Port Driver"
+       tristate "Au1x00 AC97 Port Driver (DEPRECATED)"
 -      depends on SOC_AU1000 || SOC_AU1100 || SOC_AU1500
 +      depends on MIPS_ALCHEMY
        select SND_PCM
        select SND_AC97_CODEC
        help
Simple merge
Simple merge