blob: 1434f443373892bd9b94df639bcf08585f019596 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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 };