include: Import dev/i2c/i2c_io.h
Change-Id: Icb754891349b7f571863f3a87b0318c28c35ac79
This commit is contained in:
		
							parent
							
								
									c4d355f7bb
								
							
						
					
					
						commit
						4241cc5d98
					
				| @ -546,6 +546,9 @@ | ||||
| ./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 | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -2,7 +2,7 @@ | ||||
| 
 | ||||
| .include <bsd.own.mk> | ||||
| 
 | ||||
| SUBDIR=	arch \
 | ||||
| SUBDIR=	arch dev \
 | ||||
| 	net netinet netinet6 \
 | ||||
|         \
 | ||||
| 	sys ufs | ||||
|  | ||||
							
								
								
									
										26
									
								
								sys/dev/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								sys/dev/Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -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> | ||||
							
								
								
									
										6
									
								
								sys/dev/i2c/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								sys/dev/i2c/Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -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> | ||||
							
								
								
									
										106
									
								
								sys/dev/i2c/i2c_io.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								sys/dev/i2c/i2c_io.h
									
									
									
									
									
										Normal file
									
								
							| @ -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_ */ | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Thomas Cort
						Thomas Cort