I2C for Atmel platforms Required properties : - compatible : Must be one of: "atmel,at91rm9200-i2c", "atmel,at91sam9261-i2c", "atmel,at91sam9260-i2c", "atmel,at91sam9g20-i2c", "atmel,at91sam9g10-i2c", "atmel,at91sam9x5-i2c", "atmel,sama5d4-i2c", "atmel,sama5d2-i2c", "microchip,sam9x60-i2c". - reg: physical base address of the controller and length of memory mapped region. - interrupts: interrupt number to the cpu. - #address-cells = <1>; - #size-cells = <0>; - clocks: phandles to input clocks. Optional properties: - clock-frequency: Desired I2C bus frequency in Hz, otherwise defaults to 100000 - dmas: A list of two dma specifiers, one for each entry in dma-names. - dma-names: should contain "tx" and "rx". - atmel,fifo-size: maximum number of data the RX and TX FIFOs can store for FIFO capable I2C controllers. - i2c-sda-hold-time-ns: TWD hold time, only available for: "atmel,sama5d4-i2c", "atmel,sama5d2-i2c", "microchip,sam9x60-i2c". - scl-gpios: specify the gpio related to SCL pin - sda-gpios: specify the gpio related to SDA pin - pinctrl: add extra pinctrl to configure i2c pins to gpio function for i2c bus recovery, call it "gpio" state - Child nodes conforming to i2c bus binding Examples : i2c0: i2c@fff84000 { compatible = "atmel,at91sam9g20-i2c"; reg = <0xfff84000 0x100>; interrupts = <12 4 6>; #address-cells = <1>; #size-cells = <0>; clocks = <&twi0_clk>; clock-frequency = <400000>; 24c512@50 { compatible = "atmel,24c512"; reg = <0x50>; pagesize = <128>; } } i2c0: i2c@f8034600 { compatible = "atmel,sama5d2-i2c"; reg = <0xf8034600 0x100>; interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>; dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)) AT91_XDMAC_DT_PERID(11)>, <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)) AT91_XDMAC_DT_PERID(12)>; dma-names = "tx", "rx"; #address-cells = <1>; #size-cells = <0>; clocks = <&flx0>; atmel,fifo-size = <16>; i2c-sda-hold-time-ns = <336>; pinctrl-names = "default", "gpio"; pinctrl-0 = <&pinctrl_i2c0>; pinctrl-1 = <&pinctrl_i2c0_gpio>; sda-gpios = <&pioA 30 GPIO_ACTIVE_HIGH>; scl-gpios = <&pioA 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; wm8731: wm8731@1a { compatible = "wm8731"; reg = <0x1a>; }; };