ec/acpi: Add ACPI methods for generic EC access
authorNico Huber <nico.huber@secunet.com>
Thu, 23 May 2013 14:35:05 +0000 (16:35 +0200)
committerStefan Reinauer <stefan.reinauer@coreboot.org>
Thu, 6 Jun 2013 19:19:28 +0000 (21:19 +0200)
commit7bb02512d9e3f1c2c95f83ef02a2209c5366ae58
treeb9e21d976513941f1c99b7431582ee3fcbb553a2
parentccc7d1f229ab4b0dc9b10f63966640bbac750722
ec/acpi: Add ACPI methods for generic EC access

Port most of the functions found in ec/acpi/ec.c to ACPI Source Language
(ASL). These functions are used to control embedded controllers with the
standard ACPI interface (mostly through i/o ports 0x62 / 0x66).

The following methods are implemented and tested against the power
managements channels of a ITE IT8516E embedded controller:
 * WAIT_EC_SC           Wait for a bit in the EC_SC register
 * SEND_EC_COMMAND      Send one command byte to the EC_SC register
 * SEND_EC_DATA         Send one data byte to the EC_DATA register
 * RECV_EC_DATA         Read one byte of data from the EC_DATA register
 * EC_READ              Read one byte from ec memory (through cmd 0x80)
 * EC_WRITE             Write one byte to ec memory (through cmd 0x81)

To use the provided methods, one should include `ec/acpi/ec.asl` in the
EC device code. Prior doing so, two macros should be defined to identify
the used i/o ports:
 * EC_SC_IO     I/o address of the EC_SC register
 * EC_DATA_IO   I/o address of the EC_DATA register

Change-Id: I8c6706075fb4980329c228e5b830d5f4e9b188dd
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: http://review.coreboot.org/3285
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Tested-by: build bot (Jenkins)
src/ec/acpi/ec.asl [new file with mode: 0644]