On 08/25/2012 08:53 AM, Sebastian Hesselbarth wrote: > On 08/24/2012 05:34 AM, Stephen Warren wrote: >> On 08/23/2012 05:01 PM, Sebastian Hesselbarth wrote: >>> So possible, valid combinations for uart1 would be: >>> (a) mpp_uart1; >>> (b) mpp_uart1, mpp2, mpp3; >>> (c) mpp_uart1, mpp21, mpp22; >>> (d) mpp_uart1, mpp2, mpp22; >>> (e) mpp_uart1, mpp21, mpp3; >>> [...] >> In the example above, there is a single function named "uart1". If this >> was all the HW supported, I'd expect the driver's >> pinmux_ops.get_functions_count() to return 1, >> pinmux_ops.get_function_name(0) to return "uart1", and >> pinmux_ops.get_function_name(n>0) to return an error. >> >> In practice, I assume there are many other options that can be muxed >> onto mpp2/3/21/22/uart1, so they'd be included in the list as well. >> >> I don't expect any scanning, no. I'd expect that tables provided by the >> SoC-specific drivers to be: >> >> * A table of pins >> * A table of groups >> * A table of functions >> >> No scanning involved. > > Stephen, > > now I do understand but in the current driver we pass pingroups associated > with the available functions, i.e. "mpp2" with "uart1", "uart2", > "sdio0", aso. > IMHO for the above three functions it would be better to have functions > associated > with the corresponding groups, i.e. "uart1" with "mpp_uart1", "mpp2", > "mpp3", aso. The pinctrl subsystem does expect a list of functions, and for each function, a list of the groups where it can be selected. I admit that when I think about this, it's slightly backward, since HW typically has a list of pins/groups, and for each, a certain set of functions can be selected. Oh well... -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html