clk: mediatek: add MUX_GATE_FLAGS_2
authorchunhui dai <chunhui.dai@mediatek.com>
Mon, 25 Feb 2019 02:09:09 +0000 (10:09 +0800)
committerStephen Boyd <sboyd@kernel.org>
Mon, 25 Feb 2019 17:19:32 +0000 (09:19 -0800)
Add MUX_GATE_FLAGS_2 for the clock which needs to set two falgs.
Such as some mux need to set the flags of "CLK_MUX_ROUND_CLOSEST".

Signed-off-by: chunhui dai <chunhui.dai@mediatek.com>
Signed-off-by: wangyan wang <wangyan.wang@mediatek.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/mediatek/clk-mtk.c
drivers/clk/mediatek/clk-mtk.h

index 9c0ae42..2ed9964 100644 (file)
@@ -167,7 +167,7 @@ struct clk *mtk_clk_register_composite(const struct mtk_composite *mc,
                mux->mask = BIT(mc->mux_width) - 1;
                mux->shift = mc->mux_shift;
                mux->lock = lock;
-
+               mux->flags = mc->mux_flags;
                mux_hw = &mux->hw;
                mux_ops = &clk_mux_ops;
 
index f83c2bb..5f0b18b 100644 (file)
@@ -81,15 +81,13 @@ struct mtk_composite {
        signed char divider_shift;
        signed char divider_width;
 
+       u8 mux_flags;
+
        signed char num_parents;
 };
 
-/*
- * In case the rate change propagation to parent clocks is undesirable,
- * this macro allows to specify the clock flags manually.
- */
-#define MUX_GATE_FLAGS(_id, _name, _parents, _reg, _shift, _width,     \
-                       _gate, _flags) {                                \
+#define MUX_GATE_FLAGS_2(_id, _name, _parents, _reg, _shift,           \
+                               _width, _gate, _flags, _muxflags) {     \
                .id = _id,                                              \
                .name = _name,                                          \
                .mux_reg = _reg,                                        \
@@ -101,9 +99,19 @@ struct mtk_composite {
                .parent_names = _parents,                               \
                .num_parents = ARRAY_SIZE(_parents),                    \
                .flags = _flags,                                        \
+               .mux_flags = _muxflags,                                 \
        }
 
 /*
+ * In case the rate change propagation to parent clocks is undesirable,
+ * this macro allows to specify the clock flags manually.
+ */
+#define MUX_GATE_FLAGS(_id, _name, _parents, _reg, _shift, _width,     \
+                       _gate, _flags)                                  \
+               MUX_GATE_FLAGS_2(_id, _name, _parents, _reg,            \
+                                       _shift, _width, _gate, _flags, 0)
+
+/*
  * Unless necessary, all MUX_GATE clocks propagate rate changes to their
  * parent clock by default.
  */