1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/mfd/google,cros-ec.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: ChromeOS Embedded Controller
10 - Benson Leung <bleung@chromium.org>
11 - Guenter Roeck <groeck@chromium.org>
14 Google's ChromeOS EC is a microcontroller which talks to the AP and
15 implements various functions such as keyboard and battery charging.
16 The EC can be connected through various interfaces (I2C, SPI, and others)
17 and the compatible string specifies which interface is being used.
23 For implementations of the EC is connected through I2C.
24 const: google,cros-ec-i2c
26 For implementations of the EC is connected through SPI.
27 const: google,cros-ec-spi
29 For implementations of the EC is connected through RPMSG.
30 const: google,cros-ec-rpmsg
34 SPI controller data, see bindings/spi/samsung,spi-peripheral-props.yaml
37 google,cros-ec-spi-pre-delay:
39 This property specifies the delay in usecs between the
40 assertion of the CS and the first clock pulse.
41 $ref: /schemas/types.yaml#/definitions/uint32
44 google,cros-ec-spi-msg-delay:
46 This property specifies the delay in usecs between messages.
47 $ref: /schemas/types.yaml#/definitions/uint32
52 Some implementations of the EC include a small nvram space used to
53 store verified boot context data. This boolean flag is used to specify
54 whether this nvram is present or not.
59 Must be defined if the cros-ec is a rpmsg device for a Mediatek
60 ARM Cortex M4 Co-processor. Contains the name of the rpmsg
61 device. Used to match the subnode to the rpmsg device announced by
63 $ref: "/schemas/types.yaml#/definitions/string"
66 description: Maximum SPI frequency of the device in Hz.
75 description: Button can wake-up the system.
84 $ref: "/schemas/chrome/google,cros-ec-typec.yaml#"
87 $ref: "/schemas/pwm/google,cros-ec-pwm.yaml#"
91 $ref: "/schemas/pwm/google,cros-ec-pwm.yaml#"
94 $ref: "/schemas/chrome/google,cros-kbd-led-backlight.yaml#"
97 $ref: "/schemas/input/google,cros-ec-keyb.yaml#"
100 $ref: "/schemas/iio/proximity/google,cros-ec-mkbp-proximity.yaml#"
104 additionalProperties: false
114 "^ec-codec@[a-f0-9]+$":
116 $ref: "/schemas/sound/google,cros-ec-codec.yaml#"
126 This device is used to signal when a detachable base is attached
127 to a Chrome OS tablet. This device cannot be detected at runtime.
131 const: google,cros-cbas
136 additionalProperties: false
139 "^i2c-tunnel[0-9]*$":
141 $ref: "/schemas/i2c/google,cros-ec-i2c-tunnel.yaml#"
143 "^regulator@[0-9]+$":
145 $ref: "/schemas/regulator/google,cros-ec-regulator.yaml#"
149 $ref: "/schemas/extcon/extcon-usbc-cros-ec.yaml#"
161 - google,cros-ec-rpmsg
164 google,cros-ec-spi-pre-delay: false
165 google,cros-ec-spi-msg-delay: false
166 spi-max-frequency: false
168 $ref: /schemas/spi/spi-peripheral-props.yaml
170 additionalProperties: false
175 #include <dt-bindings/gpio/gpio.h>
176 #include <dt-bindings/interrupt-controller/irq.h>
179 #address-cells = <1>;
183 compatible = "google,cros-ec-i2c";
186 interrupt-parent = <&gpio0>;
192 #include <dt-bindings/gpio/gpio.h>
193 #include <dt-bindings/interrupt-controller/irq.h>
196 #address-cells = <1>;
200 compatible = "google,cros-ec-spi";
202 google,cros-ec-spi-msg-delay = <30>;
203 google,cros-ec-spi-pre-delay = <10>;
205 interrupt-parent = <&gpio7>;
206 spi-max-frequency = <5000000>;
209 compatible = "google,cros-ec-mkbp-proximity";
213 compatible = "google,cros-cbas";
222 compatible = "google,cros-ec-rpmsg";