i2c devices don't actually have a dependency on "iic" (the bus driver)

but on "i2cexec". Create an i2cexec module (i2c_exec.c) to mirror the
dependencies in files.i2c and switch device drivers to depend on "i2cexec"
module instead.

A kernel with a USB stack and no I2C controller / bus attachment would spit
out a bunch of "WARNING: module error: can't find builtin dependency `iic'"
messages at boot. This change solves that problem.
This commit is contained in:
jmcneill 2015-03-07 14:16:51 +00:00
parent c94850afe5
commit 22ca8619b1
20 changed files with 86 additions and 45 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: md.amd64,v 1.50 2014/12/11 22:14:13 riastradh Exp $
# $NetBSD: md.amd64,v 1.51 2015/03/07 14:16:51 jmcneill Exp $
#
# NOTE that there are two sets of files here:
# @MODULEDIR@ and amd64-xen
@ -340,6 +340,8 @@
./stand/amd64-xen/@OSRELEASE@/modules/i915drm/i915drm.kmod base-kernel-modules kmod,compatmodules
./stand/amd64-xen/@OSRELEASE@/modules/i915drmkms base-kernel-modules kmod,compatmodules
./stand/amd64-xen/@OSRELEASE@/modules/i915drmkms/i915drmkms.kmod base-kernel-modules kmod,compatmodules
./stand/amd64-xen/@OSRELEASE@/modules/i2cexec base-kernel-modules kmod,compatmodules
./stand/amd64-xen/@OSRELEASE@/modules/i2cexec/i2cexec.kmod base-kernel-modules kmod,compatmodules
./stand/amd64-xen/@OSRELEASE@/modules/if_axe base-kernel-modules kmod,compatmodules
./stand/amd64-xen/@OSRELEASE@/modules/if_axe/if_axe.kmod base-kernel-modules kmod,compatmodules
./stand/amd64-xen/@OSRELEASE@/modules/if_axen base-kernel-modules kmod,compatmodules

View File

@ -1,4 +1,4 @@
# $NetBSD: md.evbppc.powerpc,v 1.4 2014/09/18 19:45:24 wiz Exp $
# $NetBSD: md.evbppc.powerpc,v 1.5 2015/03/07 14:16:51 jmcneill Exp $
./stand/powerpc-4xx base-kernel-modules kmod,compatmodules
./stand/powerpc-4xx/@OSRELEASE@ base-kernel-modules kmod,compatmodules
./stand/powerpc-4xx/@OSRELEASE@/modules base-kernel-modules kmod,compatmodules
@ -96,6 +96,8 @@
./stand/powerpc-4xx/@OSRELEASE@/modules/hfs/hfs.kmod base-kernel-modules kmod,compatmodules
./stand/powerpc-4xx/@OSRELEASE@/modules/hythygtemp base-kernel-modules kmod,compatmodules
./stand/powerpc-4xx/@OSRELEASE@/modules/hythygtemp/hythygtemp.kmod base-kernel-modules kmod,compatmodules
./stand/powerpc-4xx/@OSRELEASE@/modules/i2cexec base-kernel-modules kmod,compatmodules
./stand/powerpc-4xx/@OSRELEASE@/modules/i2cexec/i2cexec.kmod base-kernel-modules kmod,compatmodules
./stand/powerpc-4xx/@OSRELEASE@/modules/if_axe base-kernel-modules kmod,compatmodules
./stand/powerpc-4xx/@OSRELEASE@/modules/if_axe/if_axe.kmod base-kernel-modules kmod,compatmodules
./stand/powerpc-4xx/@OSRELEASE@/modules/if_axen base-kernel-modules kmod,compatmodules
@ -335,6 +337,8 @@
./stand/powerpc-booke/@OSRELEASE@/modules/hfs/hfs.kmod base-kernel-modules kmod,compatmodules
./stand/powerpc-booke/@OSRELEASE@/modules/hythygtemp base-kernel-modules kmod,compatmodules
./stand/powerpc-booke/@OSRELEASE@/modules/hythygtemp/hythygtemp.kmod base-kernel-modules kmod,compatmodules
./stand/powerpc-booke/@OSRELEASE@/modules/i2cexec base-kernel-modules kmod,compatmodules
./stand/powerpc-booke/@OSRELEASE@/modules/i2cexec/i2cexec.kmod base-kernel-modules kmod,compatmodules
./stand/powerpc-booke/@OSRELEASE@/modules/if_axe base-kernel-modules kmod,compatmodules
./stand/powerpc-booke/@OSRELEASE@/modules/if_axe/if_axe.kmod base-kernel-modules kmod,compatmodules
./stand/powerpc-booke/@OSRELEASE@/modules/if_axen base-kernel-modules kmod,compatmodules

View File

@ -1,4 +1,4 @@
# $NetBSD: md.i386,v 1.54 2015/02/21 07:47:41 ozaki-r Exp $
# $NetBSD: md.i386,v 1.55 2015/03/07 14:16:51 jmcneill Exp $
#
# NOTE that there are three sets of files here:
# @MODULEDIR@, i386-xen, and i386pae-xen
@ -364,6 +364,8 @@
./stand/i386-xen/@OSRELEASE@/modules/hpqlb/hpqlb.kmod base-kernel-modules kmod,compatmodules
./stand/i386-xen/@OSRELEASE@/modules/hythygtemp base-kernel-modules kmod,compatmodules
./stand/i386-xen/@OSRELEASE@/modules/hythygtemp/hythygtemp.kmod base-kernel-modules kmod,compatmodules
./stand/i386-xen/@OSRELEASE@/modules/i2cexec base-kernel-modules kmod,compatmodules
./stand/i386-xen/@OSRELEASE@/modules/i2cexec/i2cexec.kmod base-kernel-modules kmod,compatmodules
./stand/i386-xen/@OSRELEASE@/modules/i915drm base-kernel-modules kmod,compatmodules
./stand/i386-xen/@OSRELEASE@/modules/i915drm/i915drm.kmod base-kernel-modules kmod,compatmodules
./stand/i386-xen/@OSRELEASE@/modules/i915drmkms base-kernel-modules kmod,compatmodules
@ -763,6 +765,8 @@
./stand/i386pae-xen/@OSRELEASE@/modules/hpqlb/hpqlb.kmod base-kernel-modules kmod,compatmodules
./stand/i386pae-xen/@OSRELEASE@/modules/hythygtemp base-kernel-modules kmod,compatmodules
./stand/i386pae-xen/@OSRELEASE@/modules/hythygtemp/hythygtemp.kmod base-kernel-modules kmod,compatmodules
./stand/i386pae-xen/@OSRELEASE@/modules/i2cexec base-kernel-modules kmod,compatmodules
./stand/i386pae-xen/@OSRELEASE@/modules/i2cexec/i2cexec.kmod base-kernel-modules kmod,compatmodules
./stand/i386pae-xen/@OSRELEASE@/modules/i915drm base-kernel-modules kmod,compatmodules
./stand/i386pae-xen/@OSRELEASE@/modules/i915drm/i915drm.kmod base-kernel-modules kmod,compatmodules
./stand/i386pae-xen/@OSRELEASE@/modules/i915drmkms base-kernel-modules kmod,compatmodules

View File

@ -1,4 +1,4 @@
# $NetBSD: mi,v 1.70 2014/09/18 19:45:24 wiz Exp $
# $NetBSD: mi,v 1.71 2015/03/07 14:16:51 jmcneill Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
#
@ -100,6 +100,8 @@
./@MODULEDIR@/hfs/hfs.kmod base-kernel-modules kmod
./@MODULEDIR@/hythygtemp base-kernel-modules kmod
./@MODULEDIR@/hythygtemp/hythygtemp.kmod base-kernel-modules kmod
./@MODULEDIR@/i2cexec base-kernel-modules kmod
./@MODULEDIR@/i2cexec/i2cexec.kmod base-kernel-modules kmod
./@MODULEDIR@/if_axe base-kernel-modules kmod
./@MODULEDIR@/if_axe/if_axe.kmod base-kernel-modules kmod
./@MODULEDIR@/if_axen base-kernel-modules kmod

View File

@ -1,4 +1,4 @@
/* $NetBSD: au8522.c,v 1.6 2011/10/02 19:03:56 jmcneill Exp $ */
/* $NetBSD: au8522.c,v 1.7 2015/03/07 14:16:51 jmcneill Exp $ */
/*-
* Copyright (c) 2010 Jared D. McNeill <jmcneill@invisible.ca>
@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: au8522.c,v 1.6 2011/10/02 19:03:56 jmcneill Exp $");
__KERNEL_RCSID(0, "$NetBSD: au8522.c,v 1.7 2015/03/07 14:16:51 jmcneill Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -419,7 +419,7 @@ au8522_get_snr(struct au8522 *au)
return 0;
}
MODULE(MODULE_CLASS_DRIVER, au8522, "iic");
MODULE(MODULE_CLASS_DRIVER, au8522, "i2cexec");
static int
au8522_modcmd(modcmd_t cmd, void *opaque)

View File

@ -1,4 +1,4 @@
/* $NetBSD: cx24227.c,v 1.6 2012/03/15 16:20:36 bouyer Exp $ */
/* $NetBSD: cx24227.c,v 1.7 2015/03/07 14:16:51 jmcneill Exp $ */
/*
* Copyright (c) 2008, 2011 Jonathan A. Kollasch
@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: cx24227.c,v 1.6 2012/03/15 16:20:36 bouyer Exp $");
__KERNEL_RCSID(0, "$NetBSD: cx24227.c,v 1.7 2015/03/07 14:16:51 jmcneill Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -328,7 +328,7 @@ cx24227_init(struct cx24227 *sc)
return 0;
}
MODULE(MODULE_CLASS_DRIVER, cx24227, "iic");
MODULE(MODULE_CLASS_DRIVER, cx24227, "i2cexec");
static int
cx24227_modcmd(modcmd_t cmd, void *priv)

View File

@ -1,4 +1,4 @@
/* $NetBSD: dbcool.c,v 1.41 2014/08/10 16:44:35 tls Exp $ */
/* $NetBSD: dbcool.c,v 1.42 2015/03/07 14:16:51 jmcneill Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@ -50,7 +50,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: dbcool.c,v 1.41 2014/08/10 16:44:35 tls Exp $");
__KERNEL_RCSID(0, "$NetBSD: dbcool.c,v 1.42 2015/03/07 14:16:51 jmcneill Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -2161,7 +2161,7 @@ dbcool_set_fan_limits(struct dbcool_softc *sc, int idx,
}
}
MODULE(MODULE_CLASS_DRIVER, dbcool, "iic");
MODULE(MODULE_CLASS_DRIVER, dbcool, "i2cexec");
#ifdef _MODULE
#include "ioconf.c"

View File

@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: hytp14.c,v 1.2 2014/06/29 09:52:43 kardel Exp $");
__KERNEL_RCSID(0, "$NetBSD: hytp14.c,v 1.3 2015/03/07 14:16:51 jmcneill Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -283,7 +283,7 @@ hytp14_refresh(struct sysmon_envsys *sme, envsys_data_t *edata)
}
MODULE(MODULE_CLASS_DRIVER, hythygtemp, "iic");
MODULE(MODULE_CLASS_DRIVER, hythygtemp, "i2cexec");
#ifdef _MODULE
#include "ioconf.c"

View File

@ -1,4 +1,4 @@
/* $NetBSD: i2c_exec.c,v 1.9 2013/09/12 20:30:58 martin Exp $ */
/* $NetBSD: i2c_exec.c,v 1.10 2015/03/07 14:16:51 jmcneill Exp $ */
/*
* Copyright (c) 2003 Wasabi Systems, Inc.
@ -36,11 +36,12 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: i2c_exec.c,v 1.9 2013/09/12 20:30:58 martin Exp $");
__KERNEL_RCSID(0, "$NetBSD: i2c_exec.c,v 1.10 2015/03/07 14:16:51 jmcneill Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/device.h>
#include <sys/module.h>
#include <sys/event.h>
#include <sys/conf.h>
@ -50,6 +51,8 @@ __KERNEL_RCSID(0, "$NetBSD: i2c_exec.c,v 1.9 2013/09/12 20:30:58 martin Exp $");
static uint8_t iic_smbus_crc8(uint16_t);
static uint8_t iic_smbus_pec(int, uint8_t *, uint8_t *);
static int i2cexec_modcmd(modcmd_t, void *);
/*
* iic_exec:
*
@ -342,3 +345,18 @@ iic_smbus_pec(int count, uint8_t *s, uint8_t *r)
return crc;
}
MODULE(MODULE_CLASS_MISC, i2cexec, NULL);
static int
i2cexec_modcmd(modcmd_t cmd, void *opaque)
{
switch (cmd) {
case MODULE_CMD_INIT:
case MODULE_CMD_FINI:
return 0;
break;
default:
return ENOTTY;
}
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: lg3303.c,v 1.8 2011/10/02 19:03:56 jmcneill Exp $ */
/* $NetBSD: lg3303.c,v 1.9 2015/03/07 14:16:51 jmcneill Exp $ */
/*-
* Copyright 2007 Jason Harmening
@ -28,7 +28,7 @@
*/
#include <sys/param.h>
__KERNEL_RCSID(0, "$NetBSD: lg3303.c,v 1.8 2011/10/02 19:03:56 jmcneill Exp $");
__KERNEL_RCSID(0, "$NetBSD: lg3303.c,v 1.9 2015/03/07 14:16:51 jmcneill Exp $");
#include <sys/types.h>
#include <sys/kmem.h>
@ -351,7 +351,7 @@ lg3303_get_ucblocks(struct lg3303 *lg)
return (buffer[0] << 8) | buffer[1];
}
MODULE(MODULE_CLASS_DRIVER, lg3303, "iic,dtv_math");
MODULE(MODULE_CLASS_DRIVER, lg3303, "i2cexec,dtv_math");
static int
lg3303_modcmd(modcmd_t cmd, void *opaque)

View File

@ -1,4 +1,4 @@
/* $NetBSD: mt2131.c,v 1.4 2011/10/02 19:03:56 jmcneill Exp $ */
/* $NetBSD: mt2131.c,v 1.5 2015/03/07 14:16:51 jmcneill Exp $ */
/*
* Copyright (c) 2008, 2011 Jonathan A. Kollasch
@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: mt2131.c,v 1.4 2011/10/02 19:03:56 jmcneill Exp $");
__KERNEL_RCSID(0, "$NetBSD: mt2131.c,v 1.5 2015/03/07 14:16:51 jmcneill Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -255,7 +255,7 @@ mt2131_write(struct mt2131_softc *sc, uint8_t a, uint8_t v)
return ret;
}
MODULE(MODULE_CLASS_DRIVER, mt2131, "iic");
MODULE(MODULE_CLASS_DRIVER, mt2131, "i2cexec");
static int
mt2131_modcmd(modcmd_t cmd, void *priv)

View File

@ -1,4 +1,4 @@
/* $NetBSD: nxt2k.c,v 1.3 2011/10/02 19:03:56 jmcneill Exp $ */
/* $NetBSD: nxt2k.c,v 1.4 2015/03/07 14:16:51 jmcneill Exp $ */
/*
* Copyright (c) 2008, 2011 Jonathan A. Kollasch
@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: nxt2k.c,v 1.3 2011/10/02 19:03:56 jmcneill Exp $");
__KERNEL_RCSID(0, "$NetBSD: nxt2k.c,v 1.4 2015/03/07 14:16:51 jmcneill Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@ -830,7 +830,7 @@ nxt2k_set_modulation(struct nxt2k *nxt, fe_modulation_t modulation)
return nxt2k_fe_set_frontend(nxt, modulation);
}
MODULE(MODULE_CLASS_DRIVER, nxt2k, "iic");
MODULE(MODULE_CLASS_DRIVER, nxt2k, "i2cexec");
static int
nxt2k_modcmd(modcmd_t cmd, void *opaque)

View File

@ -1,4 +1,4 @@
/* $NetBSD: sdtemp.c,v 1.23 2014/01/09 16:51:05 mlelstv Exp $ */
/* $NetBSD: sdtemp.c,v 1.24 2015/03/07 14:16:51 jmcneill Exp $ */
/*
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: sdtemp.c,v 1.23 2014/01/09 16:51:05 mlelstv Exp $");
__KERNEL_RCSID(0, "$NetBSD: sdtemp.c,v 1.24 2015/03/07 14:16:51 jmcneill Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -553,7 +553,7 @@ sdtemp_pmf_resume(device_t dev, const pmf_qual_t *qual)
return (error == 0);
}
MODULE(MODULE_CLASS_DRIVER, sdtemp, "iic");
MODULE(MODULE_CLASS_DRIVER, sdtemp, "i2cexec");
#ifdef _MODULE
#include "ioconf.c"

View File

@ -1,4 +1,4 @@
/* $NetBSD: spdmem_i2c.c,v 1.9 2014/04/14 14:30:24 pooka Exp $ */
/* $NetBSD: spdmem_i2c.c,v 1.10 2015/03/07 14:16:51 jmcneill Exp $ */
/*
* Copyright (c) 2007 Nicolas Joly
@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: spdmem_i2c.c,v 1.9 2014/04/14 14:30:24 pooka Exp $");
__KERNEL_RCSID(0, "$NetBSD: spdmem_i2c.c,v 1.10 2015/03/07 14:16:51 jmcneill Exp $");
#include <sys/param.h>
#include <sys/device.h>
@ -133,7 +133,7 @@ spdmem_i2c_read(struct spdmem_softc *softc, uint8_t reg)
return val;
}
MODULE(MODULE_CLASS_DRIVER, spdmem, "iic");
MODULE(MODULE_CLASS_DRIVER, spdmem, "i2cexec");
#ifdef _MODULE
#include "ioconf.c"

View File

@ -1,4 +1,4 @@
/* $NetBSD: tvpll.c,v 1.5 2013/10/17 21:18:43 christos Exp $ */
/* $NetBSD: tvpll.c,v 1.6 2015/03/07 14:16:51 jmcneill Exp $ */
/*
* Copyright (c) 2008, 2011 Jonathan A. Kollasch
@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: tvpll.c,v 1.5 2013/10/17 21:18:43 christos Exp $");
__KERNEL_RCSID(0, "$NetBSD: tvpll.c,v 1.6 2015/03/07 14:16:51 jmcneill Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -153,7 +153,7 @@ tvpll_tune_dtv(struct tvpll *tvpll,
return rv;
}
MODULE(MODULE_CLASS_DRIVER, tvpll, "iic");
MODULE(MODULE_CLASS_DRIVER, tvpll, "i2cexec");
static int
tvpll_modcmd(modcmd_t cmd, void *opaque)

View File

@ -1,4 +1,4 @@
/* $NetBSD: xc3028.c,v 1.6 2015/01/07 07:05:48 ozaki-r Exp $ */
/* $NetBSD: xc3028.c,v 1.7 2015/03/07 14:16:51 jmcneill Exp $ */
/*-
* Copyright (c) 2011 Jared D. McNeill <jmcneill@invisible.ca>
@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: xc3028.c,v 1.6 2015/01/07 07:05:48 ozaki-r Exp $");
__KERNEL_RCSID(0, "$NetBSD: xc3028.c,v 1.7 2015/03/07 14:16:51 jmcneill Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -564,7 +564,7 @@ xc3028_tune_dtv(struct xc3028 *xc, const struct dvb_frontend_parameters *params)
return 0;
}
MODULE(MODULE_CLASS_DRIVER, xc3028, "iic");
MODULE(MODULE_CLASS_DRIVER, xc3028, "i2cexec");
static int
xc3028_modcmd(modcmd_t cmd, void *opaque)

View File

@ -1,4 +1,4 @@
/* $NetBSD: xc5k.c,v 1.5 2015/01/07 07:05:48 ozaki-r Exp $ */
/* $NetBSD: xc5k.c,v 1.6 2015/03/07 14:16:51 jmcneill Exp $ */
/*-
* Copyright (c) 2010 Jared D. McNeill <jmcneill@invisible.ca>
@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: xc5k.c,v 1.5 2015/01/07 07:05:48 ozaki-r Exp $");
__KERNEL_RCSID(0, "$NetBSD: xc5k.c,v 1.6 2015/03/07 14:16:51 jmcneill Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -434,7 +434,7 @@ xc5k_get_status(struct xc5k *xc)
return festatus;
}
MODULE(MODULE_CLASS_DRIVER, xc5k, "iic");
MODULE(MODULE_CLASS_DRIVER, xc5k, "i2cexec");
static int
xc5k_modcmd(modcmd_t cmd, void *opaque)

View File

@ -1,4 +1,4 @@
/* $NetBSD: zl10353.c,v 1.3 2011/10/02 19:03:56 jmcneill Exp $ */
/* $NetBSD: zl10353.c,v 1.4 2015/03/07 14:16:51 jmcneill Exp $ */
/*-
* Copyright (c) 2011 The NetBSD Foundation, Inc.
@ -30,7 +30,7 @@
* SUCH DAMAGE.
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: zl10353.c,v 1.3 2011/10/02 19:03:56 jmcneill Exp $");
__KERNEL_RCSID(0, "$NetBSD: zl10353.c,v 1.4 2015/03/07 14:16:51 jmcneill Exp $");
#include <sys/param.h>
#include <sys/kmem.h>
@ -650,7 +650,7 @@ zl10353_get_snr(struct zl10353 *zl)
return (val << 8) | val;
}
MODULE(MODULE_CLASS_DRIVER, zl10353, "iic");
MODULE(MODULE_CLASS_DRIVER, zl10353, "i2cexec");
static int
zl10353_modcmd(modcmd_t cmd, void *aux)

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.142 2014/11/10 21:15:19 christos Exp $
# $NetBSD: Makefile,v 1.143 2015/03/07 14:16:51 jmcneill Exp $
.include <bsd.own.mk>
@ -40,6 +40,7 @@ SUBDIR+= gpioow
SUBDIR+= gpiosim
SUBDIR+= hfs
SUBDIR+= hythygtemp
SUBDIR+= i2cexec
SUBDIR+= if_axe
SUBDIR+= if_axen
SUBDIR+= if_npflog

View File

@ -0,0 +1,10 @@
# $NetBSD: Makefile,v 1.1 2015/03/07 14:16:51 jmcneill Exp $
.include "../Makefile.inc"
.PATH: ${S}/dev/i2c
KMOD= i2cexec
SRCS= i2c_exec.c
.include <bsd.kmodule.mk>