mirror of https://gitee.com/openkylin/linux.git
dt-bindings: spi: Document binding for generic SPI multiplexer
Add binding documentation for the spi-mux driver. This allows a generic multiplexer to be used to provide access to multiple SPI devices. Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> Reviewed-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20200204032838.20739-2-chris.packham@alliedtelesis.co.nz Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
1565e8e8ef
commit
d548ed71cb
|
@ -0,0 +1,89 @@
|
|||
# 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#"
|
||||
|
||||
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
|
||||
|
||||
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>;
|
||||
|
||||
spi-flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <40000000>;
|
||||
};
|
||||
|
||||
spi-device@1 {
|
||||
compatible = "lineartechnology,ltc2488";
|
||||
reg = <1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <10000000>;
|
||||
};
|
||||
};
|
||||
};
|
Loading…
Reference in New Issue