lkml.org 
[lkml]   [2014]   [Nov]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH v5 2/5] regulator: Add function to map modes to struct regulator_desc
Date
The "regulator-initial-mode" and "regulator-mode" DT properties allows
to configure the regulator operating modes at startup or when a system
enters into a susend state.

But these properties use as valid values the operating modes supported
by each device while the core deals with the standard operating modes.
So a mapping function is needed to translate from the hardware specific
modes to the standard ones.

This mapping is a non-varying configuration for each regulator, so add
a function pointer to struct regulator_desc that will allow drivers to
define their callback to do the modes translation.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
---

Changes in v5:
- Add a better explanation of what mode is passed as an argument and what
mode is returned. Suggested by Krzysztof Kozlowski.
- Explain that this callback is needed to be able to parse the regulator
initial and suspend state modes. Suggested by Krzysztof Kozlowski.

include/linux/regulator/driver.h | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h
index 28da08e..7966650 100644
--- a/include/linux/regulator/driver.h
+++ b/include/linux/regulator/driver.h
@@ -243,6 +243,12 @@ enum regulator_type {
*
* @enable_time: Time taken for initial enable of regulator (in uS).
* @off_on_delay: guard time (in uS), before re-enabling a regulator
+ *
+ * @map_modes: Callback invoked to translate from hardware to standard modes.
+ * The function returns the standard REGULATOR_MODE that maps to
+ * the hardware specific mode passed as an argument.
+ * If the callback is not defined, the "regulator-initial-mode"
+ * and suspend states "regulator-mode" properties won't be parsed.
*/
struct regulator_desc {
const char *name;
@@ -285,6 +291,8 @@ struct regulator_desc {
unsigned int enable_time;

unsigned int off_on_delay;
+
+ unsigned int (*map_modes)(unsigned int mode);
};

/**
--
2.1.0


\
 
 \ /
  Last update: 2014-11-07 14:41    [W:0.181 / U:0.200 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site