xref: /freebsd-src/sys/contrib/device-tree/Bindings/i2c/i2c-at91.txt (revision 5956d97f4b3204318ceb6aa9c77bd0bc6ea87a41)
1c66ec88fSEmmanuel VadotI2C for Atmel platforms
2c66ec88fSEmmanuel Vadot
3c66ec88fSEmmanuel VadotRequired properties :
4c66ec88fSEmmanuel Vadot- compatible : Must be one of:
5c66ec88fSEmmanuel Vadot	"atmel,at91rm9200-i2c",
6c66ec88fSEmmanuel Vadot	"atmel,at91sam9261-i2c",
7c66ec88fSEmmanuel Vadot	"atmel,at91sam9260-i2c",
8c66ec88fSEmmanuel Vadot	"atmel,at91sam9g20-i2c",
9c66ec88fSEmmanuel Vadot	"atmel,at91sam9g10-i2c",
10c66ec88fSEmmanuel Vadot	"atmel,at91sam9x5-i2c",
11c66ec88fSEmmanuel Vadot	"atmel,sama5d4-i2c",
12c66ec88fSEmmanuel Vadot	"atmel,sama5d2-i2c",
13c66ec88fSEmmanuel Vadot	"microchip,sam9x60-i2c".
14c66ec88fSEmmanuel Vadot- reg: physical base address of the controller and length of memory mapped
15c66ec88fSEmmanuel Vadot     region.
16c66ec88fSEmmanuel Vadot- interrupts: interrupt number to the cpu.
17c66ec88fSEmmanuel Vadot- #address-cells = <1>;
18c66ec88fSEmmanuel Vadot- #size-cells = <0>;
19c66ec88fSEmmanuel Vadot- clocks: phandles to input clocks.
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel VadotOptional properties:
22c66ec88fSEmmanuel Vadot- clock-frequency: Desired I2C bus frequency in Hz, otherwise defaults to 100000
23c66ec88fSEmmanuel Vadot- dmas: A list of two dma specifiers, one for each entry in dma-names.
24c66ec88fSEmmanuel Vadot- dma-names: should contain "tx" and "rx".
25c66ec88fSEmmanuel Vadot- atmel,fifo-size: maximum number of data the RX and TX FIFOs can store for FIFO
26c66ec88fSEmmanuel Vadot  capable I2C controllers.
27c66ec88fSEmmanuel Vadot- i2c-sda-hold-time-ns: TWD hold time, only available for:
28c66ec88fSEmmanuel Vadot	"atmel,sama5d4-i2c",
29c66ec88fSEmmanuel Vadot	"atmel,sama5d2-i2c",
30c66ec88fSEmmanuel Vadot	"microchip,sam9x60-i2c".
31c66ec88fSEmmanuel Vadot- scl-gpios: specify the gpio related to SCL pin
32c66ec88fSEmmanuel Vadot- sda-gpios: specify the gpio related to SDA pin
33c66ec88fSEmmanuel Vadot- pinctrl: add extra pinctrl to configure i2c pins to gpio function for i2c
34c66ec88fSEmmanuel Vadot  bus recovery, call it "gpio" state
35c66ec88fSEmmanuel Vadot- Child nodes conforming to i2c bus binding
36c66ec88fSEmmanuel Vadot
37c66ec88fSEmmanuel Vadot
38c66ec88fSEmmanuel VadotExamples :
39c66ec88fSEmmanuel Vadot
40c66ec88fSEmmanuel Vadoti2c0: i2c@fff84000 {
41c66ec88fSEmmanuel Vadot	compatible = "atmel,at91sam9g20-i2c";
42c66ec88fSEmmanuel Vadot	reg = <0xfff84000 0x100>;
43c66ec88fSEmmanuel Vadot	interrupts = <12 4 6>;
44c66ec88fSEmmanuel Vadot	#address-cells = <1>;
45c66ec88fSEmmanuel Vadot	#size-cells = <0>;
46c66ec88fSEmmanuel Vadot	clocks = <&twi0_clk>;
47c66ec88fSEmmanuel Vadot	clock-frequency = <400000>;
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot	24c512@50 {
50c66ec88fSEmmanuel Vadot		compatible = "atmel,24c512";
51c66ec88fSEmmanuel Vadot		reg = <0x50>;
52c66ec88fSEmmanuel Vadot		pagesize = <128>;
53c66ec88fSEmmanuel Vadot	}
54c66ec88fSEmmanuel Vadot}
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel Vadoti2c0: i2c@f8034600 {
57c66ec88fSEmmanuel Vadot	compatible = "atmel,sama5d2-i2c";
58c66ec88fSEmmanuel Vadot	reg = <0xf8034600 0x100>;
59c66ec88fSEmmanuel Vadot	interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
60c66ec88fSEmmanuel Vadot	dmas = <&dma0
61c66ec88fSEmmanuel Vadot		(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1))
62c66ec88fSEmmanuel Vadot		AT91_XDMAC_DT_PERID(11)>,
63c66ec88fSEmmanuel Vadot	       <&dma0
64c66ec88fSEmmanuel Vadot		(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1))
65c66ec88fSEmmanuel Vadot		AT91_XDMAC_DT_PERID(12)>;
66c66ec88fSEmmanuel Vadot	dma-names = "tx", "rx";
67c66ec88fSEmmanuel Vadot	#address-cells = <1>;
68c66ec88fSEmmanuel Vadot	#size-cells = <0>;
69c66ec88fSEmmanuel Vadot	clocks = <&flx0>;
70c66ec88fSEmmanuel Vadot	atmel,fifo-size = <16>;
71c66ec88fSEmmanuel Vadot	i2c-sda-hold-time-ns = <336>;
72c66ec88fSEmmanuel Vadot	pinctrl-names = "default", "gpio";
73c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pinctrl_i2c0>;
74c66ec88fSEmmanuel Vadot	pinctrl-1 = <&pinctrl_i2c0_gpio>;
75c66ec88fSEmmanuel Vadot	sda-gpios = <&pioA 30 GPIO_ACTIVE_HIGH>;
76*5956d97fSEmmanuel Vadot	scl-gpios = <&pioA 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel Vadot	wm8731: wm8731@1a {
79c66ec88fSEmmanuel Vadot		compatible = "wm8731";
80c66ec88fSEmmanuel Vadot		reg = <0x1a>;
81c66ec88fSEmmanuel Vadot	};
82c66ec88fSEmmanuel Vadot};
83