aos/devices/acpi_ec_mem.dev
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

55 lines
1.7 KiB
Plaintext

/*
* Copyright (c) 2009, ETH Zurich. All rights reserved.
*
* This file is distributed under the terms in the attached LICENSE file.
* If you do not find this file, copies can be found by writing to:
* ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
*/
/*
* acpi_ec.dev
*
* DESCRIPTION: ACPI Embedded Controller (EC)
*
* This file describes the interface to the ACPI standard embedded controller.
* See ACPI specification v4.0 section 12.2 (p445).
*
* The EC device consists of two 8-bit registers: status/command and data.
*
* FIXME: according to the ACPI spec (12.11) the controller may reside in
* either IO or memory space. This driver assumes IO (because supporting
* both in Mackerel would be quite clunky).
*/
device acpi_ec_mem msbfirst (addr data, addr sc) "ACPI embedded controller" {
// 12.2.1
regtype status "Status" {
_ 1;
smi_evt 1 "SMI event pending";
sci_evt 1 "SCI event pending";
burst 1 "Controller is in burst mode";
cmd 1 "Byte in data register is a command byte";
_ 1;
ibf 1 "Input buffer is full";
obf 1 "Output buffer is full";
};
// 12.3
constants commands width(8) "Command encodings" {
read = 0x80 "Read";
write = 0x81 "Write";
burst_en = 0x82 "Burst enable";
burst_dis = 0x83 "Burst disable";
query = 0x84 "Query";
};
// 12.2.1
register status ro addr(sc, 0) "Status" type(status);
// 12.2.2
register cmd wo also addr(sc, 0) "Command" type(commands);
// 12.2.3
register data rw addr(data, 0) "Data" type(uint8);
};