Query on pin multiplexing with device tree
Victor Ascroft
victorascroft at gmail.com
Thu Sep 25 10:35:11 EDT 2014
On Thursday 25 September 2014 07:39 PM, Maxime Ripard wrote:
> Hi Victor,
>
> On Thu, Sep 25, 2014 at 06:36:04PM +0530, Victor Ascroft wrote:
>> Hello,
>>
>> pinctrl_touchctrl_idle: touchctrl_idle {
>> fsl,pins = <
>> MF610_PAD_PTA18__GPIO_8 0x0041
>> MF610_PAD_PTA19__GPIO_9 0x0041
>> >;
>> };
>>
>> pinctrl_touchctrl_read: touchctrl_read {
>> fsl,pins = <
>> MF610_PAD_PTA18__ADC0_SE0 0x0041
>> MF610_PAD_PTA19__ADC0_SE1 0x0041
>> >;
>>
>> If i have pin multiplexing in device tree as above, how can i select
>> and change the pin multiplexing at run time?
> This will have to be done by the "consumer" driver, which judging by
> the node names here will be your touchscreen driver.
>
> You will have to reference in pinctrl-names several different states,
> instead of just "default" that is commonly used, and then, you can
> modify the state to use using the pinctrl functions.
>
> That would make something like this in your DT:
> touchscreen at deadbeef {
> pinctrl-names = "default", "idle";
> pinctrl-0 = <&pinctrl_touchctrl_read>;
> pinctrl-1 = <&pinctrl_touchctrl_idle>;
> };
>
> The good thing about this is that the states default, idle and sleep
> are already grabbed by the device model whenever your driver is
> probed, and the only thing you have to do from your driver to switch
> from one state to another is to call pinctrl_pm_select_default_state
> or pinctrl_pm_select_idle_state.
>
> Maxime
>
I was not aware of the device model reading the default and idle state on probe. I have the touchscreen binding set up now.
Thank you very much.
Regards,
Victor
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20140925/08900425/attachment.html
More information about the Kernelnewbies
mailing list