]> Zhao Yanbai Git Server - minix.git/commitdiff
include: Import dev/i2c/i2c_io.h 70/670/1
authorThomas Cort <tcort@minix3.org>
Wed, 29 May 2013 18:40:16 +0000 (14:40 -0400)
committerThomas Cort <tcort@minix3.org>
Thu, 27 Jun 2013 18:20:12 +0000 (14:20 -0400)
Change-Id: Icb754891349b7f571863f3a87b0318c28c35ac79

distrib/sets/lists/minix/mi
releasetools/nbsd_ports
sys/Makefile
sys/dev/Makefile [new file with mode: 0644]
sys/dev/i2c/Makefile [new file with mode: 0644]
sys/dev/i2c/i2c_io.h [new file with mode: 0644]

index bd4a436e317c9647d5acbb74f62f58d0d3be98fd..ce34f47dc5e8627936ae503cb8f9204ac5ed9333 100644 (file)
 ./usr/include/ddekit/timer.h           minix-sys
 ./usr/include/ddekit/types.h           minix-sys
 ./usr/include/ddekit/usb.h             minix-sys
+./usr/include/dev                      minix-sys
+./usr/include/dev/i2c                  minix-sys
+./usr/include/dev/i2c/i2c_io.h         minix-sys
 ./usr/include/dirent.h                 minix-sys
 ./usr/include/disktab.h                        minix-sys
 ./usr/include/dlfcn.h                  minix-sys
index d24ac3c79cfb04b6fe49bee0e52f7b61c9d1084b..5a05e0902e4f3e255acc92515568cd2ad1e5a423 100644 (file)
@@ -94,6 +94,9 @@
 2012/02/10 16:16:12,share/zoneinfo
 2011/12/25 06:09:09,sys/arch/i386/stand
 2012/10/17 12:00:00,sys/arch/x86/include
+2013/04/23 12:00:00,sys/dev/Makefile
+2013/04/23 12:00:00,sys/dev/i2c/Makefile
+2013/04/23 12:00:00,sys/dev/i2c/i2c_io.h
 2012/01/16 18:47:57,sys/lib/libsa
 2012/10/17 12:00:00,sys/lib/libz
 2012/10/17 12:00:00,sys/Makefile
index 095a7a64412ace8ce5e67ee007009bcd5cad17fd..af6aac550946f9e3be5d5e54b9ad17755b598fa8 100644 (file)
@@ -2,7 +2,7 @@
 
 .include <bsd.own.mk>
 
-SUBDIR=        arch \
+SUBDIR=        arch dev \
        net netinet netinet6 \
         \
        sys ufs
diff --git a/sys/dev/Makefile b/sys/dev/Makefile
new file mode 100644 (file)
index 0000000..00d1bc5
--- /dev/null
@@ -0,0 +1,26 @@
+#      $NetBSD: Makefile,v 1.35 2012/06/20 21:38:26 sjg Exp $
+
+.if defined(__MINIX)
+SUBDIR=        i2c
+.else
+SUBDIR=        apm ata bluetooth dec dm dmover dtv filemon hpc \
+       i2c i2o ic ieee1394 ir isa \
+       microcode ofw pci pckbport pcmcia pud putter raidframe sbus scsipi \
+       sun tc usb vme wscons
+.endif
+
+.include <bsd.own.mk>
+
+.if ${MKISCSI} != "no"
+SUBDIR+= iscsi
+.endif
+
+INCSDIR= /usr/include/dev
+
+.if !defined(__MINIX)
+# Only install includes which are used by userland
+INCS=  biovar.h ccdvar.h cgdvar.h fssvar.h keylock.h kttcpio.h lockstat.h \
+       md.h vndvar.h
+.endif
+
+.include <bsd.kinc.mk>
diff --git a/sys/dev/i2c/Makefile b/sys/dev/i2c/Makefile
new file mode 100644 (file)
index 0000000..367edc7
--- /dev/null
@@ -0,0 +1,6 @@
+# $NetBSD: Makefile,v 1.3 2011/10/02 16:39:47 jmcneill Exp $
+
+INCSDIR= /usr/include/dev/i2c
+INCS=  i2c_io.h
+
+.include <bsd.kinc.mk>
diff --git a/sys/dev/i2c/i2c_io.h b/sys/dev/i2c/i2c_io.h
new file mode 100644 (file)
index 0000000..52e916e
--- /dev/null
@@ -0,0 +1,106 @@
+/*     $NetBSD: i2c_io.h,v 1.3 2012/04/22 14:10:36 pgoyette Exp $      */
+
+/*
+ * Copyright (c) 2003 Wasabi Systems, Inc.
+ * All rights reserved.
+ *
+ * Written by Jason R. Thorpe for Wasabi Systems, Inc.
+ *
+ * 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 for the NetBSD Project by
+ *      Wasabi Systems, Inc.
+ * 4. The name of Wasabi Systems, Inc. may not be used to endorse
+ *    or promote products derived from this software without specific prior
+ *    written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``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 WASABI SYSTEMS, INC
+ * 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_I2C_I2C_IO_H_
+#define        _DEV_I2C_I2C_IO_H_
+
+#include <sys/ioccom.h>
+
+/* I2C bus address. */
+typedef uint16_t i2c_addr_t;
+
+/* High-level I2C operations. */
+#define        I2C_OPMASK_STOP         1
+#define        I2C_OPMASK_WRITE        2
+#define        I2C_OPMASK_BLKMODE      4
+
+#define        I2C_OP_STOP_P(x)        (((int)(x) & I2C_OPMASK_STOP) != 0)
+#define        I2C_OP_WRITE_P(x)       (((int)(x) & I2C_OPMASK_WRITE) != 0)
+#define        I2C_OP_READ_P(x)        (!I2C_OP_WRITE_P(x))
+#define        I2C_OP_BLKMODE_P(x)     (((int)(x) & I2C_OPMASK_BLKMODE) != 0)
+
+typedef enum {
+        I2C_OP_READ            = 0,
+        I2C_OP_READ_WITH_STOP  = I2C_OPMASK_STOP,
+        I2C_OP_WRITE           = I2C_OPMASK_WRITE,
+        I2C_OP_WRITE_WITH_STOP = I2C_OPMASK_WRITE   | I2C_OPMASK_STOP,
+        I2C_OP_READ_BLOCK      = I2C_OPMASK_BLKMODE | I2C_OPMASK_STOP,
+        I2C_OP_WRITE_BLOCK     = I2C_OPMASK_BLKMODE | I2C_OPMASK_WRITE |
+                                       I2C_OPMASK_STOP,
+} i2c_op_t;
+
+/*
+ * This structure describes a single I2C control script fragment.
+ *
+ * Note that use of this scripted API allows for support of automated
+ * SMBus controllers.  The following table maps SMBus operations to
+ * script fragment configuration:
+ *
+ *     SMBus "write byte":             I2C_OP_WRITE_WITH_STOP
+ *                                     cmdlen = 1
+ *
+ *     SMBus "read byte":              I2C_OP_READ_WITH_STOP
+ *                                     cmdlen = 1
+ *
+ *     SMBus "receive byte":           I2C_OP_READ_WITH_STOP
+ *                                     cmdlen = 0
+ *
+ * Note that while each of these 3 SMBus operations implies a STOP
+ * (which an automated controller will likely perform automatically),
+ * non-SMBus clients may continue to function even if they issue
+ * I2C_OP_WRITE and I2C_OP_READ.
+ */
+
+/*
+ * I2C_IOCTL_EXEC:
+ *
+ *     User ioctl to execute an i2c operation.
+ */
+typedef struct i2c_ioctl_exec {
+       i2c_op_t iie_op;                /* operation to perform */
+       i2c_addr_t iie_addr;            /* address of device */
+       const void *iie_cmd;            /* pointer to command */
+       size_t iie_cmdlen;              /* length of command */
+       void *iie_buf;                  /* pointer to data buffer */
+       size_t iie_buflen;              /* length of data buffer */
+} i2c_ioctl_exec_t;
+#define        I2C_EXEC_MAX_CMDLEN     32
+#define        I2C_EXEC_MAX_BUFLEN     32
+
+#define        I2C_IOCTL_EXEC           _IOW('I', 0, i2c_ioctl_exec_t)
+
+#endif /* _DEV_I2C_I2C_IO_H_ */