lkml.org 
[lkml]   [2011]   [Dec]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH v2 0/4] Amstrad Delta: access MODEM_RESET GPIO pin over a regulator
Date
The Amstrad Delta on-board latch2 bit named MODEM_NRESET, now available
as a GPIO pin AMS_DELTA_GPIO_PIN_NMODEM_RESET, is used to power up/down
(bring into/out of a reset state) two distinct on-board devices
simultaneously: the modem, and the voice codec. As a consequence, that
bit is, or can be, manipulated concurrently by two drivers, or their
platform provided hooks.

Instead of updating those drivers to use the gpiolib API as a new method
of controlling the MODEM_NRESET pin state, like it was done to other
drivers accessing latch2 pins, and still being vulnerable to potential
concurrency conflicts, or trying to solve that sharing issue with a
custom piece of code, set up a fixed regulator device on top of that
GPIO pin and update both drivers to manipulate that regulator, not the
GPIO pin directly.

Changes against initial version:
* in both the codec and the modem callbacks, don't track the regulator
enable/disable state, compare new targert bias level (the codec case)
or power state (the modem case) with the old value instead; thanks to
Mark Brown who suggested this solution,
* a few other minor changes, mostly stylistic.

Janusz Krzysztofik (4):
ARM: OMAP1: ams-delta: set up regulator over modem reset GPIO pin
ASoC: cx20442: add bias control over a platform provided regulator
ARM: OMAP1: ams-delta: update the modem to use regulator API
ASoC: OMAP: ams-delta: drop .set_bias_level callback

arch/arm/mach-omap1/Kconfig | 2 +
arch/arm/mach-omap1/board-ams-delta.c | 94 +++++++++++++++++++--
arch/arm/plat-omap/include/plat/board-ams-delta.h | 1 -
sound/soc/codecs/cx20442.c | 48 ++++++++++-
sound/soc/omap/ams-delta.c | 34 --------
5 files changed, 133 insertions(+), 46 deletions(-)
--
1.7.3.4



\
 
 \ /
  Last update: 2011-12-30 04:09    [W:1.004 / U:0.512 seconds]
©2003-2014 Jasper Spaans. hosted at Digital Ocean