bcm_clk 51 drivers/clk/bcm/clk-kona-setup.c static bool clk_requires_trigger(struct kona_clk *bcm_clk) bcm_clk 53 drivers/clk/bcm/clk-kona-setup.c struct peri_clk_data *peri = bcm_clk->u.peri; bcm_clk 57 drivers/clk/bcm/clk-kona-setup.c if (bcm_clk->type != bcm_clk_peri) bcm_clk 77 drivers/clk/bcm/clk-kona-setup.c static bool peri_clk_data_offsets_valid(struct kona_clk *bcm_clk) bcm_clk 90 drivers/clk/bcm/clk-kona-setup.c BUG_ON(bcm_clk->type != bcm_clk_peri); bcm_clk 91 drivers/clk/bcm/clk-kona-setup.c peri = bcm_clk->u.peri; bcm_clk 92 drivers/clk/bcm/clk-kona-setup.c name = bcm_clk->init_data.name; bcm_clk 93 drivers/clk/bcm/clk-kona-setup.c range = bcm_clk->ccu->range; bcm_clk 368 drivers/clk/bcm/clk-kona-setup.c static bool kona_dividers_valid(struct kona_clk *bcm_clk) bcm_clk 370 drivers/clk/bcm/clk-kona-setup.c struct peri_clk_data *peri = bcm_clk->u.peri; bcm_clk 375 drivers/clk/bcm/clk-kona-setup.c BUG_ON(bcm_clk->type != bcm_clk_peri); bcm_clk 400 drivers/clk/bcm/clk-kona-setup.c peri_clk_data_valid(struct kona_clk *bcm_clk) bcm_clk 412 drivers/clk/bcm/clk-kona-setup.c BUG_ON(bcm_clk->type != bcm_clk_peri); bcm_clk 419 drivers/clk/bcm/clk-kona-setup.c if (!peri_clk_data_offsets_valid(bcm_clk)) bcm_clk 422 drivers/clk/bcm/clk-kona-setup.c peri = bcm_clk->u.peri; bcm_clk 423 drivers/clk/bcm/clk-kona-setup.c name = bcm_clk->init_data.name; bcm_clk 474 drivers/clk/bcm/clk-kona-setup.c if (!clk_requires_trigger(bcm_clk)) { bcm_clk 483 drivers/clk/bcm/clk-kona-setup.c } else if (clk_requires_trigger(bcm_clk)) { bcm_clk 489 drivers/clk/bcm/clk-kona-setup.c return kona_dividers_valid(bcm_clk); bcm_clk 492 drivers/clk/bcm/clk-kona-setup.c static bool kona_clk_valid(struct kona_clk *bcm_clk) bcm_clk 494 drivers/clk/bcm/clk-kona-setup.c switch (bcm_clk->type) { bcm_clk 496 drivers/clk/bcm/clk-kona-setup.c if (!peri_clk_data_valid(bcm_clk)) bcm_clk 501 drivers/clk/bcm/clk-kona-setup.c (int)bcm_clk->type); bcm_clk 681 drivers/clk/bcm/clk-kona-setup.c static void bcm_clk_teardown(struct kona_clk *bcm_clk) bcm_clk 683 drivers/clk/bcm/clk-kona-setup.c switch (bcm_clk->type) { bcm_clk 685 drivers/clk/bcm/clk-kona-setup.c peri_clk_teardown(bcm_clk->u.data, &bcm_clk->init_data); bcm_clk 690 drivers/clk/bcm/clk-kona-setup.c bcm_clk->u.data = NULL; bcm_clk 691 drivers/clk/bcm/clk-kona-setup.c bcm_clk->type = bcm_clk_none; bcm_clk 696 drivers/clk/bcm/clk-kona-setup.c struct kona_clk *bcm_clk; bcm_clk 703 drivers/clk/bcm/clk-kona-setup.c bcm_clk = to_kona_clk(hw); bcm_clk 704 drivers/clk/bcm/clk-kona-setup.c bcm_clk_teardown(bcm_clk); bcm_clk 707 drivers/clk/bcm/clk-kona-setup.c static int kona_clk_setup(struct kona_clk *bcm_clk) bcm_clk 710 drivers/clk/bcm/clk-kona-setup.c struct clk_init_data *init_data = &bcm_clk->init_data; bcm_clk 712 drivers/clk/bcm/clk-kona-setup.c switch (bcm_clk->type) { bcm_clk 714 drivers/clk/bcm/clk-kona-setup.c ret = peri_clk_setup(bcm_clk->u.data, init_data); bcm_clk 720 drivers/clk/bcm/clk-kona-setup.c (int)bcm_clk->type, init_data->name); bcm_clk 725 drivers/clk/bcm/clk-kona-setup.c if (!kona_clk_valid(bcm_clk)) { bcm_clk 732 drivers/clk/bcm/clk-kona-setup.c bcm_clk->hw.init = init_data; bcm_clk 733 drivers/clk/bcm/clk-kona-setup.c ret = clk_hw_register(NULL, &bcm_clk->hw); bcm_clk 742 drivers/clk/bcm/clk-kona-setup.c bcm_clk_teardown(bcm_clk); bcm_clk 976 drivers/clk/bcm/clk-kona.c struct kona_clk *bcm_clk = to_kona_clk(hw); bcm_clk 977 drivers/clk/bcm/clk-kona.c struct bcm_clk_gate *gate = &bcm_clk->u.peri->gate; bcm_clk 979 drivers/clk/bcm/clk-kona.c return clk_gate(bcm_clk->ccu, bcm_clk->init_data.name, gate, true); bcm_clk 984 drivers/clk/bcm/clk-kona.c struct kona_clk *bcm_clk = to_kona_clk(hw); bcm_clk 985 drivers/clk/bcm/clk-kona.c struct bcm_clk_gate *gate = &bcm_clk->u.peri->gate; bcm_clk 987 drivers/clk/bcm/clk-kona.c (void)clk_gate(bcm_clk->ccu, bcm_clk->init_data.name, gate, false); bcm_clk 992 drivers/clk/bcm/clk-kona.c struct kona_clk *bcm_clk = to_kona_clk(hw); bcm_clk 993 drivers/clk/bcm/clk-kona.c struct bcm_clk_gate *gate = &bcm_clk->u.peri->gate; bcm_clk 995 drivers/clk/bcm/clk-kona.c return is_clk_gate_enabled(bcm_clk->ccu, gate) ? 1 : 0; bcm_clk 1001 drivers/clk/bcm/clk-kona.c struct kona_clk *bcm_clk = to_kona_clk(hw); bcm_clk 1002 drivers/clk/bcm/clk-kona.c struct peri_clk_data *data = bcm_clk->u.peri; bcm_clk 1004 drivers/clk/bcm/clk-kona.c return clk_recalc_rate(bcm_clk->ccu, &data->div, &data->pre_div, bcm_clk 1011 drivers/clk/bcm/clk-kona.c struct kona_clk *bcm_clk = to_kona_clk(hw); bcm_clk 1012 drivers/clk/bcm/clk-kona.c struct bcm_clk_div *div = &bcm_clk->u.peri->div; bcm_clk 1018 drivers/clk/bcm/clk-kona.c return round_rate(bcm_clk->ccu, div, &bcm_clk->u.peri->pre_div, bcm_clk 1025 drivers/clk/bcm/clk-kona.c struct kona_clk *bcm_clk = to_kona_clk(hw); bcm_clk 1038 drivers/clk/bcm/clk-kona.c WARN_ON_ONCE(bcm_clk->init_data.flags & CLK_SET_RATE_NO_REPARENT); bcm_clk 1039 drivers/clk/bcm/clk-kona.c parent_count = (u32)bcm_clk->init_data.num_parents; bcm_clk 1085 drivers/clk/bcm/clk-kona.c struct kona_clk *bcm_clk = to_kona_clk(hw); bcm_clk 1086 drivers/clk/bcm/clk-kona.c struct peri_clk_data *data = bcm_clk->u.peri; bcm_clk 1104 drivers/clk/bcm/clk-kona.c ret = selector_write(bcm_clk->ccu, &data->gate, sel, trig, index); bcm_clk 1107 drivers/clk/bcm/clk-kona.c bcm_clk->init_data.name); bcm_clk 1112 drivers/clk/bcm/clk-kona.c bcm_clk->init_data.name); bcm_clk 1120 drivers/clk/bcm/clk-kona.c struct kona_clk *bcm_clk = to_kona_clk(hw); bcm_clk 1121 drivers/clk/bcm/clk-kona.c struct peri_clk_data *data = bcm_clk->u.peri; bcm_clk 1124 drivers/clk/bcm/clk-kona.c index = selector_read_index(bcm_clk->ccu, &data->sel); bcm_clk 1133 drivers/clk/bcm/clk-kona.c struct kona_clk *bcm_clk = to_kona_clk(hw); bcm_clk 1134 drivers/clk/bcm/clk-kona.c struct peri_clk_data *data = bcm_clk->u.peri; bcm_clk 1161 drivers/clk/bcm/clk-kona.c (void)round_rate(bcm_clk->ccu, div, &data->pre_div, bcm_clk 1168 drivers/clk/bcm/clk-kona.c ret = divider_write(bcm_clk->ccu, &data->gate, &data->div, bcm_clk 1172 drivers/clk/bcm/clk-kona.c bcm_clk->init_data.name); bcm_clk 1176 drivers/clk/bcm/clk-kona.c bcm_clk->init_data.name); bcm_clk 1194 drivers/clk/bcm/clk-kona.c static bool __peri_clk_init(struct kona_clk *bcm_clk) bcm_clk 1196 drivers/clk/bcm/clk-kona.c struct ccu_data *ccu = bcm_clk->ccu; bcm_clk 1197 drivers/clk/bcm/clk-kona.c struct peri_clk_data *peri = bcm_clk->u.peri; bcm_clk 1198 drivers/clk/bcm/clk-kona.c const char *name = bcm_clk->init_data.name; bcm_clk 1201 drivers/clk/bcm/clk-kona.c BUG_ON(bcm_clk->type != bcm_clk_peri); bcm_clk 1244 drivers/clk/bcm/clk-kona.c static bool __kona_clk_init(struct kona_clk *bcm_clk) bcm_clk 1246 drivers/clk/bcm/clk-kona.c switch (bcm_clk->type) { bcm_clk 1248 drivers/clk/bcm/clk-kona.c return __peri_clk_init(bcm_clk); bcm_clk 1267 drivers/clk/bcm/clk-kona.c struct kona_clk *bcm_clk = &kona_clks[which]; bcm_clk 1269 drivers/clk/bcm/clk-kona.c if (!bcm_clk->ccu) bcm_clk 1272 drivers/clk/bcm/clk-kona.c success &= __kona_clk_init(bcm_clk);