On Wed, Oct 9, 2013 at 3:45 PM, Russell King - ARM Linux
<[email protected]> wrote:
> Right, so that means doing this:
>
> pinctrl_usdhc1_1: usdhc1grp-1 {
> fsl,pins = <
> ...
> MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059
> ...
> >;
> };
>
> pinctrl_usdhc1_1_dat3cd: usdhc1grp-3 {
> fsl,pins = <
> MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x13059
> >;
> };
>
> and then:
>
> pinctrl-0 = <&pinctrl_usdhc1_1 &pinctrl_usdhc1_1_dat3cd>;
>
> can result in either "MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059" or
> "MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x13059" being the final configuration
> for that pin.
I'm uncertain about the device tree case. I guess it is indeed
an array of handles indexed [0,1], the framework will only
send that array down to the driver, no strings attached.
> What that means is that for any pinctrl setting, pins to be configured
> must be mentioned exactly once and once only.
Either that (and the above does seem very ambigous) or the driver
need to combine and handle the conflicting configurations,
maintaining a state for the pin and so on ...
This seems like two *complete* configs fighting over the same pin
rather than two complementary configs that we could | together
and write, and that is indeed ambigous. The array passed to
the config function is supposed to be individual settings like
[ pull-up, schmitt-trigger ] not two complete sets of config.
The generic pin config binding is luckily more clear than this
i.MX-specific handling.
Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html