On 16:34 Thu 03 May , Stephen Warren wrote: > On 05/03/2012 09:27 AM, Tony Lindgren wrote: > > Hi, > > > > * Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx> [120503 00:16]: > >> > >> I really like it > >> > >> I was working on something simillar > >> > >> but can we split the group management so we can use it on other > >> bindings > > > > Hmm I'm not sure I follow on the group management splitting, can you specify > > what you have in mind here? > > > > If you mean moving more things into pinctrl fwk, then yeah I'd assume that > > will happen eventually and drivers like this will end up becoming more minimal. > > Jean-Christophe, forgive me if I'm putting words in your mouth, but I > assume the following is what you mean: > > There are two pieces of data required by the pinctrl subsystem: > > a) The set of pins, functions, and groups that exist. > > b) The specific function to select for each pin/group on a given board. > > Item (a) can be represented in the pinctrl driver (e.g. as in the Tegra > driver), or can be represented in device tree in order to avoid large > tables in the driver. > > Item (b) has to be represented in device tree, since the whole point is > that it's board-specific. > > For all DT bindings I've seen that choose to represent (a) in the DT > rather than in the driver, the DT represents (b) directly, and (a) is > implicitly extracted/created based on (a). > > When I was first thinking about DT bindings for pinctrl, I had hoped > that even if (a) was represented in DT, the DT nodes/properties for (a) > and (b) would be entirely separate, so that the binding for (b) could be > completely common across all SoCs, even though the binding for (a) would > perhaps be different across SoCs (if it existed at all). > > So, perhaps Jean-Christophe is talking about splitting up (a) and (b) in > device tree? > > Or perhaps Jean-Christophe only refers to the code that creates the > group and function definitions from (b), and not the actual DT binding > itself? yes you are right Stephen I was thinking of both but the second could be a first step today we tend all to represent the group of pin in DT for TI, IM, MXC, at91, ST and others the way to represend the groups are exactly the same a group is a node with a set on pin uart { pincfg...... } and the group is uart so we do need to have a common way to handle it in c the code propose by Tony is really what I'm working on to acheive this In my mind in the driver we do not have to care how to list register/unregister the group. We just need to be able to do this pinctrl_register_group(...) or pinctrl_unregistewr_group(...) On at91 we have this type of controller one pin can have multiple function and each function can be on different pin and we need to program and represent each of them one by one And each pin have different parameter so I was thinking to do like on gpio uart { pin = < &pioA 12 {pararms} > } and use macro as basicaly we are just this and this can be applied to tegra too as you will just refer the pin in this hw pin block Best Regards, J. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html