1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/nvidia,tegra-audio-wm8903.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NVIDIA Tegra audio complex with WM8903 CODEC
8
9maintainers:
10  - Jon Hunter <jonathanh@nvidia.com>
11  - Thierry Reding <thierry.reding@gmail.com>
12
13allOf:
14  - $ref: nvidia,tegra-audio-common.yaml#
15
16properties:
17  compatible:
18    oneOf:
19      - items:
20          - pattern: '^[a-z0-9]+,tegra-audio-wm8903(-[a-z0-9]+)+$'
21          - const: nvidia,tegra-audio-wm8903
22      - items:
23          - pattern: ad,tegra-audio-plutux
24          - const: nvidia,tegra-audio-wm8903
25
26  nvidia,audio-routing:
27    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
28    description: |
29      A list of the connections between audio components.
30      Each entry is a pair of strings, the first being the connection's sink,
31      the second being the connection's source. Valid names for sources and
32      sinks are the pins (documented in the binding document),
33      and the jacks on the board.
34    minItems: 2
35    items:
36      enum:
37        # Board Connectors
38        - "Headphone Jack"
39        - "Int Spk"
40        - "Mic Jack"
41        - "Int Mic"
42
43        # CODEC Pins
44        - IN1L
45        - IN1R
46        - IN2L
47        - IN2R
48        - IN3L
49        - IN3R
50        - DMICDAT
51        - HPOUTL
52        - HPOUTR
53        - LINEOUTL
54        - LINEOUTR
55        - LOP
56        - LON
57        - ROP
58        - RON
59        - MICBIAS
60
61required:
62  - nvidia,i2s-controller
63
64unevaluatedProperties: false
65
66examples:
67  - |
68    sound {
69        compatible = "nvidia,tegra-audio-wm8903-harmony",
70                     "nvidia,tegra-audio-wm8903";
71        nvidia,model = "tegra-wm8903-harmony";
72
73        nvidia,audio-routing =
74                "Headphone Jack", "HPOUTR",
75                "Headphone Jack", "HPOUTL",
76                "Int Spk", "ROP",
77                "Int Spk", "RON",
78                "Int Spk", "LOP",
79                "Int Spk", "LON",
80                "Mic Jack", "MICBIAS",
81                "IN1L", "Mic Jack";
82
83        nvidia,i2s-controller = <&i2s1>;
84        nvidia,audio-codec = <&wm8903>;
85
86        nvidia,spkr-en-gpios = <&codec 2 0>;
87        nvidia,hp-det-gpios = <&gpio 178 0>;
88        nvidia,int-mic-en-gpios = <&gpio 184 0>;
89        nvidia,ext-mic-en-gpios = <&gpio 185 0>;
90
91        clocks = <&clk 112>, <&clk 113>, <&clk 93>;
92        clock-names = "pll_a", "pll_a_out0", "mclk";
93    };
94