I will need to write my own drivers for few controllers in my
chipset.I work on SoC with SDK, that doesn’t provide “linux i2c
compatible” driver. It has simple char driver for i2c. I would like to
use some standard i2c RTC drivers.
-
I assume I will need to add the file to /busses folder, and
implement the standard interfaces. And that’s all. This file should
cooperate with i2c-core and i2c-dev ? -
Which driver would be the best as basis ? I have ~9 32bit registers
to work with. From first look i2c-ibm_iic.c seems for me quite
friendly.
I2C is the warm-up before SPI and USB-gadget drivers for this SoC.
Do you know maybe raw Men/Hours estimation for such tasks ?
I will appreciate any hints.
BR
Bartlomiej Grzeskowiak
The first order of business is to find if perchance your IC driver has already been implemented within the Linux kernel or by a third party. You may well find that the driver you need has already been implemented. Try asking your SoC vendor if they can tell which company made the I2C macrocell because you are looking for alternative drivers. Again, you may find that the driver you need already exists.
You’re looking in the right place. The file should go in busses and should implement and register a driver interface. You will also need to register a platform device so that the kernel will connect the driver-device pair, as usual. Other SoCs have lots of examples of this if yours does not. I don’t think you’ll find that you need to interact with i2c-core and i2c-dev.
I would look for a small file size and recently modified driver, if I had to pick one as a baseline.
SPI will take about the same amount of effort as I2C. USB gadget would be considerably more — several times the effort needed for the other two tasks, depending how much implementation work is needed. I am reluctant to put a number to either task. If you’re lucky not all functionality is needed (do you care about low power standby, for example?) and you may be able to cut corners.