#include <linux/davinci_emac.h>
  #include <linux/platform_device.h>
  #include <linux/spi/spi.h>
- 
- #include <mach/asp.h>
+ #include <linux/platform_data/davinci_asp.h>
 -
 -#include <mach/keyscan.h>
 +#include <linux/platform_data/keyscan-davinci.h>
  #include <mach/hardware.h>
+ #include <mach/edma.h>
  
  #include <media/davinci/vpfe_capture.h>
  #include <media/davinci/vpif_types.h>
 
  #include <mach/time.h>
  #include <mach/serial.h>
  #include <mach/common.h>
- #include <mach/asp.h>
 -#include <mach/spi.h>
 +#include <linux/platform_data/spi-davinci.h>
  #include <mach/gpio-davinci.h>
  
  #include "davinci.h"
 
  #include <mach/time.h>
  #include <mach/serial.h>
  #include <mach/common.h>
- #include <mach/asp.h>
 -#include <mach/keyscan.h>
 -#include <mach/spi.h>
 +#include <linux/platform_data/keyscan-davinci.h>
 +#include <linux/platform_data/spi-davinci.h>
  #include <mach/gpio-davinci.h>
  
  #include "davinci.h"
 
  
  #include <mach/serial.h>
  #include <mach/edma.h>
- #include <mach/asp.h>
 -#include <mach/i2c.h>
 -#include <mach/mmc.h>
 -#include <mach/usb.h>
  #include <mach/pm.h>
 -#include <mach/spi.h>
 +#include <linux/platform_data/i2c-davinci.h>
 +#include <linux/platform_data/mmc-davinci.h>
 +#include <linux/platform_data/usb-davinci.h>
 +#include <linux/platform_data/spi-davinci.h>
  
  extern void __iomem *da8xx_syscfg0_base;
  extern void __iomem *da8xx_syscfg1_base;
 
  #include <linux/delay.h>
  #include <linux/dma-mapping.h>
  #include <linux/leds.h>
 -#include <linux/memblock.h>
+ #include <linux/platform_data/asoc-mx27vis.h>
  #include <media/soc_camera.h>
  #include <sound/tlv320aic32x4.h>
  #include <asm/mach-types.h>
        .flags                  = IMX_SSI_DMA | IMX_SSI_SYN,
  };
  
 +/* coda */
 +
 +static void __init visstrim_coda_init(void)
 +{
 +      struct platform_device *pdev;
 +      int dma;
 +
 +      pdev = imx27_add_coda();
 +      dma = dma_declare_coherent_memory(&pdev->dev,
 +                                        mx2_camera_base + MX2_CAMERA_BUF_SIZE,
 +                                        mx2_camera_base + MX2_CAMERA_BUF_SIZE,
 +                                        MX2_CAMERA_BUF_SIZE,
 +                                        DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE);
 +      if (!(dma & DMA_MEMORY_MAP))
 +              return;
 +}
 +
 +/* DMA deinterlace */
 +static struct platform_device visstrim_deinterlace = {
 +      .name = "m2m-deinterlace",
 +      .id = 0,
 +};
 +
 +static void __init visstrim_deinterlace_init(void)
 +{
 +      int ret = -ENOMEM;
 +      struct platform_device *pdev = &visstrim_deinterlace;
 +      int dma;
 +
 +      ret = platform_device_register(pdev);
 +
 +      dma = dma_declare_coherent_memory(&pdev->dev,
 +                                        mx2_camera_base + 2 * MX2_CAMERA_BUF_SIZE,
 +                                        mx2_camera_base + 2 * MX2_CAMERA_BUF_SIZE,
 +                                        MX2_CAMERA_BUF_SIZE,
 +                                        DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE);
 +      if (!(dma & DMA_MEMORY_MAP))
 +              return;
 +}
 +
 +
+ /* Audio */
+ static const struct snd_mx27vis_platform_data snd_mx27vis_pdata __initconst = {
+       .amp_gain0_gpio = AMP_GAIN_0,
+       .amp_gain1_gpio = AMP_GAIN_1,
+       .amp_mutel_gpio = AMP_MUTE_SDL,
+       .amp_muter_gpio = AMP_MUTE_SDR,
+ };
+ 
  static void __init visstrim_m10_revision(void)
  {
        int exp_version = 0;
 
        return ret;
  }
  
- /* EXTMUTE callback function */
- static void zoom2_set_hs_extmute(int mute)
- {
-       gpio_set_value(ZOOM2_HEADSET_EXTMUTE_GPIO, mute);
- }
- 
  static struct twl4030_gpio_platform_data zoom_gpio_data = {
 -      .gpio_base      = OMAP_MAX_GPIO_LINES,
 -      .irq_base       = TWL4030_GPIO_IRQ_BASE,
 -      .irq_end        = TWL4030_GPIO_IRQ_END,
        .setup          = zoom_twl_gpio_setup,
  };
  
  
                codec_data->ramp_delay_value = 3;       /* 161 ms */
                codec_data->hs_extmute = 1;
-               codec_data->set_hs_extmute = zoom2_set_hs_extmute;
+               codec_data->hs_extmute_gpio = ZOOM2_HEADSET_EXTMUTE_GPIO;
        }
 -      omap_pmic_init(1, 2400, "twl5030", INT_34XX_SYS_NIRQ, &zoom_twldata);
 +      omap_pmic_init(1, 2400, "twl5030", 7 + OMAP_INTC_START, &zoom_twldata);
        omap_register_i2c_bus(2, 400, NULL, 0);
        omap_register_i2c_bus(3, 400, NULL, 0);
        return 0;
 
  #include <linux/clk.h>
  #include <linux/err.h>
  #include <linux/io.h>
+ #include <linux/of.h>
  #include <linux/platform_device.h>
  #include <linux/slab.h>
 +#include <linux/platform_data/asoc-ti-mcbsp.h>
  
 -#include <mach/irqs.h>
  #include <plat/dma.h>
 -#include <plat/cpu.h>
 -#include <plat/mcbsp.h>
  #include <plat/omap_device.h>
  #include <linux/pm_runtime.h>
  
 
   * @chan: channel
   * @dma_addr: DMA mapped address of the buffer
   * @buf_len: length of the buffer (in bytes)
 - * @period_len: lenght of a single period
 + * @period_len: length of a single period
   * @dir: direction of the operation
+  * @flags: tx descriptor status flags
   * @context: operation context (ignored)
   *
   * Prepares a descriptor for cyclic DMA operation. This means that once the
 
  #include <linux/delay.h>
  #include <linux/io.h>
  #include <linux/slab.h>
+ #include <linux/pm_runtime.h>
  
 -#include <plat/mcbsp.h>
 +#include <linux/platform_data/asoc-ti-mcbsp.h>
 +
 +#include <plat/cpu.h>
  
  #include "mcbsp.h"
  
 
  #include <sound/initval.h>
  #include <sound/soc.h>
  
 -#include <plat/mcbsp.h>
 +#include <plat/cpu.h>
- #include <plat/dma.h>
 +#include <linux/platform_data/asoc-ti-mcbsp.h>
  #include "mcbsp.h"
  #include "omap-mcbsp.h"
  #include "omap-pcm.h"
 
  #include <sound/core.h>
  #include <sound/pcm.h>
  #include <sound/pcm_params.h>
+ #include <sound/dmaengine_pcm.h>
  #include <sound/soc.h>
  
- #include <plat/dma.h>
 +#include <plat/cpu.h>
  #include "omap-pcm.h"
  
  static const struct snd_pcm_hardware omap_pcm_hardware = {