Thread (15 messages) 15 messages, 3 authors, 2017-09-27

Re: [PATCH 1/2] pinctrl: Allow a device to indicate when to force a state

From: Florian Fainelli <f.fainelli@gmail.com>
Date: 2017-09-25 19:18:57
Also in: linux-gpio, lkml

On 09/22/2017 06:57 AM, Linus Walleij wrote:
On Fri, Sep 22, 2017 at 3:20 PM, Charles Keepax
[off-list ref] wrote:
quoted
On Fri, Sep 22, 2017 at 01:55:22PM +0200, Linus Walleij wrote:
quoted
quoted
Next point, this commit from Baolin:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt?id=6606bc9dee63ad8cda2cc310d2ad5992673a785a

output-low - set the pin to output mode with low level
output-high - set the pin to output mode with high level
+sleep-hardware-state - indicate this is sleep related state which
will be programmed
+ into the registers for the sleep state.
slew-rate - set the slew rate

This is another thing: here we are defining a state that will be managed
by autonomous hardware. The state settings will be poked into some
special registers that will automatically take effect when the system
goes into sleep.

This is a hardware-induced state: the SLEEP line for the entire SoC
is asserted.
Just to make sure I understand this property is used to specify a
pinctrl state that will be automatically applied by the hardware when
entering suspend?
Yes. It is quite common in SoCs, we just never supported it properly.
This appears to be solving another possible problem/feature with pin
controllers during suspend, which is not exactly what I am after here.

Unless we generalize this into a state of some kind, which would
de-facto force a state transition in pinctrl_select_state() because
p->default != state, then I am not sure this how that is related to the
problem space exposed earlier.
quoted
Kind of an odd one, feels like something you
could just have the software apply as part of the suspend
process.
Not really. It has special registers just for this purpose,
and the driver is completely unaware that sleep is happening,
instead it is driven to the hardware by special hardware sleep
lines inside the SoC. So it needs to be set up when the default
state is programmed.
quoted
Almost would have wondered should this be a driver
specific binding rather than a generic pinctrl one?
No, I've seen it in several hardwares. (The Nomadik pin controller
has this too.)
quoted
I guess from looking at the driver using this I assume that said
hardware also automatically replies the non-sleep settings on
resume?
Yep.

Yours,
Linus Walleij

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