Skip to content

Commit 54530ed

Browse files
rajanv-xilinxbebarino
authored andcommitted
clk: zynqmp: Use firmware specific mux clock flags
Use ZynqMP specific mux clock flags instead of using CCF flags. Signed-off-by: Rajan Vaja <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Stephen Boyd <[email protected]>
1 parent 1b09c30 commit 54530ed

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

drivers/clk/zynqmp/clk-mux-zynqmp.c

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,27 @@ static const struct clk_ops zynqmp_clk_mux_ro_ops = {
9696
.get_parent = zynqmp_clk_mux_get_parent,
9797
};
9898

99+
static inline unsigned long zynqmp_clk_map_mux_ccf_flags(
100+
const u32 zynqmp_type_flag)
101+
{
102+
unsigned long ccf_flag = 0;
103+
104+
if (zynqmp_type_flag & ZYNQMP_CLK_MUX_INDEX_ONE)
105+
ccf_flag |= CLK_MUX_INDEX_ONE;
106+
if (zynqmp_type_flag & ZYNQMP_CLK_MUX_INDEX_BIT)
107+
ccf_flag |= CLK_MUX_INDEX_BIT;
108+
if (zynqmp_type_flag & ZYNQMP_CLK_MUX_HIWORD_MASK)
109+
ccf_flag |= CLK_MUX_HIWORD_MASK;
110+
if (zynqmp_type_flag & ZYNQMP_CLK_MUX_READ_ONLY)
111+
ccf_flag |= CLK_MUX_READ_ONLY;
112+
if (zynqmp_type_flag & ZYNQMP_CLK_MUX_ROUND_CLOSEST)
113+
ccf_flag |= CLK_MUX_ROUND_CLOSEST;
114+
if (zynqmp_type_flag & ZYNQMP_CLK_MUX_BIG_ENDIAN)
115+
ccf_flag |= CLK_MUX_BIG_ENDIAN;
116+
117+
return ccf_flag;
118+
}
119+
99120
/**
100121
* zynqmp_clk_register_mux() - Register a mux table with the clock
101122
* framework
@@ -131,7 +152,7 @@ struct clk_hw *zynqmp_clk_register_mux(const char *name, u32 clk_id,
131152

132153
init.parent_names = parents;
133154
init.num_parents = num_parents;
134-
mux->flags = nodes->type_flag;
155+
mux->flags = zynqmp_clk_map_mux_ccf_flags(nodes->type_flag);
135156
mux->hw.init = &init;
136157
mux->clk_id = clk_id;
137158

drivers/clk/zynqmp/clk-zynqmp.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,14 @@
3333
#define ZYNQMP_CLK_DIVIDER_READ_ONLY BIT(5)
3434
#define ZYNQMP_CLK_DIVIDER_MAX_AT_ZERO BIT(6)
3535

36+
/* Type Flags for mux clock */
37+
#define ZYNQMP_CLK_MUX_INDEX_ONE BIT(0)
38+
#define ZYNQMP_CLK_MUX_INDEX_BIT BIT(1)
39+
#define ZYNQMP_CLK_MUX_HIWORD_MASK BIT(2)
40+
#define ZYNQMP_CLK_MUX_READ_ONLY BIT(3)
41+
#define ZYNQMP_CLK_MUX_ROUND_CLOSEST BIT(4)
42+
#define ZYNQMP_CLK_MUX_BIG_ENDIAN BIT(5)
43+
3644
enum topology_type {
3745
TYPE_INVALID,
3846
TYPE_MUX,

0 commit comments

Comments
 (0)