diff options
| author | Wolfram Sang <wsa@the-dreams.de> | 2014-02-10 05:03:55 -0500 |
|---|---|---|
| committer | Wolfram Sang <wsa@the-dreams.de> | 2014-02-15 13:46:29 -0500 |
| commit | aeca0fe62ac19217cb8158a0c5f6f74e3b8d304b (patch) | |
| tree | 273a11bf3c94901c8fbc751f14e3893237adad0a | |
| parent | 79970db213344b4a4034645db5ebfc31571f3fa3 (diff) | |
Documentation: i2c: describe devicetree method for instantiating devices
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
| -rw-r--r-- | Documentation/i2c/instantiating-devices | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/Documentation/i2c/instantiating-devices b/Documentation/i2c/instantiating-devices index c70e7a7638d1..6df095a6071e 100644 --- a/Documentation/i2c/instantiating-devices +++ b/Documentation/i2c/instantiating-devices | |||
| @@ -8,8 +8,8 @@ reason, the kernel code must instantiate I2C devices explicitly. There are | |||
| 8 | several ways to achieve this, depending on the context and requirements. | 8 | several ways to achieve this, depending on the context and requirements. |
| 9 | 9 | ||
| 10 | 10 | ||
| 11 | Method 1: Declare the I2C devices by bus number | 11 | Method 1a: Declare the I2C devices by bus number |
| 12 | ----------------------------------------------- | 12 | ------------------------------------------------ |
| 13 | 13 | ||
| 14 | This method is appropriate when the I2C bus is a system bus as is the case | 14 | This method is appropriate when the I2C bus is a system bus as is the case |
| 15 | for many embedded systems. On such systems, each I2C bus has a number | 15 | for many embedded systems. On such systems, each I2C bus has a number |
| @@ -51,6 +51,36 @@ The devices will be automatically unbound and destroyed when the I2C bus | |||
| 51 | they sit on goes away (if ever.) | 51 | they sit on goes away (if ever.) |
| 52 | 52 | ||
| 53 | 53 | ||
| 54 | Method 1b: Declare the I2C devices via devicetree | ||
| 55 | ------------------------------------------------- | ||
| 56 | |||
| 57 | This method has the same implications as method 1a. The declaration of I2C | ||
| 58 | devices is here done via devicetree as subnodes of the master controller. | ||
| 59 | |||
| 60 | Example: | ||
| 61 | |||
| 62 | i2c1: i2c@400a0000 { | ||
| 63 | /* ... master properties skipped ... */ | ||
| 64 | clock-frequency = <100000>; | ||
| 65 | |||
| 66 | flash@50 { | ||
| 67 | compatible = "atmel,24c256"; | ||
| 68 | reg = <0x50>; | ||
| 69 | }; | ||
| 70 | |||
| 71 | pca9532: gpio@60 { | ||
| 72 | compatible = "nxp,pca9532"; | ||
| 73 | gpio-controller; | ||
| 74 | #gpio-cells = <2>; | ||
| 75 | reg = <0x60>; | ||
| 76 | }; | ||
| 77 | }; | ||
| 78 | |||
| 79 | Here, two devices are attached to the bus using a speed of 100kHz. For | ||
| 80 | additional properties which might be needed to set up the device, please refer | ||
| 81 | to its devicetree documentation in Documentation/devicetree/bindings/. | ||
| 82 | |||
| 83 | |||
| 54 | Method 2: Instantiate the devices explicitly | 84 | Method 2: Instantiate the devices explicitly |
| 55 | -------------------------------------------- | 85 | -------------------------------------------- |
| 56 | 86 | ||
