This doesn't yet do anything in the tools, but make it explicit so we can check either 'unevaluatedProperties' or 'additionalProperties' is present in schemas. 'unevaluatedProperties' is appropriate when including another schema (via '$ref') and all possible properties and/or child nodes are not explicitly listed in the schema with the '$ref'. This is in preparation to add a meta-schema to check for missing 'unevaluatedProperties' or 'additionalProperties'. This has been a constant source of review issues. Acked-by: Mark Brown <broonie@kernel.org> Acked-by: Wolfram Sang <wsa@kernel.org> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Acked-By: Vinod Koul <vkoul@kernel.org> Acked-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Ulf Hansson <ulf.hansson@linaro.org> Acked-by: Guenter Roeck <linux@roeck-us.net> Acked-by: Mathieu Poirier <mathieu.poirier@linaro.org> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Link: https://lore.kernel.org/r/20201005183830.486085-2-robh@kernel.org Signed-off-by: Rob Herring <robh@kernel.org>
92 lines
2.8 KiB
YAML
92 lines
2.8 KiB
YAML
# 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
|
|
|
|
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>;
|
|
|
|
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>;
|
|
};
|
|
};
|
|
};
|