imx27_add_fec(NULL);
        imx_add_gpio_keys(&visstrim_gpio_keys_platform_data);
        platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
+       imx_add_platform_device("mx27vis", 0, NULL, 0, NULL, 0);
 +      platform_device_register_resndata(NULL, "soc-camera-pdrv", 0, NULL, 0,
 +                                    &iclink_tvp5150, sizeof(iclink_tvp5150));
 +      gpio_led_register_device(0, &visstrim_m10_led_data);
 +      visstrim_camera_init();
  }
  
  static void __init visstrim_m10_timer_init(void)
 
        },
  };
  
+ static struct omap_abe_twl6040_data panda_abe_audio_data = {
+       /* Audio out */
+       .has_hs         = ABE_TWL6040_LEFT | ABE_TWL6040_RIGHT,
+       /* HandsFree through expasion connector */
+       .has_hf         = ABE_TWL6040_LEFT | ABE_TWL6040_RIGHT,
+       /* PandaBoard: FM TX, PandaBoardES: can be connected to audio out */
+       .has_aux        = ABE_TWL6040_LEFT | ABE_TWL6040_RIGHT,
+       /* PandaBoard: FM RX, PandaBoardES: audio in */
+       .has_afm        = ABE_TWL6040_LEFT | ABE_TWL6040_RIGHT,
+       /* No jack detection. */
+       .jack_detection = 0,
+       /* MCLK input is 38.4MHz */
+       .mclk_freq      = 38400000,
+ 
+ };
+ 
+ static struct platform_device panda_abe_audio = {
+       .name           = "omap-abe-twl6040",
+       .id             = -1,
+       .dev = {
+               .platform_data = &panda_abe_audio_data,
+       },
+ };
+ 
 +static struct platform_device btwilink_device = {
 +      .name   = "btwilink",
 +      .id     = -1,
 +};
 +
  static struct platform_device *panda_devices[] __initdata = {
        &leds_gpio,
        &wl1271_device,
+       &panda_abe_audio,
 +      &btwilink_device,
  };
  
  static const struct usbhs_omap_board_data usbhs_bdata __initconst = {