読者です 読者をやめる 読者になる 読者になる

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でも試してみよう。

ダメだった。
取り合えずもう少し頑張ればできそうな気がする。