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,tegra210-dmic.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Tegra210 DMIC Controller Device Tree Bindings
8
9description: |
10  The Digital MIC (DMIC) Controller is used to interface with Pulse
11  Density Modulation (PDM) input devices. It converts PDM signals to
12  Pulse Coded Modulation (PCM) signals. DMIC can be viewed as a PDM
13  receiver.
14
15maintainers:
16  - Jon Hunter <jonathanh@nvidia.com>
17  - Sameer Pujar <spujar@nvidia.com>
18
19allOf:
20  - $ref: name-prefix.yaml#
21
22properties:
23  $nodename:
24    pattern: "^dmic@[0-9a-f]*$"
25
26  compatible:
27    oneOf:
28      - const: nvidia,tegra210-dmic
29      - items:
30          - enum:
31              - nvidia,tegra194-dmic
32              - nvidia,tegra186-dmic
33          - const: nvidia,tegra210-dmic
34
35  reg:
36    maxItems: 1
37
38  clocks:
39    maxItems: 1
40
41  clock-names:
42    const: dmic
43
44  assigned-clocks:
45    maxItems: 1
46
47  assigned-clock-parents:
48    maxItems: 1
49
50  assigned-clock-rates:
51    maxItems: 1
52
53  sound-name-prefix:
54    pattern: "^DMIC[1-9]$"
55
56  ports:
57    $ref: /schemas/graph.yaml#/properties/ports
58    properties:
59      port@0:
60        $ref: audio-graph-port.yaml#
61        unevaluatedProperties: false
62        description: |
63          DMIC ACIF (Audio Client Interface) port connected to the
64          corresponding AHUB (Audio Hub) ACIF port.
65
66      port@1:
67        $ref: audio-graph-port.yaml#
68        unevaluatedProperties: false
69        description: |
70          DMIC DAP (Digital Audio Port) interface which can be connected
71          to external audio codec for capture.
72
73required:
74  - compatible
75  - reg
76  - clocks
77  - clock-names
78  - assigned-clocks
79  - assigned-clock-parents
80
81additionalProperties: false
82
83examples:
84  - |
85    #include<dt-bindings/clock/tegra210-car.h>
86
87    dmic@702d4000 {
88        compatible = "nvidia,tegra210-dmic";
89        reg = <0x702d4000 0x100>;
90        clocks = <&tegra_car TEGRA210_CLK_DMIC1>;
91        clock-names = "dmic";
92        assigned-clocks = <&tegra_car TEGRA210_CLK_DMIC1>;
93        assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
94        assigned-clock-rates = <3072000>;
95        sound-name-prefix = "DMIC1";
96    };
97
98...
99