Thread (22 messages) 22 messages, 3 authors, 2012-04-12
DORMANTno replies

[PATCH] ARM: pxa: mfp: Force gpio direction for MFP_LPM_KEEP_OUTPUT

From: Igor Grinberg <hidden>
Date: 2012-04-12 10:59:08

Hi Paul,

Sorry for a delay, I've been a bit busy with work...

On 04/03/12 19:26, Paul Parsons wrote:
quoted hunk ↗ jump to hunk
--- On Tue, 3/4/12, Igor Grinberg <grinberg@compulab.co.il> wrote:
quoted
Hmmm....
If we change the GPSR and GPCR, the old levels should be
reserved, right?
Attached...
Yes, that sounds right: if resume() restores the old directions then
it makes sense for it to restore the old levels first. Otherwise it
encounters the same problem as suspend().

On that very subject, I notice that __mfp_config_gpio() also sets
directions without first setting levels.
Hmmm... this is not good, but...
Problem is, it is not obvious what levels it should set.
Perhaps it should likewise set the levels to the PGSR values, on the
tenuous presumption that any hardware should already be in low power
mode at the time __mfp_config_gpio() is called.
But then again maybe not. This is more tricky.
Well, it looks like most of the cases the __mfp_config_gpio() is called
during init time and the levels are setup only later and PGSR still has
its reset values.
This leaves the direction outputs without a defined level, but having
the MFP_CFG_IN() as the default setting is the right thing and probably
assures the "safeness" of the __mfp_config_gpio().
Also, that is exactly why we should not use the MFP_CFG_OUT() directly.

I agree with you that probably the __mfp_config_gpio() function
should not touch the GPDR, but changing this has affect on all PXA2xx
boards, so I would *not* touch that until there is a real issue.
I'll give the patches a try before the end of the day.
Thanks


-- 
Regards,
Igor.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help