1 /* 2 * Driver for generic Bluetooth SCO link 3 * Copyright 2011 Lars-Peter Clausen <lars@metafoo.de> 4 * 5 * This program is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License as published by the 7 * Free Software Foundation; either version 2 of the License, or (at your 8 * option) any later version. 9 * 10 */ 11 12 #include <linux/init.h> 13 #include <linux/module.h> 14 #include <linux/platform_device.h> 15 16 #include <sound/soc.h> 17 18 static struct snd_soc_dai_driver bt_sco_dai = { 19 .name = "bt-sco-pcm", 20 .playback = { 21 .channels_min = 1, 22 .channels_max = 1, 23 .rates = SNDRV_PCM_RATE_8000, 24 .formats = SNDRV_PCM_FMTBIT_S16_LE, 25 }, 26 .capture = { 27 .channels_min = 1, 28 .channels_max = 1, 29 .rates = SNDRV_PCM_RATE_8000, 30 .formats = SNDRV_PCM_FMTBIT_S16_LE, 31 }, 32 }; 33 34 static struct snd_soc_codec_driver soc_codec_dev_bt_sco; 35 36 static int bt_sco_probe(struct platform_device *pdev) 37 { 38 return snd_soc_register_codec(&pdev->dev, &soc_codec_dev_bt_sco, 39 &bt_sco_dai, 1); 40 } 41 42 static int bt_sco_remove(struct platform_device *pdev) 43 { 44 snd_soc_unregister_codec(&pdev->dev); 45 46 return 0; 47 } 48 49 static struct platform_device_id bt_sco_driver_ids[] = { 50 { 51 .name = "dfbmcs320", 52 }, 53 { 54 .name = "bt-sco", 55 }, 56 {}, 57 }; 58 MODULE_DEVICE_TABLE(platform, bt_sco_driver_ids); 59 60 static struct platform_driver bt_sco_driver = { 61 .driver = { 62 .name = "bt-sco", 63 .owner = THIS_MODULE, 64 }, 65 .probe = bt_sco_probe, 66 .remove = bt_sco_remove, 67 .id_table = bt_sco_driver_ids, 68 }; 69 70 module_platform_driver(bt_sco_driver); 71 72 MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>"); 73 MODULE_DESCRIPTION("ASoC generic bluethooth sco link driver"); 74 MODULE_LICENSE("GPL"); 75