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
7title: Audio codec controlled by ChromeOS EC
8
9maintainers:
10  - Cheng-Yi Chiang <cychiang@chromium.org>
11  - Tzung-Bi Shih <tzungbi@kernel.org>
12
13description: |
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
20properties:
21  compatible:
22    const: google,cros-ec-codec
23
24  "#sound-dai-cells":
25    const: 1
26
27  reg:
28    items:
29      - description: |
30          Physical base address and length of shared memory region from EC.
31          It contains 3 unsigned 32-bit integer. The first 2 integers
32          combine to become an unsigned 64-bit physical address.
33          The last one integer is the length of the shared memory.
34
35  memory-region:
36    maxItems: 1
37    description: |
38      Shared memory region to EC.  A "shared-dma-pool".
39      See ../reserved-memory/reserved-memory.txt for details.
40
41required:
42  - compatible
43  - '#sound-dai-cells'
44
45additionalProperties: false
46
47examples:
48  - |
49    reserved_mem: reserved-mem@52800000 {
50        compatible = "shared-dma-pool";
51        reg = <0x52800000 0x100000>;
52        no-map;
53    };
54    spi {
55        #address-cells = <1>;
56        #size-cells = <0>;
57        cros-ec@0 {
58            compatible = "google,cros-ec-spi";
59            reg = <0>;
60            interrupts = <93 0>;
61
62            codecs {
63                #address-cells = <2>;
64                #size-cells = <1>;
65
66                cros_ec_codec: ec-codec@10500000 {
67                    compatible = "google,cros-ec-codec";
68                    #sound-dai-cells = <1>;
69                    reg = <0x0 0x10500000 0x80000>;
70                    memory-region = <&reserved_mem>;
71                };
72
73            };
74        };
75    };
76