mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
b2edcdae3d
This includes the device tree binding and I2C core changes to support the i2c-bus subnode that I2C masters can use to describe their slaves in a separate namespace and therefore avoid clashing with potentially other subnodes. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABCAAGBQJXdn2gAAoJEN0jrNd/PrOhe94P/j+1I3iGpHcU/mNmCaqgit9z TLMehmgglf9kj0iXpYoBjYU/XxzRKBfOaceRrPj16V9GbhiKGcHX0fhH06zydczS ZPS5FBNGqH9C6WYe8oszTBWz5skulSQba6VUwG01MnT2Nv7z7ONcHB2HPjM6TKob D0dxN4U3BlfTCGd/FxJariork2xY8o8mKZN7pntkJ+hQNeengCXXoPaY2bGSFH4K omfUal8/tdPZAruMaA/Dmvu9jBv0RkVSQzNnHXNkGzAw3fAsYm1UzcpG4VNhgeyj XNFiedIFOls8KW2Xd0LdPAzpyafS4w4gBj2SOol0xpUFhA9CchZCzci7DI2NSj9A VpiZzBPt6I+zv9c2HdzRqjH2PZTRoy0c9/szCBWyabZ/tST3SWk/tBY5SoLYpmL7 Jq/sOWtegpGvj2XRw8jhmxXVjXYzqzAbyo6SrINZs8ElFrWZxTgsVHmq2SVE5qvh DnIpr7y/gfKyqAynm0QshNCo5kauvSX4Pa55MfEB/7GfkqhvYzjg+nlplut9woSG +JN3dWS5tts9pqzHWVL4YY/S11Dx+pT6ZPkmprjMAN+ghxNWjEhA57q7FxAHTU83 BsermHINCpCcN/zyLGDXSaJbJq9hH5LLCHA23ZfnWtOFC5zikp1TG325A/2WMnwb ovKSLXRScyVqliffmO8G =+0Q/ -----END PGP SIGNATURE----- Merge tag 'tegra-for-4.8-i2c' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into i2c/for-next [wsa: fell through the cracks, applied to 4.9 now] Signed-off-by: Wolfram Sang <wsa@the-dreams.de> i2c: 'i2c-bus' node support for v4.8-rc1 This includes the device tree binding and I2C core changes to support the i2c-bus subnode that I2C masters can use to describe their slaves in a separate namespace and therefore avoid clashing with potentially other subnodes.
87 lines
3.0 KiB
Plaintext
87 lines
3.0 KiB
Plaintext
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.
|