123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- 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-bus
- For I2C adapters that have child nodes that are a mixture of both I2C
- devices and non-I2C devices, the 'i2c-bus' subnode can be used for
- populating I2C devices. If the 'i2c-bus' subnode is present, only
- subnodes of this will be considered as I2C slaves. The properties,
- '#address-cells' and '#size-cells' must be defined under this subnode
- if present.
- - 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.
- - reg
- I2C slave addresses
- - reg-names
- Names of map programmable addresses.
- It can contain any map needing another address than default one.
- 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.
|