]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - Bindings/sound/rockchip,pdm.yaml
Import device-tree files from Linux 6.2
[FreeBSD/FreeBSD.git] / Bindings / sound / rockchip,pdm.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/sound/rockchip,pdm.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Rockchip PDM controller
8
9 description:
10   The Pulse Density Modulation Interface Controller (PDMC) is
11   a PDM interface controller and decoder that support PDM format.
12   It integrates a clock generator driving the PDM microphone
13   and embeds filters which decimate the incoming bit stream to
14   obtain most common audio rates.
15
16 maintainers:
17   - Heiko Stuebner <heiko@sntech.de>
18
19 allOf:
20   - $ref: dai-common.yaml#
21
22 properties:
23   compatible:
24     enum:
25       - rockchip,pdm
26       - rockchip,px30-pdm
27       - rockchip,rk1808-pdm
28       - rockchip,rk3308-pdm
29       - rockchip,rk3568-pdm
30       - rockchip,rv1126-pdm
31
32   reg:
33     maxItems: 1
34
35   interrupts:
36     maxItems: 1
37
38   clocks:
39     items:
40       - description: clock for PDM controller
41       - description: clock for PDM BUS
42
43   clock-names:
44     items:
45       - const: pdm_clk
46       - const: pdm_hclk
47
48   dmas:
49     maxItems: 1
50
51   dma-names:
52     items:
53       - const: rx
54
55   power-domains:
56     maxItems: 1
57
58   resets:
59     items:
60       - description: reset for PDM controller
61
62   reset-names:
63     items:
64       - const: pdm-m
65
66   rockchip,path-map:
67     $ref: /schemas/types.yaml#/definitions/uint32-array
68     description:
69       Defines the mapping of PDM SDIx to PDM PATHx.
70       By default, they are mapped one-to-one.
71     maxItems: 4
72     uniqueItems: true
73     items:
74       enum: [ 0, 1, 2, 3 ]
75
76   "#sound-dai-cells":
77     const: 0
78
79 required:
80   - compatible
81   - reg
82   - interrupts
83   - clocks
84   - clock-names
85   - dmas
86   - dma-names
87   - "#sound-dai-cells"
88
89 unevaluatedProperties: false
90
91 examples:
92   - |
93     #include <dt-bindings/clock/rk3328-cru.h>
94     #include <dt-bindings/interrupt-controller/arm-gic.h>
95     #include <dt-bindings/interrupt-controller/irq.h>
96     #include <dt-bindings/pinctrl/rockchip.h>
97
98     bus {
99         #address-cells = <2>;
100         #size-cells = <2>;
101
102         pdm@ff040000 {
103             compatible = "rockchip,pdm";
104             reg = <0x0 0xff040000 0x0 0x1000>;
105             interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
106             clocks = <&cru SCLK_PDM>, <&cru HCLK_PDM>;
107             clock-names = "pdm_clk", "pdm_hclk";
108             dmas = <&dmac 16>;
109             dma-names = "rx";
110             #sound-dai-cells = <0>;
111             pinctrl-names = "default", "sleep";
112             pinctrl-0 = <&pdmm0_clk
113                          &pdmm0_sdi0
114                          &pdmm0_sdi1
115                          &pdmm0_sdi2
116                          &pdmm0_sdi3>;
117             pinctrl-1 = <&pdmm0_clk_sleep
118                          &pdmm0_sdi0_sleep
119                          &pdmm0_sdi1_sleep
120                          &pdmm0_sdi2_sleep
121                          &pdmm0_sdi3_sleep>;
122         };
123     };