mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
Support for Dual SPI and Quad SPI was added to the Linux driver in commit0605d9fb41("spi: sun6i: add quirk for dual and quad SPI modes support") and commit25453d797d("spi: sun6i: add dual and quad SPI modes support for R329/D1/R528/T113s"). However the binding was never updated to allow these modes. Allow them by adding 2 and 4 to the allowed bus widths for the newer variants. While at it, also add 0 to the allowed bus widths. This signals that RX or TX is not available, i.e. the MISO or MOSI pin is disconnected. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Chen-Yu Tsai <wens@kernel.org> Link: https://patch.msgid.link/20260302153559.3199783-2-wens@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
147 lines
3.1 KiB
YAML
147 lines
3.1 KiB
YAML
# SPDX-License-Identifier: GPL-2.0
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/spi/allwinner,sun6i-a31-spi.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Allwinner A31 SPI Controller
|
|
|
|
maintainers:
|
|
- Chen-Yu Tsai <wens@csie.org>
|
|
- Maxime Ripard <mripard@kernel.org>
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- const: allwinner,sun50i-r329-spi
|
|
- const: allwinner,sun55i-a523-spi
|
|
- const: allwinner,sun6i-a31-spi
|
|
- const: allwinner,sun8i-h3-spi
|
|
- items:
|
|
- enum:
|
|
- allwinner,sun8i-r40-spi
|
|
- allwinner,sun50i-h6-spi
|
|
- allwinner,sun50i-h616-spi
|
|
- allwinner,suniv-f1c100s-spi
|
|
- const: allwinner,sun8i-h3-spi
|
|
- items:
|
|
- enum:
|
|
- allwinner,sun20i-d1-spi
|
|
- allwinner,sun50i-r329-spi-dbi
|
|
- const: allwinner,sun50i-r329-spi
|
|
- items:
|
|
- const: allwinner,sun20i-d1-spi-dbi
|
|
- const: allwinner,sun50i-r329-spi-dbi
|
|
- const: allwinner,sun50i-r329-spi
|
|
- items:
|
|
- const: allwinner,sun55i-a523-spi-dbi
|
|
- const: allwinner,sun55i-a523-spi
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
items:
|
|
- description: Bus Clock
|
|
- description: Module Clock
|
|
|
|
clock-names:
|
|
items:
|
|
- const: ahb
|
|
- const: mod
|
|
|
|
resets:
|
|
maxItems: 1
|
|
|
|
dmas:
|
|
items:
|
|
- description: RX DMA Channel
|
|
- description: TX DMA Channel
|
|
|
|
dma-names:
|
|
items:
|
|
- const: rx
|
|
- const: tx
|
|
|
|
patternProperties:
|
|
"^.*@[0-9a-f]+":
|
|
type: object
|
|
additionalProperties: true
|
|
|
|
properties:
|
|
reg:
|
|
items:
|
|
minimum: 0
|
|
maximum: 4
|
|
|
|
spi-rx-bus-width:
|
|
items:
|
|
enum: [0, 1, 2, 4]
|
|
|
|
spi-tx-bus-width:
|
|
items:
|
|
enum: [0, 1, 2, 4]
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
- clocks
|
|
- clock-names
|
|
|
|
allOf:
|
|
- $ref: spi-controller.yaml
|
|
- if:
|
|
not:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- allwinner,sun50i-r329-spi
|
|
- allwinner,sun55i-a523-spi
|
|
then:
|
|
patternProperties:
|
|
"^.*@[0-9a-f]+":
|
|
properties:
|
|
spi-rx-bus-width:
|
|
items:
|
|
enum: [0, 1]
|
|
|
|
spi-tx-bus-width:
|
|
items:
|
|
enum: [0, 1]
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
spi1: spi@1c69000 {
|
|
compatible = "allwinner,sun6i-a31-spi";
|
|
reg = <0x01c69000 0x1000>;
|
|
interrupts = <0 66 4>;
|
|
clocks = <&ahb1_gates 21>, <&spi1_clk>;
|
|
clock-names = "ahb", "mod";
|
|
resets = <&ahb1_rst 21>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
|
|
- |
|
|
spi0: spi@1c68000 {
|
|
compatible = "allwinner,sun8i-h3-spi";
|
|
reg = <0x01c68000 0x1000>;
|
|
interrupts = <0 65 4>;
|
|
clocks = <&ccu 30>, <&ccu 82>;
|
|
clock-names = "ahb", "mod";
|
|
dmas = <&dma 23>, <&dma 23>;
|
|
dma-names = "rx", "tx";
|
|
resets = <&ccu 15>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
|
|
...
|