summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorrnoland <rnoland@FreeBSD.org>2012-05-29 16:39:42 +0000
committerrnoland <rnoland@FreeBSD.org>2012-05-29 16:39:42 +0000
commite8a3587ae36ec300685b0aa5050d18543a535ade (patch)
treef9a6673a5c2a3ff1c2d70147a54e77bb7e0738ab /sys
parent7e8e2c48ffb589744c66beda706744d365a52357 (diff)
downloadFreeBSD-src-e8a3587ae36ec300685b0aa5050d18543a535ade.zip
FreeBSD-src-e8a3587ae36ec300685b0aa5050d18543a535ade.tar.gz
Add device ids for the Winbond 83627DHG-P chip and set the registers to
trigger the keyboard reset line on timeout. Reviewed by: bz MFC after: 1 week
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/wbwd/wbwd.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/dev/wbwd/wbwd.c b/sys/dev/wbwd/wbwd.c
index fd33cca..266f87e 100644
--- a/sys/dev/wbwd/wbwd.c
+++ b/sys/dev/wbwd/wbwd.c
@@ -78,6 +78,7 @@ __FBSDID("$FreeBSD$");
#define WB_LDN8_CRF5 0xF5
#define WB_LDN8_CRF5_SCALE 0x08 /* 0: 1s, 1: 60s */
#define WB_LDN8_CRF5_KEYB_P20 0x04 /* 1: keyb P20 forces timeout */
+#define WB_LDN8_CRF5_KBRST 0x02 /* 1: timeout causes pin60 kbd reset */
/* CRF6: Watchdog Timeout (0 == off). Mapped to reg_timeout. */
#define WB_LDN8_CRF6 0xF6
@@ -180,6 +181,12 @@ struct winbond_vendor_device_id {
.device_rev = 0x25,
.descr = "Winbond 83627DHG IC ver. 5",
},
+ {
+ .vendor_id = 0x5ca3,
+ .device_id = 0xb0,
+ .device_rev = 0x73,
+ .descr = "Winbond 83627DHG-P",
+ },
};
/*
@@ -637,6 +644,7 @@ wb_attach(device_t dev)
* Disable all all interrupt reset sources (defaults).
*/
sc->reg_1 &= ~(WB_LDN8_CRF5_KEYB_P20);
+ sc->reg_1 |= WB_LDN8_CRF5_KBRST;
write_efir_1(sc, WB_LDN8_CRF5);
write_efdr_1(sc, sc->reg_1);
OpenPOWER on IntegriCloud