comparison driver/pt1_tuner.h @ 0:67e8eca28a80

initial import
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Mon, 16 Feb 2009 15:41:49 +0900
parents
children 07b2fc07ff48
comparison
equal deleted inserted replaced
-1:000000000000 0:67e8eca28a80
1 #ifndef __PT1_TUNER_H__
2 #define __PT1_TUNER_H__
3 /***************************************************************************/
4 /* チューナ状態定義 */
5 /***************************************************************************/
6 // SLEEPモード設定
7 enum {
8 TYPE_SLEEP,
9 TYPE_WAKEUP
10 };
11
12 // チューナパワーモード設定
13 enum {
14 BIT_TUNER,
15 BIT_LNB_UP,
16 BIT_LNB_DOWN,
17 BIT_RESET
18 };
19
20 // LNBパワー設定
21 enum{
22 LNB_OFF, // LNB OFF
23 LNB_11V, // +11 V
24 LNB_15V // +15 V
25
26 };
27 enum{ // 電源/ハードウェアリセット
28 TUNER_POWER_OFF, // オフ/イネーブル
29 TUNER_POWER_ON_RESET_ENABLE, // オン/イネーブル
30 TUNER_POWER_ON_RESET_DISABLE // オン/ディセーブル
31 };
32 /***************************************************************************/
33 /* チューナ状態定義 */
34 /***************************************************************************/
35 #define MAX_BS_TS_ID 8 // TS-ID取得最大値
36 #define MAX_ISDB_T_INFO 3 // 地デジ階層情報数
37 #define MAX_ISDB_T_INFO_LEN 2 // 地デジ階層情報数
38 /***************************************************************************/
39 /* ISDB-S状態定義 */
40 /***************************************************************************/
41 typedef struct _ISDB_S_CH_TABLE{
42 int channel ; // 入力チャンネル番号
43 int real_chno ; // 実際のテーブル番号
44 int slotno ; // スロット番号
45 }ISDB_S_CH_TABLE ;
46
47 /***************************************************************************/
48 /* ISDB-S状態定義 */
49 /***************************************************************************/
50 typedef struct _ISDB_S_TS_ID{
51 __u16 ts_id ; // TS-ID
52 __u16 dmy ; // PAD
53 __u8 low_mode ; // 低階層 モード
54 __u8 low_slot ; // 低階層 スロット数
55 __u8 high_mode ; // 高階層 モード
56 __u8 high_slot ; // 高階層 スロット数
57 }ISDB_S_TS_ID;
58 typedef struct _ISDB_S_TMCC{
59 ISDB_S_TS_ID ts_id[MAX_BS_TS_ID]; // 相対TS番号nに対するTS ID情報
60 #if 0
61 __u32 indicator; // 変更指示 (5ビット)
62 __u32 emergency; // 起動制御信号 (1ビット)
63 __u32 uplink; // アップリンク制御情報 (4ビット)
64 __u32 ext; // 拡張フラグ (1ビット)
65 __u32 extdata[2]; // 拡張領域 (61ビット)
66 #endif
67 __u32 cn[2] ; // CN
68 __u32 agc ; // AGC
69 __u32 clockmargin ; // クロック周波数誤差
70 __u32 carriermargin ; // キャリア周波数誤差
71 }ISDB_S_TMCC;
72
73 // 階層情報
74 typedef struct _ISDB_T_INFO{
75 __u32 mode; // キャリア変調方式 (3ビット)
76 __u32 rate; // 畳込み符号化率 (3ビット)
77 __u32 interleave; // インターリーブ長 (3ビット)
78 __u32 segment; // セグメント数 (4ビット)
79 }ISDB_T_INFO;
80
81 typedef struct _ISDB_T_TMCC {
82 #if 0
83 __u32 sysid; // システム識別 (2ビット)
84 __u32 indicator; // 伝送パラメータ切り替え指標 (4ビット)
85 __u32 emergency; // 緊急警報放送用起動フラグ (1ビット)
86 #endif
87 ISDB_T_INFO info[MAX_ISDB_T_INFO];
88 #if 0
89 // カレント情報
90 __u32 partial; // 部分受信フラグ (1ビット)
91 __u32 Phase; // 連結送信位相補正量 (3ビット)
92 __u32 Reserved; // リザーブ (12ビット)
93 #endif
94 __u32 cn[2] ; // CN
95 __u32 agc ; // AGC
96 __u32 clockmargin ; // クロック周波数誤差
97 __u32 carriermargin ; // キャリア周波数誤差
98 }ISDB_T_TMCC;
99 /***************************************************************************/
100 /* チューナ状態定義 */
101 /***************************************************************************/
102 extern void settuner_reset(void __iomem *, __u32, __u32);
103 extern int tuner_init(void __iomem *, struct mutex *, int);
104 extern void set_sleepmode(void __iomem *, struct mutex *, int, int, int);
105
106 extern int bs_tune(void __iomem *, struct mutex *, int, int, ISDB_S_TMCC *);
107 extern int ts_lock(void __iomem *, struct mutex *, int, __u16);
108
109 extern int isdb_t_tune(void __iomem *, struct mutex *, int, int, ISDB_T_TMCC *);
110 extern int isdb_t_frequency(void __iomem *, struct mutex *, int, int, int);
111 #endif