では、Raspberry Piのkernelをビルドして、一緒にnxp-pn5xxもビルドしよう。
ここからが、いろいろ分からなかった。。。
Raspberry Piのkernelビルド自体は、説明ページもあり、クロスコンパイルのことも書かれているので、よい。
Kernel building - Raspberry Pi Documentation
nxp-pn5xxをkernelのソースに組み込む方法も、こちらのPDFに書かれていた。
https://github.com/NXPNFCLinux/linux_libnfc-nci/blob/master/doc/AN11697%20-%20PN71x0%20Linux%20Software%20Stack%20Integration%20Guidelines.pdf
じゃあいいやん、と思ったのだが、デバイスの情報がいるではないか。
上記PDFの、"3.2.3 Creating the device node"のところだ。
サンプルもあるくらいだから、Device treeを使うのだろう。
nxp-pn5xx/sample_devicetree.txt at master · NXPNFCLinux/nxp-pn5xx
regはI2Cアドレスだろうから0x28でよいだろうし、clock-frequencyもI2Cだからこのままでよいだろう。
問題は、interrupt-gpiosとenable-gpiosだ。
ドキュメントに、どう設定すべきか書いてある箇所を見つけられなかったのだ。
テスターで当たってみると、たぶんVENが18ピン、IRQが16ピンになっているのだと思う。
が、どう書いてよいのかがわからん。。。
/bootにdtbファイルがあることが分かったので、これを変換してdtsファイルにした。
[Linux][kernel] Device Tree についてのまとめ – Qiita
pn7120@28 {
compatible = "nxp,pn547";
reg = <0x28>;
clock-frequency = <0x61a80>;
interrupt-parent = <0xf>;
interrupts = <0x17 0x0>;
interrupt-gpios = <0xf 0x17 0x0>;
enable-gpios = <0xf 0x18 0x0>;
firmware-gpios = <0xf 0x19 0x0>;
linux,phandle = <0x29>;
phandle = <0x29>;
};
Raspberry Pi2っぽいdtbファイルを選んだのだけど、たぶんどれも同じよね。。。
githubのサンプルより項目が多いのだけど、全部書いた方がよいのだろうか?
あるいは、自動で埋めてくれるから書かない方がよいというタイプだろうか。。。
悩むねぇ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。