diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2006-01-14 15:14:34 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2006-01-14 15:14:34 +0000 |
commit | f83a64de348c2d1013a09e1230f2b64cb75c2f77 (patch) | |
tree | bd62ba58d13f948232fa0e60142985918a1106ff /sys/dev/ic | |
parent | 56d66ee4aa47abf8364b55b921e2fbf164cc7f35 (diff) |
Rename nslm7x.c into lm78.c and nslm7xvar.h into lm78var.h, and clean up
lm78var.h.
Now that I've completely rewritten the driver, replace copyright with my own.
suggested by deraadt@
Diffstat (limited to 'sys/dev/ic')
-rw-r--r-- | sys/dev/ic/lm78.c (renamed from sys/dev/ic/nslm7x.c) | 95 | ||||
-rw-r--r-- | sys/dev/ic/lm78var.h | 146 | ||||
-rw-r--r-- | sys/dev/ic/nslm7xvar.h | 167 |
3 files changed, 183 insertions, 225 deletions
diff --git a/sys/dev/ic/nslm7x.c b/sys/dev/ic/lm78.c index 30ca6c2360d..344aaae4f89 100644 --- a/sys/dev/ic/nslm7x.c +++ b/sys/dev/ic/lm78.c @@ -1,40 +1,19 @@ -/* $OpenBSD: nslm7x.c,v 1.18 2006/01/12 22:45:46 kettenis Exp $ */ -/* $NetBSD: nslm7x.c,v 1.17 2002/11/15 14:55:41 ad Exp $ */ +/* $OpenBSD: lm78.c,v 1.1 2006/01/14 15:14:33 kettenis Exp $ */ -/*- - * Copyright (c) 2000 The NetBSD Foundation, Inc. - * All rights reserved. +/* + * Copyright (c) 2005, 2006 Mark Kettenis * - * This code is derived from software contributed to The NetBSD Foundation - * by Bill Squier. + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the NetBSD - * Foundation, Inc. and its contributors. - * 4. Neither the name of The NetBSD Foundation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include <sys/param.h> @@ -45,7 +24,7 @@ #include <sys/sensors.h> #include <machine/bus.h> -#include <dev/ic/nslm7xvar.h> +#include <dev/ic/lm78var.h> #if defined(LMDEBUG) #define DPRINTF(x) do { printf x; } while (0) @@ -343,8 +322,8 @@ lm_attach(struct lm_softc *sc) } /* Start the monitoring loop */ - config = sc->lm_readreg(sc, LMD_CONFIG); - sc->lm_writereg(sc, LMD_CONFIG, config | 0x01); + config = sc->lm_readreg(sc, LM_CONFIG); + sc->lm_writereg(sc, LM_CONFIG, config | 0x01); /* Add sensors */ for (i = 0; i < sc->numsensors; ++i) @@ -357,18 +336,18 @@ lm_match(struct lm_softc *sc) int chipid; /* See if we have an LM78 or LM79. */ - chipid = sc->lm_readreg(sc, LMD_CHIPID) & LM_ID_MASK; + chipid = sc->lm_readreg(sc, LM_CHIPID) & LM_CHIPID_MASK; switch(chipid) { - case LM_ID_LM78: + case LM_CHIPID_LM78: printf(": LM78\n"); break; - case LM_ID_LM78J: + case LM_CHIPID_LM78J: printf(": LM78J\n"); break; - case LM_ID_LM79: + case LM_CHIPID_LM79: printf(": LM79\n"); break; - case LM_ID_LM81: + case LM_CHIPID_LM81: printf(": LM81\n"); break; default: @@ -385,7 +364,7 @@ def_match(struct lm_softc *sc) { int chipid; - chipid = sc->lm_readreg(sc, LMD_CHIPID) & LM_ID_MASK; + chipid = sc->lm_readreg(sc, LM_CHIPID) & LM_CHIPID_MASK; printf(": unknown chip (ID %d)\n", chipid); lm_setup_sensors(sc, lm78_sensors); @@ -411,7 +390,7 @@ wb_match(struct lm_softc *sc) /* Read device/chip ID */ sc->lm_writereg(sc, WB_BANKSEL, WB_BANKSEL_B0); - devid = sc->lm_readreg(sc, LMD_CHIPID); + devid = sc->lm_readreg(sc, LM_CHIPID); chipid = sc->lm_readreg(sc, WB_BANK0_CHIPID); sc->lm_writereg(sc, WB_BANKSEL, banksel); DPRINTF(("winbond chip id 0x%x\n", chipid)); @@ -562,10 +541,10 @@ lm_refresh_fanrpm(struct lm_softc *sc, int n) */ /* FAN3 has a fixed fan divisor. */ - if (sc->lm_sensors[n].reg == LMD_FAN1 || - sc->lm_sensors[n].reg == LMD_FAN2) { - data = sc->lm_readreg(sc, LMD_VIDFAN); - if (sc->lm_sensors[n].reg == LMD_FAN1) + if (sc->lm_sensors[n].reg == LM_FAN1 || + sc->lm_sensors[n].reg == LM_FAN2) { + data = sc->lm_readreg(sc, LM_VIDFAN); + if (sc->lm_sensors[n].reg == LM_FAN1) divisor = (data >> 4) & 0x03; else divisor = (data >> 6) & 0x03; @@ -649,23 +628,23 @@ wb_refresh_fanrpm(struct lm_softc *sc, int n) * over the place. */ - if (sc->lm_sensors[n].reg == LMD_FAN1 || - sc->lm_sensors[n].reg == LMD_FAN2 || - sc->lm_sensors[n].reg == LMD_FAN3) { - data = sc->lm_readreg(sc, WB_BANK0_FANBAT); - fan = (sc->lm_sensors[n].reg - LMD_FAN1); + if (sc->lm_sensors[n].reg == LM_FAN1 || + sc->lm_sensors[n].reg == LM_FAN2 || + sc->lm_sensors[n].reg == LM_FAN3) { + data = sc->lm_readreg(sc, WB_BANK0_VBAT); + fan = (sc->lm_sensors[n].reg - LM_FAN1); if ((data >> 5) & (1 << fan)) divisor |= 0x04; } - if (sc->lm_sensors[n].reg == LMD_FAN1 || - sc->lm_sensors[n].reg == LMD_FAN2) { - data = sc->lm_readreg(sc, LMD_VIDFAN); - if (sc->lm_sensors[n].reg == LMD_FAN1) + if (sc->lm_sensors[n].reg == LM_FAN1 || + sc->lm_sensors[n].reg == LM_FAN2) { + data = sc->lm_readreg(sc, LM_VIDFAN); + if (sc->lm_sensors[n].reg == LM_FAN1) divisor |= (data >> 4) & 0x03; else divisor |= (data >> 6) & 0x03; - } else if (sc->lm_sensors[n].reg == LMD_FAN3) { + } else if (sc->lm_sensors[n].reg == LM_FAN3) { data = sc->lm_readreg(sc, WB_PIN); divisor |= (data >> 6) & 0x03; } else if (sc->lm_sensors[n].reg == WB_BANK0_FAN4 || diff --git a/sys/dev/ic/lm78var.h b/sys/dev/ic/lm78var.h new file mode 100644 index 00000000000..69d08a7843a --- /dev/null +++ b/sys/dev/ic/lm78var.h @@ -0,0 +1,146 @@ +/* $OpenBSD: lm78var.h,v 1.1 2006/01/14 15:14:33 kettenis Exp $ */ + +/* + * Copyright (c) 2005, 2006 Mark Kettenis + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* + * National Semiconductor LM78/79/81 registers + */ + +#define LM_POST_RAM 0x00 /* POST RAM occupies 0x00 -- 0x1f */ +#define LM_VALUE_RAM 0x20 /* Value RAM occupies 0x20 -- 0x3f */ +#define LM_FAN1 0x28 /* FAN1 reading */ +#define LM_FAN2 0x29 /* FAN2 reading */ +#define LM_FAN3 0x2a /* FAN3 reading */ + +#define LM_CONFIG 0x40 /* Configuration */ +#define LM_ISR1 0x41 /* Interrupt Status 1 */ +#define LM_ISR2 0x42 /* Interrupt Status 2 */ +#define LM_SMI1 0x43 /* SMI# Mask 1 */ +#define LM_SMI2 0x44 /* SMI# Mask 2 */ +#define LM_NMI1 0x45 /* NMI Mask 1 */ +#define LM_NMI2 0x46 /* NMI Mask 2 */ +#define LM_VIDFAN 0x47 /* VID/Fan Divisor */ +#define LM_SBUSADDR 0x48 /* Serial Bus Address */ +#define LM_CHIPID 0x49 /* Chip Reset/ID */ + +/* Chip IDs */ + +#define LM_CHIPID_LM78 0x00 +#define LM_CHIPID_LM78J 0x40 +#define LM_CHIPID_LM79 0xC0 +#define LM_CHIPID_LM81 0x80 +#define LM_CHIPID_MASK 0xfe + +/* + * Winbond registers + * + * Several models exists. The W83781D is mostly compatible with the + * LM78, but has two extra temperatures. Later models add extra + * voltage sensors, fans and bigger fan divisors to accomodate slow + * running fans. To accomodate the extra sensors some models have + * different memory banks. + */ + +#define WB_T23ADDR 0x4a /* Temperature 2 and 3 Serial Bus Address */ +#define WB_PIN 0x4b /* Pin Control */ +#define WB_BANKSEL 0x4e /* Bank Select */ +#define WB_VENDID 0x4f /* Vendor ID */ + +/* Bank 0 regs */ +#define WB_BANK0_CHIPID 0x58 /* Chip ID */ +#define WB_BANK0_FAN45 0x5c /* Fan 4/5 Divisor Control (W83791D only) */ +#define WB_BANK0_VBAT 0x5d /* VBAT Monitor Control */ +#define WB_BANK0_FAN4 0xba /* Fan 4 reading (W83791D only) */ +#define WB_BANK0_FAN5 0xbb /* Fan 5 reading (W83791D only) */ + +/* Bank 1 registers */ +#define WB_BANK1_T2H 0x50 /* Temperature 2 High Byte */ +#define WB_BANK1_T2L 0x51 /* Temperature 2 Low Byte */ + +/* Bank 2 registers */ +#define WB_BANK2_T3H 0x50 /* Temperature 3 High Byte */ +#define WB_BANK2_T3L 0x51 /* Temperature 3 Low Byte */ + +/* Bank 4 registers (W83782D/W83627HF and later models only) */ +#define WB_BANK4_T1OFF 0x54 /* Temperature 1 Offset */ +#define WB_BANK4_T2OFF 0x55 /* Temperature 2 Offset */ +#define WB_BANK4_T3OFF 0x56 /* Temperature 3 Offset */ + +/* Bank 5 registers (W83782D/W83627HF and later models only) */ +#define WB_BANK5_5VSB 0x50 /* 5VSB reading */ +#define WB_BANK5_VBAT 0x51 /* VBAT reading */ + +/* Bank selection */ +#define WB_BANKSEL_B0 0x00 /* Bank 0 */ +#define WB_BANKSEL_B1 0x01 /* Bank 1 */ +#define WB_BANKSEL_B2 0x02 /* Bank 2 */ +#define WB_BANKSEL_B3 0x03 /* Bank 3 */ +#define WB_BANKSEL_B4 0x04 /* Bank 4 */ +#define WB_BANKSEL_B5 0x05 /* Bank 5 */ +#define WB_BANKSEL_HBAC 0x80 /* Register 0x4f Hight Byte Access */ + +/* Vendor IDs */ +#define WB_VENDID_WINBOND 0x5ca3 /* Winbond */ +#define WB_VENDID_ASUS 0x12c3 /* ASUS */ + +/* Chip IDs */ +#define WB_CHIPID_W83781D 0x10 +#define WB_CHIPID_W83781D_2 0x11 +#define WB_CHIPID_W83627HF 0x21 +#define WB_CHIPID_AS99127F 0x31 /* Asus W83781D clone */ +#define WB_CHIPID_W83782D 0x30 +#define WB_CHIPID_W83783S 0x40 +#define WB_CHIPID_W83697HF 0x60 +#define WB_CHIPID_W83791D 0x71 +#define WB_CHIPID_W83791D_2 0x72 +#define WB_CHIPID_W83792D 0x7a +#define WB_CHIPID_W83637HF 0x80 +#define WB_CHIPID_W83627THF 0x90 + +/* Reference voltage (mV) */ +#define WB_VREF 3600 + +#define WB_MAX_SENSORS 19 + +struct lm_softc; + +struct lm_sensor { + char *desc; + enum sensor_type type; + u_int8_t bank; + u_int8_t reg; + void (*refresh)(struct lm_softc *, int); + u_int rfact; +}; + +struct lm_softc { + struct device sc_dev; + + bus_space_tag_t lm_iot; + bus_space_handle_t lm_ioh; + + int sc_flags; + struct sensor sensors[WB_MAX_SENSORS]; + struct lm_sensor *lm_sensors; + u_int numsensors; + void (*refresh_sensor_data) (struct lm_softc *); + + u_int8_t (*lm_readreg)(struct lm_softc *, int); + void (*lm_writereg)(struct lm_softc *, int, int); +}; + +void lm_attach(struct lm_softc *); diff --git a/sys/dev/ic/nslm7xvar.h b/sys/dev/ic/nslm7xvar.h deleted file mode 100644 index 92311d614f3..00000000000 --- a/sys/dev/ic/nslm7xvar.h +++ /dev/null @@ -1,167 +0,0 @@ -/* $OpenBSD: nslm7xvar.h,v 1.11 2006/01/12 22:45:46 kettenis Exp $ */ -/* $NetBSD: nslm7xvar.h,v 1.10 2002/11/15 14:55:42 ad Exp $ */ - -/*- - * Copyright (c) 2000 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Bill Squier. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the NetBSD - * Foundation, Inc. and its contributors. - * 4. Neither the name of The NetBSD Foundation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _DEV_ISA_NSLM7XVAR_H_ -#define _DEV_ISA_NSLM7XVAR_H_ - -/* ctl registers */ - -#define LMC_ADDR 0x05 -#define LMC_DATA 0x06 - -/* data registers */ - -#define LMD_SENSORBASE 0x20 /* Sensors occupy 0x20 -- 0x2a */ -#define LMD_FAN1 0x28 -#define LMD_FAN2 0x29 -#define LMD_FAN3 0x2a - -#define LMD_CONFIG 0x40 /* Configuration */ -#define LMD_ISR1 0x41 /* Interrupt Status 1 */ -#define LMD_ISR2 0x42 /* Interrupt Status 2 */ -#define LMD_SMI1 0x43 /* SMI Mask 1 */ -#define LMD_SMI2 0x44 /* SMI Mask 2 */ -#define LMD_NMI1 0x45 /* NMI Mask 1 */ -#define LMD_NMI2 0x46 /* NMI Mask 2 */ -#define LMD_VIDFAN 0x47 /* VID/Fan Divisor */ -#define LMD_SBUSADDR 0x48 /* Serial Bus Address */ -#define LMD_CHIPID 0x49 /* Chip Reset/ID */ - -/* misc constants */ - -#define LM_ID_LM78 0x00 -#define LM_ID_LM78J 0x40 -#define LM_ID_LM79 0xC0 -#define LM_ID_LM81 0x80 -#define LM_ID_MASK 0xfe - -/* - * Additional registers for the Winbond chips: - * W83781D: mostly LM78 compatible; extra temp sensors in bank 1 & 2. - * W83782D & W83627HF: voltage sensors needs different handling, more FAN - * dividers; extra voltage sensors in bank 4. - * W83791D: extra fans; all sensors accessable through bank 0. - */ -#define WB_T23ADDR 0x4a /* temp sens 2/3 I2C addr */ -#define WB_PIN 0x4b /* pin & fan3 divider */ -#define WB_BANKSEL 0x4e /* banck select register */ -#define WB_BANKSEL_B0 0x00 /* select bank 0 */ -#define WB_BANKSEL_B1 0x01 /* select bank 1 */ -#define WB_BANKSEL_B2 0x02 /* select bank 2 */ -#define WB_BANKSEL_B3 0x03 /* select bank 3 */ -#define WB_BANKSEL_B4 0x04 /* select bank 4 */ -#define WB_BANKSEL_B5 0x05 /* select bank 5 */ -#define WB_BANKSEL_HBAC 0x80 /* hight byte access */ - -#define WB_VENDID 0x4f /* vendor ID register */ -#define WB_VENDID_WINBOND 0x5ca3 -#define WB_VENDID_ASUS 0x12c3 - -/* Bank 0 regs */ -#define WB_BANK0_CHIPID 0x58 -#define WB_CHIPID_W83781D 0x10 -#define WB_CHIPID_W83781D_2 0x11 -#define WB_CHIPID_W83627HF 0x21 -#define WB_CHIPID_AS99127F 0x31 /* Asus W83781D clone */ -#define WB_CHIPID_W83782D 0x30 -#define WB_CHIPID_W83783S 0x40 -#define WB_CHIPID_W83697HF 0x60 -#define WB_CHIPID_W83791D 0x71 -#define WB_CHIPID_W83791D_2 0x72 -#define WB_CHIPID_W83792D 0x7a -#define WB_CHIPID_W83637HF 0x80 -#define WB_CHIPID_W83627THF 0x90 -#define WB_BANK0_FAN45 0x5c /* fan4/5 divider; W83791D only */ -#define WB_BANK0_FANBAT 0x5d -#define WB_BANK0_FAN4 0xba /* W83791D only */ -#define WB_BANK0_FAN5 0xbb /* W83791D only */ - -/* Bank 1 regs */ -#define WB_BANK1_T2H 0x50 -#define WB_BANK1_T2L 0x51 - -/* Bank 2 regs */ -#define WB_BANK2_T3H 0x50 -#define WB_BANK2_T3L 0x51 - -/* Bank 4 regs W83782D/W83627HF and later models only */ -#define WB_BANK4_T1OFF 0x54 -#define WB_BANK4_T2OFF 0x55 -#define WB_BANK4_T3OFF 0x56 - -/* Bank 5 regs W83782D/W83627HF and later models only */ -#define WB_BANK5_5VSB 0x50 -#define WB_BANK5_VBAT 0x51 - -/* Reference voltage */ -#define WB_VREF 3600 - -#define WB_MAX_SENSORS 19 - -struct lm_softc; - -struct lm_sensor { - char *desc; - enum sensor_type type; - u_int8_t bank; - u_int8_t reg; - void (*refresh)(struct lm_softc *, int); - u_int rfact; -}; - -struct lm_softc { - struct device sc_dev; - - int lm_iobase; - bus_space_tag_t lm_iot; - bus_space_handle_t lm_ioh; - - int sc_flags; - struct sensor sensors[WB_MAX_SENSORS]; - struct lm_sensor *lm_sensors; - u_int numsensors; - void (*refresh_sensor_data) (struct lm_softc *); - - u_int8_t (*lm_readreg)(struct lm_softc *, int); - void (*lm_writereg)(struct lm_softc *, int, int); -}; - -void lm_attach(struct lm_softc *); - -#endif /* _DEV_ISA_NSLM7XVAR_H_ */ |