~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/i2c/i2c-mux-pinctrl.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/devicetree/bindings/i2c/i2c-mux-pinctrl.yaml (Version linux-6.12-rc7) and /Documentation/devicetree/bindings/i2c/i2c-mux-pinctrl.yaml (Version linux-5.17.15)


  1 # SPDX-License-Identifier: GPL-2.0-only             1 # SPDX-License-Identifier: GPL-2.0-only
  2 %YAML 1.2                                           2 %YAML 1.2
  3 ---                                                 3 ---
  4 $id: http://devicetree.org/schemas/i2c/i2c-mux      4 $id: http://devicetree.org/schemas/i2c/i2c-mux-pinctrl.yaml#
  5 $schema: http://devicetree.org/meta-schemas/co      5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6                                                     6 
  7 title: Pinctrl-based I2C Bus Mux                    7 title: Pinctrl-based I2C Bus Mux
  8                                                     8 
  9 maintainers:                                        9 maintainers:
 10   - Wolfram Sang <wsa@kernel.org>                   10   - Wolfram Sang <wsa@kernel.org>
 11                                                    11 
 12 description: |                                     12 description: |
 13   This binding describes an I2C bus multiplexe     13   This binding describes an I2C bus multiplexer that uses pin multiplexing to route the I2C
 14   signals, and represents the pin multiplexing     14   signals, and represents the pin multiplexing configuration using the pinctrl device tree
 15   bindings.                                        15   bindings.
 16                                                    16 
 17                                  +-----+  +---     17                                  +-----+  +-----+
 18                                  | dev |  | de     18                                  | dev |  | dev |
 19     +------------------------+   +-----+  +---     19     +------------------------+   +-----+  +-----+
 20     | SoC                    |      |        |     20     | SoC                    |      |        |
 21     |                   /----|------+--------+     21     |                   /----|------+--------+
 22     |   +---+   +------+     | child bus A, on     22     |   +---+   +------+     | child bus A, on first set of pins
 23     |   |I2C|---|Pinmux|     |                     23     |   |I2C|---|Pinmux|     |
 24     |   +---+   +------+     | child bus B, on     24     |   +---+   +------+     | child bus B, on second set of pins
 25     |                   \----|------+--------+     25     |                   \----|------+--------+--------+
 26     |                        |      |        |     26     |                        |      |        |        |
 27     +------------------------+  +-----+  +----     27     +------------------------+  +-----+  +-----+  +-----+
 28                                 | dev |  | dev     28                                 | dev |  | dev |  | dev |
 29                                 +-----+  +----     29                                 +-----+  +-----+  +-----+
 30                                                    30 
 31   For each named state defined in the pinctrl-     31   For each named state defined in the pinctrl-names property, an I2C child bus will be created.
 32   I2C child bus numbers are assigned based on      32   I2C child bus numbers are assigned based on the index into the pinctrl-names property.
 33                                                    33 
 34   The only exception is that no bus will be cr     34   The only exception is that no bus will be created for a state named "idle". If such a state is
 35   defined, it must be the last entry in pinctr     35   defined, it must be the last entry in pinctrl-names. For example:
 36                                                    36 
 37     pinctrl-names = "ddc", "pta", "idle"  ->       37     pinctrl-names = "ddc", "pta", "idle"  ->  ddc = bus 0, pta = bus 1
 38     pinctrl-names = "ddc", "idle", "pta"  ->       38     pinctrl-names = "ddc", "idle", "pta"  ->  Invalid ("idle" not last)
 39     pinctrl-names = "idle", "ddc", "pta"  ->       39     pinctrl-names = "idle", "ddc", "pta"  ->  Invalid ("idle" not last)
 40                                                    40 
 41   Whenever an access is made to a device on a      41   Whenever an access is made to a device on a child bus, the relevant pinctrl state will be
 42   programmed into hardware.                        42   programmed into hardware.
 43                                                    43 
 44   If an idle state is defined, whenever an acc     44   If an idle state is defined, whenever an access is not being made to a device on a child bus,
 45   the idle pinctrl state will be programmed in     45   the idle pinctrl state will be programmed into hardware.
 46                                                    46 
 47   If an idle state is not defined, the most re     47   If an idle state is not defined, the most recently used pinctrl state will be left programmed
 48   into hardware whenever no access is being ma     48   into hardware whenever no access is being made of a device on a child bus.
 49                                                    49 
 50 properties:                                        50 properties:
 51   compatible:                                      51   compatible:
 52     const: i2c-mux-pinctrl                         52     const: i2c-mux-pinctrl
 53                                                    53 
 54   i2c-parent:                                      54   i2c-parent:
 55     $ref: /schemas/types.yaml#/definitions/pha     55     $ref: /schemas/types.yaml#/definitions/phandle
 56     description: The phandle of the I2C bus th     56     description: The phandle of the I2C bus that this multiplexer's master-side port is connected
 57       to.                                          57       to.
 58                                                    58 
 59 allOf:                                             59 allOf:
 60   - $ref: i2c-mux.yaml                             60   - $ref: i2c-mux.yaml
 61                                                    61 
 62 unevaluatedProperties: false                       62 unevaluatedProperties: false
 63                                                    63 
 64 required:                                          64 required:
 65   - compatible                                     65   - compatible
 66   - i2c-parent                                     66   - i2c-parent
 67                                                    67 
 68 examples:                                          68 examples:
 69   - |                                              69   - |
 70     i2cmux {                                       70     i2cmux {
 71       compatible = "i2c-mux-pinctrl";              71       compatible = "i2c-mux-pinctrl";
 72       #address-cells = <1>;                        72       #address-cells = <1>;
 73       #size-cells = <0>;                           73       #size-cells = <0>;
 74                                                    74 
 75       i2c-parent = <&i2c1>;                        75       i2c-parent = <&i2c1>;
 76                                                    76 
 77       pinctrl-names = "ddc", "pta", "idle";        77       pinctrl-names = "ddc", "pta", "idle";
 78       pinctrl-0 = <&state_i2cmux_ddc>;             78       pinctrl-0 = <&state_i2cmux_ddc>;
 79       pinctrl-1 = <&state_i2cmux_pta>;             79       pinctrl-1 = <&state_i2cmux_pta>;
 80       pinctrl-2 = <&state_i2cmux_idle>;            80       pinctrl-2 = <&state_i2cmux_idle>;
 81                                                    81 
 82       i2c@0 {                                      82       i2c@0 {
 83         reg = <0>;                                 83         reg = <0>;
 84         #address-cells = <1>;                      84         #address-cells = <1>;
 85         #size-cells = <0>;                         85         #size-cells = <0>;
 86                                                    86 
 87         eeprom@50 {                                87         eeprom@50 {
 88           compatible = "atmel,24c02";              88           compatible = "atmel,24c02";
 89           reg = <0x50>;                            89           reg = <0x50>;
 90         };                                         90         };
 91       };                                           91       };
 92                                                    92 
 93       i2c@1 {                                      93       i2c@1 {
 94         reg = <1>;                                 94         reg = <1>;
 95         #address-cells = <1>;                      95         #address-cells = <1>;
 96         #size-cells = <0>;                         96         #size-cells = <0>;
 97                                                    97 
 98         eeprom@50 {                                98         eeprom@50 {
 99           compatible = "atmel,24c02";              99           compatible = "atmel,24c02";
100           reg = <0x50>;                           100           reg = <0x50>;
101         };                                        101         };
102       };                                          102       };
103     };                                            103     };
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php