Ejemplo n.º 1
0
static void __init of_at91_pmc_setup(struct device_node *np,
                                     const struct at91_pmc_caps *caps)
{
    struct at91_pmc *pmc;
    struct device_node *childnp;
    void (*clk_setup)(struct device_node *, struct at91_pmc *);
    const struct of_device_id *clk_id;
    void __iomem *regbase = of_iomap(np, 0);
    int virq;

    if (!regbase)
        return;

    virq = irq_of_parse_and_map(np, 0);
    if (!virq)
        return;

    pmc = at91_pmc_init(np, regbase, virq, caps);
    if (!pmc)
        return;
    for_each_child_of_node(np, childnp) {
        clk_id = of_match_node(pmc_clk_ids, childnp);
        if (!clk_id)
            continue;
        clk_setup = clk_id->data;
        clk_setup(childnp, pmc);
    }
Ejemplo n.º 2
0
static void __init of_at91sam9x5_sckc_setup(struct device_node *np)
{
	struct device_node *childnp;
	void (*clk_setup)(struct device_node *, void __iomem *);
	const struct of_device_id *clk_id;
	void __iomem *regbase = of_iomap(np, 0);

	if (!regbase)
		return;

	for_each_child_of_node(np, childnp) {
		clk_id = of_match_node(sckc_clk_ids, childnp);
		if (!clk_id)
			continue;
		clk_setup = clk_id->data;
		clk_setup(childnp, regbase);
	}