ALSA SoCドライバメモ No.001 ドライバ構成
ALSA SoCドライバの構成
ファイルの説明
- DAI LINKドライバ 例: sound/soc/bcm/hifiberry-dac.c
- 関連するドライバをまとめ(dai link)て登録(snd_soc_register_card)するドライバ
- hifiberry-dac.cではほとんど制御は行わず、登録のみを行っている。
- hifiberry-dacplus.cのようにクロック制御を行うものも存在する。
- dai linkドライバは特に独立する必要はなく、CPU DAIドライバ自体がDAI LINKして登録するケースもある。(NEO2のI2Sドライバはこの方式)
- dai linkのprobeは登録する配下モジュールがすべて揃うまで自動でRetryしてくれる。
- CPU DAI ドライバ
- CODEC DAI ドライバ
- AUXDEV ドライバ
ドライバの組み合わせ
- 最低でもCPU DAIと一つのCodecが必要そう。CPU DAIにCodecハンドラも書けば一つでも音は鳴りそう。
- RPiではDAI LINK/CPU DAI/CODEC DAIの3ファイル構成を基本としている模様。
- NEO2ではCPU DAI(with dai link)/CODEC DAIの2ファイル構成が基本。拙作のNEO2カーネルではRPi同様、DAI LINKドライバの利用も可能となるよう改造済み。