pcm5102a.c (1373B)
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Driver for the PCM5102A codec 4 * 5 * Author: Florian Meier <florian.meier@koalo.de> 6 * Copyright 2013 7 */ 8 9#include <linux/init.h> 10#include <linux/module.h> 11#include <linux/platform_device.h> 12 13#include <sound/soc.h> 14 15static struct snd_soc_dai_driver pcm5102a_dai = { 16 .name = "pcm5102a-hifi", 17 .playback = { 18 .channels_min = 2, 19 .channels_max = 2, 20 .rates = SNDRV_PCM_RATE_8000_384000, 21 .formats = SNDRV_PCM_FMTBIT_S16_LE | 22 SNDRV_PCM_FMTBIT_S24_LE | 23 SNDRV_PCM_FMTBIT_S32_LE 24 }, 25}; 26 27static struct snd_soc_component_driver soc_component_dev_pcm5102a = { 28 .idle_bias_on = 1, 29 .use_pmdown_time = 1, 30 .endianness = 1, 31 .non_legacy_dai_naming = 1, 32}; 33 34static int pcm5102a_probe(struct platform_device *pdev) 35{ 36 return devm_snd_soc_register_component(&pdev->dev, &soc_component_dev_pcm5102a, 37 &pcm5102a_dai, 1); 38} 39 40static const struct of_device_id pcm5102a_of_match[] = { 41 { .compatible = "ti,pcm5102a", }, 42 { } 43}; 44MODULE_DEVICE_TABLE(of, pcm5102a_of_match); 45 46static struct platform_driver pcm5102a_codec_driver = { 47 .probe = pcm5102a_probe, 48 .driver = { 49 .name = "pcm5102a-codec", 50 .of_match_table = pcm5102a_of_match, 51 }, 52}; 53 54module_platform_driver(pcm5102a_codec_driver); 55 56MODULE_DESCRIPTION("ASoC PCM5102A codec driver"); 57MODULE_AUTHOR("Florian Meier <florian.meier@koalo.de>"); 58MODULE_LICENSE("GPL v2");