Lines Matching refs:isp

30 static void csi2_if_enable(struct isp_device *isp,  in csi2_if_enable()  argument
35 isp_reg_clr_set(isp, csi2->regs1, ISPCSI2_CTRL, ISPCSI2_CTRL_IF_EN, in csi2_if_enable()
46 static void csi2_recv_config(struct isp_device *isp, in csi2_recv_config() argument
52 reg = isp_reg_readl(isp, csi2->regs1, ISPCSI2_CTRL); in csi2_recv_config()
77 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_CTRL); in csi2_recv_config()
205 is_3630 = csi2->isp->revision == ISP_REVISION_15_0; in csi2_ctx_map_format()
222 struct isp_device *isp = csi2->isp; in csi2_set_outaddr() local
227 isp_reg_writel(isp, ctx->ping_addr, in csi2_set_outaddr()
229 isp_reg_writel(isp, ctx->pong_addr, in csi2_set_outaddr()
250 static void csi2_ctx_enable(struct isp_device *isp, in csi2_ctx_enable() argument
257 reg = isp_reg_readl(isp, csi2->regs1, ISPCSI2_CTX_CTRL1(ctxnum)); in csi2_ctx_enable()
273 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_CTX_CTRL1(ctxnum)); in csi2_ctx_enable()
282 static void csi2_ctx_config(struct isp_device *isp, in csi2_ctx_config() argument
289 reg = isp_reg_readl(isp, csi2->regs1, ISPCSI2_CTX_CTRL1(ctx->ctxnum)); in csi2_ctx_config()
306 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_CTX_CTRL1(ctx->ctxnum)); in csi2_ctx_config()
309 reg = isp_reg_readl(isp, csi2->regs1, ISPCSI2_CTX_CTRL2(ctx->ctxnum)); in csi2_ctx_config()
329 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_CTX_CTRL2(ctx->ctxnum)); in csi2_ctx_config()
332 reg = isp_reg_readl(isp, csi2->regs1, ISPCSI2_CTX_CTRL3(ctx->ctxnum)); in csi2_ctx_config()
336 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_CTX_CTRL3(ctx->ctxnum)); in csi2_ctx_config()
339 reg = isp_reg_readl(isp, csi2->regs1, in csi2_ctx_config()
343 isp_reg_writel(isp, reg, csi2->regs1, in csi2_ctx_config()
346 isp_reg_writel(isp, ctx->ping_addr, in csi2_ctx_config()
349 isp_reg_writel(isp, ctx->pong_addr, in csi2_ctx_config()
357 static void csi2_timing_config(struct isp_device *isp, in csi2_timing_config() argument
363 reg = isp_reg_readl(isp, csi2->regs1, ISPCSI2_TIMING); in csi2_timing_config()
384 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_TIMING); in csi2_timing_config()
391 static void csi2_irq_ctx_set(struct isp_device *isp, in csi2_irq_ctx_set() argument
397 isp_reg_writel(isp, ISPCSI2_CTX_IRQSTATUS_FE_IRQ, csi2->regs1, in csi2_irq_ctx_set()
400 isp_reg_set(isp, csi2->regs1, ISPCSI2_CTX_IRQENABLE(i), in csi2_irq_ctx_set()
403 isp_reg_clr(isp, csi2->regs1, ISPCSI2_CTX_IRQENABLE(i), in csi2_irq_ctx_set()
412 static void csi2_irq_complexio1_set(struct isp_device *isp, in csi2_irq_complexio1_set() argument
443 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_PHY_IRQSTATUS); in csi2_irq_complexio1_set()
445 reg |= isp_reg_readl(isp, csi2->regs1, ISPCSI2_PHY_IRQENABLE); in csi2_irq_complexio1_set()
448 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_PHY_IRQENABLE); in csi2_irq_complexio1_set()
455 static void csi2_irq_status_set(struct isp_device *isp, in csi2_irq_status_set() argument
467 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_IRQSTATUS); in csi2_irq_status_set()
469 reg |= isp_reg_readl(isp, csi2->regs1, ISPCSI2_IRQENABLE); in csi2_irq_status_set()
473 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_IRQENABLE); in csi2_irq_status_set()
485 struct isp_device *isp = csi2->isp; in omap3isp_csi2_reset() local
496 isp_reg_set(isp, csi2->regs1, ISPCSI2_SYSCONFIG, in omap3isp_csi2_reset()
500 reg = isp_reg_readl(isp, csi2->regs1, ISPCSI2_SYSSTATUS) & in omap3isp_csi2_reset()
510 dev_err(isp->dev, "CSI2: Soft reset try count exceeded!\n"); in omap3isp_csi2_reset()
514 if (isp->revision == ISP_REVISION_15_0) in omap3isp_csi2_reset()
515 isp_reg_set(isp, csi2->regs1, ISPCSI2_PHY_CFG, in omap3isp_csi2_reset()
520 reg = isp_reg_readl(isp, csi2->phy->phy_regs, ISPCSIPHY_REG1) in omap3isp_csi2_reset()
528 dev_err(isp->dev, in omap3isp_csi2_reset()
533 if (isp->autoidle) in omap3isp_csi2_reset()
534 isp_reg_clr_set(isp, csi2->regs1, ISPCSI2_SYSCONFIG, in omap3isp_csi2_reset()
538 ((isp->revision == ISP_REVISION_15_0) ? in omap3isp_csi2_reset()
541 isp_reg_clr_set(isp, csi2->regs1, ISPCSI2_SYSCONFIG, in omap3isp_csi2_reset()
553 struct isp_device *isp = csi2->isp; in csi2_configure() local
577 dev_dbg(isp->dev, "%s: l3_ick %lu, external_rate %u, vp_out_ctrl %u\n", in csi2_configure()
617 csi2_irq_complexio1_set(isp, csi2, 1); in csi2_configure()
618 csi2_irq_ctx_set(isp, csi2, 1); in csi2_configure()
619 csi2_irq_status_set(isp, csi2, 1); in csi2_configure()
622 csi2_timing_config(isp, csi2, timing); in csi2_configure()
623 csi2_recv_config(isp, csi2, &csi2->ctrl); in csi2_configure()
624 csi2_ctx_config(isp, csi2, &csi2->contexts[0]); in csi2_configure()
632 #define CSI2_PRINT_REGISTER(isp, regs, name)\ argument
633 dev_dbg(isp->dev, "###CSI2 " #name "=0x%08x\n", \
634 isp_reg_readl(isp, regs, ISPCSI2_##name))
638 struct isp_device *isp = csi2->isp; in csi2_print_status() local
643 dev_dbg(isp->dev, "-------------CSI2 Register dump-------------\n"); in csi2_print_status()
645 CSI2_PRINT_REGISTER(isp, csi2->regs1, SYSCONFIG); in csi2_print_status()
646 CSI2_PRINT_REGISTER(isp, csi2->regs1, SYSSTATUS); in csi2_print_status()
647 CSI2_PRINT_REGISTER(isp, csi2->regs1, IRQENABLE); in csi2_print_status()
648 CSI2_PRINT_REGISTER(isp, csi2->regs1, IRQSTATUS); in csi2_print_status()
649 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTRL); in csi2_print_status()
650 CSI2_PRINT_REGISTER(isp, csi2->regs1, DBG_H); in csi2_print_status()
651 CSI2_PRINT_REGISTER(isp, csi2->regs1, GNQ); in csi2_print_status()
652 CSI2_PRINT_REGISTER(isp, csi2->regs1, PHY_CFG); in csi2_print_status()
653 CSI2_PRINT_REGISTER(isp, csi2->regs1, PHY_IRQSTATUS); in csi2_print_status()
654 CSI2_PRINT_REGISTER(isp, csi2->regs1, SHORT_PACKET); in csi2_print_status()
655 CSI2_PRINT_REGISTER(isp, csi2->regs1, PHY_IRQENABLE); in csi2_print_status()
656 CSI2_PRINT_REGISTER(isp, csi2->regs1, DBG_P); in csi2_print_status()
657 CSI2_PRINT_REGISTER(isp, csi2->regs1, TIMING); in csi2_print_status()
658 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_CTRL1(0)); in csi2_print_status()
659 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_CTRL2(0)); in csi2_print_status()
660 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_DAT_OFST(0)); in csi2_print_status()
661 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_DAT_PING_ADDR(0)); in csi2_print_status()
662 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_DAT_PONG_ADDR(0)); in csi2_print_status()
663 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_IRQENABLE(0)); in csi2_print_status()
664 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_IRQSTATUS(0)); in csi2_print_status()
665 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_CTRL3(0)); in csi2_print_status()
667 dev_dbg(isp->dev, "--------------------------------------------\n"); in csi2_print_status()
680 struct isp_device *isp = csi2->isp; in csi2_isr_buffer() local
683 csi2_ctx_enable(isp, csi2, 0, 0); in csi2_isr_buffer()
695 csi2_ctx_enable(isp, csi2, 0, 1); in csi2_isr_buffer()
701 struct isp_device *isp = csi2->isp; in csi2_isr_ctx() local
705 status = isp_reg_readl(isp, csi2->regs1, ISPCSI2_CTX_IRQSTATUS(n)); in csi2_isr_ctx()
706 isp_reg_writel(isp, status, csi2->regs1, ISPCSI2_CTX_IRQSTATUS(n)); in csi2_isr_ctx()
725 csi2_ctx_config(isp, csi2, ctx); in csi2_isr_ctx()
726 csi2_ctx_enable(isp, csi2, n, 1); in csi2_isr_ctx()
742 struct isp_device *isp = csi2->isp; in omap3isp_csi2_isr() local
747 csi2_irqstatus = isp_reg_readl(isp, csi2->regs1, ISPCSI2_IRQSTATUS); in omap3isp_csi2_isr()
748 isp_reg_writel(isp, csi2_irqstatus, csi2->regs1, ISPCSI2_IRQSTATUS); in omap3isp_csi2_isr()
752 cpxio1_irqstatus = isp_reg_readl(isp, csi2->regs1, in omap3isp_csi2_isr()
754 isp_reg_writel(isp, cpxio1_irqstatus, in omap3isp_csi2_isr()
756 dev_dbg(isp->dev, "CSI2: ComplexIO Error IRQ " in omap3isp_csi2_isr()
766 dev_dbg(isp->dev, "CSI2 Err:" in omap3isp_csi2_isr()
794 dev_dbg(isp->dev, "CSI2: ECC correction done\n"); in omap3isp_csi2_isr()
808 struct isp_device *isp = video->isp; in csi2_queue() local
809 struct isp_csi2_device *csi2 = &isp->isp_csi2a; in csi2_queue()
821 csi2_if_enable(isp, csi2, 1); in csi2_queue()
822 csi2_ctx_enable(isp, csi2, 0, 1); in csi2_queue()
1056 struct isp_device *isp = csi2->isp; in csi2_set_stream() local
1064 omap3isp_sbl_enable(isp, OMAP3_ISP_SBL_CSI2A_WRITE); in csi2_set_stream()
1079 csi2_ctx_enable(isp, csi2, 0, 1); in csi2_set_stream()
1080 csi2_if_enable(isp, csi2, 1); in csi2_set_stream()
1089 dev_dbg(isp->dev, "%s: module stop timeout.\n", in csi2_set_stream()
1091 csi2_ctx_enable(isp, csi2, 0, 0); in csi2_set_stream()
1092 csi2_if_enable(isp, csi2, 0); in csi2_set_stream()
1093 csi2_irq_ctx_set(isp, csi2, 0); in csi2_set_stream()
1096 omap3isp_sbl_disable(isp, OMAP3_ISP_SBL_CSI2A_WRITE); in csi2_set_stream()
1260 csi2->video_out.isp = csi2->isp; in csi2_init_entities()
1285 int omap3isp_csi2_init(struct isp_device *isp) in omap3isp_csi2_init() argument
1287 struct isp_csi2_device *csi2a = &isp->isp_csi2a; in omap3isp_csi2_init()
1288 struct isp_csi2_device *csi2c = &isp->isp_csi2c; in omap3isp_csi2_init()
1291 csi2a->isp = isp; in omap3isp_csi2_init()
1295 csi2a->phy = &isp->isp_csiphy2; in omap3isp_csi2_init()
1303 if (isp->revision == ISP_REVISION_15_0) { in omap3isp_csi2_init()
1304 csi2c->isp = isp; in omap3isp_csi2_init()
1308 csi2c->phy = &isp->isp_csiphy1; in omap3isp_csi2_init()
1319 void omap3isp_csi2_cleanup(struct isp_device *isp) in omap3isp_csi2_cleanup() argument
1321 struct isp_csi2_device *csi2a = &isp->isp_csi2a; in omap3isp_csi2_cleanup()