# 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 Device Tree Bindings maintainers: - Chen-Yu Tsai - Maxime Ripard 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. allOf: - $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: 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"; }; ...