* Mediatek's I2C controller The Mediatek's I2C controller is used to interface with I2C devices. Required properties: - compatible: value should be either of the following. (a) "mediatek,mt6577-i2c", for i2c compatible with mt6577 i2c. (b) "mediatek,mt6589-i2c", for i2c compatible with mt6589 i2c. (c) "mediatek,mt8127-i2c", for i2c compatible with mt8127 i2c. (d) "mediatek,mt8135-i2c", for i2c compatible with mt8135 i2c. (e) "mediatek,mt8173-i2c", for i2c compatible with mt8173 i2c. - reg: physical base address of the controller and dma base, length of memory mapped region. - interrupts: interrupt number to the cpu. - clock-div: the fixed value for frequency divider of clock source in i2c module. Each IC may be different. - clocks: clock name from clock manager - clock-names: Must include "main" and "dma", if enable have-pmic need include "pmic" extra. Optional properties: - clock-frequency: Frequency in Hz of the bus when transfer, the default value is 100000. - mediatek,have-pmic: platform can control i2c form special pmic side. Only mt6589 and mt8135 support this feature. - mediatek,use-push-pull: IO config use push-pull mode. Example: i2c0: i2c@1100d000 { compatible = "mediatek,mt6577-i2c"; reg = <0x1100d000 0x70>, <0x11000300 0x80>; interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>; clock-frequency = <400000>; mediatek,have-pmic; clock-div = <16>; clocks = <&i2c0_ck>, <&ap_dma_ck>; clock-names = "main", "dma"; }; |