Re: [PATCH v2] [2.6.22] pasemi: cpufreq driver
From: Arnd Bergmann <arnd@arndb.de>
Date: 2007-04-26 08:55:50
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 <><