diff options
Diffstat (limited to 'src/mainboard')
-rw-r--r-- | src/mainboard/getac/p470/Kconfig | 1 | ||||
-rw-r--r-- | src/mainboard/getac/p470/devicetree.cb | 2 | ||||
-rw-r--r-- | src/mainboard/getac/p470/ec_oem.c (renamed from src/mainboard/getac/p470/ec.c) | 109 | ||||
-rw-r--r-- | src/mainboard/getac/p470/ec_oem.h (renamed from src/mainboard/getac/p470/ec.h) | 15 | ||||
-rw-r--r-- | src/mainboard/getac/p470/mainboard.c | 2 | ||||
-rw-r--r-- | src/mainboard/getac/p470/mainboard_smi.c | 3 | ||||
-rw-r--r-- | src/mainboard/roda/rk886ex/Makefile.inc | 1 | ||||
-rw-r--r-- | src/mainboard/roda/rk886ex/devicetree.cb | 2 | ||||
-rw-r--r-- | src/mainboard/roda/rk886ex/ec.c | 114 | ||||
-rw-r--r-- | src/mainboard/roda/rk886ex/ec.h | 49 | ||||
-rw-r--r-- | src/mainboard/roda/rk886ex/m3885.c | 2 | ||||
-rw-r--r-- | src/mainboard/roda/rk886ex/mainboard.c | 2 |
12 files changed, 14 insertions, 288 deletions
diff --git a/src/mainboard/getac/p470/Kconfig b/src/mainboard/getac/p470/Kconfig index f531a511a6..e4e8292349 100644 --- a/src/mainboard/getac/p470/Kconfig +++ b/src/mainboard/getac/p470/Kconfig @@ -27,6 +27,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy select SOUTHBRIDGE_TI_PCIXX12 select SUPERIO_SMSC_FDC37N972 select SUPERIO_SMSC_SIO10N268 + select EC_ACPI select BOARD_HAS_FADT select HAVE_ACPI_TABLES select HAVE_PIRQ_TABLE diff --git a/src/mainboard/getac/p470/devicetree.cb b/src/mainboard/getac/p470/devicetree.cb index 2929cbee5b..9b376c79cf 100644 --- a/src/mainboard/getac/p470/devicetree.cb +++ b/src/mainboard/getac/p470/devicetree.cb @@ -135,6 +135,8 @@ chip northbridge/intel/i945 end device pnp 4e.b off # HWM end + chip ec/acpi + end end end diff --git a/src/mainboard/getac/p470/ec.c b/src/mainboard/getac/p470/ec_oem.c index 2fe44afb8a..30d41359cf 100644 --- a/src/mainboard/getac/p470/ec.c +++ b/src/mainboard/getac/p470/ec_oem.c @@ -22,113 +22,8 @@ #include <console/console.h> #include <arch/io.h> #include <delay.h> -#include "ec.h" - -int send_ec_command(u8 command) -{ - int timeout; - - timeout = 0x7ff; - while ((inb(EC_SC) & EC_IBF) && --timeout) { - udelay(10); - if ((timeout & 0xff) == 0) - printk(BIOS_SPEW, "."); - } - if (!timeout) { - printk(BIOS_DEBUG, "Timeout while sending command 0x%02x to EC!\n", - command); - // return -1; - } - - outb(command, EC_SC); - return 0; -} - -int send_ec_data(u8 data) -{ - int timeout; - - timeout = 0x7ff; - while ((inb(EC_SC) & EC_IBF) && --timeout) { // wait for IBF = 0 - udelay(10); - if ((timeout & 0xff) == 0) - printk(BIOS_SPEW, "."); - } - if (!timeout) { - printk(BIOS_DEBUG, "Timeout while sending data 0x%02x to EC!\n", - data); - // return -1; - } - - outb(data, EC_DATA); - - return 0; -} - -int send_ec_data_nowait(u8 data) -{ - outb(data, EC_DATA); - - return 0; -} - -u8 recv_ec_data(void) -{ - int timeout; - u8 data; - - timeout = 0x7fff; - while (--timeout) { // Wait for OBF = 1 - if (inb(EC_SC) & EC_OBF) { - break; - } - udelay(10); - if ((timeout & 0xff) == 0) - printk(BIOS_SPEW, "."); - } - if (!timeout) { - printk(BIOS_DEBUG, "\nTimeout while receiving data from EC!\n"); - // return -1; - } - - data = inb(EC_DATA); - printk(BIOS_SPEW, "recv_ec_data: 0x%02x\n", data); - - return data; -} - -u8 ec_read(u8 addr) -{ - send_ec_command(0x80); - send_ec_data(addr); - - return recv_ec_data(); -} - -int ec_write(u8 addr, u8 data) -{ - send_ec_command(0x81); - send_ec_data(addr); - return send_ec_data(data); -} - -int ec_dump_status(void) -{ - u8 ec_sc = inb(EC_SC); - printk(BIOS_DEBUG, "Embedded Controller Status: "); - if (ec_sc & (1 << 6)) printk(BIOS_DEBUG, "SMI_EVT "); - if (ec_sc & (1 << 5)) printk(BIOS_DEBUG, "SCI_EVT "); - if (ec_sc & (1 << 4)) printk(BIOS_DEBUG, "BURST "); - if (ec_sc & (1 << 3)) printk(BIOS_DEBUG, "CMD "); - if (ec_sc & (1 << 1)) printk(BIOS_DEBUG, "IBF "); - if (ec_sc & (1 << 0)) printk(BIOS_DEBUG, "OBF "); - printk(BIOS_DEBUG, "\n"); - - return ec_sc; -} - - -/* ********************************** */ +#include <ec/acpi/ec.h> +#include "ec_oem.h" int send_ec_oem_command(u8 command) { diff --git a/src/mainboard/getac/p470/ec.h b/src/mainboard/getac/p470/ec_oem.h index 1fe21e5eb5..14f7484a78 100644 --- a/src/mainboard/getac/p470/ec.h +++ b/src/mainboard/getac/p470/ec_oem.h @@ -19,12 +19,8 @@ * MA 02110-1301 USA */ -#ifndef _MAINBOARD_EC_H -#define _MAINBOARD_EC_H - -#define EC_DATA 0x62 -#define EC_SC 0x66 - +#ifndef _MAINBOARD_EC_OEM_H +#define _MAINBOARD_EC_OEM_H #define EC_OEM_DATA 0x68 #define EC_OEM_SC 0x6c @@ -44,13 +40,6 @@ #define BD_EC 0x83 // Burst Disable Embedded Controller #define QR_EC 0x84 // Query Embedded Controller -int send_ec_command(u8 command); -int send_ec_data(u8 data); -int send_ec_data_nowait(u8 data); -u8 recv_ec_data(void); -u8 ec_read(u8 addr); -int ec_write(u8 addr, u8 data); - int send_ec_oem_command(u8 command); int send_ec_oem_data(u8 data); int send_ec_oem_data_nowait(u8 data); diff --git a/src/mainboard/getac/p470/mainboard.c b/src/mainboard/getac/p470/mainboard.c index a861f43855..8f8a39544c 100644 --- a/src/mainboard/getac/p470/mainboard.c +++ b/src/mainboard/getac/p470/mainboard.c @@ -28,7 +28,7 @@ #include "chip.h" #include "hda_verb.h" -#include "ec.c" +#include "ec_oem.c" #define MAX_LCD_BRIGHTNESS 0xd8 diff --git a/src/mainboard/getac/p470/mainboard_smi.c b/src/mainboard/getac/p470/mainboard_smi.c index 47dd3bce85..d29fe587c8 100644 --- a/src/mainboard/getac/p470/mainboard_smi.c +++ b/src/mainboard/getac/p470/mainboard_smi.c @@ -25,7 +25,8 @@ #include <cpu/x86/smm.h> #include "southbridge/intel/i82801gx/i82801gx.h" #include "southbridge/intel/i82801gx/nvs.h" -#include "ec.c" +#include <ec/acpi/ec.h> +#include "ec_oem.c" #define MAX_LCD_BRIGHTNESS 0xd8 diff --git a/src/mainboard/roda/rk886ex/Makefile.inc b/src/mainboard/roda/rk886ex/Makefile.inc index e36824cce1..549654ad8e 100644 --- a/src/mainboard/roda/rk886ex/Makefile.inc +++ b/src/mainboard/roda/rk886ex/Makefile.inc @@ -18,7 +18,6 @@ ## ramstage-y += m3885.c -ramstage-y += ec.c driver-y += rtl8168.c smm-$(CONFIG_HAVE_SMI_HANDLER) += mainboard_smi.c diff --git a/src/mainboard/roda/rk886ex/devicetree.cb b/src/mainboard/roda/rk886ex/devicetree.cb index a139e25966..a713331172 100644 --- a/src/mainboard/roda/rk886ex/devicetree.cb +++ b/src/mainboard/roda/rk886ex/devicetree.cb @@ -106,6 +106,8 @@ chip northbridge/intel/i945 device pnp ff.1 on # dummy address end end + chip ec/acpi + end end #device pci 1f.1 off end # IDE diff --git a/src/mainboard/roda/rk886ex/ec.c b/src/mainboard/roda/rk886ex/ec.c deleted file mode 100644 index 4c39a8419e..0000000000 --- a/src/mainboard/roda/rk886ex/ec.c +++ /dev/null @@ -1,114 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2008-2009 coresystems GmbH - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; version 2 of - * the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, - * MA 02110-1301 USA - */ - -#include <console/console.h> -#include <arch/io.h> -#include <delay.h> -#include "ec.h" - -int send_ec_command(u8 command) -{ - int timeout; - - timeout = 0x7ff; - while ((inb(EC_SC) & EC_IBF) && --timeout) { - udelay(10); - if ((timeout & 0xff) == 0) - printk(BIOS_SPEW, "."); - } - if (!timeout) { - printk(BIOS_DEBUG, "Timeout while sending command 0x%02x to EC!\n", - command); - // return -1; - } - - outb(command, EC_SC); - return 0; -} - -int send_ec_data(u8 data) -{ - int timeout; - - timeout = 0x7ff; - while ((inb(EC_SC) & EC_IBF) && --timeout) { // wait for IBF = 0 - udelay(10); - if ((timeout & 0xff) == 0) - printk(BIOS_SPEW, "."); - } - if (!timeout) { - printk(BIOS_DEBUG, "Timeout while sending data 0x%02x to EC!\n", - data); - // return -1; - } - - outb(data, EC_DATA); - - return 0; -} - -int send_ec_data_nowait(u8 data) -{ - outb(data, EC_DATA); - - return 0; -} - -u8 recv_ec_data(void) -{ - int timeout; - u8 data; - - timeout = 0x7fff; - while (--timeout) { // Wait for OBF = 1 - if (inb(EC_SC) & EC_OBF) { - break; - } - udelay(10); - if ((timeout & 0xff) == 0) - printk(BIOS_SPEW, "."); - } - if (!timeout) { - printk(BIOS_DEBUG, "\nTimeout while receiving data from EC!\n"); - // return -1; - } - - data = inb(EC_DATA); - printk(BIOS_DEBUG, "recv_ec_data: 0x%02x\n", data); - - return data; -} - -u8 ec_read(u8 addr) -{ - send_ec_command(0x80); - send_ec_data(addr); - - return recv_ec_data(); -} - -int ec_write(u8 addr, u8 data) -{ - send_ec_command(0x81); - send_ec_data(addr); - return send_ec_data(data); -} - diff --git a/src/mainboard/roda/rk886ex/ec.h b/src/mainboard/roda/rk886ex/ec.h deleted file mode 100644 index 49b7491696..0000000000 --- a/src/mainboard/roda/rk886ex/ec.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2008-2009 coresystems GmbH - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef _MAINBOARD_EC_H -#define _MAINBOARD_EC_H - -#define EC_DATA 0x62 -#define EC_SC 0x66 - -/* EC_SC input */ -#define EC_SMI_EVT (1 << 6) // 1: SMI event pending -#define EC_SCI_EVT (1 << 5) // 1: SCI event pending -#define EC_BURST (1 << 4) // controller is in burst mode -#define EC_CMD (1 << 3) // 1: byte in data register is command - // 0: byte in data register is data -#define EC_IBF (1 << 1) // 1: input buffer full (data ready for ec) -#define EC_OBF (1 << 0) // 1: output buffer full (data ready for host) -/* EC_SC output */ -#define RD_EC 0x80 // Read Embedded Controller -#define WR_EC 0x81 // Write Embedded Controller -#define BE_EC 0x82 // Burst Enable Embedded Controller -#define BD_EC 0x83 // Burst Disable Embedded Controller -#define QR_EC 0x84 // Query Embedded Controller - -int send_ec_command(u8 command); -int send_ec_data(u8 data); -int send_ec_data_nowait(u8 data); -u8 recv_ec_data(void); -u8 ec_read(u8 addr); -int ec_write(u8 addr, u8 data); - -#endif - diff --git a/src/mainboard/roda/rk886ex/m3885.c b/src/mainboard/roda/rk886ex/m3885.c index 5173ecfd39..29d12bca99 100644 --- a/src/mainboard/roda/rk886ex/m3885.c +++ b/src/mainboard/roda/rk886ex/m3885.c @@ -25,7 +25,7 @@ #include <arch/io.h> #include <delay.h> -#include "ec.h" +#include <ec/acpi/ec.h> #include "m3885.h" #define TH0LOW 80 diff --git a/src/mainboard/roda/rk886ex/mainboard.c b/src/mainboard/roda/rk886ex/mainboard.c index f444e0aad7..2c5b5e3d71 100644 --- a/src/mainboard/roda/rk886ex/mainboard.c +++ b/src/mainboard/roda/rk886ex/mainboard.c @@ -30,7 +30,7 @@ #include <arch/coreboot_tables.h> #include "chip.h" -#include "ec.h" +#include <ec/acpi/ec.h> #include "m3885.h" #define DUMP_RUNTIME_REGISTERS 0 |