Platform Devices and Drivers
Before understanding platform devices and drivers, let’s understand the need which resulted in the introduction of the concept of platform devices and drivers.
Linux Kernel introduced the concept of Linux Device model in kernel 2.6 release. According to Linux Device model, all the devices in the system are connected to CPU through a particular bus (PIC bus, USB bus etc). Framework of these buses provides the mechanism to the device drivers for enumerating and communicating with the devices. For example, USB driver uses USB bus framework for communicating to the attached USB devices. These standard buses have the capability to detect connected devices.
In contrary, there are some devices which are not connected to any standard bus and because of this these devices are not able to notify to the Linux Kernel about their presence in the system, for example I2C devices. As they are not relying upon any standard bus for connecting to CPU, they do not fulfill the criteria to be a part of Linux Device model. To solve this problem, Linux kernel introduced the concepts of Platform devices.
Platform devices are the devices which are not relying upon any standard bus for connecting to CPU or we can say platform device are directly connected to CPU without any bus. But to have a compatibility with Linux Device model, we assume that these devices are connected to some virtual bus which physically is not present. This bus is called platform bus.
Drivers responsible for handling platform devices are called platform drivers.
Linux Kernel provides software framework by which platform drivers can communicate and enumerate platform devices.
We will discuss in detail about the working of platform devices & drivers and their binding in next tutorial.
Subscribe here to receive tutorials updates.