2017/01/20

[nfc]OM5578/PN7150S来たる (3)

では、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 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。