Dong Aisheng wrote at Thursday, January 12, 2012 1:36 AM: > Stephen Warren wrote at Thursday, January 12, 2012 4:18 AM: > > Dong Aisheng wrote at Tuesday, January 10, 2012 1:21 AM: > > > Stephen Warren wrote at Saturday, January 07, 2012 2:03 AM: ... > > Personally, I think I'd be OK with the sysfs pinctrl map file only > > containing > > the map entries for devices that had used the pinctrl API, and hence only > > parsing the pinmux properties in pinmux_get(). > > Actually I already did it like that in the patch I sent: > https://lkml.org/lkml/2012/1/5/153 > > Originally I'd like to do like that but I found an inconsistent issue that > the sysfs pinctrl map file will behave differently between dt and non-dt > Platform. For non-dt, it means showing all exist map entries. For dt, it means > Only used pinmux map entries. > > And in current design when device calls pinmux_get, it will search a > predefined > pinmux_maps array to find which function and group it is binded to. > If switch to the new way, we only dynamically create pinmux map and > dynamically > register it when pinmux_get is called, first we need to change the code path > in > pinmux_get in a totally different way, second for support that we may also > better > to change pinmux_maps array to a list. > But after changing the pinmux_maps to a list, what about using in non-dt? > > So without any strong reason i still think it would be better to keep > consistency > With the non-dt pinctrl subsystem. > And the effort would be minimum since besides constructing the map by parsing > Device tree, everyting is the same as before in pinmux map and we could re-use > the current code.
OK. I think this can work out pretty easily with a bus notifier as I mentioned before. But, one thought on doing this in pinmux_get(). I'd simply implement a Function that read a DT node's pinmux property/node, converted it to a pinmux mapping table, and registered it with the pinctrl core. Then, pinmux_get() could simply call this before doing anything else at all. I don't think you'd need to modify how pinmux_get() worked at all. -- nvpublic _______________________________________________ devicetree-discuss mailing list [email protected] https://lists.ozlabs.org/listinfo/devicetree-discuss
