SPIDEV ドライバーを使用して、組み込み Linux システム上の SPI デバイス (Avago Tech の光学式マウス デバイス) にアクセスしたいと考えています。デバイスは SPI0 に接続されています。
menuconfig > "Device Drivers" > "SPI" で SPI と "User mode SPI device driver support" を有効にしました。
コードをboard.cファイルに追加しました
static struct spi_board_info spidev_board_info[] {
{
.modalias = "spidev",
.max_speed_hz = 1000000,
.bus_num = 1,
.chips_select = 0,
.mode = SPI_MODE_3,
},
{
.modalias = "spidev",
.max_speed_hz = 1000000,
.bus_num = 1,
.chips_select = 1,
.mode = SPI_MODE_3,
},
};
spi_register_board_info(spidev_board_info, ARRAY_SIZE(spidev_board_info));
max_speed_hz として 500000 と 1000000 の両方を試しました (1Mhz がセンサーで許可されている最高値です)。SPI_MODE_3 は正しいです。データシートで確認してください。bus_num = 1 は SPI0 を参照しているため、修正する必要があります (好奇心から = 0 も試しました)。
電気接続を確認しましたが、すべて動作しています。
カーネルはコンパイルされ、イメージは正しく起動しますが、/sys/class/spidev/ にデバイスが見つかりません (/sys/bus/spi/... にもありません)。システムの起動時にも、SPI への参照は表示されません。
問題がどこにあるのかについて何か考えはありますか?