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
12description: |
13  Google's ChromeOS EC codec is a digital mic codec provided by the
14  Embedded Controller (EC) and is controlled via a host-command
15  interface.  An EC codec node should only be found inside the "codecs"
16  subnode of a cros-ec node.
17  (see Documentation/devicetree/bindings/mfd/google,cros-ec.yaml).
18
19properties:
20  compatible:
21    const: google,cros-ec-codec
22
23  "#sound-dai-cells":
24    const: 1
25
26  reg:
27    items:
28      - description: |
29          Physical base address and length of shared memory region from EC.
30          It contains 3 unsigned 32-bit integer. The first 2 integers
31          combine to become an unsigned 64-bit physical address.
32          The last one integer is the length of the shared memory.
33
34  memory-region:
35    $ref: '/schemas/types.yaml#/definitions/phandle'
36    description: |
37      Shared memory region to EC.  A "shared-dma-pool".
38      See ../reserved-memory/reserved-memory.txt for details.
39
40required:
41  - compatible
42  - '#sound-dai-cells'
43
44additionalProperties: false
45
46examples:
47  - |
48    reserved_mem: reserved-mem@52800000 {
49        compatible = "shared-dma-pool";
50        reg = <0x52800000 0x100000>;
51        no-map;
52    };
53    spi {
54        #address-cells = <1>;
55        #size-cells = <0>;
56        cros-ec@0 {
57            compatible = "google,cros-ec-spi";
58            reg = <0>;
59
60            codecs {
61                #address-cells = <2>;
62                #size-cells = <1>;
63
64                cros_ec_codec: ec-codec@10500000 {
65                    compatible = "google,cros-ec-codec";
66                    #sound-dai-cells = <1>;
67                    reg = <0x0 0x10500000 0x80000>;
68                    memory-region = <&reserved_mem>;
69                };
70
71            };
72        };
73    };
74