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