diff options
| -rw-r--r-- | Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt | 74 | ||||
| -rw-r--r-- | Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml | 110 | 
2 files changed, 110 insertions, 74 deletions
| diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt deleted file mode 100644 index 9f3f3eb67e87..000000000000 --- a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt +++ /dev/null @@ -1,74 +0,0 @@ -* NXP PCA954x I2C bus switch - -The driver supports NXP PCA954x and PCA984x I2C mux/switch devices. - -Required Properties: - -  - compatible: Must contain one of the following. -    "nxp,pca9540", -    "nxp,pca9542", -    "nxp,pca9543", -    "nxp,pca9544", -    "nxp,pca9545", -    "nxp,pca9546", "nxp,pca9846", -    "nxp,pca9547", "nxp,pca9847", -    "nxp,pca9548", "nxp,pca9848", -    "nxp,pca9849" - -  - reg: The I2C address of the device. - -  The following required properties are defined externally: - -  - Standard I2C mux properties. See i2c-mux.txt in this directory. -  - I2C child bus nodes. See i2c-mux.txt in this directory. - -Optional Properties: - -  - reset-gpios: Reference to the GPIO connected to the reset input. -  - idle-state: if present, overrides i2c-mux-idle-disconnect, -    Please refer to Documentation/devicetree/bindings/mux/mux-controller.yaml -  - i2c-mux-idle-disconnect: Boolean; if defined, forces mux to disconnect all -    children in idle state. This is necessary for example, if there are several -    multiplexers on the bus and the devices behind them use same I2C addresses. -  - interrupts: Interrupt mapping for IRQ. -  - interrupt-controller: Marks the device node as an interrupt controller. -  - #interrupt-cells : Should be two. -    - first cell is the pin number -    - second cell is used to specify flags. -    See also Documentation/devicetree/bindings/interrupt-controller/interrupts.txt - -Example: - -	i2c-switch@74 { -		compatible = "nxp,pca9548"; -		#address-cells = <1>; -		#size-cells = <0>; -		reg = <0x74>; - -		interrupt-parent = <&ipic>; -		interrupts = <17 IRQ_TYPE_LEVEL_LOW>; -		interrupt-controller; -		#interrupt-cells = <2>; - -		i2c@2 { -			#address-cells = <1>; -			#size-cells = <0>; -			reg = <2>; - -			eeprom@54 { -				compatible = "atmel,24c08"; -				reg = <0x54>; -			}; -		}; - -		i2c@4 { -			#address-cells = <1>; -			#size-cells = <0>; -			reg = <4>; - -			rtc@51 { -				compatible = "nxp,pcf8563"; -				reg = <0x51>; -			}; -		}; -	}; diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml new file mode 100644 index 000000000000..9f1726d0356b --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml @@ -0,0 +1,110 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/i2c/i2c-mux-pca954x.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: NXP PCA954x I2C bus switch + +maintainers: +  - Laurent Pinchart <laurent.pinchart@ideasonboard.com> + +description: +  The binding supports NXP PCA954x and PCA984x I2C mux/switch devices. + +allOf: +  - $ref: /schemas/i2c/i2c-mux.yaml# + +properties: +  compatible: +    oneOf: +      - enum: +          - nxp,pca9540 +          - nxp,pca9542 +          - nxp,pca9543 +          - nxp,pca9544 +          - nxp,pca9545 +          - nxp,pca9546 +          - nxp,pca9547 +          - nxp,pca9548 +          - nxp,pca9846 +          - nxp,pca9847 +          - nxp,pca9848 +          - nxp,pca9849 +      - items: +          - const: nxp,pca9646 +          - const: nxp,pca9546 + +  reg: +    maxItems: 1 + +  interrupts: +    maxItems: 1 + +  "#interrupt-cells": +    const: 2 + +  interrupt-controller: true + +  reset-gpios: +    maxItems: 1 + +  i2c-mux-idle-disconnect: +    type: boolean +    description: Forces mux to disconnect all children in idle state. This is +      necessary for example, if there are several multiplexers on the bus and +      the devices behind them use same I2C addresses. + +  idle-state: +    description: if present, overrides i2c-mux-idle-disconnect +    $ref: /schemas/mux/mux-controller.yaml#/properties/idle-state + +required: +  - compatible +  - reg + +unevaluatedProperties: false + +examples: +  - | +    #include <dt-bindings/interrupt-controller/irq.h> + +    i2c { +        #address-cells = <1>; +        #size-cells = <0>; + +        i2c-mux@74 { +            compatible = "nxp,pca9548"; +            #address-cells = <1>; +            #size-cells = <0>; +            reg = <0x74>; + +            interrupt-parent = <&ipic>; +            interrupts = <17 IRQ_TYPE_LEVEL_LOW>; +            interrupt-controller; +            #interrupt-cells = <2>; + +            i2c@2 { +                #address-cells = <1>; +                #size-cells = <0>; +                reg = <2>; + +                eeprom@54 { +                    compatible = "atmel,24c08"; +                    reg = <0x54>; +                }; +            }; + +            i2c@4 { +                #address-cells = <1>; +                #size-cells = <0>; +                reg = <4>; + +                rtc@51 { +                    compatible = "nxp,pcf8563"; +                    reg = <0x51>; +                }; +            }; +        }; +    }; +... | 
