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 ...