Introduction to Linux kernel driver programming: i2c drivers
For people new to Linux kernel driver programming, writing a driver for an I2C device is a relatively easy way to start.
This presentation will start by explaining the Device Model, the mechanism that the Linux kernel offers to bind drivers to devices. Even though the way to detect or describe devices can depend on the bus or CPU architecture, the infrastructure binding devices with drivers is universal and therefore applies to all types of device drivers in the Linux kernel.
You will see how the driver uses one of the frameworks offered by the Linux kernel to expose device data to user space in a generic way. Once again, this type of mechanism is used everywhere in the Linux kernel.
Michael Opdenacker is the founder of Free Electrons, an engineering company specializing on cool embedded Linux integration and porting projects. Through Free Electrons, he has contributed to the LWD (Linux World Domination) project by training hundreds of engineers from all around the world on embedded Linux and its kernel. By the way, all training materials and conference presentations from Free Electrons are freely available on http://bootlin.com/docs/