
* Marvell MV64XXX I2C controller

Required properties :

 - reg             : Offset and length of the register set for the device
 - compatible      : Should be either:
                     - "allwinner,sun4i-a10-i2c"
                     - "allwinner,sun6i-a31-i2c"
                     - "marvell,mv64xxx-i2c"
                     - "marvell,mv78230-i2c"
                     - "marvell,mv78230-a0-i2c"
                       * Note: Only use "marvell,mv78230-a0-i2c" for a
                         very rare, initial version of the SoC which
                         had broken offload support.  Linux
                         auto-detects this and sets it appropriately.
 - interrupts      : The interrupt number

Optional properties :

 - clock-frequency : Desired I2C bus clock frequency in Hz. If not set the
default frequency is 100kHz

 - resets          : phandle to the parent reset controller. Mandatory
                     whenever you're using the "allwinner,sun6i-a31-i2c"
                     compatible.

 - clocks:	   : pointers to the reference clocks for this device, the
		     first one is the one used for the clock on the i2c bus,
		     the second one is the clock used to acces the registers
		     of the controller

 - clock-names	   : names of used clocks, mandatory if the second clock is
		     used, the name must be "core", and "reg" (the latter is
		     only for Armada 7K/8K).

Examples:

	i2c@11000 {
		compatible = "marvell,mv64xxx-i2c";
		reg = <0x11000 0x20>;
		interrupts = <29>;
		clock-frequency = <100000>;
	};

For the Armada XP:

	i2c@11000 {
		compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
		reg = <0x11000 0x100>;
		interrupts = <29>;
		clock-frequency = <100000>;
	};

For the Armada 7040:

	i2c@701000 {
		compatible = "marvell,mv78230-i2c";
		reg = <0x701000 0x20>;
		interrupts = <29>;
		clock-frequency = <100000>;
		clock-names = "core", "reg";
		clocks = <&core_clock>, <&reg_clock>;
	};
