All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Krzysztof Kozłowski" <k.kozlowski@samsung.com>
To: Thomas Abraham <thomas.ab@samsung.com>,
	lee.jones@linaro.org, devicetree-discuss@lists.ozlabs.org
Cc: kgene.kim@samsung.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] mfd: sec: Add support for S2MPS15 PMIC
Date: Tue, 14 Oct 2014 10:41:11 +0200	[thread overview]
Message-ID: <543CE1A7.1000909@samsung.com> (raw)
In-Reply-To: <1413274468-8765-3-git-send-email-thomas.ab@samsung.com>

On 14.10.2014 10:14, Thomas Abraham wrote:
> Add support for S2MPS15 PMIC which is similar to S2MPS11 PMIC. The S2MPS15
> PMIC supports 27 LDO regulators, 10 buck regulators, RTC, three 32.768KHz
> clock outputs and battery charger. This patch adds initial support for
> LDO and buck regulators of S2MPS15 device.
> 
> Signed-off-by: Thomas Abraham <thomas.ab@samsung.com>

Quite nice and small diff stat for adding new chip support. Looks good.
I assume that RTC/clock will be handled in later submissions.

Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Best regards,
Krzysztof

> ---
>  drivers/mfd/sec-core.c              |   26 ++++++
>  include/linux/mfd/samsung/core.h    |    1 +
>  include/linux/mfd/samsung/s2mps15.h |  161 +++++++++++++++++++++++++++++++++++
>  3 files changed, 188 insertions(+), 0 deletions(-)
>  create mode 100644 include/linux/mfd/samsung/s2mps15.h
> 
> diff --git a/drivers/mfd/sec-core.c b/drivers/mfd/sec-core.c
> index dba7e2b..6f33c2b 100644
> --- a/drivers/mfd/sec-core.c
> +++ b/drivers/mfd/sec-core.c
> @@ -28,6 +28,7 @@
>  #include <linux/mfd/samsung/s2mpa01.h>
>  #include <linux/mfd/samsung/s2mps11.h>
>  #include <linux/mfd/samsung/s2mps14.h>
> +#include <linux/mfd/samsung/s2mps15.h>
>  #include <linux/mfd/samsung/s2mpu02.h>
>  #include <linux/mfd/samsung/s5m8763.h>
>  #include <linux/mfd/samsung/s5m8767.h>
> @@ -85,6 +86,12 @@ static const struct mfd_cell s2mps14_devs[] = {
>  	}
>  };
>  
> +static const struct mfd_cell s2mps15_devs[] = {
> +	{
> +		.name = "s2mps15-pmic",
> +	},
> +};
> +
>  static const struct mfd_cell s2mpa01_devs[] = {
>  	{
>  		.name = "s2mpa01-pmic",
> @@ -111,6 +118,9 @@ static const struct of_device_id sec_dt_match[] = {
>  		.compatible = "samsung,s2mps14-pmic",
>  		.data = (void *)S2MPS14X,
>  	}, {
> +		.compatible = "samsung,s2mps15-pmic",
> +		.data = (void *)S2MPS15X,
> +	}, {
>  		.compatible = "samsung,s2mpa01-pmic",
>  		.data = (void *)S2MPA01,
>  	}, {
> @@ -203,6 +213,15 @@ static const struct regmap_config s2mps14_regmap_config = {
>  	.cache_type = REGCACHE_FLAT,
>  };
>  
> +static const struct regmap_config s2mps15_regmap_config = {
> +	.reg_bits = 8,
> +	.val_bits = 8,
> +
> +	.max_register = S2MPS15_REG_LDODSCH4,
> +	.volatile_reg = s2mps11_volatile,
> +	.cache_type = REGCACHE_FLAT,
> +};
> +
>  static const struct regmap_config s2mpu02_regmap_config = {
>  	.reg_bits = 8,
>  	.val_bits = 8,
> @@ -328,6 +347,9 @@ static int sec_pmic_probe(struct i2c_client *i2c,
>  	case S2MPS14X:
>  		regmap = &s2mps14_regmap_config;
>  		break;
> +	case S2MPS15X:
> +		regmap = &s2mps15_regmap_config;
> +		break;
>  	case S5M8763X:
>  		regmap = &s5m8763_regmap_config;
>  		break;
> @@ -382,6 +404,10 @@ static int sec_pmic_probe(struct i2c_client *i2c,
>  		sec_devs = s2mps14_devs;
>  		num_sec_devs = ARRAY_SIZE(s2mps14_devs);
>  		break;
> +	case S2MPS15X:
> +		sec_devs = s2mps15_devs;
> +		num_sec_devs = ARRAY_SIZE(s2mps15_devs);
> +		break;
>  	case S2MPU02:
>  		sec_devs = s2mpu02_devs;
>  		num_sec_devs = ARRAY_SIZE(s2mpu02_devs);
> diff --git a/include/linux/mfd/samsung/core.h b/include/linux/mfd/samsung/core.h
> index 1825eda..49ef612 100644
> --- a/include/linux/mfd/samsung/core.h
> +++ b/include/linux/mfd/samsung/core.h
> @@ -42,6 +42,7 @@ enum sec_device_type {
>  	S2MPA01,
>  	S2MPS11X,
>  	S2MPS14X,
> +	S2MPS15X,
>  	S2MPU02,
>  };
>  
> diff --git a/include/linux/mfd/samsung/s2mps15.h b/include/linux/mfd/samsung/s2mps15.h
> new file mode 100644
> index 0000000..e82549a
> --- /dev/null
> +++ b/include/linux/mfd/samsung/s2mps15.h
> @@ -0,0 +1,161 @@
> +/*
> + * s2mps15.h
> + *
> + * Copyright (c) 2014 Samsung Electronics Co., Ltd
> + *              http://www.samsung.com
> + *
> + * This program is free software; you can redistribute  it and/or modify it
> + * under  the terms of  the GNU General  Public License as published by the
> + * Free Software Foundation;  either version 2 of the  License, or (at your
> + * option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + */
> +
> +#ifndef __LINUX_MFD_S2MPS15_H
> +#define __LINUX_MFD_S2MPS15_H
> +
> +/* S2MPS15 registers */
> +enum s2mps15_reg {
> +	S2MPS15_REG_ID,
> +	S2MPS15_REG_INT1,
> +	S2MPS15_REG_INT2,
> +	S2MPS15_REG_INT3,
> +	S2MPS15_REG_INT1M,
> +	S2MPS15_REG_INT2M,
> +	S2MPS15_REG_INT3M,
> +	S2MPS15_REG_ST1,
> +	S2MPS15_REG_ST2,
> +	S2MPS15_REG_PWRONSRC,
> +	S2MPS15_REG_OFFSRC,
> +	S2MPS15_REG_BU_CHG,
> +	S2MPS15_REG_RTCCTRL,
> +	S2MPS15_REG_CTRL1,
> +	S2MPS15_REG_CTRL2,
> +	S2MPS15_REG_RSVD1,
> +	S2MPS15_REG_RSVD2,
> +	S2MPS15_REG_RSVD3,
> +	S2MPS15_REG_RSVD4,
> +	S2MPS15_REG_RSVD5,
> +	S2MPS15_REG_RSVD6,
> +	S2MPS15_REG_CTRL3,
> +	S2MPS15_REG_RSVD7,
> +	S2MPS15_REG_RSVD8,
> +	S2MPS15_REG_WRSTBI,
> +	S2MPS15_REG_B1CTRL1,
> +	S2MPS15_REG_B1CTRL2,
> +	S2MPS15_REG_B2CTRL1,
> +	S2MPS15_REG_B2CTRL2,
> +	S2MPS15_REG_B3CTRL1,
> +	S2MPS15_REG_B3CTRL2,
> +	S2MPS15_REG_B4CTRL1,
> +	S2MPS15_REG_B4CTRL2,
> +	S2MPS15_REG_B5CTRL1,
> +	S2MPS15_REG_B5CTRL2,
> +	S2MPS15_REG_B6CTRL1,
> +	S2MPS15_REG_B6CTRL2,
> +	S2MPS15_REG_B7CTRL1,
> +	S2MPS15_REG_B7CTRL2,
> +	S2MPS15_REG_B8CTRL1,
> +	S2MPS15_REG_B8CTRL2,
> +	S2MPS15_REG_B9CTRL1,
> +	S2MPS15_REG_B9CTRL2,
> +	S2MPS15_REG_B10CTRL1,
> +	S2MPS15_REG_B10CTRL2,
> +	S2MPS15_REG_BBCTRL1,
> +	S2MPS15_REG_BBCTRL2,
> +	S2MPS15_REG_BRAMP,
> +	S2MPS15_REG_LDODVS1,
> +	S2MPS15_REG_LDODVS2,
> +	S2MPS15_REG_LDODVS3,
> +	S2MPS15_REG_LDODVS4,
> +	S2MPS15_REG_L1CTRL,
> +	S2MPS15_REG_L2CTRL,
> +	S2MPS15_REG_L3CTRL,
> +	S2MPS15_REG_L4CTRL,
> +	S2MPS15_REG_L5CTRL,
> +	S2MPS15_REG_L6CTRL,
> +	S2MPS15_REG_L7CTRL,
> +	S2MPS15_REG_L8CTRL,
> +	S2MPS15_REG_L9CTRL,
> +	S2MPS15_REG_L10CTRL,
> +	S2MPS15_REG_L11CTRL,
> +	S2MPS15_REG_L12CTRL,
> +	S2MPS15_REG_L13CTRL,
> +	S2MPS15_REG_L14CTRL,
> +	S2MPS15_REG_L15CTRL,
> +	S2MPS15_REG_L16CTRL,
> +	S2MPS15_REG_L17CTRL,
> +	S2MPS15_REG_L18CTRL,
> +	S2MPS15_REG_L19CTRL,
> +	S2MPS15_REG_L20CTRL,
> +	S2MPS15_REG_L21CTRL,
> +	S2MPS15_REG_L22CTRL,
> +	S2MPS15_REG_L23CTRL,
> +	S2MPS15_REG_L24CTRL,
> +	S2MPS15_REG_L25CTRL,
> +	S2MPS15_REG_L26CTRL,
> +	S2MPS15_REG_L27CTRL,
> +	S2MPS15_REG_LDODSCH1,
> +	S2MPS15_REG_LDODSCH2,
> +	S2MPS15_REG_LDODSCH3,
> +	S2MPS15_REG_LDODSCH4,
> +};
> +
> +/* S2MPS15 regulator ids */
> +enum s2mps15_regulators {
> +	S2MPS15_LDO1,
> +	S2MPS15_LDO2,
> +	S2MPS15_LDO3,
> +	S2MPS15_LDO4,
> +	S2MPS15_LDO5,
> +	S2MPS15_LDO6,
> +	S2MPS15_LDO7,
> +	S2MPS15_LDO8,
> +	S2MPS15_LDO9,
> +	S2MPS15_LDO10,
> +	S2MPS15_LDO11,
> +	S2MPS15_LDO12,
> +	S2MPS15_LDO13,
> +	S2MPS15_LDO14,
> +	S2MPS15_LDO15,
> +	S2MPS15_LDO16,
> +	S2MPS15_LDO17,
> +	S2MPS15_LDO18,
> +	S2MPS15_LDO19,
> +	S2MPS15_LDO20,
> +	S2MPS15_LDO21,
> +	S2MPS15_LDO22,
> +	S2MPS15_LDO23,
> +	S2MPS15_LDO24,
> +	S2MPS15_LDO25,
> +	S2MPS15_LDO26,
> +	S2MPS15_LDO27,
> +	S2MPS15_BUCK1,
> +	S2MPS15_BUCK2,
> +	S2MPS15_BUCK3,
> +	S2MPS15_BUCK4,
> +	S2MPS15_BUCK5,
> +	S2MPS15_BUCK6,
> +	S2MPS15_BUCK7,
> +	S2MPS15_BUCK8,
> +	S2MPS15_BUCK9,
> +	S2MPS15_BUCK10,
> +	S2MPS15_BUCK11,
> +	S2MPS15_REGULATOR_MAX,
> +};
> +
> +#define S2MPS15_LDO_VSEL_MASK		(0x3F)
> +#define S2MPS15_BUCK_VSEL_MASK		(0xFF)
> +
> +#define S2MPS15_ENABLE_SHIFT		(0x06)
> +#define S2MPS15_ENABLE_MASK		(0x03 << S2MPS15_ENABLE_SHIFT)
> +
> +#define S2MPS15_LDO_N_VOLTAGES		(S2MPS15_LDO_VSEL_MASK + 1)
> +#define S2MPS15_BUCK_N_VOLTAGES	(S2MPS15_BUCK_VSEL_MASK + 1)
> +
> +#endif /*  __LINUX_MFD_S2MPS15_H */
> 


  reply	other threads:[~2014-10-14  8:41 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-14  8:14 [PATCH 0/2] mfd: sec: add S2MPS15 PMIC support Thomas Abraham
2014-10-14  8:14 ` [PATCH 1/2] dt-bindings: mfd: s2mps11: add documentation for s2mps15 PMIC Thomas Abraham
2014-10-14  8:43   ` Krzysztof Kozłowski
2014-10-14 12:38     ` Thomas Abraham
2014-10-14  8:14 ` [PATCH 2/2] mfd: sec: Add support for S2MPS15 PMIC Thomas Abraham
2014-10-14  8:41   ` Krzysztof Kozłowski [this message]
2014-10-14 12:40     ` Thomas Abraham

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=543CE1A7.1000909@samsung.com \
    --to=k.kozlowski@samsung.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=kgene.kim@samsung.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=thomas.ab@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.