cros-ec.txt 1.3 KB
Newer Older
1 2 3 4 5 6
ChromeOS Embedded Controller

Google's ChromeOS EC is a Cortex-M device which talks to the AP and
implements various function such as keyboard and battery charging.

The EC can be connect through various means (I2C, SPI, LPC) and the
7
compatible string used depends on the interface. Each connection method has
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
its own driver which connects to the top level interface-agnostic EC driver.
Other Linux driver (such as cros-ec-keyb for the matrix keyboard) connect to
the top-level driver.

Required properties (I2C):
- compatible: "google,cros-ec-i2c"
- reg: I2C slave address

Required properties (SPI):
- compatible: "google,cros-ec-spi"
- reg: SPI chip select

Required properties (LPC):
- compatible: "google,cros-ec-lpc"
- reg: List of (IO address, size) pairs defining the interface uses


Example for I2C:

i2c@12CA0000 {
	cros-ec@1e {
		reg = <0x1e>;
		compatible = "google,cros-ec-i2c";
		interrupts = <14 0>;
		interrupt-parent = <&wakeup_eint>;
		wakeup-source;
	};


Example for SPI:

spi@131b0000 {
	ec@0 {
		compatible = "google,cros-ec-spi";
		reg = <0x0>;
		interrupts = <14 0>;
		interrupt-parent = <&wakeup_eint>;
		wakeup-source;
		spi-max-frequency = <5000000>;
		controller-data {
		cs-gpio = <&gpf0 3 4 3 0>;
		samsung,spi-cs;
		samsung,spi-feedback-delay = <2>;
		};
	};
};


Example for LPC is not supplied as it is not yet implemented.