1d548ed71SChris Packham# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2d548ed71SChris Packham%YAML 1.2 3d548ed71SChris Packham--- 4d548ed71SChris Packham$id: http://devicetree.org/schemas/spi/spi-mux.yaml# 5d548ed71SChris Packham$schema: http://devicetree.org/meta-schemas/core.yaml# 6d548ed71SChris Packham 7d548ed71SChris Packhamtitle: Generic SPI Multiplexer 8d548ed71SChris Packham 9d548ed71SChris Packhamdescription: | 10d548ed71SChris Packham This binding describes a SPI bus multiplexer to route the SPI chip select 11d548ed71SChris Packham signals. This can be used when you need more devices than the SPI controller 12d548ed71SChris Packham has chip selects available. An example setup is shown in ASCII art; the actual 13d548ed71SChris Packham setting of the multiplexer to a channel needs to be done by a specific SPI mux 14d548ed71SChris Packham driver. 15d548ed71SChris Packham 16d548ed71SChris Packham MOSI /--------------------------------+--------+--------+--------\ 17d548ed71SChris Packham MISO |/------------------------------+|-------+|-------+|-------\| 18d548ed71SChris Packham SCL ||/----------------------------+||------+||------+||------\|| 19d548ed71SChris Packham ||| ||| ||| ||| ||| 20d548ed71SChris Packham +------------+ ||| ||| ||| ||| 21d548ed71SChris Packham | SoC ||| | +-+++-+ +-+++-+ +-+++-+ +-+++-+ 22d548ed71SChris Packham | ||| | | dev | | dev | | dev | | dev | 23d548ed71SChris Packham | +--+++-+ | CS-X +------+\ +--+--+ +--+--+ +--+--+ +--+--+ 24d548ed71SChris Packham | | SPI +-|-------+ Mux |\\ CS-0 | | | | 25d548ed71SChris Packham | +------+ | +--+---+\\\-------/ CS-1 | | | 26d548ed71SChris Packham | | | \\\----------------/ CS-2 | | 27d548ed71SChris Packham | +------+ | | \\-------------------------/ CS-3 | 28d548ed71SChris Packham | | ? +-|----------/ \----------------------------------/ 29d548ed71SChris Packham | +------+ | 30d548ed71SChris Packham +------------+ 31d548ed71SChris Packham 32d548ed71SChris PackhamallOf: 33*99a7fa0eSKrzysztof Kozlowski - $ref: /schemas/spi/spi-controller.yaml# 34*99a7fa0eSKrzysztof Kozlowski - $ref: /schemas/spi/spi-peripheral-props.yaml# 35d548ed71SChris Packham 36d548ed71SChris Packhammaintainers: 37d548ed71SChris Packham - Chris Packham <chris.packham@alliedtelesis.co.nz> 38d548ed71SChris Packham 39d548ed71SChris Packhamproperties: 40d548ed71SChris Packham compatible: 41d548ed71SChris Packham const: spi-mux 42d548ed71SChris Packham 43d548ed71SChris Packham mux-controls: 44d548ed71SChris Packham maxItems: 1 45d548ed71SChris Packham 46d548ed71SChris Packhamrequired: 47d548ed71SChris Packham - compatible 48d548ed71SChris Packham - reg 49d548ed71SChris Packham - spi-max-frequency 50d548ed71SChris Packham - mux-controls 51d548ed71SChris Packham 526fdc6e23SRob HerringunevaluatedProperties: false 536fdc6e23SRob Herring 54d548ed71SChris Packhamexamples: 55d548ed71SChris Packham - | 56d548ed71SChris Packham #include <dt-bindings/gpio/gpio.h> 57d548ed71SChris Packham mux: mux-controller { 58d548ed71SChris Packham compatible = "gpio-mux"; 59d548ed71SChris Packham #mux-control-cells = <0>; 60d548ed71SChris Packham 61d548ed71SChris Packham mux-gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>; 62d548ed71SChris Packham }; 63d548ed71SChris Packham 64d548ed71SChris Packham spi { 65d548ed71SChris Packham #address-cells = <1>; 66d548ed71SChris Packham #size-cells = <0>; 67d548ed71SChris Packham spi@0 { 68d548ed71SChris Packham compatible = "spi-mux"; 69d548ed71SChris Packham reg = <0>; 70d548ed71SChris Packham #address-cells = <1>; 71d548ed71SChris Packham #size-cells = <0>; 72d548ed71SChris Packham spi-max-frequency = <100000000>; 73d548ed71SChris Packham 74d548ed71SChris Packham mux-controls = <&mux>; 75d548ed71SChris Packham 760b07154fSMichael Walle flash@0 { 77d548ed71SChris Packham compatible = "jedec,spi-nor"; 78d548ed71SChris Packham reg = <0>; 79d548ed71SChris Packham spi-max-frequency = <40000000>; 80d548ed71SChris Packham }; 81d548ed71SChris Packham 8228ffe8bfSRob Herring sensor@1 { 8328ffe8bfSRob Herring compatible = "bosch,bme680"; 84d548ed71SChris Packham reg = <1>; 85d548ed71SChris Packham spi-max-frequency = <10000000>; 86d548ed71SChris Packham }; 87d548ed71SChris Packham }; 88d548ed71SChris Packham }; 89