Lines Matching refs:dlyb
67 int (*dlyb_enable)(struct sdmmc_dlyb *dlyb);
68 void (*set_input_ck)(struct sdmmc_dlyb *dlyb);
70 int (*set_cfg)(struct sdmmc_dlyb *dlyb, int unit __maybe_unused,
350 static void sdmmc_dlyb_mp15_input_ck(struct sdmmc_dlyb *dlyb)
352 if (!dlyb || !dlyb->base)
356 writel_relaxed(0, dlyb->base + DLYB_CR);
362 struct sdmmc_dlyb *dlyb = host->variant_priv;
367 if (dlyb && dlyb->ops->set_input_ck)
368 dlyb->ops->set_input_ck(dlyb);
479 static int sdmmc_dlyb_mp15_enable(struct sdmmc_dlyb *dlyb)
481 writel_relaxed(DLYB_CR_DEN, dlyb->base + DLYB_CR);
486 static int sdmmc_dlyb_mp15_set_cfg(struct sdmmc_dlyb *dlyb,
491 writel_relaxed(DLYB_CR_SEN | DLYB_CR_DEN, dlyb->base + DLYB_CR);
495 writel_relaxed(cfgr, dlyb->base + DLYB_CFGR);
498 writel_relaxed(DLYB_CR_DEN, dlyb->base + DLYB_CR);
505 struct sdmmc_dlyb *dlyb = host->variant_priv;
510 dlyb->ops->set_cfg(dlyb, i, DLYB_CFGR_SEL_MAX, true);
512 ret = readl_relaxed_poll_timeout(dlyb->base + DLYB_CFGR, cfgr,
530 dlyb->unit = i;
531 dlyb->max = __fls(lng);
536 static int sdmmc_dlyb_mp25_enable(struct sdmmc_dlyb *dlyb)
540 cr = readl_relaxed(dlyb->base + SYSCFG_DLYBSD_CR);
543 writel_relaxed(cr, dlyb->base + SYSCFG_DLYBSD_CR);
545 return readl_relaxed_poll_timeout(dlyb->base + SYSCFG_DLYBSD_SR,
550 static int sdmmc_dlyb_mp25_set_cfg(struct sdmmc_dlyb *dlyb,
556 cr = readl_relaxed(dlyb->base + SYSCFG_DLYBSD_CR);
560 writel_relaxed(cr, dlyb->base + SYSCFG_DLYBSD_CR);
562 return readl_relaxed_poll_timeout(dlyb->base + SYSCFG_DLYBSD_SR,
569 struct sdmmc_dlyb *dlyb = host->variant_priv;
571 dlyb->max = DLYBSD_TAPSEL_NB;
578 struct sdmmc_dlyb *dlyb = host->variant_priv;
582 for (phase = 0; phase <= dlyb->max; phase++) {
583 ret = dlyb->ops->set_cfg(dlyb, dlyb->unit, phase, false);
605 if (dlyb->ops->set_input_ck)
606 dlyb->ops->set_input_ck(dlyb);
609 ret = dlyb->ops->set_cfg(dlyb, dlyb->unit, phase, false);
616 dlyb->unit, dlyb->max, phase);
624 struct sdmmc_dlyb *dlyb = host->variant_priv;
633 if (!dlyb || !dlyb->base)
636 ret = dlyb->ops->dlyb_enable(dlyb);
649 ret = dlyb->ops->tuning_prepare(host);
727 struct sdmmc_dlyb *dlyb;
736 dlyb = devm_kzalloc(mmc_dev(host->mmc), sizeof(*dlyb), GFP_KERNEL);
737 if (!dlyb)
740 dlyb->base = base_dlyb;
742 dlyb->ops = &dlyb_tuning_mp25_ops;
744 dlyb->ops = &dlyb_tuning_mp15_ops;
746 host->variant_priv = dlyb;