i2c: support address ranges

Some I2C devices (eg m24c08) can decode a linear range of addresses
(e.g. 0b10100xx). Add the address_range field to I2C slave that specifies the
number of consecutive addresses the device decodes.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
i2c: Add no_init version of i2c_create_slave

Add a version of i2c_create_slave that does not qdev init the created device.
This give the machine model a chance to set properites of the created device
before qdev_init time. Based on equivalent function in ssi.c.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
cadence_i2c: first revision

Cadence I2C controller as current implemented in Xilinx Zynq.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
hw: M24Cxx I2C EEPROM device model

Device model for the ST M24Cxx I2C EEPROM devices. Device can optionally be
backed onto a file for persistent storage (using -mtd-block).

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
hw: pca9548: Device model

Initial version of device model for PCA9548 8 way I2C switch.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>

---CHANGELOG---
Changed from v1:
change TYPE_PCA9548 from "pca-9548" to "pca9548"
---END---
xilinx_zynq: Add i2c components

Add the I2C controllers/switches and EEPROMs attached to Zynq boards.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
HACK: m24cxx rename to at,24c08

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
HACK: rename busses to i2c@n

To match names in the DTB.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
HACK: i2c alias the address property as "reg"

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
HACK: rename i2c to xilinx.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
HACK: cadence_i2c: autoconnect slaves

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
COVER: Xilinx Zynq I2C

---CHANGELOG---
Device models and machine model changed for the Xilinx Zynq I2C controller and
the devices attached to the ZC70x development boards.
---END---

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>