Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / sound / google,cros-ec-codec.yaml
1 # SPDX-License-Identifier: GPL-2.0-only
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/sound/google,cros-ec-codec.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Audio codec controlled by ChromeOS EC
8
9 maintainers:
10   - Cheng-Yi Chiang <cychiang@chromium.org>
11   - Tzung-Bi Shih <tzungbi@kernel.org>
12
13 description: |
14   Google's ChromeOS EC codec is a digital mic codec provided by the
15   Embedded Controller (EC) and is controlled via a host-command
16   interface.  An EC codec node should only be found inside the "codecs"
17   subnode of a cros-ec node.
18   (see Documentation/devicetree/bindings/mfd/google,cros-ec.yaml).
19
20 allOf:
21   - $ref: dai-common.yaml#
22
23 properties:
24   compatible:
25     const: google,cros-ec-codec
26
27   "#sound-dai-cells":
28     const: 1
29
30   reg:
31     items:
32       - description: |
33           Physical base address and length of shared memory region from EC.
34           It contains 3 unsigned 32-bit integer. The first 2 integers
35           combine to become an unsigned 64-bit physical address.
36           The last one integer is the length of the shared memory.
37
38   memory-region:
39     maxItems: 1
40     description: |
41       Shared memory region to EC.  A "shared-dma-pool".
42       See ../reserved-memory/reserved-memory.txt for details.
43
44 required:
45   - compatible
46   - '#sound-dai-cells'
47
48 unevaluatedProperties: false
49
50 examples:
51   - |
52     reserved_mem: reserved-mem@52800000 {
53         compatible = "shared-dma-pool";
54         reg = <0x52800000 0x100000>;
55         no-map;
56     };
57     spi {
58         #address-cells = <1>;
59         #size-cells = <0>;
60         cros-ec@0 {
61             compatible = "google,cros-ec-spi";
62             reg = <0>;
63             interrupts = <93 0>;
64
65             codecs {
66                 #address-cells = <2>;
67                 #size-cells = <1>;
68
69                 cros_ec_codec: ec-codec@10500000 {
70                     compatible = "google,cros-ec-codec";
71                     #sound-dai-cells = <1>;
72                     reg = <0x0 0x10500000 0x80000>;
73                     memory-region = <&reserved_mem>;
74                 };
75
76             };
77         };
78     };