Driver implementing the fuse API for Freescale's IC Identification Module (IIM)

This IP can be found on the following SoCs:
 - MPC512x,
 - i.MX25,
 - i.MX27,
 - i.MX31,
 - i.MX35,
 - i.MX51,
 - i.MX53.

The section numbers in this file refer to the i.MX25 Reference Manual.

A fuse word contains 8 fuse bit slots, as explained in 30.4.2.2.1.

A bank contains 256 fuse word slots, as shown by the memory map in 30.3.1.

Some fuse bit or word slots may not have the corresponding fuses actually
implemented in the fusebox.

See the README files of the SoCs using this driver in order to know the
conventions used by U-Boot to store some specific data in the fuses, e.g. MAC
addresses.

Fuse operations:

   Read
      Read operations are implemented as read accesses to the shadow registers,
      using "Word y of Bank x" from the register summary in 30.3.2. This is
      explained in detail in 30.4.5.1.

   Sense
      Sense operations are implemented as explained in 30.4.5.2.

   Program
      Program operations are implemented as explained in 30.4.5.3. Following
      this operation, the shadow registers are reloaded by the hardware (not
      immediately, but this does not make any difference for a user reading
      these registers).

   Override
      Override operations are implemented as write accesses to the shadow
      registers, as explained in 30.4.5.4.

Configuration:

   CONFIG_FSL_IIM
      Define this to enable the fsl_iim driver.