0
是否有使用不同總線的相同設備的示例,例如spi和i2c(同時取決於選擇)?Linux內核驅動程序不同總線上的相同設備?
我對有一些常用例程但使用不同讀/寫功能的設備感興趣。
例如,一個adc具有校準或觸發的常用功能(從未在內核adc驅動程序中看到過,但爲什麼不?),但具有不同的函數來讀取不同來源的採樣。
如何實現這樣的驅動程序? 我應該在模塊中做這樣的事嗎? :
static struct i2c_driver my_i2c_driver = {
.driver = {
.name = "my-i2c-driver",
},
.probe = my_i2c_driver_probe,
.remove = my_i2c_driver_remove,
};
static struct spi_driver my_spi_driver = {
.driver = {
.name = "my-spi-driver",
},
.probe = my_spi_driver_probe,
.remove = my_spi_driver_remove,
};
etc... for read/write, ops
我對理論很感興趣,即使「不需要」,「沒有人這樣做」。
此類驅動程序通常使用regmap。 –
2CL感謝,如果不是i2c,那麼spi又是什麼? – Maquefel
根據探測程序,您的驅動程序會調用regmap_init_i2c或regmap_init_spi,然後使用通用regmap訪問函數。 –