mirror of
https://github.com/torvalds/linux.git
synced 2024-12-03 17:41:22 +00:00
542e19c205
The H616 has an audio codec compatible with the sun4i-a10 driver. The codec is relatively cut down compared to some of the other Allwinner SoCs and only has a single line-out route (relying on a separate digital microphone IP block for input). HDMI and SPDIF audio are handled separately by an audio hub IP block, which is not currently implemented in mainline kernels. This requires some additional flexibility in the DMA bindings. Add compatible string and routing for the H616 audio codec, and update the required DMA descriptions. Signed-off-by: Ryan Walklin <ryan@testtoast.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://patch.msgid.link/20241023075917.186835-3-ryan@testtoast.com Signed-off-by: Mark Brown <broonie@kernel.org>
310 lines
6.2 KiB
YAML
310 lines
6.2 KiB
YAML
# SPDX-License-Identifier: GPL-2.0
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-codec.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Allwinner A10 Codec
|
|
|
|
maintainers:
|
|
- Chen-Yu Tsai <wens@csie.org>
|
|
- Maxime Ripard <mripard@kernel.org>
|
|
|
|
properties:
|
|
"#sound-dai-cells":
|
|
const: 0
|
|
|
|
compatible:
|
|
enum:
|
|
- allwinner,sun4i-a10-codec
|
|
- allwinner,sun6i-a31-codec
|
|
- allwinner,sun7i-a20-codec
|
|
- allwinner,sun8i-a23-codec
|
|
- allwinner,sun8i-h3-codec
|
|
- allwinner,sun8i-v3s-codec
|
|
- allwinner,sun50i-h616-codec
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
items:
|
|
- description: Bus Clock
|
|
- description: Module Clock
|
|
|
|
clock-names:
|
|
items:
|
|
- const: apb
|
|
- const: codec
|
|
|
|
dmas:
|
|
oneOf:
|
|
- items:
|
|
- description: RX DMA Channel
|
|
- description: TX DMA Channel
|
|
- items:
|
|
- description: TX DMA Channel
|
|
|
|
dma-names:
|
|
oneOf:
|
|
- items:
|
|
- const: rx
|
|
- const: tx
|
|
- items:
|
|
- const: tx
|
|
|
|
resets:
|
|
maxItems: 1
|
|
|
|
allwinner,audio-routing:
|
|
description: |-
|
|
A list of the connections between audio components. Each entry
|
|
is a pair of strings, the first being the connection's sink, the
|
|
second being the connection's source.
|
|
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
|
|
minItems: 2
|
|
maxItems: 18
|
|
items:
|
|
enum:
|
|
# Audio Pins on the SoC
|
|
- HP
|
|
- HPCOM
|
|
- LINEIN
|
|
- LINEOUT
|
|
- MIC1
|
|
- MIC2
|
|
- MIC3
|
|
|
|
# Microphone Biases from the SoC
|
|
- HBIAS
|
|
- MBIAS
|
|
|
|
# Board Connectors
|
|
- Headphone
|
|
- Headset Mic
|
|
- Line In
|
|
- Line Out
|
|
- Mic
|
|
- Speaker
|
|
|
|
allwinner,codec-analog-controls:
|
|
$ref: /schemas/types.yaml#/definitions/phandle
|
|
description: Phandle to the codec analog controls in the PRCM
|
|
|
|
allwinner,pa-gpios:
|
|
maxItems: 1
|
|
description: GPIO to enable the external amplifier
|
|
|
|
required:
|
|
- "#sound-dai-cells"
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
- clocks
|
|
- clock-names
|
|
- dmas
|
|
- dma-names
|
|
|
|
allOf:
|
|
- $ref: dai-common.yaml#
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- allwinner,sun6i-a31-codec
|
|
- allwinner,sun8i-a23-codec
|
|
- allwinner,sun8i-h3-codec
|
|
- allwinner,sun8i-v3s-codec
|
|
|
|
then:
|
|
if:
|
|
properties:
|
|
compatible:
|
|
const: allwinner,sun6i-a31-codec
|
|
|
|
then:
|
|
required:
|
|
- resets
|
|
- allwinner,audio-routing
|
|
|
|
else:
|
|
required:
|
|
- resets
|
|
- allwinner,audio-routing
|
|
- allwinner,codec-analog-controls
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- allwinner,sun6i-a31-codec
|
|
|
|
then:
|
|
properties:
|
|
allwinner,audio-routing:
|
|
items:
|
|
enum:
|
|
- HP
|
|
- HPCOM
|
|
- LINEIN
|
|
- LINEOUT
|
|
- MIC1
|
|
- MIC2
|
|
- MIC3
|
|
- HBIAS
|
|
- MBIAS
|
|
- Headphone
|
|
- Headset Mic
|
|
- Line In
|
|
- Line Out
|
|
- Mic
|
|
- Speaker
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- allwinner,sun8i-a23-codec
|
|
|
|
then:
|
|
properties:
|
|
allwinner,audio-routing:
|
|
items:
|
|
enum:
|
|
- HP
|
|
- HPCOM
|
|
- LINEIN
|
|
- MIC1
|
|
- MIC2
|
|
- HBIAS
|
|
- MBIAS
|
|
- Headphone
|
|
- Headset Mic
|
|
- Line In
|
|
- Line Out
|
|
- Mic
|
|
- Speaker
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- allwinner,sun8i-h3-codec
|
|
|
|
then:
|
|
properties:
|
|
allwinner,audio-routing:
|
|
items:
|
|
enum:
|
|
- HP
|
|
- HPCOM
|
|
- LINEIN
|
|
- LINEOUT
|
|
- MIC1
|
|
- MIC2
|
|
- HBIAS
|
|
- MBIAS
|
|
- Headphone
|
|
- Headset Mic
|
|
- Line In
|
|
- Line Out
|
|
- Mic
|
|
- Speaker
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- allwinner,sun8i-v3s-codec
|
|
|
|
then:
|
|
properties:
|
|
allwinner,audio-routing:
|
|
items:
|
|
enum:
|
|
- HP
|
|
- HPCOM
|
|
- MIC1
|
|
- HBIAS
|
|
- Headphone
|
|
- Headset Mic
|
|
- Line In
|
|
- Line Out
|
|
- Mic
|
|
- Speaker
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- allwinner,sun50i-h616-codec
|
|
|
|
then:
|
|
properties:
|
|
allwinner,audio-routing:
|
|
items:
|
|
enum:
|
|
- LINEOUT
|
|
- Line Out
|
|
|
|
dmas:
|
|
items:
|
|
- description: TX DMA Channel
|
|
|
|
dma-names:
|
|
items:
|
|
- const: tx
|
|
|
|
else:
|
|
properties:
|
|
dmas:
|
|
items:
|
|
- description: RX DMA Channel
|
|
- description: TX DMA Channel
|
|
|
|
dma-names:
|
|
items:
|
|
- const: rx
|
|
- const: tx
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
codec@1c22c00 {
|
|
#sound-dai-cells = <0>;
|
|
compatible = "allwinner,sun7i-a20-codec";
|
|
reg = <0x01c22c00 0x40>;
|
|
interrupts = <0 30 4>;
|
|
clocks = <&apb0_gates 0>, <&codec_clk>;
|
|
clock-names = "apb", "codec";
|
|
dmas = <&dma 0 19>, <&dma 0 19>;
|
|
dma-names = "rx", "tx";
|
|
};
|
|
|
|
- |
|
|
codec@1c22c00 {
|
|
#sound-dai-cells = <0>;
|
|
compatible = "allwinner,sun6i-a31-codec";
|
|
reg = <0x01c22c00 0x98>;
|
|
interrupts = <0 29 4>;
|
|
clocks = <&ccu 61>, <&ccu 135>;
|
|
clock-names = "apb", "codec";
|
|
resets = <&ccu 42>;
|
|
dmas = <&dma 15>, <&dma 15>;
|
|
dma-names = "rx", "tx";
|
|
allwinner,audio-routing =
|
|
"Headphone", "HP",
|
|
"Speaker", "LINEOUT",
|
|
"LINEIN", "Line In",
|
|
"MIC1", "MBIAS",
|
|
"MIC1", "Mic",
|
|
"MIC2", "HBIAS",
|
|
"MIC2", "Headset Mic";
|
|
};
|
|
|
|
...
|