Message ID | 20191219210944.18256-2-angus@akkea.ca (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add the broadmobi BM818 | expand |
On Thu, Dec 19, 2019 at 01:09:43PM -0800, Angus Ainslie (Purism) wrote: > @@ -37,7 +37,7 @@ static struct snd_soc_dai_driver gtm601_dai = { > .channels_max = 1, > .rates = SNDRV_PCM_RATE_8000, > .formats = SNDRV_PCM_FMTBIT_S16_LE, > - }, > + }, > .capture = { This is an unrelated indentation change.
On Thu, Dec 19, 2019 at 01:09:43PM -0800, Angus Ainslie (Purism) wrote: > static int gtm601_platform_probe(struct platform_device *pdev) > { > + struct snd_soc_dai_driver *dai_driver; > + > + dai_driver = of_device_get_match_data(&pdev->dev); > + I was going to apply this but it causes build warnings: sound/soc/codecs/gtm601.c: In function ‘gtm601_platform_probe’: sound/soc/codecs/gtm601.c:83:13: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] dai_driver = of_device_get_match_data(&pdev->dev); ^
On 2019-12-20 05:01, Mark Brown wrote: > On Thu, Dec 19, 2019 at 01:09:43PM -0800, Angus Ainslie (Purism) wrote: > >> static int gtm601_platform_probe(struct platform_device *pdev) >> { >> + struct snd_soc_dai_driver *dai_driver; >> + >> + dai_driver = of_device_get_match_data(&pdev->dev); >> + > > I was going to apply this but it causes build warnings: > > sound/soc/codecs/gtm601.c: In function ‘gtm601_platform_probe’: > sound/soc/codecs/gtm601.c:83:13: warning: assignment discards ‘const’ > qualifier from pointer target type [-Wdiscarded-qualifiers] > dai_driver = of_device_get_match_data(&pdev->dev); > ^ Sorry, missed that. New version inbound. Angus
diff --git a/sound/soc/codecs/gtm601.c b/sound/soc/codecs/gtm601.c index d454294c8d06..3374362741a6 100644 --- a/sound/soc/codecs/gtm601.c +++ b/sound/soc/codecs/gtm601.c @@ -13,7 +13,7 @@ #include <linux/slab.h> #include <linux/module.h> #include <linux/kernel.h> -#include <linux/device.h> +#include <linux/of_device.h> #include <sound/core.h> #include <sound/pcm.h> #include <sound/initval.h> @@ -37,7 +37,7 @@ static struct snd_soc_dai_driver gtm601_dai = { .channels_max = 1, .rates = SNDRV_PCM_RATE_8000, .formats = SNDRV_PCM_FMTBIT_S16_LE, - }, + }, .capture = { .stream_name = "Capture", .channels_min = 1, @@ -47,6 +47,24 @@ static struct snd_soc_dai_driver gtm601_dai = { }, }; +static struct snd_soc_dai_driver bm818_dai = { + .name = "bm818", + .playback = { + .stream_name = "Playback", + .channels_min = 2, + .channels_max = 2, + .rates = SNDRV_PCM_RATE_48000, + .formats = SNDRV_PCM_FMTBIT_S16_LE, + }, + .capture = { + .stream_name = "Capture", + .channels_min = 2, + .channels_max = 2, + .rates = SNDRV_PCM_RATE_48000, + .formats = SNDRV_PCM_FMTBIT_S16_LE, + }, +}; + static const struct snd_soc_component_driver soc_component_dev_gtm601 = { .dapm_widgets = gtm601_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(gtm601_dapm_widgets), @@ -60,13 +78,18 @@ static const struct snd_soc_component_driver soc_component_dev_gtm601 = { static int gtm601_platform_probe(struct platform_device *pdev) { + struct snd_soc_dai_driver *dai_driver; + + dai_driver = of_device_get_match_data(&pdev->dev); + return devm_snd_soc_register_component(&pdev->dev, - &soc_component_dev_gtm601, >m601_dai, 1); + &soc_component_dev_gtm601, dai_driver, 1); } #if defined(CONFIG_OF) static const struct of_device_id gtm601_codec_of_match[] = { - { .compatible = "option,gtm601", }, + { .compatible = "option,gtm601", .data = (void *)>m601_dai }, + { .compatible = "broadmobi,bm818", .data = (void *)&bm818_dai }, {}, }; MODULE_DEVICE_TABLE(of, gtm601_codec_of_match);
The Broadmobi bm818 uses stereo sound at 48Khz sample rate Signed-off-by: Angus Ainslie (Purism) <angus@akkea.ca> --- sound/soc/codecs/gtm601.c | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-)