[PATCH 3/4] [POWERPC] CPM2: implement GPIO API
Arnd Bergmann
arnd at arndb.de
Sat Dec 22 08:16:32 EST 2007
On Friday 21 December 2007, Anton Vorontsov wrote:
>
> +static spinlock_t cpm2_port_lock = __SPIN_LOCK_UNLOCKED(cpm2_port_lock);
This needs to be
static DEFINE_SPINLOCK(cpm2_port_lock);
I think at least lockdep doesn't work the way you do it here.
> +int cpm2_init_par_io(void)
> +{
> + struct device_node *np;
> + const u32 *num_ports;
> +
> + np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pario");
> + if (!np)
> + return -ENOENT;
> +
> + num_ports = of_get_property(np, "num-ports", NULL);
> + if (!num_ports) {
> + of_node_put(np);
> + return -ENOENT;
> + }
> + cpm2_num_ports = *num_ports;
> +
> + np->data = &of_gpio_chip;
> +
> + return 0;
> +}
This function should also do the call to of_iomap, so you don't
need to pull the address out of the cpm2_immr, which I believe
we're trying to get rid of.
Arnd <><
More information about the Linuxppc-dev
mailing list