Lines Matching refs:mux
33 struct clk_mux *mux = to_clk_mux(hw); in clk_mux_get_parent() local
44 val = clk_readl(mux->reg) >> mux->shift; in clk_mux_get_parent()
45 val &= mux->mask; in clk_mux_get_parent()
47 if (mux->table) { in clk_mux_get_parent()
51 if (mux->table[i] == val) in clk_mux_get_parent()
56 if (val && (mux->flags & CLK_MUX_INDEX_BIT)) in clk_mux_get_parent()
59 if (val && (mux->flags & CLK_MUX_INDEX_ONE)) in clk_mux_get_parent()
70 struct clk_mux *mux = to_clk_mux(hw); in clk_mux_set_parent() local
74 if (mux->table) in clk_mux_set_parent()
75 index = mux->table[index]; in clk_mux_set_parent()
78 if (mux->flags & CLK_MUX_INDEX_BIT) in clk_mux_set_parent()
81 if (mux->flags & CLK_MUX_INDEX_ONE) in clk_mux_set_parent()
85 if (mux->lock) in clk_mux_set_parent()
86 spin_lock_irqsave(mux->lock, flags); in clk_mux_set_parent()
88 __acquire(mux->lock); in clk_mux_set_parent()
90 if (mux->flags & CLK_MUX_HIWORD_MASK) { in clk_mux_set_parent()
91 val = mux->mask << (mux->shift + 16); in clk_mux_set_parent()
93 val = clk_readl(mux->reg); in clk_mux_set_parent()
94 val &= ~(mux->mask << mux->shift); in clk_mux_set_parent()
96 val |= index << mux->shift; in clk_mux_set_parent()
97 clk_writel(val, mux->reg); in clk_mux_set_parent()
99 if (mux->lock) in clk_mux_set_parent()
100 spin_unlock_irqrestore(mux->lock, flags); in clk_mux_set_parent()
102 __release(mux->lock); in clk_mux_set_parent()
125 struct clk_mux *mux; in clk_register_mux_table() local
139 mux = kzalloc(sizeof(struct clk_mux), GFP_KERNEL); in clk_register_mux_table()
140 if (!mux) { in clk_register_mux_table()
155 mux->reg = reg; in clk_register_mux_table()
156 mux->shift = shift; in clk_register_mux_table()
157 mux->mask = mask; in clk_register_mux_table()
158 mux->flags = clk_mux_flags; in clk_register_mux_table()
159 mux->lock = lock; in clk_register_mux_table()
160 mux->table = table; in clk_register_mux_table()
161 mux->hw.init = &init; in clk_register_mux_table()
163 clk = clk_register(dev, &mux->hw); in clk_register_mux_table()
166 kfree(mux); in clk_register_mux_table()
188 struct clk_mux *mux; in clk_unregister_mux() local
195 mux = to_clk_mux(hw); in clk_unregister_mux()
198 kfree(mux); in clk_unregister_mux()