MFD is a device that contains several sub-devices. For example, in embedded systems, PMIC typically contains a battery manager, a charger, and sometimes devices with unrelated functions such as USB PHY, audio codec, real-time clock, ...
The cell is intended to describe the sub-device. The mfd subsystem will use the information registered in this structure to create a platform device for each sub-device along with platform_data parameters for the sub-device. You can specify more complex things, such as resources used by this device, and suspend resume operations (call from the driver for a sub-device).
The new platform devices that will be created will have a cell structure as their platform data and can access real platform data through cell->platform_data .
source share