⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 i2c-algo-ite.h

📁 linux-2.6.15.6
💻 H
字号:
/*   --------------------------------------------------------------------   i2c-ite.h: Global defines for the I2C controller on board the                     ITE MIPS processor.                                   --------------------------------------------------------------------   Hai-Pao Fan, MontaVista Software, Inc.   hpfan@mvista.com or source@mvista.com   Copyright 2001 MontaVista Software Inc. *  This program is free software; you can redistribute  it and/or modify it *  under  the terms of  the GNU General  Public License as published by the *  Free Software Foundation;  either version 2 of the  License, or (at your *  option) any later version. * *  THIS  SOFTWARE  IS PROVIDED   ``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   THE AUTHOR  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. * *  You should have received a copy of the  GNU General Public License along *  with this program; if not, write  to the Free Software Foundation, Inc., *  675 Mass Ave, Cambridge, MA 02139, USA. */#ifndef I2C_ITE_H#define I2C_ITE_H 1#include <asm/it8172/it8172.h>/* I2C Registers */#define ITE_I2CHCR	IT8172_PCI_IO_BASE + IT_I2C_BASE + 0x30#define ITE_I2CHSR	IT8172_PCI_IO_BASE + IT_I2C_BASE + 0x34#define ITE_I2CSAR	IT8172_PCI_IO_BASE + IT_I2C_BASE + 0x38#define ITE_I2CSSAR	IT8172_PCI_IO_BASE + IT_I2C_BASE + 0x3c#define ITE_I2CCKCNT	IT8172_PCI_IO_BASE + IT_I2C_BASE + 0x48#define ITE_I2CSHDR	IT8172_PCI_IO_BASE + IT_I2C_BASE + 0x4c#define ITE_I2CRSUR	IT8172_PCI_IO_BASE + IT_I2C_BASE + 0x50#define ITE_I2CPSUR	IT8172_PCI_IO_BASE + IT_I2C_BASE + 0x54#define ITE_I2CFDR	IT8172_PCI_IO_BASE + IT_I2C_BASE + 0x70#define ITE_I2CFBCR	IT8172_PCI_IO_BASE + IT_I2C_BASE + 0x74#define ITE_I2CFCR	IT8172_PCI_IO_BASE + IT_I2C_BASE + 0x78#define ITE_I2CFSR	IT8172_PCI_IO_BASE + IT_I2C_BASE + 0x7c/* Host Control Register ITE_I2CHCR */#define	ITE_I2CHCR_HCE	0x01	/* Enable I2C Host Controller */#define	ITE_I2CHCR_IE	0x02	/* Enable the interrupt after completing				   the current transaction */#define ITE_I2CHCR_CP_W	0x00	/* bit2-4 000 - Write */#define	ITE_I2CHCR_CP_R	0x08	/*	  010 - Current address read */#define	ITE_I2CHCR_CP_S	0x10	/*	  100 - Sequential read */#define ITE_I2CHCR_ST	0x20	/* Initiates the I2C host controller to execute				   the command and send the data programmed in				   all required registers to I2C bus */#define ITE_CMD		ITE_I2CHCR_HCE | ITE_I2CHCR_IE | ITE_I2CHCR_ST#define ITE_WRITE	ITE_CMD | ITE_I2CHCR_CP_W#define ITE_READ	ITE_CMD | ITE_I2CHCR_CP_R#define ITE_SREAD	ITE_CMD | ITE_I2CHCR_CP_S/* Host Status Register ITE_I2CHSR */#define	ITE_I2CHSR_DB	0x01	/* Device is busy, receives NACK response except				   in the first and last bytes */#define	ITE_I2CHSR_DNE	0x02	/* Target address on I2C bus does not exist */#define	ITE_I2CHSR_TDI	0x04	/* R/W Transaction on I2C bus was completed */#define	ITE_I2CHSR_HB	0x08	/* Host controller is processing transactions */#define	ITE_I2CHSR_FER	0x10	/* Error occurs in the FIFO *//* Slave Address Register ITE_I2CSAR */#define	ITE_I2CSAR_SA_MASK	0xfe	/* Target I2C device address */#define	ITE_I2CSAR_ASO		0x0100	/* Output 1/0 to I2CAS port when the					   next slave address is addressed *//* Slave Sub-address Register ITE_I2CSSAR */#define	ITE_I2CSSAR_SUBA_MASK	0xff	/* Target I2C device sub-address *//* Clock Counter Register ITE_I2CCKCNT */#define	ITE_I2CCKCNT_STOP	0x00	/* stop I2C clock */#define	ITE_I2CCKCNT_HPCC_MASK	0x7f	/* SCL high period counter */#define	ITE_I2CCKCNT_LPCC_MASK	0x7f00	/* SCL low period counter *//* START Hold Time Register ITE_I2CSHDR *//* value is counted based on 16 MHz internal clock */#define ITE_I2CSHDR_FM	0x0a	/* START condition at fast mode */#define	ITE_I2CSHDR_SM	0x47	/* START contition at standard mode *//* (Repeated) START Setup Time Register ITE_I2CRSUR *//* value is counted based on 16 MHz internal clock */#define	ITE_I2CRSUR_FM	0x0a	/* repeated START condition at fast mode */#define	ITE_I2CRSUR_SM	0x50	/* repeated START condition at standard mode *//* STOP setup Time Register ITE_I2CPSUR *//* FIFO Data Register ITE_I2CFDR */#define	ITE_I2CFDR_MASK		0xff/* FIFO Byte Count Register ITE_I2CFBCR */#define ITE_I2CFBCR_MASK	0x3f/* FIFO Control Register ITE_I2CFCR */#define	ITE_I2CFCR_FLUSH	0x01	/* Flush FIFO and reset the FIFO point					   and I2CFSR *//* FIFO Status Register ITE_I2CFSR */#define	ITE_I2CFSR_FO	0x01	/* FIFO is overrun when write */#define	ITE_I2CFSR_FU	0x02	/* FIFO is underrun when read */#define	ITE_I2CFSR_FF	0x04	/* FIFO is full when write */#define	ITE_I2CFSR_FE	0x08	/* FIFO is empty when read */#endif  /* I2C_ITE_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -