# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/spi/spi-mux.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Generic SPI Multiplexer description: | This binding describes a SPI bus multiplexer to route the SPI chip select signals. This can be used when you need more devices than the SPI controller has chip selects available. An example setup is shown in ASCII art; the actual setting of the multiplexer to a channel needs to be done by a specific SPI mux driver. MOSI /--------------------------------+--------+--------+--------\ MISO |/------------------------------+|-------+|-------+|-------\| SCL ||/----------------------------+||------+||------+||------\|| ||| ||| ||| ||| ||| +------------+ ||| ||| ||| ||| | SoC ||| | +-+++-+ +-+++-+ +-+++-+ +-+++-+ | ||| | | dev | | dev | | dev | | dev | | +--+++-+ | CS-X +------+\ +--+--+ +--+--+ +--+--+ +--+--+ | | SPI +-|-------+ Mux |\\ CS-0 | | | | | +------+ | +--+---+\\\-------/ CS-1 | | | | | | \\\----------------/ CS-2 | | | +------+ | | \\-------------------------/ CS-3 | | | ? +-|----------/ \----------------------------------/ | +------+ | +------------+ allOf: - $ref: /schemas/spi/spi-controller.yaml# - $ref: /schemas/spi/spi-peripheral-props.yaml# maintainers: - Chris Packham <chris.packham@alliedtelesis.co.nz> properties: compatible: const: spi-mux mux-controls: maxItems: 1 required: - compatible - reg - spi-max-frequency - mux-controls unevaluatedProperties: false examples: - | #include <dt-bindings/gpio/gpio.h> mux: mux-controller { compatible = "gpio-mux"; #mux-control-cells = <0>; mux-gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>; }; spi { #address-cells = <1>; #size-cells = <0>; spi@0 { compatible = "spi-mux"; reg = <0>; #address-cells = <1>; #size-cells = <0>; spi-max-frequency = <100000000>; mux-controls = <&mux>; flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <40000000>; }; sensor@1 { compatible = "bosch,bme680"; reg = <1>; spi-max-frequency = <10000000>; }; }; };