Lines Matching refs:mcd
408 const struct mtk_clk_divider *mcd = &mcds[i]; in mtk_clk_register_dividers() local
410 if (!IS_ERR_OR_NULL(clk_data->hws[mcd->id])) { in mtk_clk_register_dividers()
412 mcd->id); in mtk_clk_register_dividers()
416 hw = clk_hw_register_divider(dev, mcd->name, mcd->parent_name, in mtk_clk_register_dividers()
417 mcd->flags, base + mcd->div_reg, mcd->div_shift, in mtk_clk_register_dividers()
418 mcd->div_width, mcd->clk_divider_flags, lock); in mtk_clk_register_dividers()
421 pr_err("Failed to register clk %s: %pe\n", mcd->name, in mtk_clk_register_dividers()
426 clk_data->hws[mcd->id] = hw; in mtk_clk_register_dividers()
433 const struct mtk_clk_divider *mcd = &mcds[i]; in mtk_clk_register_dividers() local
435 if (IS_ERR_OR_NULL(clk_data->hws[mcd->id])) in mtk_clk_register_dividers()
438 clk_hw_unregister_divider(clk_data->hws[mcd->id]); in mtk_clk_register_dividers()
439 clk_data->hws[mcd->id] = ERR_PTR(-ENOENT); in mtk_clk_register_dividers()
455 const struct mtk_clk_divider *mcd = &mcds[i - 1]; in mtk_clk_unregister_dividers() local
457 if (IS_ERR_OR_NULL(clk_data->hws[mcd->id])) in mtk_clk_unregister_dividers()
460 clk_hw_unregister_divider(clk_data->hws[mcd->id]); in mtk_clk_unregister_dividers()
461 clk_data->hws[mcd->id] = ERR_PTR(-ENOENT); in mtk_clk_unregister_dividers()
470 const struct mtk_clk_desc *mcd; in __mtk_clk_simple_probe() local
475 mcd = device_get_match_data(&pdev->dev); in __mtk_clk_simple_probe()
476 if (!mcd) { in __mtk_clk_simple_probe()
480 mcd = (const struct mtk_clk_desc *)id->driver_data; in __mtk_clk_simple_probe()
482 if (!mcd) in __mtk_clk_simple_probe()
487 if (mcd->composite_clks || mcd->divider_clks) { in __mtk_clk_simple_probe()
488 if (!mcd->shared_io) in __mtk_clk_simple_probe()
498 num_clks = mcd->num_clks + mcd->num_composite_clks; in __mtk_clk_simple_probe()
499 num_clks += mcd->num_fixed_clks + mcd->num_factor_clks; in __mtk_clk_simple_probe()
500 num_clks += mcd->num_mux_clks + mcd->num_divider_clks; in __mtk_clk_simple_probe()
508 if (mcd->fixed_clks) { in __mtk_clk_simple_probe()
509 r = mtk_clk_register_fixed_clks(mcd->fixed_clks, in __mtk_clk_simple_probe()
510 mcd->num_fixed_clks, clk_data); in __mtk_clk_simple_probe()
515 if (mcd->factor_clks) { in __mtk_clk_simple_probe()
516 r = mtk_clk_register_factors(mcd->factor_clks, in __mtk_clk_simple_probe()
517 mcd->num_factor_clks, clk_data); in __mtk_clk_simple_probe()
522 if (mcd->mux_clks) { in __mtk_clk_simple_probe()
523 r = mtk_clk_register_muxes(&pdev->dev, mcd->mux_clks, in __mtk_clk_simple_probe()
524 mcd->num_mux_clks, node, in __mtk_clk_simple_probe()
525 mcd->clk_lock, clk_data); in __mtk_clk_simple_probe()
530 if (mcd->composite_clks) { in __mtk_clk_simple_probe()
533 mcd->composite_clks, in __mtk_clk_simple_probe()
534 mcd->num_composite_clks, in __mtk_clk_simple_probe()
535 base, mcd->clk_lock, clk_data); in __mtk_clk_simple_probe()
540 if (mcd->divider_clks) { in __mtk_clk_simple_probe()
542 mcd->divider_clks, in __mtk_clk_simple_probe()
543 mcd->num_divider_clks, in __mtk_clk_simple_probe()
544 base, mcd->clk_lock, clk_data); in __mtk_clk_simple_probe()
549 if (mcd->clks) { in __mtk_clk_simple_probe()
550 r = mtk_clk_register_gates(&pdev->dev, node, mcd->clks, in __mtk_clk_simple_probe()
551 mcd->num_clks, clk_data); in __mtk_clk_simple_probe()
556 if (mcd->clk_notifier_func) { in __mtk_clk_simple_probe()
557 struct clk *mfg_mux = clk_data->hws[mcd->mfg_clk_idx]->clk; in __mtk_clk_simple_probe()
559 r = mcd->clk_notifier_func(&pdev->dev, mfg_mux); in __mtk_clk_simple_probe()
570 if (mcd->rst_desc) { in __mtk_clk_simple_probe()
572 mcd->rst_desc); in __mtk_clk_simple_probe()
580 if (mcd->clks) in __mtk_clk_simple_probe()
581 mtk_clk_unregister_gates(mcd->clks, mcd->num_clks, clk_data); in __mtk_clk_simple_probe()
583 if (mcd->divider_clks) in __mtk_clk_simple_probe()
584 mtk_clk_unregister_dividers(mcd->divider_clks, in __mtk_clk_simple_probe()
585 mcd->num_divider_clks, clk_data); in __mtk_clk_simple_probe()
587 if (mcd->composite_clks) in __mtk_clk_simple_probe()
588 mtk_clk_unregister_composites(mcd->composite_clks, in __mtk_clk_simple_probe()
589 mcd->num_composite_clks, clk_data); in __mtk_clk_simple_probe()
591 if (mcd->mux_clks) in __mtk_clk_simple_probe()
592 mtk_clk_unregister_muxes(mcd->mux_clks, in __mtk_clk_simple_probe()
593 mcd->num_mux_clks, clk_data); in __mtk_clk_simple_probe()
595 if (mcd->factor_clks) in __mtk_clk_simple_probe()
596 mtk_clk_unregister_factors(mcd->factor_clks, in __mtk_clk_simple_probe()
597 mcd->num_factor_clks, clk_data); in __mtk_clk_simple_probe()
599 if (mcd->fixed_clks) in __mtk_clk_simple_probe()
600 mtk_clk_unregister_fixed_clks(mcd->fixed_clks, in __mtk_clk_simple_probe()
601 mcd->num_fixed_clks, clk_data); in __mtk_clk_simple_probe()
605 if (mcd->shared_io && base) in __mtk_clk_simple_probe()
614 const struct mtk_clk_desc *mcd = device_get_match_data(&pdev->dev); in __mtk_clk_simple_remove() local
617 if (mcd->clks) in __mtk_clk_simple_remove()
618 mtk_clk_unregister_gates(mcd->clks, mcd->num_clks, clk_data); in __mtk_clk_simple_remove()
619 if (mcd->divider_clks) in __mtk_clk_simple_remove()
620 mtk_clk_unregister_dividers(mcd->divider_clks, in __mtk_clk_simple_remove()
621 mcd->num_divider_clks, clk_data); in __mtk_clk_simple_remove()
622 if (mcd->composite_clks) in __mtk_clk_simple_remove()
623 mtk_clk_unregister_composites(mcd->composite_clks, in __mtk_clk_simple_remove()
624 mcd->num_composite_clks, clk_data); in __mtk_clk_simple_remove()
625 if (mcd->mux_clks) in __mtk_clk_simple_remove()
626 mtk_clk_unregister_muxes(mcd->mux_clks, in __mtk_clk_simple_remove()
627 mcd->num_mux_clks, clk_data); in __mtk_clk_simple_remove()
628 if (mcd->factor_clks) in __mtk_clk_simple_remove()
629 mtk_clk_unregister_factors(mcd->factor_clks, in __mtk_clk_simple_remove()
630 mcd->num_factor_clks, clk_data); in __mtk_clk_simple_remove()
631 if (mcd->fixed_clks) in __mtk_clk_simple_remove()
632 mtk_clk_unregister_fixed_clks(mcd->fixed_clks, in __mtk_clk_simple_remove()
633 mcd->num_fixed_clks, clk_data); in __mtk_clk_simple_remove()