Mercurial > pt1.oyama
comparison driver/pt1_tuner.c @ 9:07b2fc07ff48
updated to current driver to support signal strength.
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Mon, 23 Feb 2009 14:28:35 +0900 |
parents | 67e8eca28a80 |
children | 98a92ce5382e |
comparison
equal
deleted
inserted
replaced
8:6da603afd363 | 9:07b2fc07ff48 |
---|---|
16 #include "pt1_com.h" | 16 #include "pt1_com.h" |
17 #include "pt1_pci.h" | 17 #include "pt1_pci.h" |
18 #include "pt1_i2c.h" | 18 #include "pt1_i2c.h" |
19 #include "pt1_tuner.h" | 19 #include "pt1_tuner.h" |
20 #include "pt1_tuner_data.h" | 20 #include "pt1_tuner_data.h" |
21 /* | 21 |
22 LNB : BIT 2 1 | |
23 OFF : 0 0 | |
24 +15V: 1 1 | |
25 +11V: 1 0 | |
26 | |
27 TUNER: BIT 3 0 | |
28 POWER-OFF : 0 0 | |
29 POWER-ON RESET : 0 1 | |
30 POWER-ON ONLY : 1 1 | |
31 */ | |
32 typedef struct _TUNER_INFO{ | 22 typedef struct _TUNER_INFO{ |
33 int isdb_s ; | 23 int isdb_s ; |
34 int isdb_t ; | 24 int isdb_t ; |
35 }TUNER_INFO; | 25 }TUNER_INFO; |
36 | 26 |
65 case LNB_15V: val = (1 << BIT_LNB_UP) | (1 << BIT_LNB_DOWN) ; break ; | 55 case LNB_15V: val = (1 << BIT_LNB_UP) | (1 << BIT_LNB_DOWN) ; break ; |
66 } | 56 } |
67 | 57 |
68 switch(tuner){ | 58 switch(tuner){ |
69 case TUNER_POWER_ON_RESET_ENABLE: val |= (1 << BIT_TUNER) ; break ; | 59 case TUNER_POWER_ON_RESET_ENABLE: val |= (1 << BIT_TUNER) ; break ; |
70 case TUNER_POWER_ON_RESET_DISABLE: val = (1 << BIT_TUNER) | (1 << BIT_RESET) ; break ; | 60 case TUNER_POWER_ON_RESET_DISABLE: val |= (1 << BIT_TUNER) | (1 << BIT_RESET) ; break ; |
71 } | 61 } |
72 | 62 |
73 writel(val, (regs + 4)); | 63 writel(val, (regs + 4)); |
74 } | 64 } |
75 static int init_isdb_s(void __iomem *regs, struct mutex *lock, __u32 addr) | 65 static int init_isdb_s(void __iomem *regs, struct mutex *lock, __u32 addr) |
305 tsid += 1; | 295 tsid += 1; |
306 tsid->ts_id = ts_id.ts[0] ; | 296 tsid->ts_id = ts_id.ts[0] ; |
307 tsid += 1; | 297 tsid += 1; |
308 } | 298 } |
309 | 299 |
310 memcpy(&wk, &bs_get_cn, sizeof(WBLOCK)); | |
311 wk.addr = addr; | |
312 tmcc->cn[0] = i2c_read(regs, lock, &wk, 1); | |
313 | |
314 memcpy(&wk, &bs_get_agc, sizeof(WBLOCK)); | 300 memcpy(&wk, &bs_get_agc, sizeof(WBLOCK)); |
315 wk.addr = addr; | |
316 tmcc->cn[1] = i2c_read(regs, lock, &wk, 1); | |
317 | |
318 memcpy(&wk, &bs_get_maxagc, sizeof(WBLOCK)); | |
319 wk.addr = addr; | 301 wk.addr = addr; |
320 tmcc->agc = i2c_read(regs, lock, &wk, 1); | 302 tmcc->agc = i2c_read(regs, lock, &wk, 1); |
321 | 303 |
322 // TS-ID別の情報を取得 | 304 // TS-ID別の情報を取得 |
323 tsid = &tmcc->ts_id[0] ; | 305 tsid = &tmcc->ts_id[0] ; |
345 memcpy(&wk, &bs_get_carrir, sizeof(WBLOCK)); | 327 memcpy(&wk, &bs_get_carrir, sizeof(WBLOCK)); |
346 wk.addr = addr; | 328 wk.addr = addr; |
347 tmcc->carriermargin = i2c_read(regs, lock, &wk, 1); | 329 tmcc->carriermargin = i2c_read(regs, lock, &wk, 1); |
348 return 0 ; | 330 return 0 ; |
349 } | 331 } |
332 int isdb_s_read_signal_strength(void __iomem *regs, struct mutex *lock, int addr) | |
333 { | |
334 WBLOCK wk; | |
335 __u32 val ; | |
336 __u32 val2; | |
337 int val3 ; | |
338 | |
339 memcpy(&wk, &bs_get_signal1, sizeof(WBLOCK)); | |
340 wk.addr = addr; | |
341 val = i2c_read(regs, lock, &wk, 1); | |
342 | |
343 memcpy(&wk, &bs_get_signal2, sizeof(WBLOCK)); | |
344 wk.addr = addr; | |
345 val2 = i2c_read(regs, lock, &wk, 1); | |
346 val3 = (((val << 8) & 0XFF00) | (val2 & 0XFF)); | |
347 | |
348 return val3 ; | |
349 } | |
350 | |
350 __u32 getfrequency_add(__u32 channel) | 351 __u32 getfrequency_add(__u32 channel) |
351 { | 352 { |
352 int lp ; | 353 int lp ; |
353 | 354 |
354 for(lp = 0 ; lp < 10 ; lp++){ | 355 for(lp = 0 ; lp < 10 ; lp++){ |
444 if(tmcclock != TRUE){ | 445 if(tmcclock != TRUE){ |
445 return -EIO ; | 446 return -EIO ; |
446 } | 447 } |
447 return 0 ; | 448 return 0 ; |
448 } | 449 } |
450 int isdb_t_read_signal_strength(void __iomem *regs, struct mutex *lock, int addr) | |
451 { | |
452 __u32 val ; | |
453 __u32 val2; | |
454 __u32 val3; | |
455 WBLOCK wk; | |
456 | |
457 memcpy(&wk, &isdb_t_signal1, sizeof(WBLOCK)); | |
458 wk.addr = addr; | |
459 val = i2c_read(regs, lock, &wk, 1); | |
460 printk(KERN_INFO "CN(1)Val(%x)\n", val); | |
461 | |
462 memcpy(&wk, &isdb_t_signal2, sizeof(WBLOCK)); | |
463 wk.addr = addr; | |
464 val2 = i2c_read(regs, lock, &wk, 1); | |
465 val3 = (((val << 8) & 0XFF00) | (val2 & 0XFF)); | |
466 return val3 ; | |
467 } | |
449 #if 0 | 468 #if 0 |
450 int isdb_t_tune(void __iomem *regs, struct mutex *lock, int addr, int channel, ISDB_T_TMCC *tmcc) | 469 int isdb_t_tune(void __iomem *regs, struct mutex *lock, int addr, int channel, ISDB_T_TMCC *tmcc) |
451 { | 470 { |
452 | 471 |
453 int lp ; | 472 int lp ; |