As i am new to embedded field i am facing difficulties in understanding the clear difference between i2c device/driver and platform device/driver.
i have read this link:
What is the difference between Platform driver and normal device driver..?
which say platform devices/driver are use for not discoverable device like devices connected at i2c bus and Platform devices are bound to drivers by matching names.
I have gone through a board file, in which audio codec(non discoverable device) connected at i2c bus is registered using i2c API (i2c_register_board_info, omap_i2c_add_bus etc.), so my questions are
- What is difference between i2c device/driver and platform device/driver ?
- When to use i2c related API and when to use platform related API(platform_driver_register,platform_device_register) for registration of device/driver in kernel. or if we can use i2c related API for non discoverable device(connected on i2c) registration then where we need platform device registration.