162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/spi/spi-mux.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Generic SPI Multiplexer 862306a36Sopenharmony_ci 962306a36Sopenharmony_cidescription: | 1062306a36Sopenharmony_ci This binding describes a SPI bus multiplexer to route the SPI chip select 1162306a36Sopenharmony_ci signals. This can be used when you need more devices than the SPI controller 1262306a36Sopenharmony_ci has chip selects available. An example setup is shown in ASCII art; the actual 1362306a36Sopenharmony_ci setting of the multiplexer to a channel needs to be done by a specific SPI mux 1462306a36Sopenharmony_ci driver. 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci MOSI /--------------------------------+--------+--------+--------\ 1762306a36Sopenharmony_ci MISO |/------------------------------+|-------+|-------+|-------\| 1862306a36Sopenharmony_ci SCL ||/----------------------------+||------+||------+||------\|| 1962306a36Sopenharmony_ci ||| ||| ||| ||| ||| 2062306a36Sopenharmony_ci +------------+ ||| ||| ||| ||| 2162306a36Sopenharmony_ci | SoC ||| | +-+++-+ +-+++-+ +-+++-+ +-+++-+ 2262306a36Sopenharmony_ci | ||| | | dev | | dev | | dev | | dev | 2362306a36Sopenharmony_ci | +--+++-+ | CS-X +------+\ +--+--+ +--+--+ +--+--+ +--+--+ 2462306a36Sopenharmony_ci | | SPI +-|-------+ Mux |\\ CS-0 | | | | 2562306a36Sopenharmony_ci | +------+ | +--+---+\\\-------/ CS-1 | | | 2662306a36Sopenharmony_ci | | | \\\----------------/ CS-2 | | 2762306a36Sopenharmony_ci | +------+ | | \\-------------------------/ CS-3 | 2862306a36Sopenharmony_ci | | ? +-|----------/ \----------------------------------/ 2962306a36Sopenharmony_ci | +------+ | 3062306a36Sopenharmony_ci +------------+ 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciallOf: 3362306a36Sopenharmony_ci - $ref: /schemas/spi/spi-controller.yaml# 3462306a36Sopenharmony_ci - $ref: /schemas/spi/spi-peripheral-props.yaml# 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_cimaintainers: 3762306a36Sopenharmony_ci - Chris Packham <chris.packham@alliedtelesis.co.nz> 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ciproperties: 4062306a36Sopenharmony_ci compatible: 4162306a36Sopenharmony_ci const: spi-mux 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci mux-controls: 4462306a36Sopenharmony_ci maxItems: 1 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_cirequired: 4762306a36Sopenharmony_ci - compatible 4862306a36Sopenharmony_ci - reg 4962306a36Sopenharmony_ci - spi-max-frequency 5062306a36Sopenharmony_ci - mux-controls 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ciunevaluatedProperties: false 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ciexamples: 5562306a36Sopenharmony_ci - | 5662306a36Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 5762306a36Sopenharmony_ci mux: mux-controller { 5862306a36Sopenharmony_ci compatible = "gpio-mux"; 5962306a36Sopenharmony_ci #mux-control-cells = <0>; 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci mux-gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>; 6262306a36Sopenharmony_ci }; 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci spi { 6562306a36Sopenharmony_ci #address-cells = <1>; 6662306a36Sopenharmony_ci #size-cells = <0>; 6762306a36Sopenharmony_ci spi@0 { 6862306a36Sopenharmony_ci compatible = "spi-mux"; 6962306a36Sopenharmony_ci reg = <0>; 7062306a36Sopenharmony_ci #address-cells = <1>; 7162306a36Sopenharmony_ci #size-cells = <0>; 7262306a36Sopenharmony_ci spi-max-frequency = <100000000>; 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci mux-controls = <&mux>; 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci flash@0 { 7762306a36Sopenharmony_ci compatible = "jedec,spi-nor"; 7862306a36Sopenharmony_ci reg = <0>; 7962306a36Sopenharmony_ci spi-max-frequency = <40000000>; 8062306a36Sopenharmony_ci }; 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci sensor@1 { 8362306a36Sopenharmony_ci compatible = "bosch,bme680"; 8462306a36Sopenharmony_ci reg = <1>; 8562306a36Sopenharmony_ci spi-max-frequency = <10000000>; 8662306a36Sopenharmony_ci }; 8762306a36Sopenharmony_ci }; 8862306a36Sopenharmony_ci }; 89