summaryrefslogtreecommitdiff
path: root/src/mainboard
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard')
-rw-r--r--src/mainboard/getac/p470/Kconfig1
-rw-r--r--src/mainboard/getac/p470/devicetree.cb2
-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.c2
-rw-r--r--src/mainboard/getac/p470/mainboard_smi.c3
-rw-r--r--src/mainboard/roda/rk886ex/Makefile.inc1
-rw-r--r--src/mainboard/roda/rk886ex/devicetree.cb2
-rw-r--r--src/mainboard/roda/rk886ex/ec.c114
-rw-r--r--src/mainboard/roda/rk886ex/ec.h49
-rw-r--r--src/mainboard/roda/rk886ex/m3885.c2
-rw-r--r--src/mainboard/roda/rk886ex/mainboard.c2
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