Armadilloフォーラム

Armadillo-800 EVAへのSPIドライバ組み込み方

komaki

2014年11月7日 9時56分

お世話になっております。HiICS 小牧です。

Armadillo-800 EVAへSPIドライバの組み込み(SH MobileA1のMSIOF2を使用)
試みていますが、現在、spiドライバを認識できておりません。
(/dev/spidev が作成されていない)

以下手順にて、組み込みを行っておりますが、手順等に
誤りがないか、確認いただけないでしょうか。
SPIドライバ登録処理は、Armadillo-840の登録処理を参考にして、
処理を変更しております。

実施手順
① SPIドライバ登録処理を追加(board-armadillo800eva.c)
② linux-2.6.35-a800eva-at3 にて以下のコマンドを実行。
  make ARCH=arm mrproper
  make ARCH=arm armadillo800eva_android_defconfig
③ make ARCH=arm menuconfig
  でDevice Drivers ---->
  を選択し、SPI support ----->
  を選択し、以下項目を有効化
   _*_ Utilities for Bitbanging SPI masters
   <*> GPIO-based bitbanging SPI Master
   <*> SuperH MSIOF SPI controller
   <*> User mode SPI device driver support
  最初のページまで戻り、
  save an Alternate Configuration File
  を選択し、Yesを選択し、保存する。  
④ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
④ /dev/spidev が作成されていない。

添付ファイル(spi.zip)の構成は、以下となっております。
board-armadillo800eva.c --- SPIドライバ登録処理を追加したファイル
board-armadillo800eva.org --- 上記の変更を入れる前のオリジナルのファイル(拡張子 c→orgに変更)
board-armadillo840.c --- SPIドライバ登録処理を移植したファイル

以上、よろしくお願いします。

ファイル ファイルの説明
spi.zip
コメント

> Armadillo-800 EVAへSPIドライバの組み込み(SH MobileA1のMSIOF2を使用)
> 試みていますが、現在、spiドライバを認識できておりません。
> (/dev/spidev が作成されていない)

HiICSの小牧です。
その後の状況ですが、840のSPIドライバ(spi-sh-msiof.c)を
800に名称変更して(spi_sh_msiof.c)コピーして、
一部変更することでデバイスを認識することができました。
(/dev/spidev1.0が作成されました)

変更箇所は、以下になります。

変更前:
module_platform_driver(sh_msiof_spi_drv);

変更後:
static int __init sh_msiof_spi_init(void)
{
return platform_driver_register(&sh_msiof_spi_drv);
}
module_init(sh_msiof_spi_init);

static void __exit sh_msiof_spi_exit(void)
{
platform_driver_unregister(&sh_msiof_spi_drv);
}
module_exit(sh_msiof_spi_exit);

変更後に、テストプログラム(spidev_test)を動作させたところ、
以下の結果となりました。
今後、波形等の確認を行う予定ですが、変更内容で、
問題などありましたら、ご教授いただけますでしょうか。

# ./spidev_test -D /dev/spidev1.0
spi mode: 0
bits per word: 8
max speed: 500000 Hz (500 KHz)

FF FF FF FF FF FF
FF FF FF FF FF FF
FF FF FF FF FF FF
FF FF FF FF FF FF
FF FF FF FF FF FF
FF FF FF FF FF FF
FF FF

以上

HiICSの小牧です。

波形等の確認も行い、意図したとおりの動作が確認できましたので、
本件、解決とさせていただきます。

先のコメントで記載しておりませんでしたが、
ヘッダファイルについても、840(sh-msiof.h)から、
800(sh_msiof.h)にコピーを行いました。

以上