Lines Matching refs:csid
24 #define IS_LITE (csid->id >= 2 ? 1 : 0)
337 static void csid_configure_stream(struct csid_device *csid, u8 enable) in csid_configure_stream() argument
339 struct csid_testgen_config *tg = &csid->testgen; in csid_configure_stream()
342 u8 lane_cnt = csid->phy.lane_cnt; in csid_configure_stream()
343 struct v4l2_mbus_framefmt *input_format = &csid->fmt[MSM_CSID_PAD_SRC]; in csid_configure_stream()
344 const struct csid_format *format = csid_get_fmt_entry(csid->formats, csid->nformats, in csid_configure_stream()
351 phy_sel = csid->phy.csiphy_id; in csid_configure_stream()
365 writel_relaxed(val, csid->base + CSID_TPG_VC_CFG0); in csid_configure_stream()
369 writel_relaxed(val, csid->base + CSID_TPG_VC_CFG1); in csid_configure_stream()
371 writel_relaxed(0x12345678, csid->base + CSID_TPG_LFSR_SEED); in csid_configure_stream()
375 writel_relaxed(val, csid->base + CSID_TPG_DT_n_CFG_0(0)); in csid_configure_stream()
378 writel_relaxed(val, csid->base + CSID_TPG_DT_n_CFG_1(0)); in csid_configure_stream()
383 writel_relaxed(val, csid->base + CSID_TPG_DT_n_CFG_2(0)); in csid_configure_stream()
385 writel_relaxed(0, csid->base + CSID_TPG_COLOR_BARS_CFG); in csid_configure_stream()
387 writel_relaxed(0, csid->base + CSID_TPG_COLOR_BOX_CFG); in csid_configure_stream()
398 writel_relaxed(val, csid->base + CSID_RDI_CFG0(0)); in csid_configure_stream()
402 writel_relaxed(val, csid->base + CSID_RDI_CFG1(0)); in csid_configure_stream()
405 writel_relaxed(val, csid->base + CSID_RDI_FRM_DROP_PERIOD(0)); in csid_configure_stream()
408 writel_relaxed(val, csid->base + CSID_RDI_FRM_DROP_PATTERN(0)); in csid_configure_stream()
411 writel_relaxed(val, csid->base + CSID_RDI_IRQ_SUBSAMPLE_PERIOD(0)); in csid_configure_stream()
414 writel_relaxed(val, csid->base + CSID_RDI_IRQ_SUBSAMPLE_PATTERN(0)); in csid_configure_stream()
417 writel_relaxed(val, csid->base + CSID_RDI_RPP_PIX_DROP_PERIOD(0)); in csid_configure_stream()
420 writel_relaxed(val, csid->base + CSID_RDI_RPP_PIX_DROP_PATTERN(0)); in csid_configure_stream()
423 writel_relaxed(val, csid->base + CSID_RDI_RPP_LINE_DROP_PERIOD(0)); in csid_configure_stream()
426 writel_relaxed(val, csid->base + CSID_RDI_RPP_LINE_DROP_PATTERN(0)); in csid_configure_stream()
429 writel_relaxed(val, csid->base + CSID_RDI_CTRL(0)); in csid_configure_stream()
431 val = readl_relaxed(csid->base + CSID_RDI_CFG0(0)); in csid_configure_stream()
433 writel_relaxed(val, csid->base + CSID_RDI_CFG0(0)); in csid_configure_stream()
443 writel_relaxed(val, csid->base + CSID_TPG_CTRL); in csid_configure_stream()
447 val |= csid->phy.lane_assign << CSI2_RX_CFG0_DL0_INPUT_SEL; in csid_configure_stream()
449 writel_relaxed(val, csid->base + CSID_CSI2_RX_CFG0); in csid_configure_stream()
453 writel_relaxed(val, csid->base + CSID_CSI2_RX_CFG1); in csid_configure_stream()
459 writel_relaxed(val, csid->base + CSID_RDI_CTRL(0)); in csid_configure_stream()
462 static int csid_configure_testgen_pattern(struct csid_device *csid, s32 val) in csid_configure_testgen_pattern() argument
464 if (val > 0 && val <= csid->testgen.nmodes) in csid_configure_testgen_pattern()
465 csid->testgen.mode = val; in csid_configure_testgen_pattern()
476 static u32 csid_hw_version(struct csid_device *csid) in csid_hw_version() argument
483 hw_version = readl_relaxed(csid->base + CSID_HW_VERSION); in csid_hw_version()
487 dev_dbg(csid->camss->dev, "CSID HW Version = %u.%u.%u\n", in csid_hw_version()
502 struct csid_device *csid = dev; in csid_isr() local
506 val = readl_relaxed(csid->base + CSID_TOP_IRQ_STATUS); in csid_isr()
507 writel_relaxed(val, csid->base + CSID_TOP_IRQ_CLEAR); in csid_isr()
510 val = readl_relaxed(csid->base + CSID_CSI2_RX_IRQ_STATUS); in csid_isr()
511 writel_relaxed(val, csid->base + CSID_CSI2_RX_IRQ_CLEAR); in csid_isr()
513 val = readl_relaxed(csid->base + CSID_CSI2_RDIN_IRQ_STATUS(0)); in csid_isr()
514 writel_relaxed(val, csid->base + CSID_CSI2_RDIN_IRQ_CLEAR(0)); in csid_isr()
517 writel_relaxed(val, csid->base + CSID_IRQ_CMD); in csid_isr()
520 complete(&csid->reset_complete); in csid_isr()
531 static int csid_reset(struct csid_device *csid) in csid_reset() argument
536 reinit_completion(&csid->reset_complete); in csid_reset()
538 writel_relaxed(1, csid->base + CSID_TOP_IRQ_CLEAR); in csid_reset()
539 writel_relaxed(1, csid->base + CSID_IRQ_CMD); in csid_reset()
540 writel_relaxed(1, csid->base + CSID_TOP_IRQ_MASK); in csid_reset()
541 writel_relaxed(1, csid->base + CSID_IRQ_CMD); in csid_reset()
545 writel_relaxed(val, csid->base + CSID_RST_STROBES); in csid_reset()
547 time = wait_for_completion_timeout(&csid->reset_complete, in csid_reset()
550 dev_err(csid->camss->dev, "CSID reset timeout\n"); in csid_reset()
557 static u32 csid_src_pad_code(struct csid_device *csid, u32 sink_code, in csid_src_pad_code() argument
589 static void csid_subdev_init(struct csid_device *csid) in csid_subdev_init() argument
591 csid->formats = csid_formats; in csid_subdev_init()
592 csid->nformats = ARRAY_SIZE(csid_formats); in csid_subdev_init()
593 csid->testgen.modes = csid_testgen_modes; in csid_subdev_init()
594 csid->testgen.nmodes = CSID_PAYLOAD_MODE_NUM_SUPPORTED_GEN2; in csid_subdev_init()