diff options
Diffstat (limited to 'src/mainboard/lenovo/x201')
-rw-r--r-- | src/mainboard/lenovo/x201/smi.h | 22 | ||||
-rw-r--r-- | src/mainboard/lenovo/x201/smihandler.c | 39 |
2 files changed, 9 insertions, 52 deletions
diff --git a/src/mainboard/lenovo/x201/smi.h b/src/mainboard/lenovo/x201/smi.h deleted file mode 100644 index 4e99db9520..0000000000 --- a/src/mainboard/lenovo/x201/smi.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2011 Sven Schnelle <svens@stackframe.org> - * - * 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. - */ - -#ifndef MAINBOARD_LENOVO_X60_SMI_H -#define MAINBOARD_LENOVO_X60_SMI_H - -#define SMI_DOCK_CONNECT 0x01 -#define SMI_DOCK_DISCONNECT 0x02 - -#endif diff --git a/src/mainboard/lenovo/x201/smihandler.c b/src/mainboard/lenovo/x201/smihandler.c index c9c52abc1d..4ba10b47cd 100644 --- a/src/mainboard/lenovo/x201/smihandler.c +++ b/src/mainboard/lenovo/x201/smihandler.c @@ -24,38 +24,10 @@ #include <ec/lenovo/h8/h8.h> #include <delay.h> #include "dock.h" -#include "smi.h" #define GPE_EC_SCI 1 #define GPE_EC_WAKE 13 -int mainboard_io_trap_handler(int smif) -{ - switch (smif) { - case SMI_DOCK_CONNECT: - ec_clr_bit(0x03, 2); - udelay(250000); - dock_connect(); - ec_set_bit(0x03, 2); - /* set dock LED to indicate status */ - ec_write(0x0c, 0x09); - ec_write(0x0c, 0x88); - break; - - case SMI_DOCK_DISCONNECT: - ec_clr_bit(0x03, 2); - dock_disconnect(); - break; - - default: - return 0; - } - - /* On success, the IO Trap Handler returns 1 - * On failure, the IO Trap Handler returns a value != 1 */ - return 1; -} - static void mainboard_smi_handle_ec_sci(void) { u8 status = inb(EC_SC); @@ -74,12 +46,19 @@ static void mainboard_smi_handle_ec_sci(void) /* Power loss */ case 0x50: /* Undock Key */ - mainboard_io_trap_handler(SMI_DOCK_DISCONNECT); + ec_clr_bit(0x03, 2); + dock_disconnect(); break; case 0x37: case 0x58: /* Dock Event */ - mainboard_io_trap_handler(SMI_DOCK_CONNECT); + ec_clr_bit(0x03, 2); + udelay(250000); + dock_connect(); + ec_set_bit(0x03, 2); + /* set dock LED to indicate status */ + ec_write(0x0c, 0x09); + ec_write(0x0c, 0x88); break; default: break; |