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