aboutsummaryrefslogtreecommitdiff
path: root/src/ec/lenovo
diff options
context:
space:
mode:
authorSven Schnelle <svens@stackframe.org>2011-04-27 19:47:28 +0000
committerSven Schnelle <svens@stackframe.org>2011-04-27 19:47:28 +0000
commitcf7dffeabc82c50f807a62ba8ef6ed45ff53cbc8 (patch)
treeaf1172d8201770382ba7499daddf8a052db8cd12 /src/ec/lenovo
parent4885daadb33bea37ef3970696d3cf0d05e9852a3 (diff)
Lenovo H8: add h8_ultrabay_device_present()
returns 1 if a CDROM/HDD device is plugging in the ultrabay. Return 0 if there's a battery or superio extensions plugged in. Signed-off-by: Sven Schnelle <svens@stackframe.org> Acked-by: Peter Stuge <peter@stuge.se> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6545 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/ec/lenovo')
-rw-r--r--src/ec/lenovo/h8/h8.c5
-rw-r--r--src/ec/lenovo/h8/h8.h5
2 files changed, 10 insertions, 0 deletions
diff --git a/src/ec/lenovo/h8/h8.c b/src/ec/lenovo/h8/h8.c
index 6a595257f1..e2e5f998be 100644
--- a/src/ec/lenovo/h8/h8.c
+++ b/src/ec/lenovo/h8/h8.c
@@ -87,6 +87,11 @@ void h8_disable_event(int event)
}
+int h8_ultrabay_device_present(void)
+{
+ return ec_read(H8_STATUS1) & 0x5 ? 0 : 1;
+}
+
static void h8_enable(device_t dev)
{
struct ec_lenovo_h8_config *conf = dev->chip_info;
diff --git a/src/ec/lenovo/h8/h8.h b/src/ec/lenovo/h8/h8.h
index d263313fad..b5d8f017bf 100644
--- a/src/ec/lenovo/h8/h8.h
+++ b/src/ec/lenovo/h8/h8.h
@@ -25,6 +25,7 @@ void h8_wlan_enable(int on);
void h8_set_audio_mute(int on);
void h8_enable_event(int event);
void h8_disable_event(int event);
+int h8_ultrabay_device_present(void);
/* EC registers */
#define H8_CONFIG0 0x00
@@ -102,6 +103,10 @@ void h8_disable_event(int event);
#define H8_EVENT_FN_PRESS 0x39
+#define H8_STATUS0 0x46
+#define H8_STATUS1 0x47
+#define H8_STATUS2 0x48
+
#define H8_EVENT_BAT0 0x4a
#define H8_EVENT_BAT0_STATE 0x4b