void __init of_at91sam9x5_clk_slow_setup(struct device_node *np, void __iomem *sckcr) { struct clk *clk; const char *parent_names[2]; int num_parents; const char *name = np->name; int i; num_parents = of_count_phandle_with_args(np, "clocks", "#clock-cells"); if (num_parents <= 0 || num_parents > 2) return; for (i = 0; i < num_parents; ++i) { parent_names[i] = of_clk_get_parent_name(np, i); if (!parent_names[i]) return; } of_property_read_string(np, "clock-output-names", &name); clk = at91_clk_register_sam9x5_slow(sckcr, name, parent_names, num_parents); if (IS_ERR(clk)) return; of_clk_add_provider(np, of_clk_src_simple_get, clk); }
void __init of_at91sam9x5_clk_slow_setup(struct device_node *np, void __iomem *sckcr) { struct clk *clk; const char *parent_names[2]; int num_parents; const char *name = np->name; num_parents = of_clk_get_parent_count(np); if (num_parents <= 0 || num_parents > 2) return; of_clk_parent_fill(np, parent_names, num_parents); of_property_read_string(np, "clock-output-names", &name); clk = at91_clk_register_sam9x5_slow(sckcr, name, parent_names, num_parents); if (IS_ERR(clk)) return; of_clk_add_provider(np, of_clk_src_simple_get, clk); }