• Home
  • Raw
  • Download

Lines Matching refs:csid

24 #define IS_LITE		(csid->id == 2 ? 1 : 0)
330 static void __csid_configure_stream(struct csid_device *csid, u8 enable, u8 vc) in __csid_configure_stream() argument
332 struct csid_testgen_config *tg = &csid->testgen; in __csid_configure_stream()
335 u8 lane_cnt = csid->phy.lane_cnt; in __csid_configure_stream()
337 struct v4l2_mbus_framefmt *input_format = &csid->fmt[MSM_CSID_PAD_FIRST_SRC + vc]; in __csid_configure_stream()
338 const struct csid_format *format = csid_get_fmt_entry(csid->formats, csid->nformats, in __csid_configure_stream()
345 phy_sel = csid->phy.csiphy_id; in __csid_configure_stream()
355 writel_relaxed(val, csid->base + CSID_TPG_VC_CFG0); in __csid_configure_stream()
359 writel_relaxed(val, csid->base + CSID_TPG_VC_CFG1); in __csid_configure_stream()
361 writel_relaxed(0x12345678, csid->base + CSID_TPG_LFSR_SEED); in __csid_configure_stream()
365 writel_relaxed(val, csid->base + CSID_TPG_DT_n_CFG_0(0)); in __csid_configure_stream()
368 writel_relaxed(val, csid->base + CSID_TPG_DT_n_CFG_1(0)); in __csid_configure_stream()
373 writel_relaxed(val, csid->base + CSID_TPG_DT_n_CFG_2(0)); in __csid_configure_stream()
375 writel_relaxed(0, csid->base + CSID_TPG_COLOR_BARS_CFG); in __csid_configure_stream()
377 writel_relaxed(0, csid->base + CSID_TPG_COLOR_BOX_CFG); in __csid_configure_stream()
388 writel_relaxed(val, csid->base + CSID_RDI_CFG0(vc)); in __csid_configure_stream()
392 writel_relaxed(val, csid->base + CSID_RDI_CFG1(vc)); in __csid_configure_stream()
395 writel_relaxed(val, csid->base + CSID_RDI_FRM_DROP_PERIOD(vc)); in __csid_configure_stream()
398 writel_relaxed(val, csid->base + CSID_RDI_FRM_DROP_PATTERN(vc)); in __csid_configure_stream()
401 writel_relaxed(val, csid->base + CSID_RDI_IRQ_SUBSAMPLE_PERIOD(vc)); in __csid_configure_stream()
404 writel_relaxed(val, csid->base + CSID_RDI_IRQ_SUBSAMPLE_PATTERN(vc)); in __csid_configure_stream()
407 writel_relaxed(val, csid->base + CSID_RDI_RPP_PIX_DROP_PERIOD(vc)); in __csid_configure_stream()
410 writel_relaxed(val, csid->base + CSID_RDI_RPP_PIX_DROP_PATTERN(vc)); in __csid_configure_stream()
413 writel_relaxed(val, csid->base + CSID_RDI_RPP_LINE_DROP_PERIOD(vc)); in __csid_configure_stream()
416 writel_relaxed(val, csid->base + CSID_RDI_RPP_LINE_DROP_PATTERN(vc)); in __csid_configure_stream()
419 writel_relaxed(val, csid->base + CSID_RDI_CTRL(vc)); in __csid_configure_stream()
421 val = readl_relaxed(csid->base + CSID_RDI_CFG0(vc)); in __csid_configure_stream()
423 writel_relaxed(val, csid->base + CSID_RDI_CFG0(vc)); in __csid_configure_stream()
433 writel_relaxed(val, csid->base + CSID_TPG_CTRL); in __csid_configure_stream()
437 val |= csid->phy.lane_assign << CSI2_RX_CFG0_DL0_INPUT_SEL; in __csid_configure_stream()
439 writel_relaxed(val, csid->base + CSID_CSI2_RX_CFG0); in __csid_configure_stream()
445 writel_relaxed(val, csid->base + CSID_CSI2_RX_CFG1); // csi2_vc_mode_shift_val ? in __csid_configure_stream()
451 writel_relaxed(val, csid->base + CSID_RDI_CTRL(vc)); in __csid_configure_stream()
454 static void csid_configure_stream(struct csid_device *csid, u8 enable) in csid_configure_stream() argument
459 if (csid->phy.en_vc & BIT(i)) in csid_configure_stream()
460 __csid_configure_stream(csid, enable, i); in csid_configure_stream()
463 static int csid_configure_testgen_pattern(struct csid_device *csid, s32 val) in csid_configure_testgen_pattern() argument
465 if (val > 0 && val <= csid->testgen.nmodes) in csid_configure_testgen_pattern()
466 csid->testgen.mode = val; in csid_configure_testgen_pattern()
477 static u32 csid_hw_version(struct csid_device *csid) in csid_hw_version() argument
484 hw_version = readl_relaxed(csid->base + CSID_HW_VERSION); in csid_hw_version()
488 dev_dbg(csid->camss->dev, "CSID HW Version = %u.%u.%u\n", in csid_hw_version()
503 struct csid_device *csid = dev; in csid_isr() local
508 val = readl_relaxed(csid->base + CSID_TOP_IRQ_STATUS); in csid_isr()
509 writel_relaxed(val, csid->base + CSID_TOP_IRQ_CLEAR); in csid_isr()
512 val = readl_relaxed(csid->base + CSID_CSI2_RX_IRQ_STATUS); in csid_isr()
513 writel_relaxed(val, csid->base + CSID_CSI2_RX_IRQ_CLEAR); in csid_isr()
517 if (csid->phy.en_vc & BIT(i)) { in csid_isr()
518 val = readl_relaxed(csid->base + CSID_CSI2_RDIN_IRQ_STATUS(i)); in csid_isr()
519 writel_relaxed(val, csid->base + CSID_CSI2_RDIN_IRQ_CLEAR(i)); in csid_isr()
523 writel_relaxed(val, csid->base + CSID_IRQ_CMD); in csid_isr()
526 complete(&csid->reset_complete); in csid_isr()
537 static int csid_reset(struct csid_device *csid) in csid_reset() argument
542 reinit_completion(&csid->reset_complete); in csid_reset()
544 writel_relaxed(1, csid->base + CSID_TOP_IRQ_CLEAR); in csid_reset()
545 writel_relaxed(1, csid->base + CSID_IRQ_CMD); in csid_reset()
546 writel_relaxed(1, csid->base + CSID_TOP_IRQ_MASK); in csid_reset()
547 writel_relaxed(1, csid->base + CSID_IRQ_CMD); in csid_reset()
551 writel_relaxed(val, csid->base + CSID_RST_STROBES); in csid_reset()
553 time = wait_for_completion_timeout(&csid->reset_complete, in csid_reset()
556 dev_err(csid->camss->dev, "CSID reset timeout\n"); in csid_reset()
563 static u32 csid_src_pad_code(struct csid_device *csid, u32 sink_code, in csid_src_pad_code() argument
595 static void csid_subdev_init(struct csid_device *csid) in csid_subdev_init() argument
597 csid->formats = csid_formats; in csid_subdev_init()
598 csid->nformats = ARRAY_SIZE(csid_formats); in csid_subdev_init()
599 csid->testgen.modes = csid_testgen_modes; in csid_subdev_init()
600 csid->testgen.nmodes = CSID_PAYLOAD_MODE_NUM_SUPPORTED_GEN2; in csid_subdev_init()