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 97*19ad93bcSStephen Boyd proximity: 98*19ad93bcSStephen Boyd $ref: "/schemas/iio/proximity/google,cros-ec-mkbp-proximity.yaml#" 99*19ad93bcSStephen 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 1201acd4577SRicardo CañuelopatternProperties: 1211acd4577SRicardo Cañuelo "^i2c-tunnel[0-9]*$": 1221acd4577SRicardo Cañuelo type: object 1231acd4577SRicardo Cañuelo $ref: "/schemas/i2c/google,cros-ec-i2c-tunnel.yaml#" 1241acd4577SRicardo Cañuelo 1255c024e68SRicardo Cañuelo "^regulator@[0-9]+$": 1265c024e68SRicardo Cañuelo type: object 1275c024e68SRicardo Cañuelo $ref: "/schemas/regulator/google,cros-ec-regulator.yaml#" 1285c024e68SRicardo Cañuelo 1295c024e68SRicardo Cañuelo "^extcon[0-9]*$": 1305c024e68SRicardo Cañuelo type: object 1315c024e68SRicardo Cañuelo $ref: "/schemas/extcon/extcon-usbc-cros-ec.yaml#" 1325c024e68SRicardo Cañuelo 13346b57806SIkjoon Jangrequired: 13446b57806SIkjoon Jang - compatible 13546b57806SIkjoon Jang 13646b57806SIkjoon Jangif: 13746b57806SIkjoon Jang properties: 13846b57806SIkjoon Jang compatible: 13946b57806SIkjoon Jang contains: 14046b57806SIkjoon Jang enum: 14146b57806SIkjoon Jang - google,cros-ec-i2c 14246b57806SIkjoon Jang - google,cros-ec-rpmsg 14346b57806SIkjoon Jangthen: 14446b57806SIkjoon Jang properties: 14546b57806SIkjoon Jang google,cros-ec-spi-pre-delay: false 14646b57806SIkjoon Jang google,cros-ec-spi-msg-delay: false 14746b57806SIkjoon Jang spi-max-frequency: false 14846b57806SIkjoon Jang 14946b57806SIkjoon JangadditionalProperties: false 15046b57806SIkjoon Jang 15146b57806SIkjoon Jangexamples: 15246b57806SIkjoon Jang # Example for I2C 15346b57806SIkjoon Jang - | 15446b57806SIkjoon Jang #include <dt-bindings/gpio/gpio.h> 15546b57806SIkjoon Jang #include <dt-bindings/interrupt-controller/irq.h> 15646b57806SIkjoon Jang 15746b57806SIkjoon Jang i2c0 { 15846b57806SIkjoon Jang #address-cells = <1>; 15946b57806SIkjoon Jang #size-cells = <0>; 16046b57806SIkjoon Jang 16146b57806SIkjoon Jang cros-ec@1e { 16246b57806SIkjoon Jang compatible = "google,cros-ec-i2c"; 16346b57806SIkjoon Jang reg = <0x1e>; 16446b57806SIkjoon Jang interrupts = <6 0>; 16546b57806SIkjoon Jang interrupt-parent = <&gpio0>; 16646b57806SIkjoon Jang }; 16746b57806SIkjoon Jang }; 16846b57806SIkjoon Jang 16946b57806SIkjoon Jang # Example for SPI 17046b57806SIkjoon Jang - | 17146b57806SIkjoon Jang #include <dt-bindings/gpio/gpio.h> 17246b57806SIkjoon Jang #include <dt-bindings/interrupt-controller/irq.h> 17346b57806SIkjoon Jang 17446b57806SIkjoon Jang spi0 { 17546b57806SIkjoon Jang #address-cells = <1>; 17646b57806SIkjoon Jang #size-cells = <0>; 17746b57806SIkjoon Jang 17846b57806SIkjoon Jang cros-ec@0 { 17946b57806SIkjoon Jang compatible = "google,cros-ec-spi"; 18046b57806SIkjoon Jang reg = <0x0>; 18146b57806SIkjoon Jang google,cros-ec-spi-msg-delay = <30>; 18246b57806SIkjoon Jang google,cros-ec-spi-pre-delay = <10>; 18346b57806SIkjoon Jang interrupts = <99 0>; 18446b57806SIkjoon Jang interrupt-parent = <&gpio7>; 18546b57806SIkjoon Jang spi-max-frequency = <5000000>; 186*19ad93bcSStephen Boyd 187*19ad93bcSStephen Boyd proximity { 188*19ad93bcSStephen Boyd compatible = "google,cros-ec-mkbp-proximity"; 189*19ad93bcSStephen Boyd }; 19046b57806SIkjoon Jang }; 19146b57806SIkjoon Jang }; 19246b57806SIkjoon Jang 19346b57806SIkjoon Jang # Example for RPMSG 19446b57806SIkjoon Jang - | 19546b57806SIkjoon Jang scp0 { 19646b57806SIkjoon Jang cros-ec { 19746b57806SIkjoon Jang compatible = "google,cros-ec-rpmsg"; 19846b57806SIkjoon Jang }; 19946b57806SIkjoon Jang }; 20046b57806SIkjoon Jang... 201