title: What is the difference between a Linux platform driver and normal device driver?
body: <p>Earlier I had assumed that :</p>
  
  <ul>
  <li>Platform driver is for those devices that are on chip.</li>
  <li>Normal device driver are for those that are interfaced to the processor chip.</li>
  </ul>
  
  <p>Before coming across one i2c driver...
  But here, I am reading through multi function i2c driver defined as platform driver. I had gone through <a href="https://www.kernel.org/doc/Documentation/driver-model/platform.txt" rel="nofollow noreferrer">https://www.kernel.org/doc/Documentation/driver-model/platform.txt</a>. But still could not get clear idea to come to an conclusion on how to define drivers, like for both onchip as well interfaced devices.</p>
  
  <p>Please somebody explain.</p>