Thread (10 messages) 10 messages, 4 authors, 2015-01-05

[PATCH v4 2/3] pinctrl: exynos: Fix GPIO setup failure because domain clock being gated

From: Krzysztof Kozlowski <hidden>
Date: 2015-01-05 14:15:44
Also in: linux-devicetree, linux-gpio, linux-samsung-soc, lkml

On pon, 2015-01-05 at 15:05 +0100, Linus Walleij wrote:
On Fri, Dec 5, 2014 at 12:00 PM, Krzysztof Kozlowski
[off-list ref] wrote:
quoted
The audio subsystem on Exynos 5420 has separate clocks and GPIO. To
operate properly on GPIOs the main block clock 'mau_epll' must be
enabled.

This was observed on Peach Pi/Pit and Arndale Octa (after enabling i2s0)
after introducing runtime PM to pl330 DMA driver. After that commit the
'mau_epll' was gated, because the "amba" clock was disabled and there
were no more users of mau_epll.

The system hang just before probing i2s0 because
samsung_pinmux_setup() tried to access memory from audss block which was
gated.

Add a clock property to the pinctrl driver and enable the clock during
GPIO setup. During normal GPIO operations (set, get, set_direction) the
clock is not enabled.

Signed-off-by: Krzysztof Kozlowski <redacted>
Tested-by: Javier Martinez Canillas <redacted>
Tomasz, is this OK and should I apply it for fixes or next?
Ha! That is a good question. The issue is fixed for now by the
workaround (merged) [1].

The workaround just enables the clock for entire runtime of Exynos
5420-like device. This has some energy impact - around 1.5% in idle [2].

So actually this is question which way we want to solve it:
1. Stick with the workaround (small piece of code, energy impact when
not used).
2. Full clock enable on use (big chunk of code, no energy impact when
not used).

[1]
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f1e9203e2366164b832d8a6ce10134de8c575178
[2] http://www.spinics.net/lists/linux-samsung-soc/msg39827.html

Best regards,
Krzysztof
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help