i2c-mtk.txt 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. * MediaTek's I2C controller
  2. The MediaTek's I2C controller is used to interface with I2C devices.
  3. Required properties:
  4. - compatible: value should be either of the following.
  5. "mediatek,mt2701-i2c", "mediatek,mt6577-i2c": for MediaTek MT2701
  6. "mediatek,mt2712-i2c": for MediaTek MT2712
  7. "mediatek,mt6577-i2c": for MediaTek MT6577
  8. "mediatek,mt6589-i2c": for MediaTek MT6589
  9. "mediatek,mt7622-i2c": for MediaTek MT7622
  10. "mediatek,mt7623-i2c", "mediatek,mt6577-i2c": for MediaTek MT7623
  11. "mediatek,mt8173-i2c": for MediaTek MT8173
  12. - reg: physical base address of the controller and dma base, length of memory
  13. mapped region.
  14. - interrupts: interrupt number to the cpu.
  15. - clock-div: the fixed value for frequency divider of clock source in i2c
  16. module. Each IC may be different.
  17. - clocks: clock name from clock manager
  18. - clock-names: Must include "main" and "dma", if enable have-pmic need include
  19. "pmic" extra.
  20. Optional properties:
  21. - clock-frequency: Frequency in Hz of the bus when transfer, the default value
  22. is 100000.
  23. - mediatek,have-pmic: platform can control i2c form special pmic side.
  24. Only mt6589 and mt8135 support this feature.
  25. - mediatek,use-push-pull: IO config use push-pull mode.
  26. Example:
  27. i2c0: i2c@1100d000 {
  28. compatible = "mediatek,mt6577-i2c";
  29. reg = <0x1100d000 0x70>,
  30. <0x11000300 0x80>;
  31. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>;
  32. clock-frequency = <400000>;
  33. mediatek,have-pmic;
  34. clock-div = <16>;
  35. clocks = <&i2c0_ck>, <&ap_dma_ck>;
  36. clock-names = "main", "dma";
  37. };