diff driver/pt1_i2c.c @ 142:1e7718cc2556

use utf-8 instead of euc-jp
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Wed, 30 Apr 2014 11:26:24 +0900
parents 2dc994610477
children
line wrap: on
line diff
--- a/driver/pt1_i2c.c	Tue Oct 01 16:36:12 2013 +0900
+++ b/driver/pt1_i2c.c	Wed Apr 30 11:26:24 2014 +0900
@@ -1,5 +1,5 @@
 /***************************************************************************/
-/* I2C                                                             */
+/* I2C情報作成                                                             */
 /***************************************************************************/
 #include <linux/module.h>
 #include <linux/kernel.h>
@@ -34,7 +34,7 @@
 static	void	stop_i2c(void __iomem *, __u32 *, __u32 *, __u32, __u32);
 
 
-// PCI˽񤭹I2Cǡ
+// PCIに書き込むI2Cデータ生成
 void	makei2c(void __iomem *regs, __u32 base_addr, __u32 i2caddr, __u32 writemode, __u32 data_en, __u32 clock, __u32 busy)
 {
 
@@ -60,17 +60,17 @@
 BIT 16, 16+8 ON
 BIT 17, 17+8 ON
  */
-	// XC3S
+	// XC3S初期化
 	for(lp = 0 ; lp < PROGRAM_ADDRESS ; lp++){
 		makei2c(regs, lp, 0, READ_EN, DATA_DIS, CLOCK_DIS, BUSY_DIS);
 	}
-	// XC3S Ԥ (512 PCI Clocks)
+	// XC3S 初期化待ち (512 PCI Clocks)
 	for(lp = 0 ; lp <  XC3S_PCI_CLOCK ; lp++){
 		makei2c(regs, 0, 0, READ_EN, DATA_DIS, CLOCK_DIS, BUSY_DIS);
 	}
-	// ץƥȲ
-	// ϲտޤƤ
-	// ɤɤȽʤ
+	// プロテクト解除
+	// これは何を意図しているんだろう?
+	// 元コードが良く判らない
 	for(lp = 0 ; lp < 57 ; lp++){
 		val = readl(regs);
 		if(val & I2C_READ_SYNC){
@@ -120,7 +120,7 @@
 		}
 	}
 
-	// ȥ꡼ऴȤž(OFF)
+	// ストリームごとの転送制御(OFF)
 	for(lp = 0 ; lp < MAX_CHANNEL ; lp++){
 		SetStream(regs, lp, 0);
 		SetStream(regs, lp, 0);
@@ -129,8 +129,8 @@
 }
 //
 //
-//BIT 0. 1 : Tunerֹ (Enable/Disable)
-//BIT 8. 9 : Tunerֹ
+//BIT 0. 1 : Tuner番号 (Enable/Disable)
+//BIT 8. 9 : Tuner番号
 //
 //
 void	SetStream(void __iomem *regs, __u32 channel, __u32 enable)
@@ -153,7 +153,7 @@
 	writel(firstval, regs);
 	writel(secondval, regs);
 
-	// RAMå줿
+	// RAMがロックされた?
 	for(lp = 0 ; lp < XC3S_PCI_CLOCK ; lp++){
 		val = readl(regs);
 		if((val & lockval)){
@@ -174,11 +174,11 @@
 	val = (readl(regs) & lockval);
 	writel(firstval, regs);
 
-	// RAMå줿
+	// RAMがロックされた?
 	for(lp = 0 ; lp < 10 ; lp++){
 		for(lp = 0 ; lp < 1024 ; lp++){
 			val2 = readl(regs);
-			// ǽ˼ǡȵդˤʤOK
+			// 最初に取得したデータと逆になればOK
 			if(((val2 & lockval) != val)){
 				return 0 ;
 			}
@@ -224,26 +224,26 @@
 	start_i2c(regs, &address, &clock, old_bits);
 	old_bits = 0 ;
 
-	// ޤɥ쥹
+	// まずアドレスを書く
 	for(bitpos = 0 ; bitpos < 7 ; bitpos++){
 		bits  = ((wblock->addr >> (6 - bitpos)) & 1);
 		writebits(regs, &address, old_bits, bits);
 		old_bits = bits ;
 	}
-	// סWRT
+	// タイプ:WRT
 	writebits(regs, &address, old_bits, 0);
-	// ACK/NACK(ɬ1)
+	// ACK/NACK用(必ず1)
 	writebits(regs, &address, 0, 1);
 
 	old_bits = 1 ;
-	// ºݤΥǡ
+	// 実際のデータを書く
 	for (lp = 0 ; lp < wblock->count ; lp++){
 		for(bitpos = 0 ; bitpos < 8 ; bitpos++){
 			bits  = ((wblock->value[lp] >> (7 - bitpos)) & 1);
 			writebits(regs, &address, old_bits, bits);
 			old_bits = bits ;
 		}
-		// ACK/NACK(ɬ1)
+		// ACK/NACK用(必ず1)
 		writebits(regs, &address, old_bits, 1);
 		old_bits = 1 ;
 	}
@@ -276,26 +276,26 @@
 	start_i2c(regs, &address, &clock, old_bits);
 	old_bits = 0 ;
 
-	// ޤɥ쥹
+	// まずアドレスを書く
 	for(bitpos = 0 ; bitpos < 7 ; bitpos++){
 		bits  = ((wblock->addr >> (6 - bitpos)) & 1);
 		writebits(regs, &address, old_bits, bits);
 		old_bits = bits ;
 	}
-	// סWRT
+	// タイプ:WRT
 	writebits(regs, &address, old_bits, 0);
-	// ACK/NACK(ɬ1)
+	// ACK/NACK用(必ず1)
 	writebits(regs, &address, 0, 1);
 
 	old_bits = 1 ;
-	// ºݤΥǡ
+	// 実際のデータを書く
 	for (lp = 0 ; lp < wblock->count ; lp++){
 		for(bitpos = 0 ; bitpos < 8 ; bitpos++){
 			bits  = ((wblock->value[lp] >> (7 - bitpos)) & 1);
 			writebits(regs, &address, old_bits, bits);
 			old_bits = bits ;
 		}
-		// ACK/NACK(ɬ1)
+		// ACK/NACK用(必ず1)
 		writebits(regs, &address, old_bits, 1);
 		old_bits = 1 ;
 	}
@@ -305,22 +305,22 @@
 	clock = TRUE ;
 	address += 1 ;
 
-	//  Read
+	// ここから Read
 	start_i2c(regs, &address, &clock, old_bits);
 	old_bits = 0 ;
-	// ޤɥ쥹
+	// まずアドレスを書く
 	for(bitpos = 0 ; bitpos < 7 ; bitpos++){
 		bits  = ((wblock->addr >> (6 - bitpos)) & 1);
 		writebits(regs, &address, old_bits, bits);
 		old_bits = bits ;
 	}
-	// סRD
+	// タイプ:RD
 	writebits(regs, &address, old_bits, 1);
-	// ACK/NACK(ɬ1)
+	// ACK/NACK用(必ず1)
 	writebits(regs, &address, 1, 1);
 
 	old_bits = 1 ;
-	// ºݤΥǡ
+	// 実際のデータを書く
 	for (lp = 0 ; lp < count ; lp++){
 		for(bitpos = 0 ; bitpos < 8 ; bitpos++){
 			writebits(regs, &address, old_bits, 1);
@@ -330,11 +330,11 @@
 			old_bits = 1 ;
 		}
 		if(lp >= (count - 1)){
-			// ACK/NACK(ɬ1)
+			// ACK/NACK用(必ず1)
 			writebits(regs, &address, old_bits, 1);
 			old_bits = 0 ;
 		}else{
-			// ACK/NACK(ɬ1)
+			// ACK/NACK用(必ず1)
 			writebits(regs, &address, old_bits, 0);
 			old_bits = 1 ;
 		}
@@ -377,9 +377,9 @@
 
 static	void	start_i2c(void __iomem *regs, __u32 *address, __u32 *clock, __u32 data)
 {
-	// ǡĤäƤʤХǡ򲼤
+	// データが残っていなければデータを下げる
 	if(!data){
-		// CLOCKCLOCK򲼤
+		// CLOCKがあればCLOCKを下げる
 		if(*clock != TRUE){
 			*clock = TRUE ;
 			makei2c(regs, *address, *address + 1, 0, 1, 1, 1);
@@ -401,9 +401,9 @@
 
 static	void	stop_i2c(void __iomem *regs, __u32 *address, __u32 *clock, __u32 data, __u32 end)
 {
-	// ǡĤäƤ
+	// データが残っていて
 	if(data){
-		// å
+		// クロックがあれば
 		if(*clock != TRUE){
 			*clock = TRUE ;
 			makei2c(regs, *address, *address + 1, 0, 0, 1, 1);
@@ -412,7 +412,7 @@
 		makei2c(regs, *address, *address + 1, 0, 1, 1, 1);
 		*address += 1 ;
 	}
-	// åƤ
+	// クロックが落ちていれば
 	if(*clock){
 		*clock = FALSE ;
 		makei2c(regs, *address, *address + 1, 0, 1, 0, 1);
@@ -433,7 +433,7 @@
 	int		lp;
 	__u32	val ;
 
-	// å
+	// ロックする
 	mutex_lock(lock);
 #if 0
 	printk(KERN_INFO "Addr=%x(%d)\n", wblock->addr, wblock->count);
@@ -445,7 +445,7 @@
 
 	blockwrite(regs, wblock);
 	writel(FIFO_GO, regs + FIFO_GO_ADDR);
-	//Ȥꤢåʤ褦ˡ
+	//とりあえずロックしないように。
 	for(lp = 0 ; lp < 100 ; lp++){
 		val = readl(regs + FIFO_RESULT_ADDR);
 		if(!(val & FIFO_DONE)){
@@ -462,7 +462,7 @@
 	int		lp;
 	__u32	val ;
 
-	// å
+	// ロックする
 	mutex_lock(lock);
 #if 0
 	printk(KERN_INFO "Addr=%x:%d:%d\n", wblock->addr, wblock->count, size);