mirror of
https://github.com/torvalds/linux.git
synced 2026-04-29 20:12:38 -04:00
The SPDIF hardware block in the A523 SoC has the same layout as the H616 for the transmitter side. However unlike previous generations, the hardware block now takes separate module clocks for the TX and RX sides. This presumably allows the hardware to send and receive audio streams at different sample rates. The new hardware also gained RX insertion detection, and some extra information registers. Add a new compatible for it without any fallbacks. Acked-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Chen-Yu Tsai <wens@kernel.org> Link: https://patch.msgid.link/20251027125655.793277-4-wens@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
159 lines
3.3 KiB
YAML
159 lines
3.3 KiB
YAML
# SPDX-License-Identifier: GPL-2.0
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-spdif.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Allwinner A10 S/PDIF Controller
|
|
|
|
maintainers:
|
|
- Chen-Yu Tsai <wens@csie.org>
|
|
- Liam Girdwood <lgirdwood@gmail.com>
|
|
- Mark Brown <broonie@kernel.org>
|
|
- Maxime Ripard <mripard@kernel.org>
|
|
|
|
properties:
|
|
"#sound-dai-cells":
|
|
const: 0
|
|
|
|
compatible:
|
|
oneOf:
|
|
- const: allwinner,sun4i-a10-spdif
|
|
- const: allwinner,sun6i-a31-spdif
|
|
- const: allwinner,sun8i-h3-spdif
|
|
- const: allwinner,sun50i-h6-spdif
|
|
- const: allwinner,sun50i-h616-spdif
|
|
- const: allwinner,sun55i-a523-spdif
|
|
- items:
|
|
- const: allwinner,sun8i-a83t-spdif
|
|
- const: allwinner,sun8i-h3-spdif
|
|
- items:
|
|
- const: allwinner,sun50i-a64-spdif
|
|
- const: allwinner,sun8i-h3-spdif
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
minItems: 2
|
|
maxItems: 3
|
|
|
|
clock-names:
|
|
minItems: 2
|
|
maxItems: 3
|
|
|
|
# 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-spdif
|
|
- allwinner,sun8i-h3-spdif
|
|
- allwinner,sun50i-h6-spdif
|
|
- allwinner,sun50i-h616-spdif
|
|
- allwinner,sun55i-a523-spdif
|
|
|
|
then:
|
|
required:
|
|
- resets
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- allwinner,sun8i-h3-spdif
|
|
- allwinner,sun50i-h616-spdif
|
|
|
|
then:
|
|
properties:
|
|
dmas:
|
|
description: TX DMA Channel
|
|
|
|
dma-names:
|
|
const: tx
|
|
|
|
else:
|
|
properties:
|
|
dmas:
|
|
items:
|
|
- description: RX DMA Channel
|
|
- description: TX DMA Channel
|
|
|
|
dma-names:
|
|
items:
|
|
- const: rx
|
|
- const: tx
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- allwinner,sun55i-a523-spdif
|
|
|
|
then:
|
|
properties:
|
|
clocks:
|
|
items:
|
|
- description: Bus Clock
|
|
- description: TX Clock
|
|
- description: RX Clock
|
|
|
|
clock-names:
|
|
items:
|
|
- const: apb
|
|
- const: tx
|
|
- const: rx
|
|
else:
|
|
properties:
|
|
clocks:
|
|
items:
|
|
- description: Bus Clock
|
|
- description: Module Clock
|
|
|
|
clock-names:
|
|
items:
|
|
- const: apb
|
|
- const: spdif
|
|
|
|
required:
|
|
- "#sound-dai-cells"
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
- clocks
|
|
- clock-names
|
|
- dmas
|
|
- dma-names
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
spdif: spdif@1c21000 {
|
|
#sound-dai-cells = <0>;
|
|
compatible = "allwinner,sun4i-a10-spdif";
|
|
reg = <0x01c21000 0x40>;
|
|
interrupts = <13>;
|
|
clocks = <&apb0_gates 1>, <&spdif_clk>;
|
|
clock-names = "apb", "spdif";
|
|
dmas = <&dma 0 2>, <&dma 0 2>;
|
|
dma-names = "rx", "tx";
|
|
};
|
|
|
|
...
|