diff driver/pt1_i2c.h @ 0:67e8eca28a80

initial import
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Mon, 16 Feb 2009 15:41:49 +0900
parents
children 3c2123189edf
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/driver/pt1_i2c.h	Mon Feb 16 15:41:49 2009 +0900
@@ -0,0 +1,83 @@
+#ifndef		__PT1_I2C_H__
+#define		__PT1_I2C_H__
+#include <linux/mutex.h>
+/***************************************************************************/
+/* I2Cデータ位置定義                                                       */
+/***************************************************************************/
+#define		MAX_CHANNEL			4		// チャネル数
+
+#define		FALSE		0
+#define		TRUE		1
+
+/***************************************************************************/
+/* I2Cデータ位置定義                                                       */
+/***************************************************************************/
+#define		I2C_ADDRESS		10		// I2Cアドレス(10ビット)
+
+#define		I2C_DATA_EN		10
+#define		I2C_CLOCK		11
+#define		I2C_WRIET_MODE	12		// I2C書き込み/読み込み
+#define		I2C_BUSY		13
+#define		I2C_DATA		18		// I2Cデータ(18ビット)
+/***************************************************************************/
+/* I2C定義                                                                 */
+/***************************************************************************/
+#define		WRITE_EN		1		// 書き込み
+#define		READ_EN			0		// 読み込み
+#define		DATA_EN			1		// データあり
+#define		DATA_DIS		0		// データなし
+#define		CLOCK_EN		1		// CLOCKあり
+#define		CLOCK_DIS		0		// CLOCKなし
+#define		BUSY_EN			1		// BUSYあり
+#define		BUSY_DIS		0		// BUSYなし
+
+/***************************************************************************/
+/*                                                                         */
+/***************************************************************************/
+#define		PCI_LOCKED			1
+#define		RAM_LOCKED			2
+#define		RAM_SHIFT			4
+/***************************************************************************/
+/* ビット                                                                  */
+/***************************************************************************/
+#define		WRITE_PCI_RESET		(1 << 16)
+#define		WRITE_PCI_RESET_	(1 << 24)
+#define		WRITE_RAM_RESET		(1 << 17)
+#define		WRITE_RAM_RESET_	(1 << 25)
+#define		WRITE_RAM_ENABLE	(1 << 1)
+
+#define		WRITE_PULSE			(1 << 3)
+#define		I2C_READ_SYNC		(1 << 29)
+#define		READ_DATA			(1 << 30)
+#define		READ_UNLOCK			(1 << 31)
+
+#define		XC3S_PCI_CLOCK		(512 / 4)
+/***************************************************************************/
+/* I2Cアドレス定義                                                         */
+/***************************************************************************/
+#define		T0_ISDB_S			0X1B		// チューナ0 ISDB-S
+#define		T1_ISDB_S			0X19		// チューナ1 ISDB-S
+
+#define		T0_ISDB_T			0X1A		// チューナ0 ISDB-T
+#define		T1_ISDB_T			0X18		// チューナ1 ISDB-T
+
+/***************************************************************************/
+/* I2C書き込みデータ定義                                                   */
+/***************************************************************************/
+typedef	struct	_WBLOCK{
+	__u8	addr ;			// I2Cデバイスアドレス
+	__u32	count ;			// 転送個数
+	__u8	value[16];		// 書き込み値
+}WBLOCK;
+
+/***************************************************************************/
+/* 関数定義                                                                */
+/***************************************************************************/
+//extern	__u32	makei2c(void __iomem *, __u32, __u32, __u32, __u32, __u32, __u32);
+extern	int		xc3s_init(void __iomem *);
+extern	void	SetStream(void __iomem *, __u32, __u32);
+extern	void	blockwrite(void __iomem *, WBLOCK *);
+extern	void	i2c_write(void __iomem *, struct mutex *, WBLOCK *);
+extern	__u32	i2c_read(void __iomem *, struct mutex *, WBLOCK *, int);
+
+#endif