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
20allOf:
21  - $ref: dai-common.yaml#
22
23properties:
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
44required:
45  - compatible
46  - '#sound-dai-cells'
47
48unevaluatedProperties: false
49
50examples:
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    };
79