Lines Matching refs:mux

34 	struct clk_mux *mux = to_clk_mux(hw);  in clk_mux_get_parent()  local
45 val = clk_readl(mux->reg) >> mux->shift; in clk_mux_get_parent()
46 val &= mux->mask; in clk_mux_get_parent()
48 if (mux->table) { in clk_mux_get_parent()
52 if (mux->table[i] == val) in clk_mux_get_parent()
57 if (val && (mux->flags & CLK_MUX_INDEX_BIT)) in clk_mux_get_parent()
60 if (val && (mux->flags & CLK_MUX_INDEX_ONE)) in clk_mux_get_parent()
71 struct clk_mux *mux = to_clk_mux(hw); in clk_mux_set_parent() local
75 if (mux->table) in clk_mux_set_parent()
76 index = mux->table[index]; in clk_mux_set_parent()
79 if (mux->flags & CLK_MUX_INDEX_BIT) in clk_mux_set_parent()
82 if (mux->flags & CLK_MUX_INDEX_ONE) in clk_mux_set_parent()
86 if (mux->lock) in clk_mux_set_parent()
87 spin_lock_irqsave(mux->lock, flags); in clk_mux_set_parent()
89 if (mux->flags & CLK_MUX_HIWORD_MASK) { in clk_mux_set_parent()
90 val = mux->mask << (mux->shift + 16); in clk_mux_set_parent()
92 val = clk_readl(mux->reg); in clk_mux_set_parent()
93 val &= ~(mux->mask << mux->shift); in clk_mux_set_parent()
95 val |= index << mux->shift; in clk_mux_set_parent()
96 clk_writel(val, mux->reg); in clk_mux_set_parent()
98 if (mux->lock) in clk_mux_set_parent()
99 spin_unlock_irqrestore(mux->lock, flags); in clk_mux_set_parent()
121 struct clk_mux *mux; in clk_register_mux_table() local
135 mux = kzalloc(sizeof(struct clk_mux), GFP_KERNEL); in clk_register_mux_table()
136 if (!mux) { in clk_register_mux_table()
151 mux->reg = reg; in clk_register_mux_table()
152 mux->shift = shift; in clk_register_mux_table()
153 mux->mask = mask; in clk_register_mux_table()
154 mux->flags = clk_mux_flags; in clk_register_mux_table()
155 mux->lock = lock; in clk_register_mux_table()
156 mux->table = table; in clk_register_mux_table()
157 mux->hw.init = &init; in clk_register_mux_table()
159 clk = clk_register(dev, &mux->hw); in clk_register_mux_table()
162 kfree(mux); in clk_register_mux_table()
183 struct clk_mux *mux; in clk_unregister_mux() local
190 mux = to_clk_mux(hw); in clk_unregister_mux()
193 kfree(mux); in clk_unregister_mux()