| .. | .. |
|---|
| 20 | 20 | struct clk_hw hw; |
|---|
| 21 | 21 | struct clk_omap_reg reg; |
|---|
| 22 | 22 | u8 shift; |
|---|
| 23 | | - u8 width; |
|---|
| 24 | 23 | u8 flags; |
|---|
| 25 | 24 | s8 latch; |
|---|
| 25 | + u16 min; |
|---|
| 26 | + u16 max; |
|---|
| 27 | + u16 mask; |
|---|
| 26 | 28 | const struct clk_div_table *table; |
|---|
| 29 | + u32 context; |
|---|
| 27 | 30 | }; |
|---|
| 28 | 31 | |
|---|
| 29 | 32 | #define to_clk_omap_divider(_hw) container_of(_hw, struct clk_omap_divider, hw) |
|---|
| .. | .. |
|---|
| 36 | 39 | u8 shift; |
|---|
| 37 | 40 | s8 latch; |
|---|
| 38 | 41 | u8 flags; |
|---|
| 42 | + u8 saved_parent; |
|---|
| 39 | 43 | }; |
|---|
| 40 | 44 | |
|---|
| 41 | 45 | #define to_clk_omap_mux(_hw) container_of(_hw, struct clk_omap_mux, hw) |
|---|
| .. | .. |
|---|
| 80 | 84 | #define CLKF_SW_SUP BIT(5) |
|---|
| 81 | 85 | #define CLKF_HW_SUP BIT(6) |
|---|
| 82 | 86 | #define CLKF_NO_IDLEST BIT(7) |
|---|
| 87 | + |
|---|
| 88 | +#define CLKF_SOC_MASK GENMASK(11, 8) |
|---|
| 89 | + |
|---|
| 90 | +#define CLKF_SOC_NONSEC BIT(8) |
|---|
| 91 | +#define CLKF_SOC_DRA72 BIT(9) |
|---|
| 92 | +#define CLKF_SOC_DRA74 BIT(10) |
|---|
| 93 | +#define CLKF_SOC_DRA76 BIT(11) |
|---|
| 83 | 94 | |
|---|
| 84 | 95 | #define CLK(dev, con, ck) \ |
|---|
| 85 | 96 | { \ |
|---|
| .. | .. |
|---|
| 184 | 195 | extern const struct omap_clkctrl_data omap4_clkctrl_data[]; |
|---|
| 185 | 196 | extern const struct omap_clkctrl_data omap5_clkctrl_data[]; |
|---|
| 186 | 197 | extern const struct omap_clkctrl_data dra7_clkctrl_data[]; |
|---|
| 198 | +extern const struct omap_clkctrl_data dra7_clkctrl_compat_data[]; |
|---|
| 199 | +extern struct ti_dt_clk dra7xx_compat_clks[]; |
|---|
| 187 | 200 | extern const struct omap_clkctrl_data am3_clkctrl_data[]; |
|---|
| 201 | +extern const struct omap_clkctrl_data am3_clkctrl_compat_data[]; |
|---|
| 202 | +extern struct ti_dt_clk am33xx_compat_clks[]; |
|---|
| 188 | 203 | extern const struct omap_clkctrl_data am4_clkctrl_data[]; |
|---|
| 204 | +extern const struct omap_clkctrl_data am4_clkctrl_compat_data[]; |
|---|
| 205 | +extern struct ti_dt_clk am43xx_compat_clks[]; |
|---|
| 189 | 206 | extern const struct omap_clkctrl_data am438x_clkctrl_data[]; |
|---|
| 207 | +extern const struct omap_clkctrl_data am438x_clkctrl_compat_data[]; |
|---|
| 190 | 208 | extern const struct omap_clkctrl_data dm814_clkctrl_data[]; |
|---|
| 191 | 209 | extern const struct omap_clkctrl_data dm816_clkctrl_data[]; |
|---|
| 192 | 210 | |
|---|
| .. | .. |
|---|
| 194 | 212 | |
|---|
| 195 | 213 | struct clk *ti_clk_register(struct device *dev, struct clk_hw *hw, |
|---|
| 196 | 214 | const char *con); |
|---|
| 215 | +struct clk *ti_clk_register_omap_hw(struct device *dev, struct clk_hw *hw, |
|---|
| 216 | + const char *con); |
|---|
| 197 | 217 | int ti_clk_add_alias(struct device *dev, struct clk *clk, const char *con); |
|---|
| 198 | 218 | void ti_clk_add_aliases(void); |
|---|
| 199 | 219 | |
|---|
| .. | .. |
|---|
| 202 | 222 | struct clk_hw *ti_clk_build_component_mux(struct ti_clk_mux *setup); |
|---|
| 203 | 223 | |
|---|
| 204 | 224 | int ti_clk_parse_divider_data(int *div_table, int num_dividers, int max_div, |
|---|
| 205 | | - u8 flags, u8 *width, |
|---|
| 206 | | - const struct clk_div_table **table); |
|---|
| 225 | + u8 flags, struct clk_omap_divider *div); |
|---|
| 207 | 226 | |
|---|
| 208 | 227 | int ti_clk_get_reg_addr(struct device_node *node, int index, |
|---|
| 209 | 228 | struct clk_omap_reg *reg); |
|---|
| .. | .. |
|---|
| 212 | 231 | ti_of_clk_init_cb_t func); |
|---|
| 213 | 232 | int ti_clk_add_component(struct device_node *node, struct clk_hw *hw, int type); |
|---|
| 214 | 233 | |
|---|
| 215 | | -void omap2_init_clk_hw_omap_clocks(struct clk_hw *hw); |
|---|
| 216 | 234 | int of_ti_clk_autoidle_setup(struct device_node *node); |
|---|
| 217 | 235 | void omap2_clk_enable_init_clocks(const char **clk_names, u8 num_clocks); |
|---|
| 218 | 236 | |
|---|
| .. | .. |
|---|
| 233 | 251 | extern const struct clk_ops ti_clk_mux_ops; |
|---|
| 234 | 252 | extern const struct clk_ops omap_gate_clk_ops; |
|---|
| 235 | 253 | |
|---|
| 236 | | -void omap2_init_clk_clkdm(struct clk_hw *hw); |
|---|
| 254 | +extern struct ti_clk_features ti_clk_features; |
|---|
| 255 | + |
|---|
| 256 | +int omap2_init_clk_clkdm(struct clk_hw *hw); |
|---|
| 237 | 257 | int omap2_clkops_enable_clkdm(struct clk_hw *hw); |
|---|
| 238 | 258 | void omap2_clkops_disable_clkdm(struct clk_hw *hw); |
|---|
| 239 | 259 | |
|---|
| .. | .. |
|---|
| 290 | 310 | unsigned long *parent_rate); |
|---|
| 291 | 311 | int omap4_dpll_regm4xen_determine_rate(struct clk_hw *hw, |
|---|
| 292 | 312 | struct clk_rate_request *req); |
|---|
| 313 | +int omap2_clk_for_each(int (*fn)(struct clk_hw_omap *hw)); |
|---|
| 293 | 314 | |
|---|
| 294 | 315 | extern struct ti_clk_ll_ops *ti_clk_ll_ops; |
|---|
| 295 | 316 | |
|---|