summaryrefslogtreecommitdiff
path: root/src/mainboard/getac
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/getac')
-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
6 files changed, 10 insertions, 122 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