146b57806SIkjoon Jang# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 246b57806SIkjoon Jang%YAML 1.2 346b57806SIkjoon Jang--- 446b57806SIkjoon Jang$id: http://devicetree.org/schemas/mfd/google,cros-ec.yaml# 546b57806SIkjoon Jang$schema: http://devicetree.org/meta-schemas/core.yaml# 646b57806SIkjoon Jang 746b57806SIkjoon Jangtitle: ChromeOS Embedded Controller 846b57806SIkjoon Jang 946b57806SIkjoon Jangmaintainers: 1046b57806SIkjoon Jang - Benson Leung <bleung@chromium.org> 1146b57806SIkjoon Jang - Enric Balletbo i Serra <enric.balletbo@collabora.com> 1246b57806SIkjoon Jang - Guenter Roeck <groeck@chromium.org> 1346b57806SIkjoon Jang 1446b57806SIkjoon Jangdescription: 1546b57806SIkjoon Jang Google's ChromeOS EC is a microcontroller which talks to the AP and 1646b57806SIkjoon Jang implements various functions such as keyboard and battery charging. 1746b57806SIkjoon Jang The EC can be connected through various interfaces (I2C, SPI, and others) 1846b57806SIkjoon Jang and the compatible string specifies which interface is being used. 1946b57806SIkjoon Jang 2046b57806SIkjoon Jangproperties: 2146b57806SIkjoon Jang compatible: 2246b57806SIkjoon Jang oneOf: 2346b57806SIkjoon Jang - description: 2446b57806SIkjoon Jang For implementations of the EC is connected through I2C. 2546b57806SIkjoon Jang const: google,cros-ec-i2c 2646b57806SIkjoon Jang - description: 2746b57806SIkjoon Jang For implementations of the EC is connected through SPI. 2846b57806SIkjoon Jang const: google,cros-ec-spi 2946b57806SIkjoon Jang - description: 3046b57806SIkjoon Jang For implementations of the EC is connected through RPMSG. 3146b57806SIkjoon Jang const: google,cros-ec-rpmsg 3246b57806SIkjoon Jang 335d7fb8b8SKrzysztof Kozlowski controller-data: 345d7fb8b8SKrzysztof Kozlowski description: 355d7fb8b8SKrzysztof Kozlowski SPI controller data, see bindings/spi/spi-samsung.txt 365d7fb8b8SKrzysztof Kozlowski type: object 375d7fb8b8SKrzysztof Kozlowski 3846b57806SIkjoon Jang google,cros-ec-spi-pre-delay: 3946b57806SIkjoon Jang description: 4046b57806SIkjoon Jang This property specifies the delay in usecs between the 4146b57806SIkjoon Jang assertion of the CS and the first clock pulse. 4246b57806SIkjoon Jang allOf: 4346b57806SIkjoon Jang - $ref: /schemas/types.yaml#/definitions/uint32 4446b57806SIkjoon Jang - default: 0 4546b57806SIkjoon Jang - minimum: 0 4646b57806SIkjoon Jang 4746b57806SIkjoon Jang google,cros-ec-spi-msg-delay: 4846b57806SIkjoon Jang description: 4946b57806SIkjoon Jang This property specifies the delay in usecs between messages. 5046b57806SIkjoon Jang allOf: 5146b57806SIkjoon Jang - $ref: /schemas/types.yaml#/definitions/uint32 5246b57806SIkjoon Jang - default: 0 5346b57806SIkjoon Jang - minimum: 0 5446b57806SIkjoon Jang 5546b57806SIkjoon Jang google,has-vbc-nvram: 5646b57806SIkjoon Jang description: 5746b57806SIkjoon Jang Some implementations of the EC include a small nvram space used to 5846b57806SIkjoon Jang store verified boot context data. This boolean flag is used to specify 5946b57806SIkjoon Jang whether this nvram is present or not. 6046b57806SIkjoon Jang type: boolean 6146b57806SIkjoon Jang 625c024e68SRicardo Cañuelo mtk,rpmsg-name: 635c024e68SRicardo Cañuelo description: 645c024e68SRicardo Cañuelo Must be defined if the cros-ec is a rpmsg device for a Mediatek 655c024e68SRicardo Cañuelo ARM Cortex M4 Co-processor. Contains the name pf the rpmsg 665c024e68SRicardo Cañuelo device. Used to match the subnode to the rpmsg device announced by 675c024e68SRicardo Cañuelo the SCP. 685c024e68SRicardo Cañuelo $ref: "/schemas/types.yaml#/definitions/string" 695c024e68SRicardo Cañuelo 7046b57806SIkjoon Jang spi-max-frequency: 7146b57806SIkjoon Jang description: Maximum SPI frequency of the device in Hz. 7246b57806SIkjoon Jang 7346b57806SIkjoon Jang reg: 7446b57806SIkjoon Jang maxItems: 1 7546b57806SIkjoon Jang 7646b57806SIkjoon Jang interrupts: 7746b57806SIkjoon Jang maxItems: 1 7846b57806SIkjoon Jang 795d7fb8b8SKrzysztof Kozlowski wakeup-source: 805d7fb8b8SKrzysztof Kozlowski description: Button can wake-up the system. 815d7fb8b8SKrzysztof Kozlowski 825c024e68SRicardo Cañuelo '#address-cells': 835c024e68SRicardo Cañuelo const: 1 845c024e68SRicardo Cañuelo 855c024e68SRicardo Cañuelo '#size-cells': 865c024e68SRicardo Cañuelo const: 0 875c024e68SRicardo Cañuelo 885c024e68SRicardo Cañuelo typec: 895c024e68SRicardo Cañuelo $ref: "/schemas/chrome/google,cros-ec-typec.yaml#" 905c024e68SRicardo Cañuelo 915c024e68SRicardo Cañuelo ec-pwm: 925c024e68SRicardo Cañuelo $ref: "/schemas/pwm/google,cros-ec-pwm.yaml#" 935c024e68SRicardo Cañuelo 9450d68feeSRicardo Cañuelo keyboard-controller: 9550d68feeSRicardo Cañuelo $ref: "/schemas/input/google,cros-ec-keyb.yaml#" 9650d68feeSRicardo Cañuelo 9719ad93bcSStephen Boyd proximity: 9819ad93bcSStephen Boyd $ref: "/schemas/iio/proximity/google,cros-ec-mkbp-proximity.yaml#" 9919ad93bcSStephen Boyd 1005c024e68SRicardo Cañuelo codecs: 1015c024e68SRicardo Cañuelo type: object 1025c024e68SRicardo Cañuelo additionalProperties: false 1035c024e68SRicardo Cañuelo 1045c024e68SRicardo Cañuelo properties: 1055c024e68SRicardo Cañuelo '#address-cells': 1065c024e68SRicardo Cañuelo const: 2 1075c024e68SRicardo Cañuelo 1085c024e68SRicardo Cañuelo '#size-cells': 1095c024e68SRicardo Cañuelo const: 1 1105c024e68SRicardo Cañuelo 1115c024e68SRicardo Cañuelo patternProperties: 1125c024e68SRicardo Cañuelo "^ec-codec@[a-f0-9]+$": 1135c024e68SRicardo Cañuelo type: object 1145c024e68SRicardo Cañuelo $ref: "/schemas/sound/google,cros-ec-codec.yaml#" 1155c024e68SRicardo Cañuelo 1165c024e68SRicardo Cañuelo required: 1175c024e68SRicardo Cañuelo - "#address-cells" 1185c024e68SRicardo Cañuelo - "#size-cells" 1195c024e68SRicardo Cañuelo 120*80cf16deSIkjoon Jang cbas: 121*80cf16deSIkjoon Jang type: object 122*80cf16deSIkjoon Jang 123*80cf16deSIkjoon Jang description: 124*80cf16deSIkjoon Jang This device is used to signal when a detachable base is attached 125*80cf16deSIkjoon Jang to a Chrome OS tablet. This device cannot be detected at runtime. 126*80cf16deSIkjoon Jang 127*80cf16deSIkjoon Jang properties: 128*80cf16deSIkjoon Jang compatible: 129*80cf16deSIkjoon Jang const: google,cros-cbas 130*80cf16deSIkjoon Jang 131*80cf16deSIkjoon Jang required: 132*80cf16deSIkjoon Jang - compatible 133*80cf16deSIkjoon Jang 134*80cf16deSIkjoon Jang additionalProperties: false 135*80cf16deSIkjoon Jang 1361acd4577SRicardo CañuelopatternProperties: 1371acd4577SRicardo Cañuelo "^i2c-tunnel[0-9]*$": 1381acd4577SRicardo Cañuelo type: object 1391acd4577SRicardo Cañuelo $ref: "/schemas/i2c/google,cros-ec-i2c-tunnel.yaml#" 1401acd4577SRicardo Cañuelo 1415c024e68SRicardo Cañuelo "^regulator@[0-9]+$": 1425c024e68SRicardo Cañuelo type: object 1435c024e68SRicardo Cañuelo $ref: "/schemas/regulator/google,cros-ec-regulator.yaml#" 1445c024e68SRicardo Cañuelo 1455c024e68SRicardo Cañuelo "^extcon[0-9]*$": 1465c024e68SRicardo Cañuelo type: object 1475c024e68SRicardo Cañuelo $ref: "/schemas/extcon/extcon-usbc-cros-ec.yaml#" 1485c024e68SRicardo Cañuelo 14946b57806SIkjoon Jangrequired: 15046b57806SIkjoon Jang - compatible 15146b57806SIkjoon Jang 15246b57806SIkjoon Jangif: 15346b57806SIkjoon Jang properties: 15446b57806SIkjoon Jang compatible: 15546b57806SIkjoon Jang contains: 15646b57806SIkjoon Jang enum: 15746b57806SIkjoon Jang - google,cros-ec-i2c 15846b57806SIkjoon Jang - google,cros-ec-rpmsg 15946b57806SIkjoon Jangthen: 16046b57806SIkjoon Jang properties: 16146b57806SIkjoon Jang google,cros-ec-spi-pre-delay: false 16246b57806SIkjoon Jang google,cros-ec-spi-msg-delay: false 16346b57806SIkjoon Jang spi-max-frequency: false 16446b57806SIkjoon Jang 16546b57806SIkjoon JangadditionalProperties: false 16646b57806SIkjoon Jang 16746b57806SIkjoon Jangexamples: 16846b57806SIkjoon Jang # Example for I2C 16946b57806SIkjoon Jang - | 17046b57806SIkjoon Jang #include <dt-bindings/gpio/gpio.h> 17146b57806SIkjoon Jang #include <dt-bindings/interrupt-controller/irq.h> 17246b57806SIkjoon Jang 17346b57806SIkjoon Jang i2c0 { 17446b57806SIkjoon Jang #address-cells = <1>; 17546b57806SIkjoon Jang #size-cells = <0>; 17646b57806SIkjoon Jang 17746b57806SIkjoon Jang cros-ec@1e { 17846b57806SIkjoon Jang compatible = "google,cros-ec-i2c"; 17946b57806SIkjoon Jang reg = <0x1e>; 18046b57806SIkjoon Jang interrupts = <6 0>; 18146b57806SIkjoon Jang interrupt-parent = <&gpio0>; 18246b57806SIkjoon Jang }; 18346b57806SIkjoon Jang }; 18446b57806SIkjoon Jang 18546b57806SIkjoon Jang # Example for SPI 18646b57806SIkjoon Jang - | 18746b57806SIkjoon Jang #include <dt-bindings/gpio/gpio.h> 18846b57806SIkjoon Jang #include <dt-bindings/interrupt-controller/irq.h> 18946b57806SIkjoon Jang 19046b57806SIkjoon Jang spi0 { 19146b57806SIkjoon Jang #address-cells = <1>; 19246b57806SIkjoon Jang #size-cells = <0>; 19346b57806SIkjoon Jang 19446b57806SIkjoon Jang cros-ec@0 { 19546b57806SIkjoon Jang compatible = "google,cros-ec-spi"; 19646b57806SIkjoon Jang reg = <0x0>; 19746b57806SIkjoon Jang google,cros-ec-spi-msg-delay = <30>; 19846b57806SIkjoon Jang google,cros-ec-spi-pre-delay = <10>; 19946b57806SIkjoon Jang interrupts = <99 0>; 20046b57806SIkjoon Jang interrupt-parent = <&gpio7>; 20146b57806SIkjoon Jang spi-max-frequency = <5000000>; 20219ad93bcSStephen Boyd 20319ad93bcSStephen Boyd proximity { 20419ad93bcSStephen Boyd compatible = "google,cros-ec-mkbp-proximity"; 20519ad93bcSStephen Boyd }; 206*80cf16deSIkjoon Jang 207*80cf16deSIkjoon Jang cbas { 208*80cf16deSIkjoon Jang compatible = "google,cros-cbas"; 209*80cf16deSIkjoon Jang }; 21046b57806SIkjoon Jang }; 21146b57806SIkjoon Jang }; 21246b57806SIkjoon Jang 21346b57806SIkjoon Jang # Example for RPMSG 21446b57806SIkjoon Jang - | 21546b57806SIkjoon Jang scp0 { 21646b57806SIkjoon Jang cros-ec { 21746b57806SIkjoon Jang compatible = "google,cros-ec-rpmsg"; 21846b57806SIkjoon Jang }; 21946b57806SIkjoon Jang }; 22046b57806SIkjoon Jang... 221