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 connected through I2C.
24 const: google,cros-ec-i2c
26 For implementations of the EC connected through SPI.
27 const: google,cros-ec-spi
29 For implementations of the FPMCU connected through SPI.
31 - const: google,cros-ec-fp
32 - const: google,cros-ec-spi
34 For implementations of the EC connected through RPMSG.
35 const: google,cros-ec-rpmsg
37 For implementations of the EC connected through UART.
38 const: google,cros-ec-uart
42 google,cros-ec-spi-pre-delay:
44 This property specifies the delay in usecs between the
45 assertion of the CS and the first clock pulse.
46 $ref: /schemas/types.yaml#/definitions/uint32
49 google,cros-ec-spi-msg-delay:
51 This property specifies the delay in usecs between messages.
52 $ref: /schemas/types.yaml#/definitions/uint32
57 Some implementations of the EC include a small nvram space used to
58 store verified boot context data. This boolean flag is used to specify
59 whether this nvram is present or not.
64 Must be defined if the cros-ec is a rpmsg device for a Mediatek
65 ARM Cortex M4 Co-processor. Contains the name of the rpmsg
66 device. Used to match the subnode to the rpmsg device announced by
68 $ref: /schemas/types.yaml#/definitions/string
70 spi-max-frequency: true
83 description: Assert for bootloader mode.
88 description: Button can wake-up the system.
97 $ref: /schemas/chrome/google,cros-ec-typec.yaml#
100 $ref: /schemas/pwm/google,cros-ec-pwm.yaml#
104 $ref: /schemas/pwm/google,cros-ec-pwm.yaml#
107 $ref: /schemas/chrome/google,cros-kbd-led-backlight.yaml#
110 $ref: /schemas/input/google,cros-ec-keyb.yaml#
113 $ref: /schemas/iio/proximity/google,cros-ec-mkbp-proximity.yaml#
117 additionalProperties: false
127 "^ec-codec@[a-f0-9]+$":
129 $ref: /schemas/sound/google,cros-ec-codec.yaml#
139 This device is used to signal when a detachable base is attached
140 to a Chrome OS tablet. This device cannot be detected at runtime.
144 const: google,cros-cbas
149 additionalProperties: false
152 "^i2c-tunnel[0-9]*$":
154 $ref: /schemas/i2c/google,cros-ec-i2c-tunnel.yaml#
156 "^regulator@[0-9]+$":
158 $ref: /schemas/regulator/google,cros-ec-regulator.yaml#
162 $ref: /schemas/extcon/extcon-usbc-cros-ec.yaml#
173 const: google,cros-ec-spi
176 controller-data: false
177 google,cros-ec-spi-pre-delay: false
178 google,cros-ec-spi-msg-delay: false
179 spi-max-frequency: false
181 $ref: /schemas/spi/spi-peripheral-props.yaml
188 const: google,cros-ec-rpmsg
191 mediatek,rpmsg-name: false
199 - google,cros-ec-rpmsg
200 - google,cros-ec-uart
210 const: google,cros-ec-fp
213 '#address-cells': false
217 kbd-led-backlight: false
218 keyboard-controller: false
224 "^i2c-tunnel[0-9]*$": false
225 "^regulator@[0-9]+$": false
226 "^extcon[0-9]*$": false
228 # Using additionalProperties: false here and
229 # listing true properties doesn't work
241 additionalProperties: false
246 #include <dt-bindings/gpio/gpio.h>
247 #include <dt-bindings/interrupt-controller/irq.h>
250 #address-cells = <1>;
254 compatible = "google,cros-ec-i2c";
257 interrupt-parent = <&gpio0>;
263 #include <dt-bindings/gpio/gpio.h>
264 #include <dt-bindings/interrupt-controller/irq.h>
267 #address-cells = <1>;
271 compatible = "google,cros-ec-spi";
273 google,cros-ec-spi-msg-delay = <30>;
274 google,cros-ec-spi-pre-delay = <10>;
276 interrupt-parent = <&gpio7>;
277 spi-max-frequency = <5000000>;
280 compatible = "google,cros-ec-mkbp-proximity";
284 compatible = "google,cros-cbas";
293 compatible = "google,cros-ec-rpmsg";
300 #address-cells = <0x1>;
304 compatible = "google,cros-ec-fp", "google,cros-ec-spi";
306 interrupt-parent = <&gpio_controller>;
307 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
308 spi-max-frequency = <3000000>;
309 reset-gpios = <&gpio_controller 5 GPIO_ACTIVE_LOW>;
310 boot0-gpios = <&gpio_controller 10 GPIO_ACTIVE_HIGH>;
311 vdd-supply = <&pp3300_fp_mcu>;
319 compatible = "google,cros-ec-uart";