Loading arch/arm/mach-pxa/tosa.c +6 −0 Original line number Diff line number Diff line Loading @@ -889,6 +889,11 @@ static struct platform_device wm9712_device = { .id = -1, }; static struct platform_device tosa_audio_device = { .name = "tosa-audio", .id = -1, }; static struct platform_device *devices[] __initdata = { &tosascoop_device, &tosascoop_jc_device, Loading @@ -901,6 +906,7 @@ static struct platform_device *devices[] __initdata = { &sharpsl_rom_device, &wm9712_device, &tosa_gpio_vbus, &tosa_audio_device, }; static void tosa_poweroff(void) Loading sound/soc/pxa/tosa.c +30 −47 Original line number Diff line number Diff line Loading @@ -34,8 +34,6 @@ #include "../codecs/wm9712.h" #include "pxa2xx-ac97.h" static struct snd_soc_card tosa; #define TOSA_HP 0 #define TOSA_MIC_INT 1 #define TOSA_HEADSET 2 Loading Loading @@ -236,70 +234,55 @@ static struct snd_soc_dai_link tosa_dai[] = { }, }; static int tosa_probe(struct snd_soc_card *card) { int ret; ret = gpio_request(TOSA_GPIO_L_MUTE, "Headphone Jack"); if (ret) return ret; ret = gpio_direction_output(TOSA_GPIO_L_MUTE, 0); if (ret) gpio_free(TOSA_GPIO_L_MUTE); return ret; } static int tosa_remove(struct snd_soc_card *card) { gpio_free(TOSA_GPIO_L_MUTE); return 0; } static struct snd_soc_card tosa = { .name = "Tosa", .dai_link = tosa_dai, .num_links = ARRAY_SIZE(tosa_dai), .probe = tosa_probe, .remove = tosa_remove, }; static struct platform_device *tosa_snd_device; static int __init tosa_init(void) static int __devinit tosa_probe(struct platform_device *pdev) { struct snd_soc_card *card = ⤩ int ret; if (!machine_is_tosa()) return -ENODEV; tosa_snd_device = platform_device_alloc("soc-audio", -1); if (!tosa_snd_device) { ret = -ENOMEM; goto err_alloc; } platform_set_drvdata(tosa_snd_device, &tosa); ret = platform_device_add(tosa_snd_device); if (!ret) return 0; ret = gpio_request_one(TOSA_GPIO_L_MUTE, GPIOF_OUT_INIT_LOW, "Headphone Jack"); if (ret) return ret; platform_device_put(tosa_snd_device); card->dev = &pdev->dev; err_alloc: ret = snd_soc_register_card(card); if (ret) { dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n", ret); gpio_free(TOSA_GPIO_L_MUTE); } return ret; } static void __exit tosa_exit(void) static int __devexit tosa_remove(struct platform_device *pdev) { platform_device_unregister(tosa_snd_device); struct snd_soc_card *card = platform_get_drvdata(pdev); gpio_free(TOSA_GPIO_L_MUTE); snd_soc_unregister_card(card); return 0; } module_init(tosa_init); module_exit(tosa_exit); static struct platform_driver tosa_driver = { .driver = { .name = "tosa-audio", .owner = THIS_MODULE, }, .probe = tosa_probe, .remove = __devexit_p(tosa_remove), }; module_platform_driver(tosa_driver); /* Module information */ MODULE_AUTHOR("Richard Purdie"); MODULE_DESCRIPTION("ALSA SoC Tosa"); MODULE_LICENSE("GPL"); MODULE_ALIAS("platform:tosa-audio"); Loading
arch/arm/mach-pxa/tosa.c +6 −0 Original line number Diff line number Diff line Loading @@ -889,6 +889,11 @@ static struct platform_device wm9712_device = { .id = -1, }; static struct platform_device tosa_audio_device = { .name = "tosa-audio", .id = -1, }; static struct platform_device *devices[] __initdata = { &tosascoop_device, &tosascoop_jc_device, Loading @@ -901,6 +906,7 @@ static struct platform_device *devices[] __initdata = { &sharpsl_rom_device, &wm9712_device, &tosa_gpio_vbus, &tosa_audio_device, }; static void tosa_poweroff(void) Loading
sound/soc/pxa/tosa.c +30 −47 Original line number Diff line number Diff line Loading @@ -34,8 +34,6 @@ #include "../codecs/wm9712.h" #include "pxa2xx-ac97.h" static struct snd_soc_card tosa; #define TOSA_HP 0 #define TOSA_MIC_INT 1 #define TOSA_HEADSET 2 Loading Loading @@ -236,70 +234,55 @@ static struct snd_soc_dai_link tosa_dai[] = { }, }; static int tosa_probe(struct snd_soc_card *card) { int ret; ret = gpio_request(TOSA_GPIO_L_MUTE, "Headphone Jack"); if (ret) return ret; ret = gpio_direction_output(TOSA_GPIO_L_MUTE, 0); if (ret) gpio_free(TOSA_GPIO_L_MUTE); return ret; } static int tosa_remove(struct snd_soc_card *card) { gpio_free(TOSA_GPIO_L_MUTE); return 0; } static struct snd_soc_card tosa = { .name = "Tosa", .dai_link = tosa_dai, .num_links = ARRAY_SIZE(tosa_dai), .probe = tosa_probe, .remove = tosa_remove, }; static struct platform_device *tosa_snd_device; static int __init tosa_init(void) static int __devinit tosa_probe(struct platform_device *pdev) { struct snd_soc_card *card = ⤩ int ret; if (!machine_is_tosa()) return -ENODEV; tosa_snd_device = platform_device_alloc("soc-audio", -1); if (!tosa_snd_device) { ret = -ENOMEM; goto err_alloc; } platform_set_drvdata(tosa_snd_device, &tosa); ret = platform_device_add(tosa_snd_device); if (!ret) return 0; ret = gpio_request_one(TOSA_GPIO_L_MUTE, GPIOF_OUT_INIT_LOW, "Headphone Jack"); if (ret) return ret; platform_device_put(tosa_snd_device); card->dev = &pdev->dev; err_alloc: ret = snd_soc_register_card(card); if (ret) { dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n", ret); gpio_free(TOSA_GPIO_L_MUTE); } return ret; } static void __exit tosa_exit(void) static int __devexit tosa_remove(struct platform_device *pdev) { platform_device_unregister(tosa_snd_device); struct snd_soc_card *card = platform_get_drvdata(pdev); gpio_free(TOSA_GPIO_L_MUTE); snd_soc_unregister_card(card); return 0; } module_init(tosa_init); module_exit(tosa_exit); static struct platform_driver tosa_driver = { .driver = { .name = "tosa-audio", .owner = THIS_MODULE, }, .probe = tosa_probe, .remove = __devexit_p(tosa_remove), }; module_platform_driver(tosa_driver); /* Module information */ MODULE_AUTHOR("Richard Purdie"); MODULE_DESCRIPTION("ALSA SoC Tosa"); MODULE_LICENSE("GPL"); MODULE_ALIAS("platform:tosa-audio");