]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ARM: OMAP2+: twl-common: Allow boards to customize the twl4030 audio setup
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Wed, 5 Dec 2012 13:45:23 +0000 (14:45 +0100)
committerPeter Ujfalusi <peter.ujfalusi@ti.com>
Tue, 22 Jan 2013 09:34:50 +0000 (10:34 +0100)
Boards with special audio routing can pass a custom omap_tw4030_pdata to the
audio machine driver.

At the same time update the board files using the same audio driver.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
arch/arm/mach-omap2/board-cm-t35.c
arch/arm/mach-omap2/board-devkit8000.c
arch/arm/mach-omap2/board-igep0020.c
arch/arm/mach-omap2/board-omap3beagle.c
arch/arm/mach-omap2/board-omap3evm.c
arch/arm/mach-omap2/board-overo.c
arch/arm/mach-omap2/twl-common.c
arch/arm/mach-omap2/twl-common.h

index b3102c2f4a3cbbede79af9aeb10beecf808a60a5..eec635e15eddf0c17a73ea73e3202e3d47b70261 100644 (file)
@@ -722,7 +722,7 @@ static void __init cm_t3x_common_init(void)
        cm_t35_init_ethernet();
        cm_t35_init_led();
        cm_t35_init_display();
-       omap_twl4030_audio_init("cm-t3x");
+       omap_twl4030_audio_init("cm-t3x", NULL);
 
        usb_musb_init(NULL);
        cm_t35_init_usbh();
index 12865af25d3a865b351e8dff3b8cb5fc20649ca5..f0aa64b1e9773811500241d5232502bfdb33d4d5 100644 (file)
@@ -627,7 +627,7 @@ static void __init devkit8000_init(void)
        board_nand_init(devkit8000_nand_partitions,
                        ARRAY_SIZE(devkit8000_nand_partitions), NAND_CS,
                        NAND_BUSWIDTH_16, NULL);
-       omap_twl4030_audio_init("omap3beagle");
+       omap_twl4030_audio_init("omap3beagle", NULL);
 
        /* Ensure SDRC pins are mux'd for self-refresh */
        omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
index 0f24cb84ba5a524ff0256462d84be6cc2d6d9b0e..d1a7352915961fbc95d17917bad050f1d0cf5e7d 100644 (file)
@@ -629,7 +629,7 @@ static void __init igep_init(void)
 
        igep_flash_init();
        igep_leds_init();
-       omap_twl4030_audio_init("igep2");
+       omap_twl4030_audio_init("igep2", NULL);
 
        /*
         * WLAN-BT combo module from MuRata which has a Marvell WLAN
index 22c483d5dfa829891fd8ec9ece81f35c94cf152b..909e7fa6d299de638a151884b155af085597f22d 100644 (file)
@@ -524,7 +524,7 @@ static void __init omap3_beagle_init(void)
        board_nand_init(omap3beagle_nand_partitions,
                        ARRAY_SIZE(omap3beagle_nand_partitions), NAND_CS,
                        NAND_BUSWIDTH_16, NULL);
-       omap_twl4030_audio_init("omap3beagle");
+       omap_twl4030_audio_init("omap3beagle", NULL);
 
        /* Ensure msecure is mux'd to be able to set the RTC. */
        omap_mux_init_signal("sys_drm_msecure", OMAP_PIN_OFF_OUTPUT_HIGH);
index 3985f35aee06a6cffbc05d2930b56c456231ee97..8803b5cff09d18080382a127860a7a8e743f4d0c 100644 (file)
@@ -744,7 +744,7 @@ static void __init omap3_evm_init(void)
        omap3evm_init_smsc911x();
        omap3_evm_display_init();
        omap3_evm_wl12xx_init();
-       omap_twl4030_audio_init("omap3evm");
+       omap_twl4030_audio_init("omap3evm", NULL);
 }
 
 MACHINE_START(OMAP3EVM, "OMAP3 EVM")
index c8fde3e5644138088721040a465b55de4094313c..fe644ebe76576c3340511e9d20aa0ef134298691 100644 (file)
@@ -506,7 +506,7 @@ static void __init overo_init(void)
        overo_display_init();
        overo_init_led();
        overo_init_keys();
-       omap_twl4030_audio_init("overo");
+       omap_twl4030_audio_init("overo", NULL);
 
        /* Ensure SDRC pins are mux'd for self-refresh */
        omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
index cd1cba84bcd9a8424ac9405036ffe4cf98f6c369..931495a2587244a2c3060631af42b08279bebead 100644 (file)
@@ -529,28 +529,28 @@ void __init omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
 #include <linux/platform_data/omap-twl4030.h>
 
 /* Commonly used configuration */
-static struct omap_tw4030_pdata omap_twl4030_audio_data = {
-       .has_hs         = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
-       .has_hf         = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
-       .has_linein     = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
-};
+static struct omap_tw4030_pdata omap_twl4030_audio_data;
 
 static struct platform_device audio_device = {
        .name           = "omap-twl4030",
        .id             = -1,
-       .dev = {
-               .platform_data = &omap_twl4030_audio_data,
-       },
 };
 
-void __init omap_twl4030_audio_init(char *card_name)
+void __init omap_twl4030_audio_init(char *card_name,
+                                   struct omap_tw4030_pdata *pdata)
 {
-       omap_twl4030_audio_data.card_name = card_name;
+       if (!pdata)
+               pdata = &omap_twl4030_audio_data;
+
+       pdata->card_name = card_name;
+
+       audio_device.dev.platform_data = pdata;
        platform_device_register(&audio_device);
 }
 
 #else /* SOC_OMAP_TWL4030 */
-void __init omap_twl4030_audio_init(char *card_name)
+void __init omap_twl4030_audio_init(char *card_name,
+                                   struct omap_tw4030_pdata *pdata)
 {
        return;
 }
index dcfbad5ac471d211b72e1c39f22762de67aab6fc..24b65d081b69ffd7b6a0f21003505f4aad9df406 100644 (file)
@@ -32,6 +32,7 @@
 
 struct twl4030_platform_data;
 struct twl6040_platform_data;
+struct omap_tw4030_pdata;
 struct i2c_board_info;
 
 void omap_pmic_init(int bus, u32 clkrate, const char *pmic_type, int pmic_irq,
@@ -60,6 +61,6 @@ void omap3_pmic_get_config(struct twl4030_platform_data *pmic_data,
 void omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
                           u32 pdata_flags, u32 regulators_flags);
 
-void omap_twl4030_audio_init(char *card_name);
+void omap_twl4030_audio_init(char *card_name, struct omap_tw4030_pdata *pdata);
 
 #endif /* __OMAP_PMIC_COMMON__ */