Lines Matching +full:switching +full:- +full:freq
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
115 if ((sc->mux_flags & RK_CLK_MUX_GRF) != 0) { in rk_clk_mux_init()
116 sc->grf = rk_clk_mux_get_grf(clk); in rk_clk_mux_init()
117 if (sc->grf == NULL) in rk_clk_mux_init()
123 if (sc->grf) { in rk_clk_mux_init()
124 reg = SYSCON_READ_4(sc->grf, sc->offset); in rk_clk_mux_init()
127 rv = RD4(clk, sc->offset, ®); in rk_clk_mux_init()
132 reg = (reg >> sc->shift) & sc->mask; in rk_clk_mux_init()
147 if (sc->grf) in rk_clk_mux_set_mux()
148 rv = SYSCON_MODIFY_4(sc->grf, sc->offset, sc->mask << sc->shift, in rk_clk_mux_set_mux()
149 ((idx & sc->mask) << sc->shift) | RK_CLK_MUX_MASK); in rk_clk_mux_set_mux()
151 rv = MD4(clk, sc->offset, sc->mask << sc->shift, in rk_clk_mux_set_mux()
152 ((idx & sc->mask) << sc->shift) | RK_CLK_MUX_MASK); in rk_clk_mux_set_mux()
157 if (sc->grf == NULL) in rk_clk_mux_set_mux()
158 RD4(clk, sc->offset, ®); in rk_clk_mux_set_mux()
176 if ((sc->mux_flags & RK_CLK_MUX_GRF) != 0) { in rk_clk_mux_set_freq()
180 if ((sc->mux_flags & RK_CLK_MUX_REPARENT) == 0) { in rk_clk_mux_set_freq()
185 dprintf("Finding best parent for target freq of %ju\n", *fout); in rk_clk_mux_set_freq()
210 dprintf("Switching parent index from %d to %d\n", p_idx, in rk_clk_mux_set_freq()
227 clk = clknode_create(clkdom, &rk_clk_mux_class, &clkdef->clkdef); in rk_clk_mux_register()
232 sc->offset = clkdef->offset; in rk_clk_mux_register()
233 sc->shift = clkdef->shift; in rk_clk_mux_register()
234 sc->mask = (1 << clkdef->width) - 1; in rk_clk_mux_register()
235 sc->mux_flags = clkdef->mux_flags; in rk_clk_mux_register()