Kernel-4.18.0-80.el8_i2c-mv64xxx

  • 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>;
};