162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * DB1000/DB1500/DB1100 ASoC audio fabric support code. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * (c) 2011 Manuel Lauss <manuel.lauss@googlemail.com> 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <linux/module.h> 1062306a36Sopenharmony_ci#include <linux/moduleparam.h> 1162306a36Sopenharmony_ci#include <linux/timer.h> 1262306a36Sopenharmony_ci#include <linux/interrupt.h> 1362306a36Sopenharmony_ci#include <linux/platform_device.h> 1462306a36Sopenharmony_ci#include <sound/core.h> 1562306a36Sopenharmony_ci#include <sound/pcm.h> 1662306a36Sopenharmony_ci#include <sound/soc.h> 1762306a36Sopenharmony_ci#include <asm/mach-au1x00/au1000.h> 1862306a36Sopenharmony_ci#include <asm/mach-db1x00/bcsr.h> 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci#include "psc.h" 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciSND_SOC_DAILINK_DEFS(hifi, 2362306a36Sopenharmony_ci DAILINK_COMP_ARRAY(COMP_CPU("alchemy-ac97c")), 2462306a36Sopenharmony_ci DAILINK_COMP_ARRAY(COMP_CODEC("ac97-codec", "ac97-hifi")), 2562306a36Sopenharmony_ci DAILINK_COMP_ARRAY(COMP_PLATFORM("alchemy-pcm-dma.0"))); 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_cistatic struct snd_soc_dai_link db1000_ac97_dai = { 2862306a36Sopenharmony_ci .name = "AC97", 2962306a36Sopenharmony_ci .stream_name = "AC97 HiFi", 3062306a36Sopenharmony_ci SND_SOC_DAILINK_REG(hifi), 3162306a36Sopenharmony_ci}; 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_cistatic struct snd_soc_card db1000_ac97 = { 3462306a36Sopenharmony_ci .name = "DB1000_AC97", 3562306a36Sopenharmony_ci .owner = THIS_MODULE, 3662306a36Sopenharmony_ci .dai_link = &db1000_ac97_dai, 3762306a36Sopenharmony_ci .num_links = 1, 3862306a36Sopenharmony_ci}; 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_cistatic int db1000_audio_probe(struct platform_device *pdev) 4162306a36Sopenharmony_ci{ 4262306a36Sopenharmony_ci struct snd_soc_card *card = &db1000_ac97; 4362306a36Sopenharmony_ci card->dev = &pdev->dev; 4462306a36Sopenharmony_ci return devm_snd_soc_register_card(&pdev->dev, card); 4562306a36Sopenharmony_ci} 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_cistatic struct platform_driver db1000_audio_driver = { 4862306a36Sopenharmony_ci .driver = { 4962306a36Sopenharmony_ci .name = "db1000-audio", 5062306a36Sopenharmony_ci .pm = &snd_soc_pm_ops, 5162306a36Sopenharmony_ci }, 5262306a36Sopenharmony_ci .probe = db1000_audio_probe, 5362306a36Sopenharmony_ci}; 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_cimodule_platform_driver(db1000_audio_driver); 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ciMODULE_LICENSE("GPL"); 5862306a36Sopenharmony_ciMODULE_DESCRIPTION("DB1000/DB1500/DB1100 ASoC audio"); 5962306a36Sopenharmony_ciMODULE_AUTHOR("Manuel Lauss"); 60