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  - Guenter Roeck <groeck@chromium.org>
1246b57806SIkjoon Jang
1346b57806SIkjoon Jangdescription:
1446b57806SIkjoon Jang  Google's ChromeOS EC is a microcontroller which talks to the AP and
1546b57806SIkjoon Jang  implements various functions such as keyboard and battery charging.
1646b57806SIkjoon Jang  The EC can be connected through various interfaces (I2C, SPI, and others)
1746b57806SIkjoon Jang  and the compatible string specifies which interface is being used.
1846b57806SIkjoon Jang
1946b57806SIkjoon Jangproperties:
2046b57806SIkjoon Jang  compatible:
2146b57806SIkjoon Jang    oneOf:
2246b57806SIkjoon Jang      - description:
2346b57806SIkjoon Jang          For implementations of the EC is connected through I2C.
2446b57806SIkjoon Jang        const: google,cros-ec-i2c
2546b57806SIkjoon Jang      - description:
2646b57806SIkjoon Jang          For implementations of the EC is connected through SPI.
2746b57806SIkjoon Jang        const: google,cros-ec-spi
2846b57806SIkjoon Jang      - description:
2946b57806SIkjoon Jang          For implementations of the EC is connected through RPMSG.
3046b57806SIkjoon Jang        const: google,cros-ec-rpmsg
3146b57806SIkjoon Jang
325d7fb8b8SKrzysztof Kozlowski  controller-data:
335d7fb8b8SKrzysztof Kozlowski    description:
345d7fb8b8SKrzysztof Kozlowski      SPI controller data, see bindings/spi/spi-samsung.txt
355d7fb8b8SKrzysztof Kozlowski    type: object
365d7fb8b8SKrzysztof Kozlowski
3746b57806SIkjoon Jang  google,cros-ec-spi-pre-delay:
3846b57806SIkjoon Jang    description:
3946b57806SIkjoon Jang      This property specifies the delay in usecs between the
4046b57806SIkjoon Jang      assertion of the CS and the first clock pulse.
4146b57806SIkjoon Jang    allOf:
4246b57806SIkjoon Jang      - $ref: /schemas/types.yaml#/definitions/uint32
4346b57806SIkjoon Jang      - default: 0
4446b57806SIkjoon Jang      - minimum: 0
4546b57806SIkjoon Jang
4646b57806SIkjoon Jang  google,cros-ec-spi-msg-delay:
4746b57806SIkjoon Jang    description:
4846b57806SIkjoon Jang      This property specifies the delay in usecs between messages.
4946b57806SIkjoon Jang    allOf:
5046b57806SIkjoon Jang      - $ref: /schemas/types.yaml#/definitions/uint32
5146b57806SIkjoon Jang      - default: 0
5246b57806SIkjoon Jang      - minimum: 0
5346b57806SIkjoon Jang
5446b57806SIkjoon Jang  google,has-vbc-nvram:
5546b57806SIkjoon Jang    description:
5646b57806SIkjoon Jang      Some implementations of the EC include a small nvram space used to
5746b57806SIkjoon Jang      store verified boot context data. This boolean flag is used to specify
5846b57806SIkjoon Jang      whether this nvram is present or not.
5946b57806SIkjoon Jang    type: boolean
6046b57806SIkjoon Jang
61e565615cSMatthias Brugger  mediatek,rpmsg-name:
625c024e68SRicardo Cañuelo    description:
635c024e68SRicardo Cañuelo      Must be defined if the cros-ec is a rpmsg device for a Mediatek
645c024e68SRicardo Cañuelo      ARM Cortex M4 Co-processor. Contains the name pf the rpmsg
655c024e68SRicardo Cañuelo      device. Used to match the subnode to the rpmsg device announced by
665c024e68SRicardo Cañuelo      the SCP.
675c024e68SRicardo Cañuelo    $ref: "/schemas/types.yaml#/definitions/string"
685c024e68SRicardo Cañuelo
6946b57806SIkjoon Jang  spi-max-frequency:
7046b57806SIkjoon Jang    description: Maximum SPI frequency of the device in Hz.
7146b57806SIkjoon Jang
7246b57806SIkjoon Jang  reg:
7346b57806SIkjoon Jang    maxItems: 1
7446b57806SIkjoon Jang
7546b57806SIkjoon Jang  interrupts:
7646b57806SIkjoon Jang    maxItems: 1
7746b57806SIkjoon Jang
785d7fb8b8SKrzysztof Kozlowski  wakeup-source:
795d7fb8b8SKrzysztof Kozlowski    description: Button can wake-up the system.
805d7fb8b8SKrzysztof Kozlowski
815c024e68SRicardo Cañuelo  '#address-cells':
825c024e68SRicardo Cañuelo    const: 1
835c024e68SRicardo Cañuelo
845c024e68SRicardo Cañuelo  '#size-cells':
855c024e68SRicardo Cañuelo    const: 0
865c024e68SRicardo Cañuelo
875c024e68SRicardo Cañuelo  typec:
885c024e68SRicardo Cañuelo    $ref: "/schemas/chrome/google,cros-ec-typec.yaml#"
895c024e68SRicardo Cañuelo
905c024e68SRicardo Cañuelo  ec-pwm:
915c024e68SRicardo Cañuelo    $ref: "/schemas/pwm/google,cros-ec-pwm.yaml#"
92*6b94ee66SKrzysztof Kozlowski    deprecated: true
93*6b94ee66SKrzysztof Kozlowski
94*6b94ee66SKrzysztof Kozlowski  pwm:
95*6b94ee66SKrzysztof Kozlowski    $ref: "/schemas/pwm/google,cros-ec-pwm.yaml#"
965c024e68SRicardo Cañuelo
9750d68feeSRicardo Cañuelo  keyboard-controller:
9850d68feeSRicardo Cañuelo    $ref: "/schemas/input/google,cros-ec-keyb.yaml#"
9950d68feeSRicardo Cañuelo
10019ad93bcSStephen Boyd  proximity:
10119ad93bcSStephen Boyd    $ref: "/schemas/iio/proximity/google,cros-ec-mkbp-proximity.yaml#"
10219ad93bcSStephen Boyd
1035c024e68SRicardo Cañuelo  codecs:
1045c024e68SRicardo Cañuelo    type: object
1055c024e68SRicardo Cañuelo    additionalProperties: false
1065c024e68SRicardo Cañuelo
1075c024e68SRicardo Cañuelo    properties:
1085c024e68SRicardo Cañuelo      '#address-cells':
1095c024e68SRicardo Cañuelo        const: 2
1105c024e68SRicardo Cañuelo
1115c024e68SRicardo Cañuelo      '#size-cells':
1125c024e68SRicardo Cañuelo        const: 1
1135c024e68SRicardo Cañuelo
1145c024e68SRicardo Cañuelo    patternProperties:
1155c024e68SRicardo Cañuelo      "^ec-codec@[a-f0-9]+$":
1165c024e68SRicardo Cañuelo        type: object
1175c024e68SRicardo Cañuelo        $ref: "/schemas/sound/google,cros-ec-codec.yaml#"
1185c024e68SRicardo Cañuelo
1195c024e68SRicardo Cañuelo    required:
1205c024e68SRicardo Cañuelo      - "#address-cells"
1215c024e68SRicardo Cañuelo      - "#size-cells"
1225c024e68SRicardo Cañuelo
12380cf16deSIkjoon Jang  cbas:
12480cf16deSIkjoon Jang    type: object
12580cf16deSIkjoon Jang
12680cf16deSIkjoon Jang    description:
12780cf16deSIkjoon Jang      This device is used to signal when a detachable base is attached
12880cf16deSIkjoon Jang      to a Chrome OS tablet. This device cannot be detected at runtime.
12980cf16deSIkjoon Jang
13080cf16deSIkjoon Jang    properties:
13180cf16deSIkjoon Jang      compatible:
13280cf16deSIkjoon Jang        const: google,cros-cbas
13380cf16deSIkjoon Jang
13480cf16deSIkjoon Jang    required:
13580cf16deSIkjoon Jang      - compatible
13680cf16deSIkjoon Jang
13780cf16deSIkjoon Jang    additionalProperties: false
13880cf16deSIkjoon Jang
1391acd4577SRicardo CañuelopatternProperties:
1401acd4577SRicardo Cañuelo  "^i2c-tunnel[0-9]*$":
1411acd4577SRicardo Cañuelo    type: object
1421acd4577SRicardo Cañuelo    $ref: "/schemas/i2c/google,cros-ec-i2c-tunnel.yaml#"
1431acd4577SRicardo Cañuelo
1445c024e68SRicardo Cañuelo  "^regulator@[0-9]+$":
1455c024e68SRicardo Cañuelo    type: object
1465c024e68SRicardo Cañuelo    $ref: "/schemas/regulator/google,cros-ec-regulator.yaml#"
1475c024e68SRicardo Cañuelo
1485c024e68SRicardo Cañuelo  "^extcon[0-9]*$":
1495c024e68SRicardo Cañuelo    type: object
1505c024e68SRicardo Cañuelo    $ref: "/schemas/extcon/extcon-usbc-cros-ec.yaml#"
1515c024e68SRicardo Cañuelo
15246b57806SIkjoon Jangrequired:
15346b57806SIkjoon Jang  - compatible
15446b57806SIkjoon Jang
15546b57806SIkjoon Jangif:
15646b57806SIkjoon Jang  properties:
15746b57806SIkjoon Jang    compatible:
15846b57806SIkjoon Jang      contains:
15946b57806SIkjoon Jang        enum:
16046b57806SIkjoon Jang          - google,cros-ec-i2c
16146b57806SIkjoon Jang          - google,cros-ec-rpmsg
16246b57806SIkjoon Jangthen:
16346b57806SIkjoon Jang  properties:
16446b57806SIkjoon Jang    google,cros-ec-spi-pre-delay: false
16546b57806SIkjoon Jang    google,cros-ec-spi-msg-delay: false
16646b57806SIkjoon Jang    spi-max-frequency: false
16746b57806SIkjoon Jang
16846b57806SIkjoon JangadditionalProperties: false
16946b57806SIkjoon Jang
17046b57806SIkjoon Jangexamples:
17146b57806SIkjoon Jang  # Example for I2C
17246b57806SIkjoon Jang  - |
17346b57806SIkjoon Jang    #include <dt-bindings/gpio/gpio.h>
17446b57806SIkjoon Jang    #include <dt-bindings/interrupt-controller/irq.h>
17546b57806SIkjoon Jang
17646b57806SIkjoon Jang    i2c0 {
17746b57806SIkjoon Jang        #address-cells = <1>;
17846b57806SIkjoon Jang        #size-cells = <0>;
17946b57806SIkjoon Jang
18046b57806SIkjoon Jang        cros-ec@1e {
18146b57806SIkjoon Jang            compatible = "google,cros-ec-i2c";
18246b57806SIkjoon Jang            reg = <0x1e>;
18346b57806SIkjoon Jang            interrupts = <6 0>;
18446b57806SIkjoon Jang            interrupt-parent = <&gpio0>;
18546b57806SIkjoon Jang        };
18646b57806SIkjoon Jang    };
18746b57806SIkjoon Jang
18846b57806SIkjoon Jang  # Example for SPI
18946b57806SIkjoon Jang  - |
19046b57806SIkjoon Jang    #include <dt-bindings/gpio/gpio.h>
19146b57806SIkjoon Jang    #include <dt-bindings/interrupt-controller/irq.h>
19246b57806SIkjoon Jang
19346b57806SIkjoon Jang    spi0 {
19446b57806SIkjoon Jang        #address-cells = <1>;
19546b57806SIkjoon Jang        #size-cells = <0>;
19646b57806SIkjoon Jang
19746b57806SIkjoon Jang        cros-ec@0 {
19846b57806SIkjoon Jang            compatible = "google,cros-ec-spi";
19946b57806SIkjoon Jang            reg = <0x0>;
20046b57806SIkjoon Jang            google,cros-ec-spi-msg-delay = <30>;
20146b57806SIkjoon Jang            google,cros-ec-spi-pre-delay = <10>;
20246b57806SIkjoon Jang            interrupts = <99 0>;
20346b57806SIkjoon Jang            interrupt-parent = <&gpio7>;
20446b57806SIkjoon Jang            spi-max-frequency = <5000000>;
20519ad93bcSStephen Boyd
20619ad93bcSStephen Boyd            proximity {
20719ad93bcSStephen Boyd                    compatible = "google,cros-ec-mkbp-proximity";
20819ad93bcSStephen Boyd            };
20980cf16deSIkjoon Jang
21080cf16deSIkjoon Jang            cbas {
21180cf16deSIkjoon Jang                compatible = "google,cros-cbas";
21280cf16deSIkjoon Jang            };
21346b57806SIkjoon Jang        };
21446b57806SIkjoon Jang    };
21546b57806SIkjoon Jang
21646b57806SIkjoon Jang  # Example for RPMSG
21746b57806SIkjoon Jang  - |
21846b57806SIkjoon Jang    scp0 {
21946b57806SIkjoon Jang        cros-ec {
22046b57806SIkjoon Jang            compatible = "google,cros-ec-rpmsg";
22146b57806SIkjoon Jang        };
22246b57806SIkjoon Jang    };
22346b57806SIkjoon Jang...
224