~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/mfd/google,cros-ec.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: ChromeOS Embedded Controller
  8 
  9 maintainers:
 10   - Benson Leung <bleung@chromium.org>
 11   - Guenter Roeck <groeck@chromium.org>
 12 
 13 description:
 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.
 18 
 19 properties:
 20   compatible:
 21     oneOf:
 22       - description:
 23           For implementations of the EC connected through I2C.
 24         const: google,cros-ec-i2c
 25       - description:
 26           For implementations of the EC connected through SPI.
 27         const: google,cros-ec-spi
 28       - description:
 29           For implementations of the FPMCU connected through SPI.
 30         items:
 31           - const: google,cros-ec-fp
 32           - const: google,cros-ec-spi
 33       - description:
 34           For implementations of the EC connected through RPMSG.
 35         const: google,cros-ec-rpmsg
 36       - description:
 37           For implementations of the EC connected through UART.
 38         const: google,cros-ec-uart
 39 
 40   controller-data: true
 41 
 42   google,cros-ec-spi-pre-delay:
 43     description:
 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
 47     default: 0
 48 
 49   google,cros-ec-spi-msg-delay:
 50     description:
 51       This property specifies the delay in usecs between messages.
 52     $ref: /schemas/types.yaml#/definitions/uint32
 53     default: 0
 54 
 55   google,has-vbc-nvram:
 56     description:
 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.
 60     type: boolean
 61 
 62   mediatek,rpmsg-name:
 63     description:
 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
 67       the SCP.
 68     $ref: /schemas/types.yaml#/definitions/string
 69 
 70   spi-max-frequency: true
 71 
 72   reg:
 73     maxItems: 1
 74 
 75   interrupts:
 76     maxItems: 1
 77 
 78   reset-gpios:
 79     maxItems: 1
 80 
 81   boot0-gpios:
 82     maxItems: 1
 83     description: Assert for bootloader mode.
 84 
 85   vdd-supply: true
 86 
 87   wakeup-source:
 88     description: Button can wake-up the system.
 89 
 90   '#address-cells':
 91     const: 1
 92 
 93   '#size-cells':
 94     const: 0
 95 
 96   '#gpio-cells':
 97     const: 2
 98 
 99   gpio-controller: true
100 
101   typec:
102     $ref: /schemas/chrome/google,cros-ec-typec.yaml#
103 
104   ec-pwm:
105     $ref: /schemas/pwm/google,cros-ec-pwm.yaml#
106     deprecated: true
107 
108   pwm:
109     $ref: /schemas/pwm/google,cros-ec-pwm.yaml#
110 
111   kbd-led-backlight:
112     $ref: /schemas/chrome/google,cros-kbd-led-backlight.yaml#
113 
114   keyboard-controller:
115     $ref: /schemas/input/google,cros-ec-keyb.yaml#
116 
117   proximity:
118     $ref: /schemas/iio/proximity/google,cros-ec-mkbp-proximity.yaml#
119 
120   codecs:
121     type: object
122     additionalProperties: false
123 
124     properties:
125       '#address-cells':
126         const: 2
127 
128       '#size-cells':
129         const: 1
130 
131     patternProperties:
132       "^ec-codec@[a-f0-9]+$":
133         type: object
134         $ref: /schemas/sound/google,cros-ec-codec.yaml#
135 
136     required:
137       - "#address-cells"
138       - "#size-cells"
139 
140   cbas:
141     type: object
142 
143     description:
144       This device is used to signal when a detachable base is attached
145       to a Chrome OS tablet. This device cannot be detected at runtime.
146 
147     properties:
148       compatible:
149         const: google,cros-cbas
150 
151     required:
152       - compatible
153 
154     additionalProperties: false
155 
156 patternProperties:
157   "^i2c-tunnel[0-9]*$":
158     type: object
159     $ref: /schemas/i2c/google,cros-ec-i2c-tunnel.yaml#
160 
161   "^regulator@[0-9]+$":
162     type: object
163     $ref: /schemas/regulator/google,cros-ec-regulator.yaml#
164 
165   "^extcon[0-9]*$":
166     type: object
167     $ref: /schemas/extcon/extcon-usbc-cros-ec.yaml#
168 
169 required:
170   - compatible
171 
172 allOf:
173   - if:
174       properties:
175         compatible:
176           not:
177             contains:
178               const: google,cros-ec-spi
179     then:
180       properties:
181         controller-data: false
182         google,cros-ec-spi-pre-delay: false
183         google,cros-ec-spi-msg-delay: false
184         spi-max-frequency: false
185     else:
186       $ref: /schemas/spi/spi-peripheral-props.yaml
187 
188   - if:
189       properties:
190         compatible:
191           not:
192             contains:
193               const: google,cros-ec-rpmsg
194     then:
195       properties:
196         mediatek,rpmsg-name: false
197 
198   - if:
199       properties:
200         compatible:
201           not:
202             contains:
203               enum:
204                 - google,cros-ec-rpmsg
205                 - google,cros-ec-uart
206     then:
207       required:
208         - reg
209         - interrupts
210 
211   - if:
212       properties:
213         compatible:
214           contains:
215             const: google,cros-ec-fp
216     then:
217       properties:
218         '#address-cells': false
219         '#size-cells': false
220         typec: false
221         ec-pwm: false
222         kbd-led-backlight: false
223         keyboard-controller: false
224         proximity: false
225         codecs: false
226         cbas: false
227 
228       patternProperties:
229         "^i2c-tunnel[0-9]*$": false
230         "^regulator@[0-9]+$": false
231         "^extcon[0-9]*$": false
232 
233       # Using additionalProperties: false here and
234       # listing true properties doesn't work
235 
236       required:
237         - reset-gpios
238         - boot0-gpios
239         - vdd-supply
240     else:
241       properties:
242         reset-gpios: false
243         boot0-gpios: false
244         vdd-supply: false
245 
246 additionalProperties: false
247 
248 examples:
249   # Example for I2C
250   - |
251     #include <dt-bindings/gpio/gpio.h>
252     #include <dt-bindings/interrupt-controller/irq.h>
253 
254     i2c {
255         #address-cells = <1>;
256         #size-cells = <0>;
257 
258         cros-ec@1e {
259             compatible = "google,cros-ec-i2c";
260             reg = <0x1e>;
261             interrupts = <6 0>;
262             interrupt-parent = <&gpio0>;
263         };
264     };
265 
266   # Example for SPI
267   - |
268     #include <dt-bindings/gpio/gpio.h>
269     #include <dt-bindings/interrupt-controller/irq.h>
270 
271     spi {
272         #address-cells = <1>;
273         #size-cells = <0>;
274 
275         cros-ec@0 {
276             compatible = "google,cros-ec-spi";
277             reg = <0x0>;
278             google,cros-ec-spi-msg-delay = <30>;
279             google,cros-ec-spi-pre-delay = <10>;
280             interrupts = <99 0>;
281             interrupt-parent = <&gpio7>;
282             spi-max-frequency = <5000000>;
283             #gpio-cells = <2>;
284             gpio-controller;
285 
286             proximity {
287                 compatible = "google,cros-ec-mkbp-proximity";
288             };
289 
290             cbas {
291                 compatible = "google,cros-cbas";
292             };
293         };
294     };
295 
296   # Example for RPMSG
297   - |
298     scp0 {
299         cros-ec {
300             compatible = "google,cros-ec-rpmsg";
301         };
302     };
303 
304   # Example for FPMCU
305   - |
306     spi {
307       #address-cells = <0x1>;
308       #size-cells = <0x0>;
309 
310       ec@0 {
311         compatible = "google,cros-ec-fp", "google,cros-ec-spi";
312         reg = <0x0>;
313         interrupt-parent = <&gpio_controller>;
314         interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
315         spi-max-frequency = <3000000>;
316         reset-gpios = <&gpio_controller 5 GPIO_ACTIVE_LOW>;
317         boot0-gpios = <&gpio_controller 10 GPIO_ACTIVE_HIGH>;
318         vdd-supply = <&pp3300_fp_mcu>;
319       };
320     };
321 
322   # Example for UART
323   - |
324     serial {
325         cros-ec {
326             compatible = "google,cros-ec-uart";
327         };
328     };
329 ...

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php