xref: /freebsd/sys/contrib/device-tree/Bindings/sound/google,cros-ec-codec.yaml (revision 6be3386466ab79a84b48429ae66244f21526d3df)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/sound/google,cros-ec-codec.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Audio codec controlled by ChromeOS EC
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Cheng-Yi Chiang <cychiang@chromium.org>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot  Google's ChromeOS EC codec is a digital mic codec provided by the
14*6be33864SEmmanuel Vadot  Embedded Controller (EC) and is controlled via a host-command
15*6be33864SEmmanuel Vadot  interface.  An EC codec node should only be found inside the "codecs"
16*6be33864SEmmanuel Vadot  subnode of a cros-ec node.
17*6be33864SEmmanuel Vadot  (see Documentation/devicetree/bindings/mfd/google,cros-ec.yaml).
18c66ec88fSEmmanuel Vadot
19c66ec88fSEmmanuel Vadotproperties:
20c66ec88fSEmmanuel Vadot  compatible:
21c66ec88fSEmmanuel Vadot    const: google,cros-ec-codec
22c66ec88fSEmmanuel Vadot
23c66ec88fSEmmanuel Vadot  "#sound-dai-cells":
24c66ec88fSEmmanuel Vadot    const: 1
25c66ec88fSEmmanuel Vadot
26c66ec88fSEmmanuel Vadot  reg:
27c66ec88fSEmmanuel Vadot    items:
28c66ec88fSEmmanuel Vadot      - description: |
29c66ec88fSEmmanuel Vadot          Physical base address and length of shared memory region from EC.
30c66ec88fSEmmanuel Vadot          It contains 3 unsigned 32-bit integer. The first 2 integers
31c66ec88fSEmmanuel Vadot          combine to become an unsigned 64-bit physical address.
32c66ec88fSEmmanuel Vadot          The last one integer is the length of the shared memory.
33c66ec88fSEmmanuel Vadot
34c66ec88fSEmmanuel Vadot  memory-region:
35c66ec88fSEmmanuel Vadot    $ref: '/schemas/types.yaml#/definitions/phandle'
36c66ec88fSEmmanuel Vadot    description: |
37c66ec88fSEmmanuel Vadot      Shared memory region to EC.  A "shared-dma-pool".
38c66ec88fSEmmanuel Vadot      See ../reserved-memory/reserved-memory.txt for details.
39c66ec88fSEmmanuel Vadot
40c66ec88fSEmmanuel Vadotrequired:
41c66ec88fSEmmanuel Vadot  - compatible
42c66ec88fSEmmanuel Vadot  - '#sound-dai-cells'
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel VadotadditionalProperties: false
45c66ec88fSEmmanuel Vadot
46c66ec88fSEmmanuel Vadotexamples:
47c66ec88fSEmmanuel Vadot  - |
48c66ec88fSEmmanuel Vadot    reserved_mem: reserved-mem@52800000 {
49c66ec88fSEmmanuel Vadot        compatible = "shared-dma-pool";
50c66ec88fSEmmanuel Vadot        reg = <0x52800000 0x100000>;
51c66ec88fSEmmanuel Vadot        no-map;
52c66ec88fSEmmanuel Vadot    };
53c66ec88fSEmmanuel Vadot    spi {
54c66ec88fSEmmanuel Vadot        #address-cells = <1>;
55c66ec88fSEmmanuel Vadot        #size-cells = <0>;
56c66ec88fSEmmanuel Vadot        cros-ec@0 {
57c66ec88fSEmmanuel Vadot            compatible = "google,cros-ec-spi";
58*6be33864SEmmanuel Vadot            reg = <0>;
59*6be33864SEmmanuel Vadot
60*6be33864SEmmanuel Vadot            codecs {
61c66ec88fSEmmanuel Vadot                #address-cells = <2>;
62c66ec88fSEmmanuel Vadot                #size-cells = <1>;
63*6be33864SEmmanuel Vadot
64c66ec88fSEmmanuel Vadot                cros_ec_codec: ec-codec@10500000 {
65c66ec88fSEmmanuel Vadot                    compatible = "google,cros-ec-codec";
66c66ec88fSEmmanuel Vadot                    #sound-dai-cells = <1>;
67c66ec88fSEmmanuel Vadot                    reg = <0x0 0x10500000 0x80000>;
68c66ec88fSEmmanuel Vadot                    memory-region = <&reserved_mem>;
69c66ec88fSEmmanuel Vadot                };
70*6be33864SEmmanuel Vadot
71*6be33864SEmmanuel Vadot            };
72c66ec88fSEmmanuel Vadot        };
73c66ec88fSEmmanuel Vadot    };
74