我開發了一個SPI平臺驅動程序,用於單個SPI設備。我們使用的SPI設備,可以在Device Tree.probe()函數中給出該配置,當驅動程序中的名稱匹配發生名稱匹配時,調用SPI平臺驅動程序和DT中的相同。我們在函數調用spi_register_driver()中註冊了SPI設備結構(struct spi_driver spidev_spi_driver)。如何使用單個SPI平臺驅動程序在Linux內核中處理兩個SPI器件?
請參考以下鏈接中的(靜態結構spi_driver spidev_spi_driver)。 鏈接:http://lxr.free-electrons.com/source/drivers/spi/spidev.c#L664
這裏Probe()是在此調用中註冊的一個重要方法。 調用探測函數時,內核在probe()函數中傳遞SPI設備的指針(例如struct spi_device * spi),該函數進一步用於SPI設備的讀寫操作。 以上所有過程對於單個SPI設備只發生一次。
現在我在這裏查詢,如果我想要使用我的微控制器中存在的多個SPI設備,例如imx6那麼我將如何處理這種情況? 在這種情況下,我將如何接收SPI設備指針? 探測功能是否會被調用兩次(bcoz這裏只有我從內核獲得SPI設備指針)? 我需要創造這樣的條目在spidev_dt_ids完成: http://lxr.free-electrons.com/source/drivers/spi/spidev.c#L657