Lines Matching +full:reg +full:- +full:mux
4 * Base on code in drivers/clk/clk-mux.c.
5 * See clk-mux.c for further copyright information.
18 #include "clk-regmap.h"
24 struct clk_regmap_mux *mux = to_clk_regmap_mux(hw); in clk_regmap_mux_get_parent() local
28 regmap_read(mux->regmap, mux->reg, &val); in clk_regmap_mux_get_parent()
30 index = val >> mux->shift; in clk_regmap_mux_get_parent()
31 index &= mux->mask; in clk_regmap_mux_get_parent()
38 struct clk_regmap_mux *mux = to_clk_regmap_mux(hw); in clk_regmap_mux_set_parent() local
40 return regmap_write(mux->regmap, mux->reg, (index << mux->shift) | in clk_regmap_mux_set_parent()
41 (mux->mask << (mux->shift + 16))); in clk_regmap_mux_set_parent()
54 struct regmap *regmap, u32 reg, u8 shift, u8 width, in devm_clk_regmap_register_mux() argument
57 struct clk_regmap_mux *mux; in devm_clk_regmap_register_mux() local
60 mux = devm_kzalloc(dev, sizeof(*mux), GFP_KERNEL); in devm_clk_regmap_register_mux()
61 if (!mux) in devm_clk_regmap_register_mux()
62 return ERR_PTR(-ENOMEM); in devm_clk_regmap_register_mux()
70 mux->dev = dev; in devm_clk_regmap_register_mux()
71 mux->regmap = regmap; in devm_clk_regmap_register_mux()
72 mux->reg = reg; in devm_clk_regmap_register_mux()
73 mux->shift = shift; in devm_clk_regmap_register_mux()
74 mux->mask = BIT(width) - 1; in devm_clk_regmap_register_mux()
75 mux->hw.init = &init; in devm_clk_regmap_register_mux()
77 return devm_clk_register(dev, &mux->hw); in devm_clk_regmap_register_mux()