mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
4ab6174e8c
This is the base EC implementation, which provides a high level interface to the EC for use by the rest of the kernel. The actual communcations is dealt with by a separate protocol driver which registers itself with this interface. Interrupts are passed on through a notifier. A simple message structure is used to pass messages to the protocol driver. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Che-Liang Chiou <clchiou@chromium.org> Signed-off-by: Jonathan Kliegman <kliegs@chromium.org> Signed-off-by: Luigi Semenzato <semenzato@chromium.org> Signed-off-by: Olof Johansson <olofj@chromium.org> Signed-off-by: Vincent Palatin <vpalatin@chromium.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
57 lines
1.3 KiB
Plaintext
57 lines
1.3 KiB
Plaintext
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
|
|
compatible string used depends on the inteface. Each connection method has
|
|
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.
|