|
@@ -43,9 +43,12 @@ struct ccu_mux {
|
|
|
struct ccu_common common;
|
|
|
};
|
|
|
|
|
|
-#define SUNXI_CCU_MUX(_struct, _name, _parents, _reg, _shift, _width, _flags) \
|
|
|
+#define SUNXI_CCU_MUX_TABLE_WITH_GATE(_struct, _name, _parents, _table, \
|
|
|
+ _reg, _shift, _width, _gate, \
|
|
|
+ _flags) \
|
|
|
struct ccu_mux _struct = { \
|
|
|
- .mux = _SUNXI_CCU_MUX(_shift, _width), \
|
|
|
+ .enable = _gate, \
|
|
|
+ .mux = _SUNXI_CCU_MUX_TABLE(_shift, _width, _table), \
|
|
|
.common = { \
|
|
|
.reg = _reg, \
|
|
|
.hw.init = CLK_HW_INIT_PARENTS(_name, \
|
|
@@ -57,17 +60,14 @@ struct ccu_mux {
|
|
|
|
|
|
#define SUNXI_CCU_MUX_WITH_GATE(_struct, _name, _parents, _reg, \
|
|
|
_shift, _width, _gate, _flags) \
|
|
|
- struct ccu_mux _struct = { \
|
|
|
- .enable = _gate, \
|
|
|
- .mux = _SUNXI_CCU_MUX(_shift, _width), \
|
|
|
- .common = { \
|
|
|
- .reg = _reg, \
|
|
|
- .hw.init = CLK_HW_INIT_PARENTS(_name, \
|
|
|
- _parents, \
|
|
|
- &ccu_mux_ops, \
|
|
|
- _flags), \
|
|
|
- } \
|
|
|
- }
|
|
|
+ SUNXI_CCU_MUX_TABLE_WITH_GATE(_struct, _name, _parents, NULL, \
|
|
|
+ _reg, _shift, _width, _gate, \
|
|
|
+ _flags)
|
|
|
+
|
|
|
+#define SUNXI_CCU_MUX(_struct, _name, _parents, _reg, _shift, _width, \
|
|
|
+ _flags) \
|
|
|
+ SUNXI_CCU_MUX_TABLE_WITH_GATE(_struct, _name, _parents, NULL, \
|
|
|
+ _reg, _shift, _width, 0, _flags)
|
|
|
|
|
|
static inline struct ccu_mux *hw_to_ccu_mux(struct clk_hw *hw)
|
|
|
{
|