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/timer.h		minix-sys | ||||||
| ./usr/include/ddekit/types.h		minix-sys | ./usr/include/ddekit/types.h		minix-sys | ||||||
| ./usr/include/ddekit/usb.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/dirent.h			minix-sys | ||||||
| ./usr/include/disktab.h			minix-sys | ./usr/include/disktab.h			minix-sys | ||||||
| ./usr/include/dlfcn.h			minix-sys | ./usr/include/dlfcn.h			minix-sys | ||||||
|  | |||||||
| @ -94,6 +94,9 @@ | |||||||
| 2012/02/10 16:16:12,share/zoneinfo | 2012/02/10 16:16:12,share/zoneinfo | ||||||
| 2011/12/25 06:09:09,sys/arch/i386/stand | 2011/12/25 06:09:09,sys/arch/i386/stand | ||||||
| 2012/10/17 12:00:00,sys/arch/x86/include | 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/01/16 18:47:57,sys/lib/libsa | ||||||
| 2012/10/17 12:00:00,sys/lib/libz | 2012/10/17 12:00:00,sys/lib/libz | ||||||
| 2012/10/17 12:00:00,sys/Makefile | 2012/10/17 12:00:00,sys/Makefile | ||||||
|  | |||||||
| @ -2,7 +2,7 @@ | |||||||
| 
 | 
 | ||||||
| .include <bsd.own.mk> | .include <bsd.own.mk> | ||||||
| 
 | 
 | ||||||
| SUBDIR=	arch \
 | SUBDIR=	arch dev \
 | ||||||
| 	net netinet netinet6 \
 | 	net netinet netinet6 \
 | ||||||
|         \
 |         \
 | ||||||
| 	sys ufs | 	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