Generic device tree bindings for I2C busses
===========================================

This document describes generic bindings which can be used to describe I2C
busses in a device tree.

Required properties
-------------------

- #address-cells  - should be <1>. Read more about addresses below.
- #size-cells     - should be <0>.
- compatible      - name of I2C bus controller following generic names
		    recommended practice.

For other required properties e.g. to describe register sets,
clocks, etc. check the binding documentation of the specific driver.

The cells properties above define that an address of children of an I2C bus
are described by a single value. This is usually a 7 bit address. However,
flags can be attached to the address. I2C_TEN_BIT_ADDRESS is used to mark a 10
bit address. It is needed to avoid the ambiguity between e.g. a 7 bit address
of 0x50 and a 10 bit address of 0x050 which, in theory, can be on the same bus.
Another flag is I2C_OWN_SLAVE_ADDRESS to mark addresses on which we listen to
be devices ourselves.

Optional properties
-------------------

These properties may not be supported by all drivers. However, if a driver
wants to support one of the below features, it should adapt the bindings below.

- clock-frequency
	frequency of bus clock in Hz.

- i2c-scl-falling-time-ns
	Number of nanoseconds the SCL signal takes to fall; t(f) in the I2C
	specification.

- i2c-scl-internal-delay-ns
	Number of nanoseconds the IP core additionally needs to setup SCL.

- i2c-scl-rising-time-ns
	Number of nanoseconds the SCL signal takes to rise; t(r) in the I2C
	specification.

- i2c-sda-falling-time-ns
	Number of nanoseconds the SDA signal takes to fall; t(f) in the I2C
	specification.

- interrupts
	interrupts used by the device.

- interrupt-names
	"irq" and "wakeup" names are recognized by I2C core, other names are
	left to individual drivers.

- multi-master
	states that there is another master active on this bus. The OS can use
	this information to adapt power management to keep the arbitration awake
	all the time, for example.

- wakeup-source
	device can be used as a wakeup source.

Binding may contain optional "interrupts" property, describing interrupts
used by the device. I2C core will assign "irq" interrupt (or the very first
interrupt if not using interrupt names) as primary interrupt for the slave.

Also, if device is marked as a wakeup source, I2C core will set up "wakeup"
interrupt for the device. If "wakeup" interrupt name is not present in the
binding, then primary interrupt will be used as wakeup interrupt.
