18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/google,cros-ec.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: ChromeOS Embedded Controller 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Benson Leung <bleung@chromium.org> 118c2ecf20Sopenharmony_ci - Enric Balletbo i Serra <enric.balletbo@collabora.com> 128c2ecf20Sopenharmony_ci - Guenter Roeck <groeck@chromium.org> 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_cidescription: 158c2ecf20Sopenharmony_ci Google's ChromeOS EC is a microcontroller which talks to the AP and 168c2ecf20Sopenharmony_ci implements various functions such as keyboard and battery charging. 178c2ecf20Sopenharmony_ci The EC can be connected through various interfaces (I2C, SPI, and others) 188c2ecf20Sopenharmony_ci and the compatible string specifies which interface is being used. 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ciproperties: 218c2ecf20Sopenharmony_ci compatible: 228c2ecf20Sopenharmony_ci oneOf: 238c2ecf20Sopenharmony_ci - description: 248c2ecf20Sopenharmony_ci For implementations of the EC is connected through I2C. 258c2ecf20Sopenharmony_ci const: google,cros-ec-i2c 268c2ecf20Sopenharmony_ci - description: 278c2ecf20Sopenharmony_ci For implementations of the EC is connected through SPI. 288c2ecf20Sopenharmony_ci const: google,cros-ec-spi 298c2ecf20Sopenharmony_ci - description: 308c2ecf20Sopenharmony_ci For implementations of the EC is connected through RPMSG. 318c2ecf20Sopenharmony_ci const: google,cros-ec-rpmsg 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci controller-data: 348c2ecf20Sopenharmony_ci description: 358c2ecf20Sopenharmony_ci SPI controller data, see bindings/spi/spi-samsung.txt 368c2ecf20Sopenharmony_ci type: object 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci google,cros-ec-spi-pre-delay: 398c2ecf20Sopenharmony_ci description: 408c2ecf20Sopenharmony_ci This property specifies the delay in usecs between the 418c2ecf20Sopenharmony_ci assertion of the CS and the first clock pulse. 428c2ecf20Sopenharmony_ci allOf: 438c2ecf20Sopenharmony_ci - $ref: /schemas/types.yaml#/definitions/uint32 448c2ecf20Sopenharmony_ci - default: 0 458c2ecf20Sopenharmony_ci - minimum: 0 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci google,cros-ec-spi-msg-delay: 488c2ecf20Sopenharmony_ci description: 498c2ecf20Sopenharmony_ci This property specifies the delay in usecs between messages. 508c2ecf20Sopenharmony_ci allOf: 518c2ecf20Sopenharmony_ci - $ref: /schemas/types.yaml#/definitions/uint32 528c2ecf20Sopenharmony_ci - default: 0 538c2ecf20Sopenharmony_ci - minimum: 0 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci google,has-vbc-nvram: 568c2ecf20Sopenharmony_ci description: 578c2ecf20Sopenharmony_ci Some implementations of the EC include a small nvram space used to 588c2ecf20Sopenharmony_ci store verified boot context data. This boolean flag is used to specify 598c2ecf20Sopenharmony_ci whether this nvram is present or not. 608c2ecf20Sopenharmony_ci type: boolean 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci mtk,rpmsg-name: 638c2ecf20Sopenharmony_ci description: 648c2ecf20Sopenharmony_ci Must be defined if the cros-ec is a rpmsg device for a Mediatek 658c2ecf20Sopenharmony_ci ARM Cortex M4 Co-processor. Contains the name pf the rpmsg 668c2ecf20Sopenharmony_ci device. Used to match the subnode to the rpmsg device announced by 678c2ecf20Sopenharmony_ci the SCP. 688c2ecf20Sopenharmony_ci $ref: "/schemas/types.yaml#/definitions/string" 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci spi-max-frequency: 718c2ecf20Sopenharmony_ci description: Maximum SPI frequency of the device in Hz. 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci reg: 748c2ecf20Sopenharmony_ci maxItems: 1 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ci interrupts: 778c2ecf20Sopenharmony_ci maxItems: 1 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci wakeup-source: 808c2ecf20Sopenharmony_ci description: Button can wake-up the system. 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ci '#address-cells': 838c2ecf20Sopenharmony_ci const: 1 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci '#size-cells': 868c2ecf20Sopenharmony_ci const: 0 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci typec: 898c2ecf20Sopenharmony_ci $ref: "/schemas/chrome/google,cros-ec-typec.yaml#" 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci ec-pwm: 928c2ecf20Sopenharmony_ci $ref: "/schemas/pwm/google,cros-ec-pwm.yaml#" 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ci keyboard-controller: 958c2ecf20Sopenharmony_ci $ref: "/schemas/input/google,cros-ec-keyb.yaml#" 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ci codecs: 988c2ecf20Sopenharmony_ci type: object 998c2ecf20Sopenharmony_ci additionalProperties: false 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ci properties: 1028c2ecf20Sopenharmony_ci '#address-cells': 1038c2ecf20Sopenharmony_ci const: 2 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ci '#size-cells': 1068c2ecf20Sopenharmony_ci const: 1 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci patternProperties: 1098c2ecf20Sopenharmony_ci "^ec-codec@[a-f0-9]+$": 1108c2ecf20Sopenharmony_ci type: object 1118c2ecf20Sopenharmony_ci $ref: "/schemas/sound/google,cros-ec-codec.yaml#" 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ci required: 1148c2ecf20Sopenharmony_ci - "#address-cells" 1158c2ecf20Sopenharmony_ci - "#size-cells" 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_cipatternProperties: 1188c2ecf20Sopenharmony_ci "^i2c-tunnel[0-9]*$": 1198c2ecf20Sopenharmony_ci type: object 1208c2ecf20Sopenharmony_ci $ref: "/schemas/i2c/google,cros-ec-i2c-tunnel.yaml#" 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci "^regulator@[0-9]+$": 1238c2ecf20Sopenharmony_ci type: object 1248c2ecf20Sopenharmony_ci $ref: "/schemas/regulator/google,cros-ec-regulator.yaml#" 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ci "^extcon[0-9]*$": 1278c2ecf20Sopenharmony_ci type: object 1288c2ecf20Sopenharmony_ci $ref: "/schemas/extcon/extcon-usbc-cros-ec.yaml#" 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_cirequired: 1318c2ecf20Sopenharmony_ci - compatible 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ciif: 1348c2ecf20Sopenharmony_ci properties: 1358c2ecf20Sopenharmony_ci compatible: 1368c2ecf20Sopenharmony_ci contains: 1378c2ecf20Sopenharmony_ci enum: 1388c2ecf20Sopenharmony_ci - google,cros-ec-i2c 1398c2ecf20Sopenharmony_ci - google,cros-ec-rpmsg 1408c2ecf20Sopenharmony_cithen: 1418c2ecf20Sopenharmony_ci properties: 1428c2ecf20Sopenharmony_ci google,cros-ec-spi-pre-delay: false 1438c2ecf20Sopenharmony_ci google,cros-ec-spi-msg-delay: false 1448c2ecf20Sopenharmony_ci spi-max-frequency: false 1458c2ecf20Sopenharmony_ci 1468c2ecf20Sopenharmony_ciadditionalProperties: false 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_ciexamples: 1498c2ecf20Sopenharmony_ci # Example for I2C 1508c2ecf20Sopenharmony_ci - | 1518c2ecf20Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 1528c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 1538c2ecf20Sopenharmony_ci 1548c2ecf20Sopenharmony_ci i2c0 { 1558c2ecf20Sopenharmony_ci #address-cells = <1>; 1568c2ecf20Sopenharmony_ci #size-cells = <0>; 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_ci cros-ec@1e { 1598c2ecf20Sopenharmony_ci compatible = "google,cros-ec-i2c"; 1608c2ecf20Sopenharmony_ci reg = <0x1e>; 1618c2ecf20Sopenharmony_ci interrupts = <6 0>; 1628c2ecf20Sopenharmony_ci interrupt-parent = <&gpio0>; 1638c2ecf20Sopenharmony_ci }; 1648c2ecf20Sopenharmony_ci }; 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_ci # Example for SPI 1678c2ecf20Sopenharmony_ci - | 1688c2ecf20Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 1698c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ci spi0 { 1728c2ecf20Sopenharmony_ci #address-cells = <1>; 1738c2ecf20Sopenharmony_ci #size-cells = <0>; 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ci cros-ec@0 { 1768c2ecf20Sopenharmony_ci compatible = "google,cros-ec-spi"; 1778c2ecf20Sopenharmony_ci reg = <0x0>; 1788c2ecf20Sopenharmony_ci google,cros-ec-spi-msg-delay = <30>; 1798c2ecf20Sopenharmony_ci google,cros-ec-spi-pre-delay = <10>; 1808c2ecf20Sopenharmony_ci interrupts = <99 0>; 1818c2ecf20Sopenharmony_ci interrupt-parent = <&gpio7>; 1828c2ecf20Sopenharmony_ci spi-max-frequency = <5000000>; 1838c2ecf20Sopenharmony_ci }; 1848c2ecf20Sopenharmony_ci }; 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ci # Example for RPMSG 1878c2ecf20Sopenharmony_ci - | 1888c2ecf20Sopenharmony_ci scp0 { 1898c2ecf20Sopenharmony_ci cros-ec { 1908c2ecf20Sopenharmony_ci compatible = "google,cros-ec-rpmsg"; 1918c2ecf20Sopenharmony_ci }; 1928c2ecf20Sopenharmony_ci }; 1938c2ecf20Sopenharmony_ci... 194