#経過
こちらの質問からの続きです。
NVIDIA Jetson Nanoのカメラ2台接続版を使用しています。
260pin SODIMMからボードに信号を接続し、SPI通信を使ってEEPROMの読み書きをしたいです。
実際のドライバが正しく動くかどうか以前に、デバイスドライバーの位置づけとデバイスツリーとの関連についてわからなくなってしまったので、そこの混乱を何とかしたいと思っています。
NVIDIAのフォーラムに問い合わせた結果、SoC側(マスター側)のドライバーは
(SoC側)spi-tegra114.c <----> spi.c(マスターとしての制御)
という回答をもらいました。spi-tegra114.cはデバイスツリーのspiノードに直接compatible指定され、spi.cは暗黙でインストールされるようです。
あとわからないのは、spidev.cというドライバーの存在です。名前から察するに
(SoC側)spi-tegra114.c <-----> spi.c(マスター) <-----> spidev.c(スレーブ)
という感じがするのですが、ここでEEPROMと通信したい、となったときに頭がこんがらがっています。
SPI通信は、チップセレクトで選択はするものの本質的な動作はマスター側が制御するものだと思っています。そこにスレーブ側と思われるspidev.cが登場することで、まず通信の制御はどっちが主導権を握るのかがわからなくなり、次にEEPROM依存の部分はどこに入るのかがわからなくなっています。
(ちなみにEEPROMはSPIとは違い、drivers/misc/eepromという別フォルダにドライバーがあります)
#知りたいこと
- spidev.cの位置づけはどうなっているのか(デバイスツリーで、SPIの子ノードにあたるのか)
- EEPROM依存の部分はどうすればいいのか(デバイスツリーでどこにぶら下げればいいのか)
- spidev.cとEEPROM依存の部分は排他になるのか
以上、よろしくお願いします。
あなたの回答
tips
プレビュー