xref: /linux/Documentation/devicetree/bindings/sound/nvidia,tegra210-dmic.yaml (revision e7e86d7697c6ed1dbbde18d7185c35b6967945ed)
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
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: dai-common.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,tegra264-dmic
32              - nvidia,tegra234-dmic
33              - nvidia,tegra194-dmic
34              - nvidia,tegra186-dmic
35          - const: nvidia,tegra210-dmic
36
37  reg:
38    maxItems: 1
39
40  clocks:
41    maxItems: 1
42
43  clock-names:
44    const: dmic
45
46  assigned-clocks:
47    maxItems: 1
48
49  assigned-clock-parents:
50    maxItems: 1
51
52  assigned-clock-rates:
53    maxItems: 1
54
55  sound-name-prefix:
56    pattern: "^DMIC[1-9]$"
57
58  ports:
59    $ref: /schemas/graph.yaml#/properties/ports
60    properties:
61      port@0:
62        $ref: audio-graph-port.yaml#
63        unevaluatedProperties: false
64        description: |
65          DMIC ACIF (Audio Client Interface) port connected to the
66          corresponding AHUB (Audio Hub) ACIF port.
67
68      port@1:
69        $ref: audio-graph-port.yaml#
70        unevaluatedProperties: false
71        description: |
72          DMIC DAP (Digital Audio Port) interface which can be connected
73          to external audio codec for capture.
74
75required:
76  - compatible
77  - reg
78  - clocks
79  - clock-names
80  - assigned-clocks
81  - assigned-clock-parents
82
83additionalProperties: false
84
85examples:
86  - |
87    #include<dt-bindings/clock/tegra210-car.h>
88
89    dmic@702d4000 {
90        compatible = "nvidia,tegra210-dmic";
91        reg = <0x702d4000 0x100>;
92        clocks = <&tegra_car TEGRA210_CLK_DMIC1>;
93        clock-names = "dmic";
94        assigned-clocks = <&tegra_car TEGRA210_CLK_DMIC1>;
95        assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
96        assigned-clock-rates = <3072000>;
97        sound-name-prefix = "DMIC1";
98    };
99
100...
101