268 lines
5.4 KiB
YAML
268 lines
5.4 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
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
items:
|
|
- description: Bus Clock
|
|
- description: Module Clock
|
|
|
|
clock-names:
|
|
items:
|
|
- const: apb
|
|
- const: codec
|
|
|
|
dmas:
|
|
items:
|
|
- description: RX DMA Channel
|
|
- description: TX DMA Channel
|
|
|
|
dma-names:
|
|
items:
|
|
- const: rx
|
|
- 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:
|
|
- 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
|
|
|
|
additionalProperties: 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";
|
|
};
|
|
|
|
...
|