From: grinberg@compulab.co.il (Igor Grinberg)
To: linux-arm-kernel@lists.infradead.org
Subject: How to add GPIO outputs to the PXA2xx MFP configuration?
Date: Fri, 30 Mar 2012 18:34:01 +0300 [thread overview]
Message-ID: <4F75D269.7030500@compulab.co.il> (raw)
In-Reply-To: <1333119961.87678.YahooMailClassic@web29013.mail.ird.yahoo.com>
On 03/30/12 18:06, Paul Parsons wrote:
> --- On Fri, 30/3/12, Igor Grinberg <grinberg@compulab.co.il> wrote:
>> On 03/28/12 20:12, Paul Parsons
>> wrote:
>>> On PXA2xx platforms, the MFP API (described in
>> Documentation/arm/pxa/mfp.txt)
>>> provides values for the following:
>>>
>>> 1. GPIO inputs (e.g. GPIO105_GPIO).
>>> 2. Alternate function inputs (e.g. GPIO105_CIF_DD_1).
>>> 3. Alternate function outputs (e.g.
>> GPIO105_KP_MKOUT_2).
>>>
>>> It does not provide values for GPIO outputs (i.e. AF0
>> outputs).
>>>
>>> One cannot use the macro used by the MFP API internally
>> - MFP_CFG_OUT() - to
>>> define new GPIO output values, since that macro is
>> forbidden in platform code.
>>>
>>> Without the ability to add GPIO outputs to the MFP
>> configuration, it is not
>>> possible to drive GPIO outputs high during sleep mode.
>>>
>>> This would be useful, for example, on the hx4700
>> platform, where driving the
>>> infrared powerdown GPIO 105 high during sleep mode
>> would save some mA.
>>>
>>> So my question is: what method should one use to add
>> GPIO outputs to the MFP
>>> configuration?
>>>
>>> One possible method, namely manually defining values in
>> the platform code:
>>>
>>> MFP_PIN_GPIO105 | MFP_AF0 |
>> MFP_DIR_OUT | MFP_LPM_DRIVE_HIGH,
>>
>> Have you tried:
>> GPIO105_GPIO | MFP_LPM_DRIVE_HIGH,
>> ?
>>
>> This way it works on other boards.
>
> Hello Igor,
>
> GPIO105_GPIO expands to a GPIO input - MFP_CFG_IN(GPIO105, AF0) -
> not an output.
Yeah, I know... but read in mfp-pxa2xx.h, lines 6-20:
/*
* the following MFP_xxx bit definitions in mfp.h are re-used for pxa2xx:
*
* MFP_PIN(x)
* MFP_AFx
* MFP_LPM_DRIVE_{LOW, HIGH}
* MFP_LPM_EDGE_x
*
* other MFP_x bit definitions will be ignored
*
* and adds the below two bits specifically for pxa2xx:
*
* bit 23 - Input/Output (PXA2xx specific)
* bit 24 - Wakeup Enable(PXA2xx specific)
*/
This means, that there is no difference between: MFP_CFG_IN and MFP_CFG_OUT for PXA2xx.
The reason for this is that PXA2xx h/w does not have a dedicated MFP registers.
All goes through the GPIO controller, so the whole MFP for PXA2xx is only to conform
to newer "PXA" platform features...
--
Regards,
Igor.
next prev parent reply other threads:[~2012-03-30 15:34 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-28 18:12 How to add GPIO outputs to the PXA2xx MFP configuration? Paul Parsons
2012-03-30 1:33 ` Haojian Zhuang
2012-03-30 10:41 ` Paul Parsons
2012-03-30 13:25 ` Haojian Zhuang
2012-03-30 14:30 ` Paul Parsons
2012-03-30 14:50 ` Haojian Zhuang
2012-03-30 14:59 ` Igor Grinberg
2012-03-30 15:06 ` Paul Parsons
2012-03-30 15:28 ` Igor Grinberg
2012-03-30 15:34 ` Igor Grinberg [this message]
2012-03-30 15:52 ` Paul Parsons
2012-03-30 17:59 ` Igor Grinberg
2012-03-30 21:13 ` Paul Parsons
2012-03-30 21:40 ` Paul Parsons
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F75D269.7030500@compulab.co.il \
--to=grinberg@compulab.co.il \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.