18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/sound/google,cros-ec-codec.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Audio codec controlled by ChromeOS EC
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Cheng-Yi Chiang <cychiang@chromium.org>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cidescription: |
138c2ecf20Sopenharmony_ci  Google's ChromeOS EC codec is a digital mic codec provided by the
148c2ecf20Sopenharmony_ci  Embedded Controller (EC) and is controlled via a host-command
158c2ecf20Sopenharmony_ci  interface.  An EC codec node should only be found inside the "codecs"
168c2ecf20Sopenharmony_ci  subnode of a cros-ec node.
178c2ecf20Sopenharmony_ci  (see Documentation/devicetree/bindings/mfd/google,cros-ec.yaml).
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ciproperties:
208c2ecf20Sopenharmony_ci  compatible:
218c2ecf20Sopenharmony_ci    const: google,cros-ec-codec
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci  "#sound-dai-cells":
248c2ecf20Sopenharmony_ci    const: 1
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci  reg:
278c2ecf20Sopenharmony_ci    items:
288c2ecf20Sopenharmony_ci      - description: |
298c2ecf20Sopenharmony_ci          Physical base address and length of shared memory region from EC.
308c2ecf20Sopenharmony_ci          It contains 3 unsigned 32-bit integer. The first 2 integers
318c2ecf20Sopenharmony_ci          combine to become an unsigned 64-bit physical address.
328c2ecf20Sopenharmony_ci          The last one integer is the length of the shared memory.
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci  memory-region:
358c2ecf20Sopenharmony_ci    $ref: '/schemas/types.yaml#/definitions/phandle'
368c2ecf20Sopenharmony_ci    description: |
378c2ecf20Sopenharmony_ci      Shared memory region to EC.  A "shared-dma-pool".
388c2ecf20Sopenharmony_ci      See ../reserved-memory/reserved-memory.txt for details.
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_cirequired:
418c2ecf20Sopenharmony_ci  - compatible
428c2ecf20Sopenharmony_ci  - '#sound-dai-cells'
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ciadditionalProperties: false
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ciexamples:
478c2ecf20Sopenharmony_ci  - |
488c2ecf20Sopenharmony_ci    reserved_mem: reserved-mem@52800000 {
498c2ecf20Sopenharmony_ci        compatible = "shared-dma-pool";
508c2ecf20Sopenharmony_ci        reg = <0x52800000 0x100000>;
518c2ecf20Sopenharmony_ci        no-map;
528c2ecf20Sopenharmony_ci    };
538c2ecf20Sopenharmony_ci    spi {
548c2ecf20Sopenharmony_ci        #address-cells = <1>;
558c2ecf20Sopenharmony_ci        #size-cells = <0>;
568c2ecf20Sopenharmony_ci        cros-ec@0 {
578c2ecf20Sopenharmony_ci            compatible = "google,cros-ec-spi";
588c2ecf20Sopenharmony_ci            reg = <0>;
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci            codecs {
618c2ecf20Sopenharmony_ci                #address-cells = <2>;
628c2ecf20Sopenharmony_ci                #size-cells = <1>;
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci                cros_ec_codec: ec-codec@10500000 {
658c2ecf20Sopenharmony_ci                    compatible = "google,cros-ec-codec";
668c2ecf20Sopenharmony_ci                    #sound-dai-cells = <1>;
678c2ecf20Sopenharmony_ci                    reg = <0x0 0x10500000 0x80000>;
688c2ecf20Sopenharmony_ci                    memory-region = <&reserved_mem>;
698c2ecf20Sopenharmony_ci                };
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci            };
728c2ecf20Sopenharmony_ci        };
738c2ecf20Sopenharmony_ci    };
74