NanoPi NEO2 I2S AUDIO でMCLKを出すメモ
前提
- Allwinner H5ではMCLKの出力が可能
- PA6にアサイン可能
- NanoPi Neo2でもこのPin(PA6)は出てる
作業内容とか
- dtsのi2s0 pinctrlにPA6を追加するもエラー
- PA6にi2s0のfunction設定が無いっぽい
- functionはpinctrlのdrivers/pinctrl/sunxi/pinctrl-sun50i-h5.cあたりにテーブルがあるが、PA6のi2s0は書いてないので追加する。
- MCLKが出たことを確認
dtsの修正例
- 元ネタのdts/dtsiではなく、/boot以下のdtbをdtcで変換して評価しました。
- i2s0のpinsに"PA6"を追加
i2s0 { pins = "PA6", "PA18", "PA19", "PA20", "PA21"; function = "i2s0"; linux,phandle = <0x19>; phandle = <0x19>; };
- spiのpinsから"PA6"を削除
spi0_cs_pins { pins = "PC3" ; function = "gpio_out"; linux,phandle = <0x15>; phandle = <0x15>; };
- 2017/10/06追記 なんかタッチパネル?の割り込みにPA6が割り当てられてるよう。ここもdisableしないとなんか反応してそう。まだ、未確認ですが。
pitft-ts@1 { compatible = "ti,ads7846"; reg = <0x1>; status = "disable";
修正の影響範囲
- PA6のfunctionにi2s0の選択肢を追加しただけ
- dtsにてPA6のfunctionをi2s0に明示的に指定しなければ影響なし
パッチ
https://github.com/tkztkztkz/linux/commit/07f117214cf457e5b356730f68a5539402b9e5fc
メモ
- CPU内蔵PLL生成のクロックなので低ジッタなどは期待できないと思う
- defaultは24.571MHzだと書いてある。0.2%くらいのズレ?
- Allwinner H3にはMCLK出力は無いっぽい
- RPi系にはMCLK出力が無いっぽいので、NanoPi Neo2のちょっとしたアドバンテージ?
- 古いMCLK必須DACを繋ぐのに良さそう
- でも外部クロック貰った方が音が良いだろうね