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