Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/i2c/i2c-mux-pca954x.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: NXP PCA954x I2C bus switch
0008 
0009 maintainers:
0010   - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
0011 
0012 description:
0013   The binding supports NXP PCA954x and PCA984x I2C mux/switch devices.
0014 
0015 allOf:
0016   - $ref: /schemas/i2c/i2c-mux.yaml#
0017 
0018 properties:
0019   compatible:
0020     oneOf:
0021       - enum:
0022           - nxp,pca9540
0023           - nxp,pca9542
0024           - nxp,pca9543
0025           - nxp,pca9544
0026           - nxp,pca9545
0027           - nxp,pca9546
0028           - nxp,pca9547
0029           - nxp,pca9548
0030           - nxp,pca9846
0031           - nxp,pca9847
0032           - nxp,pca9848
0033           - nxp,pca9849
0034       - items:
0035           - const: nxp,pca9646
0036           - const: nxp,pca9546
0037 
0038   reg:
0039     maxItems: 1
0040 
0041   interrupts:
0042     maxItems: 1
0043 
0044   "#interrupt-cells":
0045     const: 2
0046 
0047   interrupt-controller: true
0048 
0049   reset-gpios:
0050     maxItems: 1
0051 
0052   i2c-mux-idle-disconnect:
0053     type: boolean
0054     description: Forces mux to disconnect all children in idle state. This is
0055       necessary for example, if there are several multiplexers on the bus and
0056       the devices behind them use same I2C addresses.
0057 
0058   idle-state:
0059     description: if present, overrides i2c-mux-idle-disconnect
0060     $ref: /schemas/mux/mux-controller.yaml#/properties/idle-state
0061 
0062 required:
0063   - compatible
0064   - reg
0065 
0066 unevaluatedProperties: false
0067 
0068 examples:
0069   - |
0070     #include <dt-bindings/interrupt-controller/irq.h>
0071 
0072     i2c {
0073         #address-cells = <1>;
0074         #size-cells = <0>;
0075 
0076         i2c-mux@74 {
0077             compatible = "nxp,pca9548";
0078             #address-cells = <1>;
0079             #size-cells = <0>;
0080             reg = <0x74>;
0081 
0082             interrupt-parent = <&ipic>;
0083             interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
0084             interrupt-controller;
0085             #interrupt-cells = <2>;
0086 
0087             i2c@2 {
0088                 #address-cells = <1>;
0089                 #size-cells = <0>;
0090                 reg = <2>;
0091 
0092                 eeprom@54 {
0093                     compatible = "atmel,24c08";
0094                     reg = <0x54>;
0095                 };
0096             };
0097 
0098             i2c@4 {
0099                 #address-cells = <1>;
0100                 #size-cells = <0>;
0101                 reg = <4>;
0102 
0103                 rtc@51 {
0104                     compatible = "nxp,pcf8563";
0105                     reg = <0x51>;
0106                 };
0107             };
0108         };
0109     };
0110 ...