Lines Matching refs:csid

24 #define IS_LITE		(csid->id == 2 ? 1 : 0)
329 static void csid_configure_stream(struct csid_device *csid, u8 enable) in csid_configure_stream() argument
331 struct csid_testgen_config *tg = &csid->testgen; in csid_configure_stream()
334 u8 lane_cnt = csid->phy.lane_cnt; in csid_configure_stream()
335 struct v4l2_mbus_framefmt *input_format = &csid->fmt[MSM_CSID_PAD_SRC]; in csid_configure_stream()
336 const struct csid_format *format = csid_get_fmt_entry(csid->formats, csid->nformats, in csid_configure_stream()
343 phy_sel = csid->phy.csiphy_id; in csid_configure_stream()
357 writel_relaxed(val, csid->base + CSID_TPG_VC_CFG0); in csid_configure_stream()
361 writel_relaxed(val, csid->base + CSID_TPG_VC_CFG1); in csid_configure_stream()
363 writel_relaxed(0x12345678, csid->base + CSID_TPG_LFSR_SEED); in csid_configure_stream()
367 writel_relaxed(val, csid->base + CSID_TPG_DT_n_CFG_0(0)); in csid_configure_stream()
370 writel_relaxed(val, csid->base + CSID_TPG_DT_n_CFG_1(0)); in csid_configure_stream()
375 writel_relaxed(val, csid->base + CSID_TPG_DT_n_CFG_2(0)); in csid_configure_stream()
377 writel_relaxed(0, csid->base + CSID_TPG_COLOR_BARS_CFG); in csid_configure_stream()
379 writel_relaxed(0, csid->base + CSID_TPG_COLOR_BOX_CFG); in csid_configure_stream()
389 writel_relaxed(val, csid->base + CSID_RDI_CFG0(0)); in csid_configure_stream()
393 writel_relaxed(val, csid->base + CSID_RDI_CFG1(0)); in csid_configure_stream()
396 writel_relaxed(val, csid->base + CSID_RDI_FRM_DROP_PERIOD(0)); in csid_configure_stream()
399 writel_relaxed(0, csid->base + CSID_RDI_FRM_DROP_PATTERN(0)); in csid_configure_stream()
402 writel_relaxed(val, csid->base + CSID_RDI_IRQ_SUBSAMPLE_PERIOD(0)); in csid_configure_stream()
405 writel_relaxed(val, csid->base + CSID_RDI_IRQ_SUBSAMPLE_PATTERN(0)); in csid_configure_stream()
408 writel_relaxed(val, csid->base + CSID_RDI_RPP_PIX_DROP_PERIOD(0)); in csid_configure_stream()
411 writel_relaxed(val, csid->base + CSID_RDI_RPP_PIX_DROP_PATTERN(0)); in csid_configure_stream()
414 writel_relaxed(val, csid->base + CSID_RDI_RPP_LINE_DROP_PERIOD(0)); in csid_configure_stream()
417 writel_relaxed(val, csid->base + CSID_RDI_RPP_LINE_DROP_PATTERN(0)); in csid_configure_stream()
420 writel_relaxed(val, csid->base + CSID_RDI_CTRL(0)); in csid_configure_stream()
422 val = readl_relaxed(csid->base + CSID_RDI_CFG0(0)); in csid_configure_stream()
424 writel_relaxed(val, csid->base + CSID_RDI_CFG0(0)); in csid_configure_stream()
434 writel_relaxed(val, csid->base + CSID_TPG_CTRL); in csid_configure_stream()
438 val |= csid->phy.lane_assign << CSI2_RX_CFG0_DL0_INPUT_SEL; in csid_configure_stream()
440 writel_relaxed(val, csid->base + CSID_CSI2_RX_CFG0); in csid_configure_stream()
444 writel_relaxed(val, csid->base + CSID_CSI2_RX_CFG1); // csi2_vc_mode_shift_val ? in csid_configure_stream()
447 writel_relaxed(~0u, csid->base + CSID_CSI2_RX_IRQ_MASK); in csid_configure_stream()
450 writel_relaxed(~0u, csid->base + CSID_TOP_IRQ_MASK); in csid_configure_stream()
453 writel_relaxed(val, csid->base + CSID_RDI_CTRL(0)); in csid_configure_stream()
456 static int csid_configure_testgen_pattern(struct csid_device *csid, s32 val) in csid_configure_testgen_pattern() argument
458 if (val > 0 && val <= csid->testgen.nmodes) in csid_configure_testgen_pattern()
459 csid->testgen.mode = val; in csid_configure_testgen_pattern()
470 static u32 csid_hw_version(struct csid_device *csid) in csid_hw_version() argument
477 hw_version = readl_relaxed(csid->base + CSID_HW_VERSION); in csid_hw_version()
481 dev_dbg(csid->camss->dev, "CSID HW Version = %u.%u.%u\n", in csid_hw_version()
496 struct csid_device *csid = dev; in csid_isr() local
500 val = readl_relaxed(csid->base + CSID_TOP_IRQ_STATUS); in csid_isr()
501 writel_relaxed(val, csid->base + CSID_TOP_IRQ_CLEAR); in csid_isr()
504 val = readl_relaxed(csid->base + CSID_CSI2_RX_IRQ_STATUS); in csid_isr()
505 writel_relaxed(val, csid->base + CSID_CSI2_RX_IRQ_CLEAR); in csid_isr()
507 val = readl_relaxed(csid->base + CSID_CSI2_RDIN_IRQ_STATUS(0)); in csid_isr()
508 writel_relaxed(val, csid->base + CSID_CSI2_RDIN_IRQ_CLEAR(0)); in csid_isr()
511 writel_relaxed(val, csid->base + CSID_IRQ_CMD); in csid_isr()
514 complete(&csid->reset_complete); in csid_isr()
525 static int csid_reset(struct csid_device *csid) in csid_reset() argument
530 reinit_completion(&csid->reset_complete); in csid_reset()
532 writel_relaxed(1, csid->base + CSID_TOP_IRQ_CLEAR); in csid_reset()
533 writel_relaxed(1, csid->base + CSID_IRQ_CMD); in csid_reset()
534 writel_relaxed(1, csid->base + CSID_TOP_IRQ_MASK); in csid_reset()
535 writel_relaxed(1, csid->base + CSID_IRQ_CMD); in csid_reset()
539 writel_relaxed(val, csid->base + CSID_RST_STROBES); in csid_reset()
541 time = wait_for_completion_timeout(&csid->reset_complete, in csid_reset()
544 dev_err(csid->camss->dev, "CSID reset timeout\n"); in csid_reset()
551 static u32 csid_src_pad_code(struct csid_device *csid, u32 sink_code, in csid_src_pad_code() argument
583 static void csid_subdev_init(struct csid_device *csid) in csid_subdev_init() argument
585 csid->formats = csid_formats; in csid_subdev_init()
586 csid->nformats = ARRAY_SIZE(csid_formats); in csid_subdev_init()
587 csid->testgen.modes = csid_testgen_modes; in csid_subdev_init()
588 csid->testgen.nmodes = CSID_PAYLOAD_MODE_NUM_SUPPORTED_GEN2; in csid_subdev_init()