[PATCH v2] [2.6.22] pasemi: cpufreq driver
Arnd Bergmann
arnd at arndb.de
Thu Apr 26 18:55:33 EST 2007
On Thursday 26 April 2007, Olof Johansson wrote:
> I chose not to do this as an of_platform driver since it doesn't fit
> that well with the cpufreq driver model; having 3 levels of init/probe
> functions is excessive.
<snip>
> + dn = of_find_compatible_node(NULL, "sdc", "1682m-sdc");
> + if (!dn)
> + goto out;
> + err = of_address_to_resource(dn, 0, &res);
> + of_node_put(dn);
> + if (err)
> + goto out;
> + sdcasr_mapbase = ioremap(res.start + SDCASR_OFFSET, 0x2000);
> + if (!sdcasr_mapbase) {
> + err = -EINVAL;
> + goto out;
> + }
> +
> + dn = of_find_compatible_node(NULL, "gizmo", "1682m-gizmo");
> + if (!dn) {
> + err = -ENODEV;
> + goto out_unmap_sdcasr;
> + }
> + err = of_address_to_resource(dn, 0, &res);
> + of_node_put(dn);
> + if (err)
> + goto out_unmap_sdcasr;
> + sdcpwr_mapbase = ioremap(res.start, 0x1000);
> + if (!sdcpwr_mapbase) {
> + err = -EINVAL;
> + goto out_unmap_sdcasr;
> + }
What are sdc and gizmo anyway? If they are both only used for cpufreq, maybe the
easiest way to do this with an of_platform_driver would be to have a single
node that has two register ranges.
Arnd <><
More information about the Linuxppc-dev
mailing list