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

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/i2c/i2c-demux-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-demux-pinctrl.yaml (Architecture i386) and /Documentation/devicetree/bindings/i2c/i2c-demux-pinctrl.yaml (Architecture alpha)


  1 # SPDX-License-Identifier: (GPL-2.0-only OR BS      1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2                                           2 %YAML 1.2
  3 ---                                                 3 ---
  4 $id: http://devicetree.org/schemas/i2c/i2c-dem      4 $id: http://devicetree.org/schemas/i2c/i2c-demux-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 Demultiplexer          7 title: Pinctrl-based I2C Bus Demultiplexer
  8                                                     8 
  9 maintainers:                                        9 maintainers:
 10   - Wolfram Sang <wsa+renesas@sang-engineering.     10   - Wolfram Sang <wsa+renesas@sang-engineering.com>
 11                                                    11 
 12 description: |                                     12 description: |
 13   This binding describes an I2C bus demultiple     13   This binding describes an I2C bus demultiplexer that uses pin multiplexing to
 14   route the I2C signals, and represents the pi     14   route the I2C signals, and represents the pin multiplexing configuration
 15   using the pinctrl device tree bindings.  Thi     15   using the pinctrl device tree bindings.  This may be used to select one I2C
 16   IP core at runtime which may have a better f     16   IP core at runtime which may have a better feature set for a given task than
 17   another I2C IP core on the SoC.  The most si     17   another I2C IP core on the SoC.  The most simple example is to fall back to
 18   GPIO bitbanging if your current runtime conf     18   GPIO bitbanging if your current runtime configuration hits an errata of the
 19   internal IP core.                                19   internal IP core.
 20                                                    20 
 21       +-------------------------------+            21       +-------------------------------+
 22       | SoC                           |            22       | SoC                           |
 23       |                               |   +---     23       |                               |   +-----+  +-----+
 24       |   +------------+              |   | de     24       |   +------------+              |   | dev |  | dev |
 25       |   |I2C IP Core1|--\           |   +---     25       |   |I2C IP Core1|--\           |   +-----+  +-----+
 26       |   +------------+   \-------+  |      |     26       |   +------------+   \-------+  |      |        |
 27       |                    |Pinctrl|--|------+     27       |                    |Pinctrl|--|------+--------+
 28       |   +------------+   +-------+  |            28       |   +------------+   +-------+  |
 29       |   |I2C IP Core2|--/           |            29       |   |I2C IP Core2|--/           |
 30       |   +------------+              |            30       |   +------------+              |
 31       |                               |            31       |                               |
 32       +-------------------------------+            32       +-------------------------------+
 33                                                    33 
 34 allOf:                                             34 allOf:
 35   - $ref: /schemas/i2c/i2c-controller.yaml#        35   - $ref: /schemas/i2c/i2c-controller.yaml#
 36                                                    36 
 37 properties:                                        37 properties:
 38   compatible:                                      38   compatible:
 39     const: i2c-demux-pinctrl                       39     const: i2c-demux-pinctrl
 40                                                    40 
 41   i2c-parent:                                      41   i2c-parent:
 42     $ref: /schemas/types.yaml#/definitions/pha     42     $ref: /schemas/types.yaml#/definitions/phandle-array
 43     items:                                         43     items:
 44       maxItems: 1                                  44       maxItems: 1
 45     description:                                   45     description:
 46       List of phandles of I2C masters availabl     46       List of phandles of I2C masters available for selection.  The first one
 47       will be used as default.                     47       will be used as default.
 48                                                    48 
 49   i2c-bus-name:                                    49   i2c-bus-name:
 50     $ref: /schemas/types.yaml#/definitions/str     50     $ref: /schemas/types.yaml#/definitions/string
 51     description:                                   51     description:
 52       The name of this bus.  Also needed as pi     52       The name of this bus.  Also needed as pinctrl-name for the I2C parents.
 53                                                    53 
 54 required:                                          54 required:
 55   - compatible                                     55   - compatible
 56   - i2c-parent                                     56   - i2c-parent
 57   - i2c-bus-name                                   57   - i2c-bus-name
 58                                                    58 
 59 unevaluatedProperties: false                       59 unevaluatedProperties: false
 60                                                    60 
 61 examples:                                          61 examples:
 62   - |                                              62   - |
 63     #include <dt-bindings/gpio/gpio.h>             63     #include <dt-bindings/gpio/gpio.h>
 64     #include <dt-bindings/interrupt-controller     64     #include <dt-bindings/interrupt-controller/irq.h>
 65                                                    65 
 66     gpioi2c2: i2c-9 {                              66     gpioi2c2: i2c-9 {
 67         #address-cells = <1>;                      67         #address-cells = <1>;
 68         #size-cells = <0>;                         68         #size-cells = <0>;
 69         compatible = "i2c-gpio";                   69         compatible = "i2c-gpio";
 70         scl-gpios = <&gpio5 5 (GPIO_ACTIVE_HIG     70         scl-gpios = <&gpio5 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 71         sda-gpios = <&gpio5 6 (GPIO_ACTIVE_HIG     71         sda-gpios = <&gpio5 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 72         i2c-gpio,delay-us = <5>;                   72         i2c-gpio,delay-us = <5>;
 73                                                    73 
 74         // The I2C controller must have its st     74         // The I2C controller must have its status "disabled".  The I2C bus
 75         // demultiplexer will enable it at run     75         // demultiplexer will enable it at runtime when needed.
 76         status = "disabled";                       76         status = "disabled";
 77     };                                             77     };
 78                                                    78 
 79     iic2: i2c@e6520000 {                           79     iic2: i2c@e6520000 {
 80         reg = <0xe6520000 0x425>;                  80         reg = <0xe6520000 0x425>;
 81         pinctrl-0 = <&iic2_pins>;                  81         pinctrl-0 = <&iic2_pins>;
 82         // The pinctrl property for the parent     82         // The pinctrl property for the parent I2C controller needs a pinctrl
 83         // state with the same name as i2c-bus     83         // state with the same name as i2c-bus-name in the I2C bus demultiplexer
 84         // node, not "default"!                    84         // node, not "default"!
 85         pinctrl-names = "i2c-hdmi";                85         pinctrl-names = "i2c-hdmi";
 86                                                    86 
 87         clock-frequency = <100000>;                87         clock-frequency = <100000>;
 88                                                    88 
 89         // The I2C controller must have its st     89         // The I2C controller must have its status "disabled".  The I2C bus
 90         // demultiplexer will enable it at run     90         // demultiplexer will enable it at runtime when needed.
 91         status = "disabled";                       91         status = "disabled";
 92     };                                             92     };
 93                                                    93 
 94     i2c2: i2c@e6530000 {                           94     i2c2: i2c@e6530000 {
 95         reg = <0 0xe6530000 0 0x40>;               95         reg = <0 0xe6530000 0 0x40>;
 96         pinctrl-0 = <&i2c2_pins>;                  96         pinctrl-0 = <&i2c2_pins>;
 97         // The pinctrl property for the parent     97         // The pinctrl property for the parent I2C controller needs a pinctrl
 98         // state with the same name as i2c-bus     98         // state with the same name as i2c-bus-name in the I2C bus demultiplexer
 99         // node, not "default"!                    99         // node, not "default"!
100         pinctrl-names = "i2c-hdmi";               100         pinctrl-names = "i2c-hdmi";
101                                                   101 
102         clock-frequency = <100000>;               102         clock-frequency = <100000>;
103                                                   103 
104         // The I2C controller must have its st    104         // The I2C controller must have its status "disabled".  The I2C bus
105         // demultiplexer will enable it at run    105         // demultiplexer will enable it at runtime when needed.
106         status = "disabled";                      106         status = "disabled";
107     };                                            107     };
108                                                   108 
109     // Example for a bus to be demuxed.  It co    109     // Example for a bus to be demuxed.  It contains various I2C clients for
110     // HDMI, so the bus is named "i2c-hdmi":      110     // HDMI, so the bus is named "i2c-hdmi":
111     i2chdmi: i2c-mux3 {                           111     i2chdmi: i2c-mux3 {
112         compatible = "i2c-demux-pinctrl";         112         compatible = "i2c-demux-pinctrl";
113         i2c-parent = <&iic2>, <&i2c2>, <&gpioi    113         i2c-parent = <&iic2>, <&i2c2>, <&gpioi2c2>;
114         i2c-bus-name = "i2c-hdmi";                114         i2c-bus-name = "i2c-hdmi";
115         #address-cells = <1>;                     115         #address-cells = <1>;
116         #size-cells = <0>;                        116         #size-cells = <0>;
117                                                   117 
118         ak4643: codec@12 {                        118         ak4643: codec@12 {
119             compatible = "asahi-kasei,ak4643";    119             compatible = "asahi-kasei,ak4643";
120             #sound-dai-cells = <0>;               120             #sound-dai-cells = <0>;
121             reg = <0x12>;                         121             reg = <0x12>;
122         };                                        122         };
123                                                   123 
124         composite-in@20 {                         124         composite-in@20 {
125             compatible = "adi,adv7180";           125             compatible = "adi,adv7180";
126             reg = <0x20>;                         126             reg = <0x20>;
127                                                   127 
128             port {                                128             port {
129                 adv7180: endpoint {               129                 adv7180: endpoint {
130                     bus-width = <8>;              130                     bus-width = <8>;
131                     remote-endpoint = <&vin1ep    131                     remote-endpoint = <&vin1ep0>;
132                 };                                132                 };
133             };                                    133             };
134         };                                        134         };
135                                                   135 
136         hdmi@39 {                                 136         hdmi@39 {
137             compatible = "adi,adv7511w";          137             compatible = "adi,adv7511w";
138             reg = <0x39>;                         138             reg = <0x39>;
139             interrupt-parent = <&gpio1>;          139             interrupt-parent = <&gpio1>;
140             interrupts = <15 IRQ_TYPE_LEVEL_LO    140             interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
141             clocks = <&cec_clock>;                141             clocks = <&cec_clock>;
142             clock-names = "cec";                  142             clock-names = "cec";
143                                                   143 
144             avdd-supply = <&fixedregulator1v8>    144             avdd-supply = <&fixedregulator1v8>;
145             dvdd-supply = <&fixedregulator1v8>    145             dvdd-supply = <&fixedregulator1v8>;
146             pvdd-supply = <&fixedregulator1v8>    146             pvdd-supply = <&fixedregulator1v8>;
147             dvdd-3v-supply = <&fixedregulator3    147             dvdd-3v-supply = <&fixedregulator3v3>;
148             bgvdd-supply = <&fixedregulator1v8    148             bgvdd-supply = <&fixedregulator1v8>;
149                                                   149 
150             adi,input-depth = <8>;                150             adi,input-depth = <8>;
151             adi,input-colorspace = "rgb";         151             adi,input-colorspace = "rgb";
152             adi,input-clock = "1x";               152             adi,input-clock = "1x";
153                                                   153 
154             ports {                               154             ports {
155                 #address-cells = <1>;             155                 #address-cells = <1>;
156                 #size-cells = <0>;                156                 #size-cells = <0>;
157                                                   157 
158                 port@0 {                          158                 port@0 {
159                     reg = <0>;                    159                     reg = <0>;
160                     adv7511_in: endpoint {        160                     adv7511_in: endpoint {
161                         remote-endpoint = <&lv    161                         remote-endpoint = <&lvds0_out>;
162                     };                            162                     };
163                 };                                163                 };
164                                                   164 
165                 port@1 {                          165                 port@1 {
166                     reg = <1>;                    166                     reg = <1>;
167                     adv7511_out: endpoint {       167                     adv7511_out: endpoint {
168                         remote-endpoint = <&hd    168                         remote-endpoint = <&hdmi_con_out>;
169                     };                            169                     };
170                 };                                170                 };
171             };                                    171             };
172         };                                        172         };
173     };                                            173     };
                                                      

~ [ 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