> S2MPS11/S2MPS14 regulators support different modes of operation:
>  - Always off;
>  - On/Off controlled by pin/GPIO (PWREN/LDOEN/EMMCEN);
>  - Always on;
> This is very similar to S5M8767 regulator driver which also supports
> opmodes (although S5M8767 have also low-power mode).
> 
> This patch adds parsing the operation mode from DTS by reading a
> "op_mode" property from regulator child node.
> 
> The op_mode is then used for enabling the S2MPS14 regulators.
> On S2MPS11 the DTS "op_mode" property is parsed but not used for
> enabling, as this was not tested.
> 
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
> Signed-off-by: Chanwoo Choi <[email protected]>
> Cc: Mark Brown <[email protected]>
> Cc: Liam Girdwood <[email protected]>
> ---
>  drivers/regulator/s2mps11.c         |   97 
> ++++++++++++++++++++++++++++++++++-
>  include/linux/mfd/samsung/s2mps14.h |   19 +++++++
>  2 files changed, 115 insertions(+), 1 deletion(-)

<snip>

> +++ b/include/linux/mfd/samsung/s2mps14.h
> @@ -149,4 +149,23 @@ enum s2mps14_regulators {
>  #define S2MPS14_LDO_N_VOLTAGES               (S2MPS14_LDO_VSEL_MASK + 1)
>  #define S2MPS14_BUCK_N_VOLTAGES              (S2MPS14_BUCK_VSEL_MASK + 1)
>  
> +#define S2MPS14_ENCTRL_SHIFT         6
> +#define S2MPS14_ENCTRL_MASK          (0x3 << S2MPS14_ENCTRL_SHIFT)
> +
> +/*
> + * Values of regulator operation modes match device tree bindings.
> + */
> +enum s2mps14_regulator_opmode {
> +     S2MPS14_REGULATOR_OPMODE_OFF            = 0,
> +     S2MPS14_REGULATOR_OPMODE_ON             = 1,
> +     /*
> +      * Reserved for compatibility with S5M8767 where this
> +      * is a low power mode.
> +      */
> +     S2MPS14_REGULATOR_OPMODE_RESERVED       = 2,
> +     S2MPS14_REGULATOR_OPMODE_SUSPEND        = 3,

You don't need to number these like this. If you want to force the
numbering to start at '0' initialise the top value, then the rest
should be sequential.

> +     S2MPS14_REGULATOR_OPMODE_MAX,
> +};
> +
>  #endif /*  __LINUX_MFD_S2MPS14_H */

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to