Lines Matching defs:isp

18 #include "isp.h"
27 static void csi2_if_enable(struct isp_device *isp,
32 isp_reg_clr_set(isp, csi2->regs1, ISPCSI2_CTRL, ISPCSI2_CTRL_IF_EN,
43 static void csi2_recv_config(struct isp_device *isp,
49 reg = isp_reg_readl(isp, csi2->regs1, ISPCSI2_CTRL);
74 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_CTRL);
94 * - 2 isp revisions (certain format must be handled differently on OMAP3630)
202 is_3630 = csi2->isp->revision == ISP_REVISION_15_0;
219 struct isp_device *isp = csi2->isp;
224 isp_reg_writel(isp, ctx->ping_addr,
226 isp_reg_writel(isp, ctx->pong_addr,
247 static void csi2_ctx_enable(struct isp_device *isp,
254 reg = isp_reg_readl(isp, csi2->regs1, ISPCSI2_CTX_CTRL1(ctxnum));
270 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_CTX_CTRL1(ctxnum));
279 static void csi2_ctx_config(struct isp_device *isp,
286 reg = isp_reg_readl(isp, csi2->regs1, ISPCSI2_CTX_CTRL1(ctx->ctxnum));
303 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_CTX_CTRL1(ctx->ctxnum));
306 reg = isp_reg_readl(isp, csi2->regs1, ISPCSI2_CTX_CTRL2(ctx->ctxnum));
326 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_CTX_CTRL2(ctx->ctxnum));
329 reg = isp_reg_readl(isp, csi2->regs1, ISPCSI2_CTX_CTRL3(ctx->ctxnum));
333 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_CTX_CTRL3(ctx->ctxnum));
336 reg = isp_reg_readl(isp, csi2->regs1,
340 isp_reg_writel(isp, reg, csi2->regs1,
343 isp_reg_writel(isp, ctx->ping_addr,
346 isp_reg_writel(isp, ctx->pong_addr,
354 static void csi2_timing_config(struct isp_device *isp,
360 reg = isp_reg_readl(isp, csi2->regs1, ISPCSI2_TIMING);
381 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_TIMING);
388 static void csi2_irq_ctx_set(struct isp_device *isp,
394 isp_reg_writel(isp, ISPCSI2_CTX_IRQSTATUS_FE_IRQ, csi2->regs1,
397 isp_reg_set(isp, csi2->regs1, ISPCSI2_CTX_IRQENABLE(i),
400 isp_reg_clr(isp, csi2->regs1, ISPCSI2_CTX_IRQENABLE(i),
409 static void csi2_irq_complexio1_set(struct isp_device *isp,
440 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_PHY_IRQSTATUS);
442 reg |= isp_reg_readl(isp, csi2->regs1, ISPCSI2_PHY_IRQENABLE);
445 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_PHY_IRQENABLE);
452 static void csi2_irq_status_set(struct isp_device *isp,
464 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_IRQSTATUS);
466 reg |= isp_reg_readl(isp, csi2->regs1, ISPCSI2_IRQENABLE);
470 isp_reg_writel(isp, reg, csi2->regs1, ISPCSI2_IRQENABLE);
482 struct isp_device *isp = csi2->isp;
493 isp_reg_set(isp, csi2->regs1, ISPCSI2_SYSCONFIG,
497 reg = isp_reg_readl(isp, csi2->regs1, ISPCSI2_SYSSTATUS) &
507 dev_err(isp->dev, "CSI2: Soft reset try count exceeded!\n");
511 if (isp->revision == ISP_REVISION_15_0)
512 isp_reg_set(isp, csi2->regs1, ISPCSI2_PHY_CFG,
517 reg = isp_reg_readl(isp, csi2->phy->phy_regs, ISPCSIPHY_REG1)
525 dev_err(isp->dev,
530 if (isp->autoidle)
531 isp_reg_clr_set(isp, csi2->regs1, ISPCSI2_SYSCONFIG,
535 ((isp->revision == ISP_REVISION_15_0) ?
538 isp_reg_clr_set(isp, csi2->regs1, ISPCSI2_SYSCONFIG,
550 struct isp_device *isp = csi2->isp;
576 dev_dbg(isp->dev, "%s: l3_ick %lu, external_rate %u, vp_out_ctrl %u\n",
616 csi2_irq_complexio1_set(isp, csi2, 1);
617 csi2_irq_ctx_set(isp, csi2, 1);
618 csi2_irq_status_set(isp, csi2, 1);
621 csi2_timing_config(isp, csi2, timing);
622 csi2_recv_config(isp, csi2, &csi2->ctrl);
623 csi2_ctx_config(isp, csi2, &csi2->contexts[0]);
631 #define CSI2_PRINT_REGISTER(isp, regs, name)\
632 dev_dbg(isp->dev, "###CSI2 " #name "=0x%08x\n", \
633 isp_reg_readl(isp, regs, ISPCSI2_##name))
637 struct isp_device *isp = csi2->isp;
642 dev_dbg(isp->dev, "-------------CSI2 Register dump-------------\n");
644 CSI2_PRINT_REGISTER(isp, csi2->regs1, SYSCONFIG);
645 CSI2_PRINT_REGISTER(isp, csi2->regs1, SYSSTATUS);
646 CSI2_PRINT_REGISTER(isp, csi2->regs1, IRQENABLE);
647 CSI2_PRINT_REGISTER(isp, csi2->regs1, IRQSTATUS);
648 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTRL);
649 CSI2_PRINT_REGISTER(isp, csi2->regs1, DBG_H);
650 CSI2_PRINT_REGISTER(isp, csi2->regs1, GNQ);
651 CSI2_PRINT_REGISTER(isp, csi2->regs1, PHY_CFG);
652 CSI2_PRINT_REGISTER(isp, csi2->regs1, PHY_IRQSTATUS);
653 CSI2_PRINT_REGISTER(isp, csi2->regs1, SHORT_PACKET);
654 CSI2_PRINT_REGISTER(isp, csi2->regs1, PHY_IRQENABLE);
655 CSI2_PRINT_REGISTER(isp, csi2->regs1, DBG_P);
656 CSI2_PRINT_REGISTER(isp, csi2->regs1, TIMING);
657 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_CTRL1(0));
658 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_CTRL2(0));
659 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_DAT_OFST(0));
660 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_DAT_PING_ADDR(0));
661 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_DAT_PONG_ADDR(0));
662 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_IRQENABLE(0));
663 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_IRQSTATUS(0));
664 CSI2_PRINT_REGISTER(isp, csi2->regs1, CTX_CTRL3(0));
666 dev_dbg(isp->dev, "--------------------------------------------\n");
679 struct isp_device *isp = csi2->isp;
682 csi2_ctx_enable(isp, csi2, 0, 0);
694 csi2_ctx_enable(isp, csi2, 0, 1);
700 struct isp_device *isp = csi2->isp;
704 status = isp_reg_readl(isp, csi2->regs1, ISPCSI2_CTX_IRQSTATUS(n));
705 isp_reg_writel(isp, status, csi2->regs1, ISPCSI2_CTX_IRQSTATUS(n));
724 csi2_ctx_config(isp, csi2, ctx);
725 csi2_ctx_enable(isp, csi2, n, 1);
741 struct isp_device *isp = csi2->isp;
746 csi2_irqstatus = isp_reg_readl(isp, csi2->regs1, ISPCSI2_IRQSTATUS);
747 isp_reg_writel(isp, csi2_irqstatus, csi2->regs1, ISPCSI2_IRQSTATUS);
751 cpxio1_irqstatus = isp_reg_readl(isp, csi2->regs1,
753 isp_reg_writel(isp, cpxio1_irqstatus,
755 dev_dbg(isp->dev, "CSI2: ComplexIO Error IRQ %x\n",
765 dev_dbg(isp->dev,
788 dev_dbg(isp->dev, "CSI2: ECC correction done\n");
802 struct isp_device *isp = video->isp;
803 struct isp_csi2_device *csi2 = &isp->isp_csi2a;
815 csi2_if_enable(isp, csi2, 1);
816 csi2_ctx_enable(isp, csi2, 0, 1);
1056 struct isp_device *isp = csi2->isp;
1064 omap3isp_sbl_enable(isp, OMAP3_ISP_SBL_CSI2A_WRITE);
1079 csi2_ctx_enable(isp, csi2, 0, 1);
1080 csi2_if_enable(isp, csi2, 1);
1089 dev_dbg(isp->dev, "%s: module stop timeout.\n",
1091 csi2_ctx_enable(isp, csi2, 0, 0);
1092 csi2_if_enable(isp, csi2, 0);
1093 csi2_irq_ctx_set(isp, csi2, 0);
1096 omap3isp_sbl_disable(isp, OMAP3_ISP_SBL_CSI2A_WRITE);
1245 sd->grp_id = 1 << 16; /* group ID for isp subdevs */
1266 csi2->video_out.isp = csi2->isp;
1283 int omap3isp_csi2_init(struct isp_device *isp)
1285 struct isp_csi2_device *csi2a = &isp->isp_csi2a;
1286 struct isp_csi2_device *csi2c = &isp->isp_csi2c;
1289 csi2a->isp = isp;
1293 csi2a->phy = &isp->isp_csiphy2;
1301 if (isp->revision == ISP_REVISION_15_0) {
1302 csi2c->isp = isp;
1306 csi2c->phy = &isp->isp_csiphy1;
1317 void omap3isp_csi2_cleanup(struct isp_device *isp)
1319 struct isp_csi2_device *csi2a = &isp->isp_csi2a;