mirror of
https://github.com/torvalds/linux.git
synced 2026-05-05 15:02:40 -04:00
As far as the author can tell, based on their respective manuals, the I2S interface controllers found in the Allwinner A523 SoC is the same as ones in the R329 SoC. Add a SoC-specific compatible for it, with a fallback to the R329's compatible. Acked-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Chen-Yu Tsai <wens@kernel.org> Link: https://patch.msgid.link/20251027125655.793277-3-wens@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
150 lines
3.4 KiB
YAML
150 lines
3.4 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-i2s.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Allwinner A10 I2S Controller
|
|
|
|
maintainers:
|
|
- Chen-Yu Tsai <wens@csie.org>
|
|
- Maxime Ripard <mripard@kernel.org>
|
|
|
|
properties:
|
|
"#sound-dai-cells":
|
|
const: 0
|
|
|
|
compatible:
|
|
oneOf:
|
|
- const: allwinner,sun4i-a10-i2s
|
|
- const: allwinner,sun6i-a31-i2s
|
|
- const: allwinner,sun8i-a83t-i2s
|
|
- const: allwinner,sun8i-h3-i2s
|
|
- items:
|
|
- const: allwinner,sun8i-r40-i2s
|
|
- const: allwinner,sun8i-h3-i2s
|
|
- items:
|
|
- const: allwinner,sun8i-v3-i2s
|
|
- const: allwinner,sun8i-h3-i2s
|
|
- const: allwinner,sun50i-a64-codec-i2s
|
|
- items:
|
|
- const: allwinner,sun50i-a64-i2s
|
|
- const: allwinner,sun8i-h3-i2s
|
|
- const: allwinner,sun50i-h6-i2s
|
|
- const: allwinner,sun50i-r329-i2s
|
|
- items:
|
|
- enum:
|
|
- allwinner,sun20i-d1-i2s
|
|
- allwinner,sun55i-a523-i2s
|
|
- const: allwinner,sun50i-r329-i2s
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
items:
|
|
- description: Bus Clock
|
|
- description: Module Clock
|
|
|
|
clock-names:
|
|
items:
|
|
- const: apb
|
|
- const: mod
|
|
|
|
# Even though it only applies to subschemas under the conditionals,
|
|
# not listing them here will trigger a warning because of the
|
|
# additionalsProperties set to false.
|
|
dmas: true
|
|
dma-names: true
|
|
resets:
|
|
maxItems: 1
|
|
|
|
allOf:
|
|
- $ref: dai-common.yaml#
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- allwinner,sun6i-a31-i2s
|
|
- allwinner,sun8i-a83t-i2s
|
|
- allwinner,sun8i-h3-i2s
|
|
- allwinner,sun50i-a64-codec-i2s
|
|
- allwinner,sun50i-h6-i2s
|
|
- allwinner,sun50i-r329-i2s
|
|
|
|
then:
|
|
required:
|
|
- resets
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- allwinner,sun8i-a83t-i2s
|
|
- allwinner,sun8i-h3-i2s
|
|
|
|
then:
|
|
properties:
|
|
dmas:
|
|
minItems: 1
|
|
items:
|
|
- description: RX DMA Channel
|
|
- description: TX DMA Channel
|
|
description:
|
|
Some controllers cannot receive but can only transmit
|
|
data. In such a case, the RX DMA channel is to be omitted.
|
|
|
|
dma-names:
|
|
oneOf:
|
|
- items:
|
|
- const: rx
|
|
- const: tx
|
|
- const: tx
|
|
description:
|
|
Some controllers cannot receive but can only transmit
|
|
data. In such a case, the RX name is to be omitted.
|
|
|
|
else:
|
|
properties:
|
|
dmas:
|
|
items:
|
|
- description: RX DMA Channel
|
|
- description: TX DMA Channel
|
|
|
|
dma-names:
|
|
items:
|
|
- const: rx
|
|
- const: tx
|
|
|
|
required:
|
|
- "#sound-dai-cells"
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
- clocks
|
|
- clock-names
|
|
- dmas
|
|
- dma-names
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
i2s0: i2s@1c22400 {
|
|
#sound-dai-cells = <0>;
|
|
compatible = "allwinner,sun4i-a10-i2s";
|
|
reg = <0x01c22400 0x400>;
|
|
interrupts = <0 16 4>;
|
|
clocks = <&apb0_gates 3>, <&i2s0_clk>;
|
|
clock-names = "apb", "mod";
|
|
dmas = <&dma 0 3>, <&dma 0 3>;
|
|
dma-names = "rx", "tx";
|
|
};
|
|
|
|
...
|