summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/sound/nvidia,tegra210-dmic.yaml
blob: 89f4f471be24f58b48e148d5124ae354501eccba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/nvidia,tegra210-dmic.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Tegra210 DMIC Controller Device Tree Bindings

description: |
  The Digital MIC (DMIC) Controller is used to interface with Pulse
  Density Modulation (PDM) input devices. It converts PDM signals to
  Pulse Coded Modulation (PCM) signals. DMIC can be viewed as a PDM
  receiver.

maintainers:
  - Jon Hunter <jonathanh@nvidia.com>
  - Sameer Pujar <spujar@nvidia.com>

allOf:
  - $ref: audio-graph-port.yaml#

properties:
  $nodename:
    pattern: "^dmic@[0-9a-f]*$"

  compatible:
    oneOf:
      - const: nvidia,tegra210-dmic
      - items:
          - enum:
              - nvidia,tegra194-dmic
              - nvidia,tegra186-dmic
          - const: nvidia,tegra210-dmic

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    const: dmic

  assigned-clocks:
    maxItems: 1

  assigned-clock-parents:
    maxItems: 1

  assigned-clock-rates:
    maxItems: 1

  sound-name-prefix:
    pattern: "^DMIC[1-9]$"
    $ref: /schemas/types.yaml#/definitions/string
    description:
      used as prefix for sink/source names of the component. Must be a
      unique string among multiple instances of the same component.
      The name can be "DMIC1" or "DMIC2" ... "DMICx", where x depends
      on the maximum available instances on a Tegra SoC.

  ports:
    type: object
    properties:
      port@0:
        description: |
          DMIC ACIF (Audio Client Interface) port connected to the
          corresponding AHUB (Audio Hub) ACIF port.

      port@1:
        description: |
          DMIC DAP (Digital Audio Port) interface which can be connected
          to external audio codec for capture.

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - assigned-clocks
  - assigned-clock-parents

unevaluatedProperties: false

examples:
  - |
    #include<dt-bindings/clock/tegra210-car.h>

    dmic@702d4000 {
        compatible = "nvidia,tegra210-dmic";
        reg = <0x702d4000 0x100>;
        clocks = <&tegra_car TEGRA210_CLK_DMIC1>;
        clock-names = "dmic";
        assigned-clocks = <&tegra_car TEGRA210_CLK_DMIC1>;
        assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
        assigned-clock-rates = <3072000>;
        sound-name-prefix = "DMIC1";
    };

...