Mercurial > pt1.oyama
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/driver/pt1_tuner.h Mon Feb 16 15:41:49 2009 +0900 @@ -0,0 +1,111 @@ +#ifndef __PT1_TUNER_H__ +#define __PT1_TUNER_H__ +/***************************************************************************/ +/* チューナ状態定義 */ +/***************************************************************************/ +// SLEEPモード設定 +enum { + TYPE_SLEEP, + TYPE_WAKEUP +}; + +// チューナパワーモード設定 +enum { + BIT_TUNER, + BIT_LNB_UP, + BIT_LNB_DOWN, + BIT_RESET +}; + +// LNBパワー設定 +enum{ + LNB_OFF, // LNB OFF + LNB_11V, // +11 V + LNB_15V // +15 V + +}; +enum{ // 電源/ハードウェアリセット + TUNER_POWER_OFF, // オフ/イネーブル + TUNER_POWER_ON_RESET_ENABLE, // オン/イネーブル + TUNER_POWER_ON_RESET_DISABLE // オン/ディセーブル +}; +/***************************************************************************/ +/* チューナ状態定義 */ +/***************************************************************************/ +#define MAX_BS_TS_ID 8 // TS-ID取得最大値 +#define MAX_ISDB_T_INFO 3 // 地デジ階層情報数 +#define MAX_ISDB_T_INFO_LEN 2 // 地デジ階層情報数 +/***************************************************************************/ +/* ISDB-S状態定義 */ +/***************************************************************************/ +typedef struct _ISDB_S_CH_TABLE{ + int channel ; // 入力チャンネル番号 + int real_chno ; // 実際のテーブル番号 + int slotno ; // スロット番号 +}ISDB_S_CH_TABLE ; + +/***************************************************************************/ +/* ISDB-S状態定義 */ +/***************************************************************************/ +typedef struct _ISDB_S_TS_ID{ + __u16 ts_id ; // TS-ID + __u16 dmy ; // PAD + __u8 low_mode ; // 低階層 モード + __u8 low_slot ; // 低階層 スロット数 + __u8 high_mode ; // 高階層 モード + __u8 high_slot ; // 高階層 スロット数 +}ISDB_S_TS_ID; +typedef struct _ISDB_S_TMCC{ + ISDB_S_TS_ID ts_id[MAX_BS_TS_ID]; // 相対TS番号nに対するTS ID情報 +#if 0 + __u32 indicator; // 変更指示 (5ビット) + __u32 emergency; // 起動制御信号 (1ビット) + __u32 uplink; // アップリンク制御情報 (4ビット) + __u32 ext; // 拡張フラグ (1ビット) + __u32 extdata[2]; // 拡張領域 (61ビット) +#endif + __u32 cn[2] ; // CN + __u32 agc ; // AGC + __u32 clockmargin ; // クロック周波数誤差 + __u32 carriermargin ; // キャリア周波数誤差 +}ISDB_S_TMCC; + +// 階層情報 +typedef struct _ISDB_T_INFO{ + __u32 mode; // キャリア変調方式 (3ビット) + __u32 rate; // 畳込み符号化率 (3ビット) + __u32 interleave; // インターリーブ長 (3ビット) + __u32 segment; // セグメント数 (4ビット) +}ISDB_T_INFO; + +typedef struct _ISDB_T_TMCC { +#if 0 + __u32 sysid; // システム識別 (2ビット) + __u32 indicator; // 伝送パラメータ切り替え指標 (4ビット) + __u32 emergency; // 緊急警報放送用起動フラグ (1ビット) +#endif + ISDB_T_INFO info[MAX_ISDB_T_INFO]; +#if 0 + // カレント情報 + __u32 partial; // 部分受信フラグ (1ビット) + __u32 Phase; // 連結送信位相補正量 (3ビット) + __u32 Reserved; // リザーブ (12ビット) +#endif + __u32 cn[2] ; // CN + __u32 agc ; // AGC + __u32 clockmargin ; // クロック周波数誤差 + __u32 carriermargin ; // キャリア周波数誤差 +}ISDB_T_TMCC; +/***************************************************************************/ +/* チューナ状態定義 */ +/***************************************************************************/ +extern void settuner_reset(void __iomem *, __u32, __u32); +extern int tuner_init(void __iomem *, struct mutex *, int); +extern void set_sleepmode(void __iomem *, struct mutex *, int, int, int); + +extern int bs_tune(void __iomem *, struct mutex *, int, int, ISDB_S_TMCC *); +extern int ts_lock(void __iomem *, struct mutex *, int, __u16); + +extern int isdb_t_tune(void __iomem *, struct mutex *, int, int, ISDB_T_TMCC *); +extern int isdb_t_frequency(void __iomem *, struct mutex *, int, int, int); +#endif