ITU-656の設定関連レジスタ
CSI_CCIR_CODE_1,2,3
まず、CSI_SENS_CONFのSENS_PROTCLを10か11にするみたい。いまいち違いはわからんけど,
CCIR progressive mode:10
CCIR interlaced mode:11
多分CCIR interlaced modeにするんじゃないかな?
該当レジスタを設定してるところは、
ipu_csi.c内部のipu_csi_init_interfaceという関数
/* Set CCIR registers */ if ((sig.clk_mode == IPU_CSI_CLK_MODE_CCIR656_PROGRESSIVE) || (sig.clk_mode == IPU_CSI_CLK_MODE_CCIR656_INTERLACED)) { __raw_writel(0x40030, CSI_CCIR_CODE_1); __raw_writel(0xFF0000, CSI_CCIR_CODE_3); }
ここで分かるのが、CSI_CCIR_CODE_3はタイミングコードの始まりの3byte分の設定。
んでCSI_CCIR_CODE_1,2はフィールドが0か1の違いらしいので基本は同じ。
んで毎回恒例のKZM-ARM11のソースと比較する。
/* Set CCIR registers */ if ((sig.clk_mode == IPU_CSI_CLK_MODE_CCIR656_PROGRESSIVE) || (sig.clk_mode == IPU_CSI_CLK_MODE_CCIR656_INTERLACED)) { #if defined(CONFIG_MACH_MX3KZ) /* { */ __raw_writel(0x40580, CSI_CCIR_CODE_1); __raw_writel(0xd07c0, CSI_CCIR_CODE_2); #else /* }{ */ __raw_writel(0x40030, CSI_CCIR_CODE_1); #endif /* } */ __raw_writel(0xFF0000, CSI_CCIR_CODE_3); }
どうやら54kように買えてる気がする。取り合えずarmadilloでも試してみよう。
↓
ダメだった。
取り合えずもう少し頑張ればできそうな気がする。