Allow i2c addr wildcard matching. Use with care!
This commit is contained in:
parent
5e1b939563
commit
c5606116b4
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: at24cxx.c,v 1.13 2013/02/08 15:14:11 jdc Exp $ */
|
||||
/* $NetBSD: at24cxx.c,v 1.14 2013/08/07 19:38:45 soren Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2003 Wasabi Systems, Inc.
|
||||
|
@ -36,7 +36,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: at24cxx.c,v 1.13 2013/02/08 15:14:11 jdc Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: at24cxx.c,v 1.14 2013/08/07 19:38:45 soren Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -61,7 +61,7 @@ __KERNEL_RCSID(0, "$NetBSD: at24cxx.c,v 1.13 2013/02/08 15:14:11 jdc Exp $");
|
|||
* larger than 512kb). Be sure to check the datasheet of your EEPROM
|
||||
* because there's much variation between models.
|
||||
*/
|
||||
#define AT24CXX_ADDRMASK 0x78
|
||||
#define AT24CXX_ADDRMASK 0x3f8
|
||||
#define AT24CXX_ADDR 0x50
|
||||
|
||||
#define AT24CXX_WRITE_CYCLE_MS 10
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: dbcool_reg.h,v 1.6 2011/03/11 18:38:52 pgoyette Exp $ */
|
||||
/* $NetBSD: dbcool_reg.h,v 1.7 2013/08/07 19:38:45 soren Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2008 The NetBSD Foundation, Inc.
|
||||
|
@ -37,9 +37,9 @@
|
|||
#define DBCOOLREG_H
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: dbcool_reg.h,v 1.6 2011/03/11 18:38:52 pgoyette Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: dbcool_reg.h,v 1.7 2013/08/07 19:38:45 soren Exp $");
|
||||
|
||||
#define DBCOOL_ADDRMASK 0x7c
|
||||
#define DBCOOL_ADDRMASK 0x3fc
|
||||
#define DBCOOL_ADDR 0x2c /* Some chips have multiple addrs */
|
||||
|
||||
/* The dBCool chip family register set */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: i2c.c,v 1.39 2013/02/03 16:28:51 jdc Exp $ */
|
||||
/* $NetBSD: i2c.c,v 1.40 2013/08/07 19:38:45 soren Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2003 Wasabi Systems, Inc.
|
||||
|
@ -36,7 +36,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: i2c.c,v 1.39 2013/02/03 16:28:51 jdc Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: i2c.c,v 1.40 2013/08/07 19:38:45 soren Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -110,7 +110,6 @@ iic_search(device_t parent, cfdata_t cf, const int *ldesc, void *aux)
|
|||
struct i2c_attach_args ia;
|
||||
|
||||
ia.ia_tag = sc->sc_tag;
|
||||
ia.ia_addr = cf->cf_loc[IICCF_ADDR];
|
||||
ia.ia_size = cf->cf_loc[IICCF_SIZE];
|
||||
ia.ia_type = sc->sc_type;
|
||||
|
||||
|
@ -118,13 +117,19 @@ iic_search(device_t parent, cfdata_t cf, const int *ldesc, void *aux)
|
|||
ia.ia_ncompat = 0;
|
||||
ia.ia_compat = NULL;
|
||||
|
||||
if (ia.ia_addr != (i2c_addr_t)-1 &&
|
||||
ia.ia_addr <= I2C_MAX_ADDR &&
|
||||
!sc->sc_devices[ia.ia_addr])
|
||||
if (config_match(parent, cf, &ia) > 0) {
|
||||
for (ia.ia_addr = 0; ia.ia_addr <= I2C_MAX_ADDR; ia.ia_addr++) {
|
||||
if (sc->sc_devices[ia.ia_addr] != NULL)
|
||||
continue;
|
||||
|
||||
if (cf->cf_loc[IICCF_ADDR] != -1 &&
|
||||
cf->cf_loc[IICCF_ADDR] != ia.ia_addr)
|
||||
continue;
|
||||
|
||||
if (config_match(parent, cf, &ia) > 0)
|
||||
sc->sc_devices[ia.ia_addr] =
|
||||
config_attach(parent, cf, &ia, iic_print);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -138,7 +143,7 @@ iic_child_detach(device_t parent, device_t child)
|
|||
if (sc->sc_devices[i] == child) {
|
||||
sc->sc_devices[i] = NULL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: lm75reg.h,v 1.3 2006/05/17 00:10:54 kiyohara Exp $ */
|
||||
/* $NetBSD: lm75reg.h,v 1.4 2013/08/07 19:38:45 soren Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2003 Wasabi Systems, Inc.
|
||||
|
@ -43,9 +43,9 @@
|
|||
*
|
||||
* 100 1xxx
|
||||
*/
|
||||
#define LM75_ADDRMASK 0x78
|
||||
#define LM75_ADDRMASK 0x3f8
|
||||
#define LM75_ADDR 0x48
|
||||
#define LM77_ADDRMASK 0x7c
|
||||
#define LM77_ADDRMASK 0x3fc
|
||||
#define LM77_ADDR 0x48
|
||||
|
||||
/*
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: max6900reg.h,v 1.2 2005/12/11 12:21:23 christos Exp $ */
|
||||
/* $NetBSD: max6900reg.h,v 1.3 2013/08/07 19:38:45 soren Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2003 Wasabi Systems, Inc.
|
||||
|
@ -43,7 +43,7 @@
|
|||
*
|
||||
* 101 0000
|
||||
*/
|
||||
#define MAX6900_ADDRMASK 0x7f
|
||||
#define MAX6900_ADDRMASK 0x3ff
|
||||
#define MAX6900_ADDR 0x50
|
||||
|
||||
/*
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: pcf8583reg.h,v 1.2 2005/12/11 12:21:23 christos Exp $ */
|
||||
/* $NetBSD: pcf8583reg.h,v 1.3 2013/08/07 19:38:45 soren Exp $ */
|
||||
|
||||
/*
|
||||
* Ben Harris, 2000
|
||||
|
@ -20,7 +20,7 @@
|
|||
*
|
||||
* 101 0000
|
||||
*/
|
||||
#define PCF8583_ADDRMASK 0x7f
|
||||
#define PCF8583_ADDRMASK 0x3ff
|
||||
#define PCF8583_ADDR 0x50
|
||||
|
||||
#define PCF8583_REG_CSR 0x00
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: sdtemp_reg.h,v 1.5 2010/07/12 03:39:05 pgoyette Exp $ */
|
||||
/* $NetBSD: sdtemp_reg.h,v 1.6 2013/08/07 19:38:45 soren Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2009 The NetBSD Foundation, Inc.
|
||||
|
@ -36,7 +36,7 @@
|
|||
* Following definitions derived from JEDEC Standard 21-C section 4.7
|
||||
* available at http://www.jedec.org/download/search/4_07R15.pdf
|
||||
*/
|
||||
#define SDTEMP_ADDRMASK 0x78
|
||||
#define SDTEMP_ADDRMASK 0x3f8
|
||||
#define SDTEMP_ADDR 0x18 /* I2C address 001 1xxx */
|
||||
|
||||
#define SDTEMP_REG_CAPABILITY 0x00
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: spdmem_i2c.c,v 1.7 2013/07/28 06:12:45 kiyohara Exp $ */
|
||||
/* $NetBSD: spdmem_i2c.c,v 1.8 2013/08/07 19:38:45 soren Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007 Nicolas Joly
|
||||
|
@ -35,7 +35,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: spdmem_i2c.c,v 1.7 2013/07/28 06:12:45 kiyohara Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: spdmem_i2c.c,v 1.8 2013/08/07 19:38:45 soren Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/device.h>
|
||||
|
@ -49,7 +49,7 @@ __KERNEL_RCSID(0, "$NetBSD: spdmem_i2c.c,v 1.7 2013/07/28 06:12:45 kiyohara Exp
|
|||
#include <dev/ic/spdmemvar.h>
|
||||
|
||||
/* Constants for matching i2c bus address */
|
||||
#define SPDMEM_I2C_ADDRMASK 0x78
|
||||
#define SPDMEM_I2C_ADDRMASK 0x3f8
|
||||
#define SPDMEM_I2C_ADDR 0x50
|
||||
|
||||
struct spdmem_i2c_softc {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: x1226reg.h,v 1.3 2005/12/11 12:21:23 christos Exp $ */
|
||||
/* $NetBSD: x1226reg.h,v 1.4 2013/08/07 19:38:45 soren Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2003 Shigeyuki Fukushima.
|
||||
|
@ -47,7 +47,7 @@
|
|||
*
|
||||
* 110 1111
|
||||
*/
|
||||
#define X1226_ADDRMASK 0x7f
|
||||
#define X1226_ADDRMASK 0x3ff
|
||||
#define X1226_ADDR 0x6f
|
||||
|
||||
/* XICOR X1226 Device Identifier */
|
||||
|
|
Loading…
Reference in New Issue