reg, shift, 0x3, 0, &imx_ccm_lock, NULL);
}
+++++ static inline struct clk *imx_clk_gate4_flags(const char *name,
+++++ const char *parent, void __iomem *reg, u8 shift,
+++++ unsigned long flags)
+++++ {
+++++ return clk_register_gate2(NULL, name, parent,
+++++ flags | CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE,
+++++ reg, shift, 0x3, 0, &imx_ccm_lock, NULL);
+++++ }
+++++
static inline struct clk *imx_clk_mux(const char *name, void __iomem *reg,
- ---- u8 shift, u8 width, const char **parents, int num_parents)
+ ++++ u8 shift, u8 width, const char * const *parents,
+ ++++ int num_parents)
{
return clk_register_mux(NULL, name, parents, num_parents,
CLK_SET_RATE_NO_REPARENT, reg, shift,
&imx_ccm_lock);
}
+++++ static inline struct clk *imx_clk_mux2_flags(const char *name,
+++++ void __iomem *reg, u8 shift, u8 width, const char **parents,
+++++ int num_parents, unsigned long flags)
+++++ {
+++++ return clk_register_mux(NULL, name, parents, num_parents,
+++++ flags | CLK_SET_RATE_NO_REPARENT | CLK_OPS_PARENT_ENABLE,
+++++ reg, shift, width, 0, &imx_ccm_lock);
+++++ }
+++++
+ ++++static inline struct clk_hw *imx_clk_hw_mux_flags(const char *name,
+ ++++ void __iomem *reg, u8 shift,
+ ++++ u8 width,
+ ++++ const char * const *parents,
+ ++++ int num_parents,
+ ++++ unsigned long flags)
+ ++++{
+ ++++ return clk_hw_register_mux(NULL, name, parents, num_parents,
+ ++++ flags | CLK_SET_RATE_NO_REPARENT,
+ ++++ reg, shift, width, 0, &imx_ccm_lock);
+ ++++}
+ ++++
struct clk *imx_clk_cpu(const char *name, const char *parent_name,
struct clk *div, struct clk *mux, struct clk *pll,
struct clk *step);
+++++ struct clk *imx8m_clk_composite_flags(const char *name,
+++++ const char **parent_names,
+++++ int num_parents, void __iomem *reg,
+++++ unsigned long flags);
+++++
+++++ #define __imx8m_clk_composite(name, parent_names, reg, flags) \
+++++ imx8m_clk_composite_flags(name, parent_names, \
+++++ ARRAY_SIZE(parent_names), reg, \
+++++ flags | CLK_SET_RATE_NO_REPARENT | CLK_OPS_PARENT_ENABLE)
+++++
+++++ #define imx8m_clk_composite(name, parent_names, reg) \
+++++ __imx8m_clk_composite(name, parent_names, reg, 0)
+++++
+++++ #define imx8m_clk_composite_critical(name, parent_names, reg) \
+++++ __imx8m_clk_composite(name, parent_names, reg, CLK_IS_CRITICAL)
+++++
+ ++++struct clk_hw *imx_clk_divider_gate(const char *name, const char *parent_name,
+ ++++ unsigned long flags, void __iomem *reg, u8 shift, u8 width,
+ ++++ u8 clk_divider_flags, const struct clk_div_table *table,
+ ++++ spinlock_t *lock);
#endif