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,tegra186-dspk.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Tegra186 DSPK Controller
8
9description: |
10  The Digital Speaker Controller (DSPK) can be viewed as a Pulse
11  Density Modulation (PDM) transmitter that up-samples the input to
12  the desired sampling rate by interpolation and then converts the
13  over sampled Pulse Code Modulation (PCM) input to the desired 1-bit
14  output via Delta Sigma Modulation (DSM).
15
16maintainers:
17  - Jon Hunter <jonathanh@nvidia.com>
18  - Sameer Pujar <spujar@nvidia.com>
19
20allOf:
21  - $ref: name-prefix.yaml#
22
23properties:
24  $nodename:
25    pattern: "^dspk@[0-9a-f]*$"
26
27  compatible:
28    oneOf:
29      - const: nvidia,tegra186-dspk
30      - items:
31          - enum:
32              - nvidia,tegra234-dspk
33              - nvidia,tegra194-dspk
34          - const: nvidia,tegra186-dspk
35
36  reg:
37    maxItems: 1
38
39  clocks:
40    maxItems: 1
41
42  clock-names:
43    const: dspk
44
45  assigned-clocks:
46    maxItems: 1
47
48  assigned-clock-parents:
49    maxItems: 1
50
51  assigned-clock-rates:
52    maxItems: 1
53
54  sound-name-prefix:
55    pattern: "^DSPK[1-9]$"
56
57  ports:
58    $ref: /schemas/graph.yaml#/properties/ports
59    properties:
60      port@0:
61        $ref: audio-graph-port.yaml#
62        unevaluatedProperties: false
63        description: |
64          DSPK ACIF (Audio Client Interface) port connected to the
65          corresponding AHUB (Audio Hub) ACIF port.
66
67      port@1:
68        $ref: audio-graph-port.yaml#
69        unevaluatedProperties: false
70        description: |
71          DSPK DAP (Digital Audio Port) interface which can be connected
72          to external audio codec for playback.
73
74required:
75  - compatible
76  - reg
77  - clocks
78  - clock-names
79  - assigned-clocks
80  - assigned-clock-parents
81  - sound-name-prefix
82
83additionalProperties: false
84
85examples:
86  - |
87    #include<dt-bindings/clock/tegra186-clock.h>
88
89    dspk@2905000 {
90        compatible = "nvidia,tegra186-dspk";
91        reg = <0x2905000 0x100>;
92        clocks = <&bpmp TEGRA186_CLK_DSPK1>;
93        clock-names = "dspk";
94        assigned-clocks = <&bpmp TEGRA186_CLK_DSPK1>;
95        assigned-clock-parents = <&bpmp TEGRA186_CLK_PLL_A_OUT0>;
96        assigned-clock-rates = <12288000>;
97        sound-name-prefix = "DSPK1";
98    };
99
100...
101