4a15b24a65
The codec on the H3 is similar to the one found on the A31. One key difference is the analog path controls are routed through the PRCM block. This is supported by the sun8i-codec-analog driver, and tied into this codec driver with the audio card's aux_dev. In addition, the H3 has no HP (headphone) and HBIAS support, and no MIC3 input. The FIFO related registers are slightly rearranged. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Acked-by: Rob Herring <robh@kernel.org> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Mark Brown <broonie@kernel.org>
92 lines
2.6 KiB
Plaintext
92 lines
2.6 KiB
Plaintext
* Allwinner A10 Codec
|
|
|
|
Required properties:
|
|
- compatible: must be one of the following compatibles:
|
|
- "allwinner,sun4i-a10-codec"
|
|
- "allwinner,sun6i-a31-codec"
|
|
- "allwinner,sun7i-a20-codec"
|
|
- "allwinner,sun8i-a23-codec"
|
|
- "allwinner,sun8i-h3-codec"
|
|
- reg: must contain the registers location and length
|
|
- interrupts: must contain the codec interrupt
|
|
- dmas: DMA channels for tx and rx dma. See the DMA client binding,
|
|
Documentation/devicetree/bindings/dma/dma.txt
|
|
- dma-names: should include "tx" and "rx".
|
|
- clocks: a list of phandle + clock-specifer pairs, one for each entry
|
|
in clock-names.
|
|
- clock-names: should contain followings:
|
|
- "apb": the parent APB clock for this controller
|
|
- "codec": the parent module clock
|
|
|
|
Optional properties:
|
|
- allwinner,pa-gpios: gpio to enable external amplifier
|
|
|
|
Required properties for the following compatibles:
|
|
- "allwinner,sun6i-a31-codec"
|
|
- "allwinner,sun8i-a23-codec"
|
|
- "allwinner,sun8i-h3-codec"
|
|
- resets: phandle to the reset control for this device
|
|
- allwinner,audio-routing: 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. Valid names include:
|
|
|
|
Audio pins on the SoC:
|
|
"HP"
|
|
"HPCOM"
|
|
"LINEIN"
|
|
"LINEOUT" (not on sun8i-a23)
|
|
"MIC1"
|
|
"MIC2"
|
|
"MIC3" (sun6i-a31 only)
|
|
|
|
Microphone biases from the SoC:
|
|
"HBIAS"
|
|
"MBIAS"
|
|
|
|
Board connectors:
|
|
"Headphone"
|
|
"Headset Mic"
|
|
"Line In"
|
|
"Line Out"
|
|
"Mic"
|
|
"Speaker"
|
|
|
|
Required properties for the following compatibles:
|
|
- "allwinner,sun8i-a23-codec"
|
|
- "allwinner,sun8i-h3-codec"
|
|
- allwinner,codec-analog-controls: A phandle to the codec analog controls
|
|
block in the PRCM.
|
|
|
|
Example:
|
|
codec: codec@01c22c00 {
|
|
#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: codec@01c22c00 {
|
|
#sound-dai-cells = <0>;
|
|
compatible = "allwinner,sun6i-a31-codec";
|
|
reg = <0x01c22c00 0x98>;
|
|
interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
|
|
clocks = <&ccu CLK_APB1_CODEC>, <&ccu CLK_CODEC>;
|
|
clock-names = "apb", "codec";
|
|
resets = <&ccu RST_APB1_CODEC>;
|
|
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";
|
|
};
|