aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/clk/sunxi-ng/ccu_mux.h
diff options
context:
space:
mode:
authorChen-Yu Tsai <wens@csie.org>2016-08-25 14:21:56 +0800
committerMaxime Ripard <maxime.ripard@free-electrons.com>2016-08-25 22:26:44 +0200
commit2b9c875c56f0bec92b301061fe3c2adb5e098b36 (patch)
tree8dd42f812d70db69bbcfef42a99cf154e8cdd47d /drivers/clk/sunxi-ng/ccu_mux.h
parentclk: sunxi-ng: mux: Rename mux macro to be consistent (diff)
downloadlinux-dev-2b9c875c56f0bec92b301061fe3c2adb5e098b36.tar.xz
linux-dev-2b9c875c56f0bec92b301061fe3c2adb5e098b36.zip
clk: sunxi-ng: mux: Add support for mux tables
Some clock muxes have holes, i.e. invalid or unconnected inputs, between parent mux values. Add support for specifying a mux table to map clock parents to mux values. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Diffstat (limited to 'drivers/clk/sunxi-ng/ccu_mux.h')
-rw-r--r--drivers/clk/sunxi-ng/ccu_mux.h17
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/clk/sunxi-ng/ccu_mux.h b/drivers/clk/sunxi-ng/ccu_mux.h
index 83737c2facd4..b1e085612e5e 100644
--- a/drivers/clk/sunxi-ng/ccu_mux.h
+++ b/drivers/clk/sunxi-ng/ccu_mux.h
@@ -6,8 +6,9 @@
#include "ccu_common.h"
struct ccu_mux_internal {
- u8 shift;
- u8 width;
+ u8 shift;
+ u8 width;
+ const u8 *table;
struct {
u8 index;
@@ -21,12 +22,16 @@ struct ccu_mux_internal {
} variable_prediv;
};
-#define _SUNXI_CCU_MUX(_shift, _width) \
- { \
- .shift = _shift, \
- .width = _width, \
+#define _SUNXI_CCU_MUX_TABLE(_shift, _width, _table) \
+ { \
+ .shift = _shift, \
+ .width = _width, \
+ .table = _table, \
}
+#define _SUNXI_CCU_MUX(_shift, _width) \
+ _SUNXI_CCU_MUX_TABLE(_shift, _width, NULL)
+
struct ccu_mux {
u16 reg;
u32 enable;