最近,我一直在编写一个使用I2C接口读/写寄存器的摄像头驱动程序,并使用spi接口向其写入固件数据。所以我的问题是如何在I2C驱动程序中获取spi_device指针?
感谢。
答案 0 :(得分:1)
和你有同样的问题。经过一段时间挖掘内核。我发现了这个:https://elixir.bootlin.com/linux/v4.9.80/source/drivers/media/i2c/s5c73m3/s5c73m3-spi.c#L123。您需要在驱动程序的私有数据中定义spi_driver,然后使用它来注册SPI驱动程序。在SPI的probe函数中,您将能够从SPI驱动程序的指针中检索私有数据。
注意: 我不知道同样的技巧是否适用于其他版本的Linux内核。但我认为值得一试。
答案 1 :(得分:0)
为什么你需要在I2C驱动程序中使用SPI句柄。目前我假设你的意思是应用程序,即你正在写/读寄存器和写固件的地方。我需要使用返回各自的函数打开I2C和SPI实例。处理
答案 2 :(得分:0)
您可以从一个I2C驱动程序注册两个单独的驱动程序SPI和I2C。
您必须定义包含spi_driver
和spi_device
的设备结构
然后从I2C probe()
注册spi_driver
并从SPI spi_device
函数初始化probe()
。