0bc1bf241d
Like A83T the Allwinner H3 doesn't have the DMA reception available for some audio interfaces. As it's already documented for A83T convert this to an enum and add the H3 interface. Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Clément Péron <peron.clem@gmail.com> Link: https://lore.kernel.org/r/20201030144648.397824-15-peron.clem@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
137 lines
3.0 KiB
YAML
137 lines
3.0 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 Device Tree Bindings
|
|
|
|
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
|
|
- const: allwinner,sun50i-a64-codec-i2s
|
|
- items:
|
|
- const: allwinner,sun50i-a64-i2s
|
|
- const: allwinner,sun8i-h3-i2s
|
|
- const: allwinner,sun50i-h6-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:
|
|
- 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
|
|
|
|
then:
|
|
required:
|
|
- resets
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- allwinner,sun8i-a83t-i2s
|
|
- allwinner,sun8i-h3-i2s
|
|
|
|
then:
|
|
properties:
|
|
dmas:
|
|
minItems: 1
|
|
maxItems: 2
|
|
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
|
|
|
|
additionalProperties: 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";
|
|
};
|
|
|
|
...
|