Armadilloフォーラム

サウンドコーデック変更に必要な作業

tetsuya.ooka

2014年2月4日 14時42分

いつも大変お世話になっております。
ローム株式会社の大岡です。

以前メーリングリストでCS4270のドライバについて
[Armadillo:09306]で質問させて頂きましたが、
その関連でまたお尋ねしたい事があります。

カーネルにCS4270のドライバを組み込むところまでは行けたのですが、
CS4270が認識されません。
最終的にはaplayコマンドでwavファイルを再生したいのですが、
どういった作業が必要になるのか教えてください。

デフォルトの440の構成からの変更点は以下になります。
1. コーデックをWM8978からCS4270に変更
2. I2Cアドレスが0x24に変更
3. AUD6で制御

それでは、よろしくお願いします。

コメント

at_matsuzaka

2014年2月4日 15時36分

CS4270が認識されていないと判断された現象もしくはメッセージを詳しく教えていただけますか?
(修整された箇所なども具体的に教えていただけると、回答が得やすいと思います。)

認識されていないということは、以下のいずれかで間違っている可能性が考えられます。

* ハードウェアの結線間違い(I2CおよびI2S)
* I2Cデバイスアドレスの指定間違い
* オーディオポートの指定間違い

---
まつざか

at_matsuzaka

2014年2月4日 15時36分

CS4270が認識されていないと判断された現象もしくはメッセージを詳しく教えていただけますか?
(修整された箇所なども具体的に教えていただけると、回答が得やすいと思います。)

認識されていないということは、以下のいずれかで間違っている可能性が考えられます。

* ハードウェアの結線間違い(I2CおよびI2S)
* I2Cデバイスアドレスの指定間違い
* オーディオポートの指定間違い

---
まつざか

tetsuya.ooka

2014年2月4日 16時11分

松坂様
ご返信有難うございます。

修正箇所は[Armadillo:09307]の内容を参考にして、
linux-2.6.26-at18/arch/arm/mach-mx25/Kconfig
の717行目以降に下記を追記しました。
config ARMADILLO400_CODEC_CS4270
bool "CS4270 support"
default n
depends on ARMADILLO400_AUD6_CON9
select SND_SOC_CS4270

AUD6設定と上記の設定を有効にしてカーネルをビルドし、
Armadillo-410(CS4270接続済み)にダウンロードして起動させると、
カーネル起動ログに以下のメッセージが含まれていました。
ALSA device list:
No soundcards found.

さらに、/dev/audioが存在しないのでCS4270が認識されていないと判断しました。

>* ハードウェアの結線間違い(I2CおよびI2S)
>* I2Cデバイスアドレスの指定間違い
>* オーディオポートの指定間違い
ハードウェアの問題は一旦おいておくとして、
I2Cデバイスアドレスの指定とオーディオポートの指定は
まだやっておらず、どうやるのかもわかりません。
大変申し訳ありませんがそれらのやり方をご教授願えないでしょうか。

at_yashi

2014年2月7日 14時27分

> 修正箇所は[Armadillo:09307]の内容を参考にして、
> linux-2.6.26-at18/arch/arm/mach-mx25/Kconfig
> の717行目以降に下記を追記しました。
> config ARMADILLO400_CODEC_CS4270
> bool "CS4270 support"
> default n
> depends on ARMADILLO400_AUD6_CON9
> select SND_SOC_CS4270
>
> AUD6設定と上記の設定を有効にしてカーネルをビルドし、
> Armadillo-410(CS4270接続済み)にダウンロードして起動させると、
> カーネル起動ログに以下のメッセージが含まれていました。
> ALSA device list:
> No soundcards found.

CS4270の probe コードは動いていますか? CS4270は、device driver model
を採用しているので、platform device が定義されていれば、probe までは動
くと思うのですが? platfrom device の定義を見せてもらっても良いですか?

> さらに、/dev/audioが存在しないのでCS4270が認識されていないと判断しました。

device と device driver がみつかって、probe に成功すると、uevent がカー
ネルから出ます。このイベントを udev が掴まえて、device node を作成する
仕組みになっています。まずは、probe されているか確認してみるのが良いと
思います。