Linus Walleij wrote at Friday, September 02, 2011 2:12 AM: > On Thu, Sep 1, 2011 at 11:33 PM, Stephen Warren <swar...@nvidia.com> wrote: > > >> +static const struct u300_pmx_func u300_pmx_functions[] = { > >> + { > >> + .name = "power", > >> + .groups = { POWERGRP_INDEX }, > >> + /* Mask is N/A */ > >> + }, > > > > Hmmm. That's a lot of _INDEX defines that'd need to be set up, at least > > to fully represent a chip like Tegra. Can the pinmux core be modified > > such that the group list is an array of names (char*) rather than the > > actual numeric IDs of the groups? Still, perhaps we could use the enum > > we already have for this, so perhaps it isn't a big deal... > > Well I could think about a lot of ways to do this, but it's basically up > to the driver, the U300 is just some simple example of what you can > do, it's just trying to satisfy the API. > > Maybe as part of writing the nVidia driver you find a clever > mechanism for doing this, if it's looking generally useful at that > point then let's move it to the core I'd say.
The reason I asked about the pinmux core handling this is because the driver op get_function_groups: + int (*get_function_groups) (struct pinctrl_dev *pctldev, + unsigned selector, + unsigned ** const groups, + unsigned * const num_groups); returns an array of integer indexes. I think the only way to get rid of the index definitions in the drivers is to allow get_function_groups to return an array of strings instead. Well, I suppose the implementation of get_function_groups could convert from an internal array of strings to the returned array of integers at run-time, but that doesn't seem like a great idea. -- nvpublic _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev