}
EXPORT_SYMBOL_GPL(rockchip_clk_of_add_provider);
+int rockchip_clk_add_grf(struct rockchip_clk_provider *ctx,
+ struct regmap *grf,
+ enum rockchip_grf_type type)
+{
+ struct rockchip_aux_grf *aux_grf;
+
+ aux_grf = kzalloc_obj(*aux_grf);
+ if (!aux_grf)
+ return -ENOMEM;
+
+ aux_grf->grf = grf;
+ aux_grf->type = type;
+ hash_add(ctx->aux_grf_table, &aux_grf->node, type);
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(rockchip_clk_add_grf);
+
void rockchip_clk_register_plls(struct rockchip_clk_provider *ctx,
struct rockchip_pll_clock *list,
unsigned int nr_pll, int grf_lock_offset)
void rockchip_clk_finalize(struct rockchip_clk_provider *ctx);
void rockchip_clk_of_add_provider(struct device_node *np,
struct rockchip_clk_provider *ctx);
+int rockchip_clk_add_grf(struct rockchip_clk_provider *ctx,
+ struct regmap *grf,
+ enum rockchip_grf_type type);
unsigned long rockchip_clk_find_max_clk_id(struct rockchip_clk_branch *list,
unsigned int nr_clk);
void rockchip_clk_register_branches(struct rockchip_clk_provider *ctx,