On Fri, Jun 2, 2017 at 5:03 PM, Richard Fitzgerald rf@opensource.wolfsonmicro.com wrote:
These codecs have a variable number of I/O lines each of which is individually selectable to a wide range of possible functions.
The functionality is slightly different from the traditional muxed GPIO since most of the functions can be mapped to any pin (and even the same function to multiple pins). Most pins have a dedicated "alternate" function that is only available on that pin. The alternate functions are usually a group of signals, though it is not always necessary to enable the full group, depending on the alternate function and how it is to be used. The mapping between alternate functions and GPIO pins varies between codecs depending on the number of alternate functions and available pins.
Note on the Kconfig options: The formula "default y if..." is used for PINCTRL_MADERA so that its select options will be processed, allowing us to group selects for pinctrl into the pinctrl Kconfig where they logically belong instead of accumulating under the parent MFD Kconfig.
Signed-off-by: Richard Fitzgerald rf@opensource.wolfsonmicro.com
Changes since V2:
- Removed unused drive strength settings to tidy the code
- Use devm_pinctrl_register_and_init() to avoid the problems with pinctrl_register()
- Replaced a couple of hardcoded masks with the defined constant
There is a Kconfig problem as pointed out by the build robot.
Apart from that this looks like merge material, and we need to think about a merge strategy like with the GPIO patch, once the MFD portions are ready.
Yours, Linus Walleij