All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHv2 0/5] mfd: sec-core: Add support S2MPS13 PMIC device
@ 2014-11-18  8:59 Chanwoo Choi
  2014-11-18  8:59   ` Chanwoo Choi
                   ` (5 more replies)
  0 siblings, 6 replies; 30+ messages in thread
From: Chanwoo Choi @ 2014-11-18  8:59 UTC (permalink / raw)
  To: lee.jones, broonie, mturquette, a.zummo
  Cc: lgirdwood, sbkim73, sameo, geunsik.lim, inki.dae, kyungmin.park,
	k.kozlowski, linux-kernel, devicetree, Chanwoo Choi

This patchset adds Samsung S2MPS13 PMIC device driver in existing S2MPS11 PMIC
driver. The S2MPS13 has just the differnet number of regulator from existing
S2MPS14 PMIC and RTC/CLOCK IP of S2MPS13 is the same with S2MPS14. S2MPS13
PMIC has LDO[1-40] and BUCK[1-10] regulators.

Changes from v1:
- Fix minor issue about coding style and wrong description
- Fix wrong from of third patch(3/5) related to clk driver
- Add acked tag by Mark Brown, Sangbeom Kim, Lee Jones
- Add reviewed tag by Krzysztof Kozlowski

Chanwoo Choi (5):
  mfd: sec-core: Add support for S2MPS13 device
  regulator: s2mps11: Add support S2MPS13 regulator device
  clk: s2mps11: Add the support for S2MPS13 PMIC clock
  rtc: s5m: Add the support for S2MPS13 RTC
  mfd: s2mps11: Add binding documentation for Samsung S2MPS13 PMIC

 Documentation/devicetree/bindings/mfd/s2mps11.txt |  22 +--
 drivers/clk/clk-s2mps11.c                         |  24 +++
 drivers/mfd/sec-core.c                            |  29 ++++
 drivers/mfd/sec-irq.c                             |  23 ++-
 drivers/regulator/Kconfig                         |  10 +-
 drivers/regulator/s2mps11.c                       | 102 +++++++++++-
 drivers/rtc/rtc-s5m.c                             |  15 +-
 include/linux/mfd/samsung/core.h                  |   2 +
 include/linux/mfd/samsung/s2mps13.h               | 186 ++++++++++++++++++++++
 9 files changed, 388 insertions(+), 25 deletions(-)
 create mode 100644 include/linux/mfd/samsung/s2mps13.h

-- 
1.8.5.5


^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCHv2 1/5] mfd: sec-core: Add support for S2MPS13 device
@ 2014-11-18  8:59   ` Chanwoo Choi
  0 siblings, 0 replies; 30+ messages in thread
From: Chanwoo Choi @ 2014-11-18  8:59 UTC (permalink / raw)
  To: lee.jones, broonie, mturquette, a.zummo
  Cc: lgirdwood, sbkim73, sameo, geunsik.lim, inki.dae, kyungmin.park,
	k.kozlowski, linux-kernel, devicetree, Chanwoo Choi

This patch adds the support for Samsung S2MPS13 PMIC device to the sec-core MFD
driver. The S2MPS13 is very similar with existing S2MPS14 and includes PMIC/
RTC/CLOCK devices.

Cc: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Acked-by: Sangbeom Kim <sbkim73@samsung.com>
Acked-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/mfd/sec-core.c           | 16 ++++++++++++++++
 drivers/mfd/sec-irq.c            | 23 +++++++++++++++++------
 include/linux/mfd/samsung/core.h |  1 +
 3 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/drivers/mfd/sec-core.c b/drivers/mfd/sec-core.c
index 5993608..868f03d 100644
--- a/drivers/mfd/sec-core.c
+++ b/drivers/mfd/sec-core.c
@@ -73,6 +73,15 @@ static const struct mfd_cell s2mps11_devs[] = {
 	}
 };
 
+static const struct mfd_cell s2mps13_devs[] = {
+	{ .name = "s2mps13-pmic", },
+	{ .name = "s2mps13-rtc", },
+	{
+		.name = "s2mps13-clk",
+		.of_compatible = "samsung,s2mps13-clk",
+	},
+};
+
 static const struct mfd_cell s2mps14_devs[] = {
 	{
 		.name = "s2mps14-pmic",
@@ -107,6 +116,9 @@ static const struct of_device_id sec_dt_match[] = {
 		.compatible = "samsung,s2mps11-pmic",
 		.data = (void *)S2MPS11X,
 	}, {
+		.compatible = "samsung,s2mps13-pmic",
+		.data = (void *)S2MPS13X,
+	}, {
 		.compatible = "samsung,s2mps14-pmic",
 		.data = (void *)S2MPS14X,
 	}, {
@@ -377,6 +389,10 @@ static int sec_pmic_probe(struct i2c_client *i2c,
 		sec_devs = s2mps11_devs;
 		num_sec_devs = ARRAY_SIZE(s2mps11_devs);
 		break;
+	case S2MPS13X:
+		sec_devs = s2mps13_devs;
+		num_sec_devs = ARRAY_SIZE(s2mps13_devs);
+		break;
 	case S2MPS14X:
 		sec_devs = s2mps14_devs;
 		num_sec_devs = ARRAY_SIZE(s2mps14_devs);
diff --git a/drivers/mfd/sec-irq.c b/drivers/mfd/sec-irq.c
index f9a5786..ba86a91 100644
--- a/drivers/mfd/sec-irq.c
+++ b/drivers/mfd/sec-irq.c
@@ -389,14 +389,22 @@ static const struct regmap_irq_chip s2mps11_irq_chip = {
 	.ack_base = S2MPS11_REG_INT1,
 };
 
+#define S2MPS1X_IRQ_CHIP_COMMON_DATA		\
+	.irqs = s2mps14_irqs,			\
+	.num_irqs = ARRAY_SIZE(s2mps14_irqs),	\
+	.num_regs = 3,				\
+	.status_base = S2MPS14_REG_INT1,	\
+	.mask_base = S2MPS14_REG_INT1M,		\
+	.ack_base = S2MPS14_REG_INT1		\
+
+static const struct regmap_irq_chip s2mps13_irq_chip = {
+	.name = "s2mps13",
+	S2MPS1X_IRQ_CHIP_COMMON_DATA,
+};
+
 static const struct regmap_irq_chip s2mps14_irq_chip = {
 	.name = "s2mps14",
-	.irqs = s2mps14_irqs,
-	.num_irqs = ARRAY_SIZE(s2mps14_irqs),
-	.num_regs = 3,
-	.status_base = S2MPS14_REG_INT1,
-	.mask_base = S2MPS14_REG_INT1M,
-	.ack_base = S2MPS14_REG_INT1,
+	S2MPS1X_IRQ_CHIP_COMMON_DATA,
 };
 
 static const struct regmap_irq_chip s2mpu02_irq_chip = {
@@ -452,6 +460,9 @@ int sec_irq_init(struct sec_pmic_dev *sec_pmic)
 	case S2MPS11X:
 		sec_irq_chip = &s2mps11_irq_chip;
 		break;
+	case S2MPS13X:
+		sec_irq_chip = &s2mps13_irq_chip;
+		break;
 	case S2MPS14X:
 		sec_irq_chip = &s2mps14_irq_chip;
 		break;
diff --git a/include/linux/mfd/samsung/core.h b/include/linux/mfd/samsung/core.h
index 1825eda..0c0343e 100644
--- a/include/linux/mfd/samsung/core.h
+++ b/include/linux/mfd/samsung/core.h
@@ -41,6 +41,7 @@ enum sec_device_type {
 	S5M8767X,
 	S2MPA01,
 	S2MPS11X,
+	S2MPS13X,
 	S2MPS14X,
 	S2MPU02,
 };
-- 
1.8.5.5


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCHv2 1/5] mfd: sec-core: Add support for S2MPS13 device
@ 2014-11-18  8:59   ` Chanwoo Choi
  0 siblings, 0 replies; 30+ messages in thread
From: Chanwoo Choi @ 2014-11-18  8:59 UTC (permalink / raw)
  To: lee.jones-QSEj5FYQhm4dnm+yROfE0A, broonie-DgEjT+Ai2ygdnm+yROfE0A,
	mturquette-QSEj5FYQhm4dnm+yROfE0A,
	a.zummo-BfzFCNDTiLLj+vYz1yj4TQ
  Cc: lgirdwood-Re5JQEeQqe8AvxtiuMwx3w, sbkim73-Sze3O3UU22JBDgjK7y7TUQ,
	sameo-VuQAYsv1563Yd54FQh9/CA, geunsik.lim-Sze3O3UU22JBDgjK7y7TUQ,
	inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
	kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
	k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA, Chanwoo Choi

This patch adds the support for Samsung S2MPS13 PMIC device to the sec-core MFD
driver. The S2MPS13 is very similar with existing S2MPS14 and includes PMIC/
RTC/CLOCK devices.

Cc: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Signed-off-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
Acked-by: Sangbeom Kim <sbkim73-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
Acked-by: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
 drivers/mfd/sec-core.c           | 16 ++++++++++++++++
 drivers/mfd/sec-irq.c            | 23 +++++++++++++++++------
 include/linux/mfd/samsung/core.h |  1 +
 3 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/drivers/mfd/sec-core.c b/drivers/mfd/sec-core.c
index 5993608..868f03d 100644
--- a/drivers/mfd/sec-core.c
+++ b/drivers/mfd/sec-core.c
@@ -73,6 +73,15 @@ static const struct mfd_cell s2mps11_devs[] = {
 	}
 };
 
+static const struct mfd_cell s2mps13_devs[] = {
+	{ .name = "s2mps13-pmic", },
+	{ .name = "s2mps13-rtc", },
+	{
+		.name = "s2mps13-clk",
+		.of_compatible = "samsung,s2mps13-clk",
+	},
+};
+
 static const struct mfd_cell s2mps14_devs[] = {
 	{
 		.name = "s2mps14-pmic",
@@ -107,6 +116,9 @@ static const struct of_device_id sec_dt_match[] = {
 		.compatible = "samsung,s2mps11-pmic",
 		.data = (void *)S2MPS11X,
 	}, {
+		.compatible = "samsung,s2mps13-pmic",
+		.data = (void *)S2MPS13X,
+	}, {
 		.compatible = "samsung,s2mps14-pmic",
 		.data = (void *)S2MPS14X,
 	}, {
@@ -377,6 +389,10 @@ static int sec_pmic_probe(struct i2c_client *i2c,
 		sec_devs = s2mps11_devs;
 		num_sec_devs = ARRAY_SIZE(s2mps11_devs);
 		break;
+	case S2MPS13X:
+		sec_devs = s2mps13_devs;
+		num_sec_devs = ARRAY_SIZE(s2mps13_devs);
+		break;
 	case S2MPS14X:
 		sec_devs = s2mps14_devs;
 		num_sec_devs = ARRAY_SIZE(s2mps14_devs);
diff --git a/drivers/mfd/sec-irq.c b/drivers/mfd/sec-irq.c
index f9a5786..ba86a91 100644
--- a/drivers/mfd/sec-irq.c
+++ b/drivers/mfd/sec-irq.c
@@ -389,14 +389,22 @@ static const struct regmap_irq_chip s2mps11_irq_chip = {
 	.ack_base = S2MPS11_REG_INT1,
 };
 
+#define S2MPS1X_IRQ_CHIP_COMMON_DATA		\
+	.irqs = s2mps14_irqs,			\
+	.num_irqs = ARRAY_SIZE(s2mps14_irqs),	\
+	.num_regs = 3,				\
+	.status_base = S2MPS14_REG_INT1,	\
+	.mask_base = S2MPS14_REG_INT1M,		\
+	.ack_base = S2MPS14_REG_INT1		\
+
+static const struct regmap_irq_chip s2mps13_irq_chip = {
+	.name = "s2mps13",
+	S2MPS1X_IRQ_CHIP_COMMON_DATA,
+};
+
 static const struct regmap_irq_chip s2mps14_irq_chip = {
 	.name = "s2mps14",
-	.irqs = s2mps14_irqs,
-	.num_irqs = ARRAY_SIZE(s2mps14_irqs),
-	.num_regs = 3,
-	.status_base = S2MPS14_REG_INT1,
-	.mask_base = S2MPS14_REG_INT1M,
-	.ack_base = S2MPS14_REG_INT1,
+	S2MPS1X_IRQ_CHIP_COMMON_DATA,
 };
 
 static const struct regmap_irq_chip s2mpu02_irq_chip = {
@@ -452,6 +460,9 @@ int sec_irq_init(struct sec_pmic_dev *sec_pmic)
 	case S2MPS11X:
 		sec_irq_chip = &s2mps11_irq_chip;
 		break;
+	case S2MPS13X:
+		sec_irq_chip = &s2mps13_irq_chip;
+		break;
 	case S2MPS14X:
 		sec_irq_chip = &s2mps14_irq_chip;
 		break;
diff --git a/include/linux/mfd/samsung/core.h b/include/linux/mfd/samsung/core.h
index 1825eda..0c0343e 100644
--- a/include/linux/mfd/samsung/core.h
+++ b/include/linux/mfd/samsung/core.h
@@ -41,6 +41,7 @@ enum sec_device_type {
 	S5M8767X,
 	S2MPA01,
 	S2MPS11X,
+	S2MPS13X,
 	S2MPS14X,
 	S2MPU02,
 };
-- 
1.8.5.5

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCHv2 2/5] regulator: s2mps11: Add support S2MPS13 regulator device
  2014-11-18  8:59 [PATCHv2 0/5] mfd: sec-core: Add support S2MPS13 PMIC device Chanwoo Choi
  2014-11-18  8:59   ` Chanwoo Choi
@ 2014-11-18  8:59 ` Chanwoo Choi
  2014-11-25 15:51     ` Lee Jones
  2014-11-18  8:59 ` [PATCHv2 3/5] clk: s2mps11: Add the support for S2MPS13 PMIC clock Chanwoo Choi
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 30+ messages in thread
From: Chanwoo Choi @ 2014-11-18  8:59 UTC (permalink / raw)
  To: lee.jones, broonie, mturquette, a.zummo
  Cc: lgirdwood, sbkim73, sameo, geunsik.lim, inki.dae, kyungmin.park,
	k.kozlowski, linux-kernel, devicetree, Chanwoo Choi

This patch adds S2MPS13 regulator device to existing S2MPS11 device driver.
The S2MPS13 has just different number of regulators from S2MPS14.
The S2MPS13 regulator device includes LDO[1-40] and BUCK[1-10].

Cc: Mark Brown <broonie@kernel.org>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Acked-by: Sangbeom Kim <sbkim73@samsung.com>
Acked-by: Mark Brown <broonie@kernel.org>
Acked-by: Lee Jones <lee.jones@linaro.org>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
---
 drivers/mfd/sec-core.c              |  13 +++
 drivers/regulator/Kconfig           |  10 +-
 drivers/regulator/s2mps11.c         | 102 +++++++++++++++++++-
 include/linux/mfd/samsung/core.h    |   1 +
 include/linux/mfd/samsung/s2mps13.h | 186 ++++++++++++++++++++++++++++++++++++
 5 files changed, 304 insertions(+), 8 deletions(-)
 create mode 100644 include/linux/mfd/samsung/s2mps13.h

diff --git a/drivers/mfd/sec-core.c b/drivers/mfd/sec-core.c
index 868f03d..0a7bc43 100644
--- a/drivers/mfd/sec-core.c
+++ b/drivers/mfd/sec-core.c
@@ -27,6 +27,7 @@
 #include <linux/mfd/samsung/irq.h>
 #include <linux/mfd/samsung/s2mpa01.h>
 #include <linux/mfd/samsung/s2mps11.h>
+#include <linux/mfd/samsung/s2mps13.h>
 #include <linux/mfd/samsung/s2mps14.h>
 #include <linux/mfd/samsung/s2mpu02.h>
 #include <linux/mfd/samsung/s5m8763.h>
@@ -205,6 +206,15 @@ static const struct regmap_config s2mps11_regmap_config = {
 	.cache_type = REGCACHE_FLAT,
 };
 
+static const struct regmap_config s2mps13_regmap_config = {
+	.reg_bits = 8,
+	.val_bits = 8,
+
+	.max_register = S2MPS13_REG_LDODSCH5,
+	.volatile_reg = s2mps11_volatile,
+	.cache_type = REGCACHE_FLAT,
+};
+
 static const struct regmap_config s2mps14_regmap_config = {
 	.reg_bits = 8,
 	.val_bits = 8,
@@ -336,6 +346,9 @@ static int sec_pmic_probe(struct i2c_client *i2c,
 	case S2MPS11X:
 		regmap = &s2mps11_regmap_config;
 		break;
+	case S2MPS13X:
+		regmap = &s2mps13_regmap_config;
+		break;
 	case S2MPS14X:
 		regmap = &s2mps14_regmap_config;
 		break;
diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
index 55d7b7b..5e06134 100644
--- a/drivers/regulator/Kconfig
+++ b/drivers/regulator/Kconfig
@@ -529,13 +529,13 @@ config REGULATOR_S2MPA01
 	 via I2C bus. S2MPA01 has 10 Bucks and 26 LDO outputs.
 
 config REGULATOR_S2MPS11
-	tristate "Samsung S2MPS11/S2MPS14/S2MPU02 voltage regulator"
+	tristate "Samsung S2MPS11/S2MPS13/S2MPS14/S2MPU02 voltage regulator"
 	depends on MFD_SEC_CORE
 	help
-	 This driver supports a Samsung S2MPS11/S2MPS14/S2MPU02 voltage output
-	 regulator via I2C bus. The chip is comprised of high efficient Buck
-	 converters including Dual-Phase Buck converter, Buck-Boost converter,
-	 various LDOs.
+	 This driver supports a Samsung S2MPS11/S2MPS13/S2MPS14/S2MPU02 voltage
+	 output regulator via I2C bus. The chip is comprised of high efficient
+	 Buck converters including Dual-Phase Buck converter, Buck-Boost
+	 converter, various LDOs.
 
 config REGULATOR_S5M8767
 	tristate "Samsung S5M8767A voltage regulator"
diff --git a/drivers/regulator/s2mps11.c b/drivers/regulator/s2mps11.c
index adab82d..738dc77 100644
--- a/drivers/regulator/s2mps11.c
+++ b/drivers/regulator/s2mps11.c
@@ -30,6 +30,7 @@
 #include <linux/of_gpio.h>
 #include <linux/mfd/samsung/core.h>
 #include <linux/mfd/samsung/s2mps11.h>
+#include <linux/mfd/samsung/s2mps13.h>
 #include <linux/mfd/samsung/s2mps14.h>
 #include <linux/mfd/samsung/s2mpu02.h>
 
@@ -45,10 +46,10 @@ struct s2mps11_info {
 	enum sec_device_type dev_type;
 
 	/*
-	 * One bit for each S2MPS14/S2MPU02 regulator whether the suspend mode
-	 * was enabled.
+	 * One bit for each S2MPS13/S2MPS14/S2MPU02 regulator whether
+	 * the suspend mode was enabled.
 	 */
-	unsigned long long s2mps14_suspend_state:35;
+	unsigned long long s2mps14_suspend_state:50;
 
 	/* Array of size rdev_num with GPIO-s for external sleep control */
 	int *ext_control_gpio;
@@ -369,12 +370,101 @@ static const struct regulator_desc s2mps11_regulators[] = {
 	regulator_desc_s2mps11_buck6_10(10, MIN_750_MV, STEP_12_5_MV),
 };
 
+static struct regulator_ops s2mps14_reg_ops;
+
+#define regulator_desc_s2mps13_ldo(num, min, step, min_sel) {	\
+	.name		= "LDO"#num,				\
+	.id		= S2MPS13_LDO##num,			\
+	.ops		= &s2mps14_reg_ops,			\
+	.type		= REGULATOR_VOLTAGE,			\
+	.owner		= THIS_MODULE,				\
+	.min_uV		= min,					\
+	.uV_step	= step,					\
+	.linear_min_sel	= min_sel,				\
+	.n_voltages	= S2MPS14_LDO_N_VOLTAGES,		\
+	.vsel_reg	= S2MPS13_REG_L1CTRL + num - 1,		\
+	.vsel_mask	= S2MPS14_LDO_VSEL_MASK,		\
+	.enable_reg	= S2MPS13_REG_L1CTRL + num - 1,		\
+	.enable_mask	= S2MPS14_ENABLE_MASK			\
+}
+
+#define regulator_desc_s2mps13_buck(num, min, step, min_sel) {	\
+	.name		= "BUCK"#num,				\
+	.id		= S2MPS13_BUCK##num,			\
+	.ops		= &s2mps14_reg_ops,			\
+	.type		= REGULATOR_VOLTAGE,			\
+	.owner		= THIS_MODULE,				\
+	.min_uV		= min,					\
+	.uV_step	= step,					\
+	.linear_min_sel	= min_sel,				\
+	.n_voltages	= S2MPS14_BUCK_N_VOLTAGES,		\
+	.ramp_delay	= S2MPS13_BUCK_RAMP_DELAY,		\
+	.vsel_reg	= S2MPS13_REG_B1OUT + (num - 1) * 2,	\
+	.vsel_mask	= S2MPS14_BUCK_VSEL_MASK,		\
+	.enable_reg	= S2MPS13_REG_B1CTRL + (num - 1) * 2,	\
+	.enable_mask	= S2MPS14_ENABLE_MASK			\
+}
+
+static const struct regulator_desc s2mps13_regulators[] = {
+	regulator_desc_s2mps13_ldo(1,  MIN_800_MV,  STEP_12_5_MV, 0x00),
+	regulator_desc_s2mps13_ldo(2,  MIN_1400_MV, STEP_50_MV,   0x0C),
+	regulator_desc_s2mps13_ldo(3,  MIN_1000_MV, STEP_25_MV,   0x08),
+	regulator_desc_s2mps13_ldo(4,  MIN_800_MV,  STEP_12_5_MV, 0x00),
+	regulator_desc_s2mps13_ldo(5,  MIN_800_MV,  STEP_12_5_MV, 0x00),
+	regulator_desc_s2mps13_ldo(6,  MIN_800_MV,  STEP_12_5_MV, 0x00),
+	regulator_desc_s2mps13_ldo(7,  MIN_1000_MV, STEP_25_MV,   0x08),
+	regulator_desc_s2mps13_ldo(8,  MIN_1000_MV, STEP_25_MV,   0x08),
+	regulator_desc_s2mps13_ldo(9,  MIN_1000_MV, STEP_25_MV,   0x08),
+	regulator_desc_s2mps13_ldo(10, MIN_1400_MV, STEP_50_MV,   0x0C),
+	regulator_desc_s2mps13_ldo(11, MIN_800_MV,  STEP_25_MV,   0x10),
+	regulator_desc_s2mps13_ldo(12, MIN_800_MV,  STEP_25_MV,   0x10),
+	regulator_desc_s2mps13_ldo(13, MIN_800_MV,  STEP_25_MV,   0x10),
+	regulator_desc_s2mps13_ldo(14, MIN_800_MV,  STEP_12_5_MV, 0x00),
+	regulator_desc_s2mps13_ldo(15, MIN_800_MV,  STEP_12_5_MV, 0x00),
+	regulator_desc_s2mps13_ldo(16, MIN_1400_MV, STEP_50_MV,   0x0C),
+	regulator_desc_s2mps13_ldo(17, MIN_1400_MV, STEP_50_MV,   0x0C),
+	regulator_desc_s2mps13_ldo(18, MIN_1000_MV, STEP_25_MV,   0x08),
+	regulator_desc_s2mps13_ldo(19, MIN_1000_MV, STEP_25_MV,   0x08),
+	regulator_desc_s2mps13_ldo(20, MIN_1400_MV, STEP_50_MV,   0x0C),
+	regulator_desc_s2mps13_ldo(21, MIN_1000_MV, STEP_25_MV,   0x08),
+	regulator_desc_s2mps13_ldo(22, MIN_1000_MV, STEP_25_MV,   0x08),
+	regulator_desc_s2mps13_ldo(23, MIN_800_MV,  STEP_12_5_MV, 0x00),
+	regulator_desc_s2mps13_ldo(24, MIN_800_MV,  STEP_12_5_MV, 0x00),
+	regulator_desc_s2mps13_ldo(25, MIN_1400_MV, STEP_50_MV,   0x0C),
+	regulator_desc_s2mps13_ldo(26, MIN_1400_MV, STEP_50_MV,   0x0C),
+	regulator_desc_s2mps13_ldo(27, MIN_1400_MV, STEP_50_MV,   0x0C),
+	regulator_desc_s2mps13_ldo(28, MIN_1000_MV, STEP_25_MV,   0x08),
+	regulator_desc_s2mps13_ldo(29, MIN_1400_MV, STEP_50_MV,   0x0C),
+	regulator_desc_s2mps13_ldo(30, MIN_1400_MV, STEP_50_MV,   0x0C),
+	regulator_desc_s2mps13_ldo(31, MIN_1000_MV, STEP_25_MV,   0x08),
+	regulator_desc_s2mps13_ldo(32, MIN_1000_MV, STEP_25_MV,   0x08),
+	regulator_desc_s2mps13_ldo(33, MIN_1400_MV, STEP_50_MV,   0x0C),
+	regulator_desc_s2mps13_ldo(34, MIN_1000_MV, STEP_25_MV,   0x08),
+	regulator_desc_s2mps13_ldo(35, MIN_1400_MV, STEP_50_MV,   0x0C),
+	regulator_desc_s2mps13_ldo(36, MIN_800_MV,  STEP_12_5_MV, 0x00),
+	regulator_desc_s2mps13_ldo(37, MIN_1000_MV, STEP_25_MV,   0x08),
+	regulator_desc_s2mps13_ldo(38, MIN_1400_MV, STEP_50_MV,   0x0C),
+	regulator_desc_s2mps13_ldo(39, MIN_1000_MV, STEP_25_MV,   0x08),
+	regulator_desc_s2mps13_ldo(40, MIN_1400_MV, STEP_50_MV,   0x0C),
+	regulator_desc_s2mps13_buck(1,  MIN_500_MV,  STEP_6_25_MV, 0x10),
+	regulator_desc_s2mps13_buck(2,  MIN_500_MV,  STEP_6_25_MV, 0x10),
+	regulator_desc_s2mps13_buck(3,  MIN_500_MV,  STEP_6_25_MV, 0x10),
+	regulator_desc_s2mps13_buck(4,  MIN_500_MV,  STEP_6_25_MV, 0x10),
+	regulator_desc_s2mps13_buck(5,  MIN_500_MV,  STEP_6_25_MV, 0x10),
+	regulator_desc_s2mps13_buck(6,  MIN_500_MV,  STEP_6_25_MV, 0x10),
+	regulator_desc_s2mps13_buck(7,  MIN_500_MV,  STEP_6_25_MV, 0x10),
+	regulator_desc_s2mps13_buck(8,  MIN_1000_MV, STEP_12_5_MV, 0x20),
+	regulator_desc_s2mps13_buck(9,  MIN_1000_MV, STEP_12_5_MV, 0x20),
+	regulator_desc_s2mps13_buck(10, MIN_500_MV,  STEP_6_25_MV, 0x10),
+};
+
 static int s2mps14_regulator_enable(struct regulator_dev *rdev)
 {
 	struct s2mps11_info *s2mps11 = rdev_get_drvdata(rdev);
 	unsigned int val;
 
 	switch (s2mps11->dev_type) {
+	case S2MPS13X:
 	case S2MPS14X:
 		if (s2mps11->s2mps14_suspend_state & (1 << rdev_get_id(rdev)))
 			val = S2MPS14_ENABLE_SUSPEND;
@@ -406,6 +496,7 @@ static int s2mps14_regulator_set_suspend_disable(struct regulator_dev *rdev)
 
 	/* Below LDO should be always on or does not support suspend mode. */
 	switch (s2mps11->dev_type) {
+	case S2MPS13X:
 	case S2MPS14X:
 		switch (rdev_id) {
 		case S2MPS14_LDO3:
@@ -831,6 +922,10 @@ static int s2mps11_pmic_probe(struct platform_device *pdev)
 		s2mps11->rdev_num = ARRAY_SIZE(s2mps11_regulators);
 		regulators = s2mps11_regulators;
 		break;
+	case S2MPS13X:
+		s2mps11->rdev_num = ARRAY_SIZE(s2mps13_regulators);
+		regulators = s2mps13_regulators;
+		break;
 	case S2MPS14X:
 		s2mps11->rdev_num = ARRAY_SIZE(s2mps14_regulators);
 		regulators = s2mps14_regulators;
@@ -927,6 +1022,7 @@ out:
 
 static const struct platform_device_id s2mps11_pmic_id[] = {
 	{ "s2mps11-pmic", S2MPS11X},
+	{ "s2mps13-pmic", S2MPS13X},
 	{ "s2mps14-pmic", S2MPS14X},
 	{ "s2mpu02-pmic", S2MPU02},
 	{ },
diff --git a/include/linux/mfd/samsung/core.h b/include/linux/mfd/samsung/core.h
index 0c0343e..3fdb7cf 100644
--- a/include/linux/mfd/samsung/core.h
+++ b/include/linux/mfd/samsung/core.h
@@ -28,6 +28,7 @@
 #define MIN_800_MV		800000
 #define MIN_750_MV		750000
 #define MIN_600_MV		600000
+#define MIN_500_MV		500000
 
 /* Macros to represent steps for LDO/BUCK */
 #define STEP_50_MV		50000
diff --git a/include/linux/mfd/samsung/s2mps13.h b/include/linux/mfd/samsung/s2mps13.h
new file mode 100644
index 0000000..ce5dda8
--- /dev/null
+++ b/include/linux/mfd/samsung/s2mps13.h
@@ -0,0 +1,186 @@
+/*
+ * s2mps13.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_S2MPS13_H
+#define __LINUX_MFD_S2MPS13_H
+
+/* S2MPS13 registers */
+enum s2mps13_reg {
+	S2MPS13_REG_ID,
+	S2MPS13_REG_INT1,
+	S2MPS13_REG_INT2,
+	S2MPS13_REG_INT3,
+	S2MPS13_REG_INT1M,
+	S2MPS13_REG_INT2M,
+	S2MPS13_REG_INT3M,
+	S2MPS13_REG_ST1,
+	S2MPS13_REG_ST2,
+	S2MPS13_REG_PWRONSRC,
+	S2MPS13_REG_OFFSRC,
+	S2MPS13_REG_BU_CHG,
+	S2MPS13_REG_RTCCTRL,
+	S2MPS13_REG_CTRL1,
+	S2MPS13_REG_CTRL2,
+	S2MPS13_REG_RSVD1,
+	S2MPS13_REG_RSVD2,
+	S2MPS13_REG_RSVD3,
+	S2MPS13_REG_RSVD4,
+	S2MPS13_REG_RSVD5,
+	S2MPS13_REG_RSVD6,
+	S2MPS13_REG_CTRL3,
+	S2MPS13_REG_RSVD7,
+	S2MPS13_REG_RSVD8,
+	S2MPS13_REG_WRSTBI,
+	S2MPS13_REG_B1CTRL,
+	S2MPS13_REG_B1OUT,
+	S2MPS13_REG_B2CTRL,
+	S2MPS13_REG_B2OUT,
+	S2MPS13_REG_B3CTRL,
+	S2MPS13_REG_B3OUT,
+	S2MPS13_REG_B4CTRL,
+	S2MPS13_REG_B4OUT,
+	S2MPS13_REG_B5CTRL,
+	S2MPS13_REG_B5OUT,
+	S2MPS13_REG_B6CTRL,
+	S2MPS13_REG_B6OUT,
+	S2MPS13_REG_B7CTRL,
+	S2MPS13_REG_B7OUT,
+	S2MPS13_REG_B8CTRL,
+	S2MPS13_REG_B8OUT,
+	S2MPS13_REG_B9CTRL,
+	S2MPS13_REG_B9OUT,
+	S2MPS13_REG_B10CTRL,
+	S2MPS13_REG_B10OUT,
+	S2MPS13_REG_BB1CTRL,
+	S2MPS13_REG_BB1OUT,
+	S2MPS13_REG_BUCK_RAMP1,
+	S2MPS13_REG_BUCK_RAMP2,
+	S2MPS13_REG_LDO_DVS1,
+	S2MPS13_REG_LDO_DVS2,
+	S2MPS13_REG_LDO_DVS3,
+	S2MPS13_REG_B6OUT2,
+	S2MPS13_REG_L1CTRL,
+	S2MPS13_REG_L2CTRL,
+	S2MPS13_REG_L3CTRL,
+	S2MPS13_REG_L4CTRL,
+	S2MPS13_REG_L5CTRL,
+	S2MPS13_REG_L6CTRL,
+	S2MPS13_REG_L7CTRL,
+	S2MPS13_REG_L8CTRL,
+	S2MPS13_REG_L9CTRL,
+	S2MPS13_REG_L10CTRL,
+	S2MPS13_REG_L11CTRL,
+	S2MPS13_REG_L12CTRL,
+	S2MPS13_REG_L13CTRL,
+	S2MPS13_REG_L14CTRL,
+	S2MPS13_REG_L15CTRL,
+	S2MPS13_REG_L16CTRL,
+	S2MPS13_REG_L17CTRL,
+	S2MPS13_REG_L18CTRL,
+	S2MPS13_REG_L19CTRL,
+	S2MPS13_REG_L20CTRL,
+	S2MPS13_REG_L21CTRL,
+	S2MPS13_REG_L22CTRL,
+	S2MPS13_REG_L23CTRL,
+	S2MPS13_REG_L24CTRL,
+	S2MPS13_REG_L25CTRL,
+	S2MPS13_REG_L26CTRL,
+	S2MPS13_REG_L27CTRL,
+	S2MPS13_REG_L28CTRL,
+	S2MPS13_REG_L30CTRL,
+	S2MPS13_REG_L31CTRL,
+	S2MPS13_REG_L32CTRL,
+	S2MPS13_REG_L33CTRL,
+	S2MPS13_REG_L34CTRL,
+	S2MPS13_REG_L35CTRL,
+	S2MPS13_REG_L36CTRL,
+	S2MPS13_REG_L37CTRL,
+	S2MPS13_REG_L38CTRL,
+	S2MPS13_REG_L39CTRL,
+	S2MPS13_REG_L40CTRL,
+	S2MPS13_REG_LDODSCH1,
+	S2MPS13_REG_LDODSCH2,
+	S2MPS13_REG_LDODSCH3,
+	S2MPS13_REG_LDODSCH4,
+	S2MPS13_REG_LDODSCH5,
+};
+
+/*  regulator ids */
+enum s2mps13_regulators {
+	S2MPS13_LDO1,
+	S2MPS13_LDO2,
+	S2MPS13_LDO3,
+	S2MPS13_LDO4,
+	S2MPS13_LDO5,
+	S2MPS13_LDO6,
+	S2MPS13_LDO7,
+	S2MPS13_LDO8,
+	S2MPS13_LDO9,
+	S2MPS13_LDO10,
+	S2MPS13_LDO11,
+	S2MPS13_LDO12,
+	S2MPS13_LDO13,
+	S2MPS13_LDO14,
+	S2MPS13_LDO15,
+	S2MPS13_LDO16,
+	S2MPS13_LDO17,
+	S2MPS13_LDO18,
+	S2MPS13_LDO19,
+	S2MPS13_LDO20,
+	S2MPS13_LDO21,
+	S2MPS13_LDO22,
+	S2MPS13_LDO23,
+	S2MPS13_LDO24,
+	S2MPS13_LDO25,
+	S2MPS13_LDO26,
+	S2MPS13_LDO27,
+	S2MPS13_LDO28,
+	S2MPS13_LDO29,
+	S2MPS13_LDO30,
+	S2MPS13_LDO31,
+	S2MPS13_LDO32,
+	S2MPS13_LDO33,
+	S2MPS13_LDO34,
+	S2MPS13_LDO35,
+	S2MPS13_LDO36,
+	S2MPS13_LDO37,
+	S2MPS13_LDO38,
+	S2MPS13_LDO39,
+	S2MPS13_LDO40,
+	S2MPS13_BUCK1,
+	S2MPS13_BUCK2,
+	S2MPS13_BUCK3,
+	S2MPS13_BUCK4,
+	S2MPS13_BUCK5,
+	S2MPS13_BUCK6,
+	S2MPS13_BUCK7,
+	S2MPS13_BUCK8,
+	S2MPS13_BUCK9,
+	S2MPS13_BUCK10,
+
+	S2MPS13_REGULATOR_MAX,
+};
+
+/*
+ * Default ramp delay in uv/us. Datasheet says that ramp delay can be
+ * controlled however it does not specify which register is used for that.
+ * Let's assume that default value will be set.
+ */
+#define S2MPS13_BUCK_RAMP_DELAY		12500
+
+#endif /*  __LINUX_MFD_S2MPS13_H */
-- 
1.8.5.5


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCHv2 3/5] clk: s2mps11: Add the support for S2MPS13 PMIC clock
  2014-11-18  8:59 [PATCHv2 0/5] mfd: sec-core: Add support S2MPS13 PMIC device Chanwoo Choi
  2014-11-18  8:59   ` Chanwoo Choi
  2014-11-18  8:59 ` [PATCHv2 2/5] regulator: s2mps11: Add support S2MPS13 regulator device Chanwoo Choi
@ 2014-11-18  8:59 ` Chanwoo Choi
  2014-11-18 21:59     ` Mike Turquette
  2014-11-25 15:51     ` Lee Jones
  2014-11-18  8:59 ` [PATCHv2 4/5] rtc: s5m: Add the support for S2MPS13 RTC Chanwoo Choi
                   ` (2 subsequent siblings)
  5 siblings, 2 replies; 30+ messages in thread
From: Chanwoo Choi @ 2014-11-18  8:59 UTC (permalink / raw)
  To: lee.jones, broonie, mturquette, a.zummo
  Cc: lgirdwood, sbkim73, sameo, geunsik.lim, inki.dae, kyungmin.park,
	k.kozlowski, linux-kernel, devicetree, Chanwoo Choi

This patch adds the support for S2MPS13 PMIC clock which is same with existing
S2MPS14 RTC IP. But, S2MPS13 uses all of clocks (32khz_{ap|bt|cp}).

Cc: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
---
 drivers/clk/clk-s2mps11.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c
index b7797fb..7bb13af 100644
--- a/drivers/clk/clk-s2mps11.c
+++ b/drivers/clk/clk-s2mps11.c
@@ -23,6 +23,7 @@
 #include <linux/clk-provider.h>
 #include <linux/platform_device.h>
 #include <linux/mfd/samsung/s2mps11.h>
+#include <linux/mfd/samsung/s2mps13.h>
 #include <linux/mfd/samsung/s2mps14.h>
 #include <linux/mfd/samsung/s5m8767.h>
 #include <linux/mfd/samsung/core.h>
@@ -120,6 +121,24 @@ static struct clk_init_data s2mps11_clks_init[S2MPS11_CLKS_NUM] = {
 	},
 };
 
+static struct clk_init_data s2mps13_clks_init[S2MPS11_CLKS_NUM] = {
+	[S2MPS11_CLK_AP] = {
+		.name = "s2mps13_ap",
+		.ops = &s2mps11_clk_ops,
+		.flags = CLK_IS_ROOT,
+	},
+	[S2MPS11_CLK_CP] = {
+		.name = "s2mps13_cp",
+		.ops = &s2mps11_clk_ops,
+		.flags = CLK_IS_ROOT,
+	},
+	[S2MPS11_CLK_BT] = {
+		.name = "s2mps13_bt",
+		.ops = &s2mps11_clk_ops,
+		.flags = CLK_IS_ROOT,
+	},
+};
+
 static struct clk_init_data s2mps14_clks_init[S2MPS11_CLKS_NUM] = {
 	[S2MPS11_CLK_AP] = {
 		.name = "s2mps14_ap",
@@ -184,6 +203,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
 		s2mps11_reg = S2MPS11_REG_RTC_CTRL;
 		clks_init = s2mps11_clks_init;
 		break;
+	case S2MPS13X:
+		s2mps11_reg = S2MPS13_REG_RTCCTRL;
+		clks_init = s2mps13_clks_init;
+		break;
 	case S2MPS14X:
 		s2mps11_reg = S2MPS14_REG_RTCCTRL;
 		clks_init = s2mps14_clks_init;
@@ -279,6 +302,7 @@ static int s2mps11_clk_remove(struct platform_device *pdev)
 
 static const struct platform_device_id s2mps11_clk_id[] = {
 	{ "s2mps11-clk", S2MPS11X},
+	{ "s2mps13-clk", S2MPS13X},
 	{ "s2mps14-clk", S2MPS14X},
 	{ "s5m8767-clk", S5M8767X},
 	{ },
-- 
1.8.5.5


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCHv2 4/5] rtc: s5m: Add the support for S2MPS13 RTC
  2014-11-18  8:59 [PATCHv2 0/5] mfd: sec-core: Add support S2MPS13 PMIC device Chanwoo Choi
                   ` (2 preceding siblings ...)
  2014-11-18  8:59 ` [PATCHv2 3/5] clk: s2mps11: Add the support for S2MPS13 PMIC clock Chanwoo Choi
@ 2014-11-18  8:59 ` Chanwoo Choi
  2014-11-24 10:46     ` Chanwoo Choi
  2014-11-18  8:59 ` [PATCHv2 5/5] mfd: s2mps11: Add binding documentation for Samsung S2MPS13 PMIC Chanwoo Choi
  2014-11-25 15:59   ` Lee Jones
  5 siblings, 1 reply; 30+ messages in thread
From: Chanwoo Choi @ 2014-11-18  8:59 UTC (permalink / raw)
  To: lee.jones, broonie, mturquette, a.zummo
  Cc: lgirdwood, sbkim73, sameo, geunsik.lim, inki.dae, kyungmin.park,
	k.kozlowski, linux-kernel, devicetree, Chanwoo Choi

This patch adds only the compatible string for S2MPS13 RTC which is identical
with S2MPS14 RTC driver.

Cc: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
---
 drivers/rtc/rtc-s5m.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/rtc/rtc-s5m.c b/drivers/rtc/rtc-s5m.c
index 8754c33..e5fdfd3 100644
--- a/drivers/rtc/rtc-s5m.c
+++ b/drivers/rtc/rtc-s5m.c
@@ -191,6 +191,7 @@ static inline int s5m_check_peding_alarm_interrupt(struct s5m_rtc_info *info,
 		ret = regmap_read(info->regmap, S5M_RTC_STATUS, &val);
 		val &= S5M_ALARM0_STATUS;
 		break;
+	case S2MPS13X:
 	case S2MPS14X:
 		ret = regmap_read(info->s5m87xx->regmap_pmic, S2MPS14_REG_ST2,
 				&val);
@@ -254,6 +255,7 @@ static inline int s5m8767_rtc_set_alarm_reg(struct s5m_rtc_info *info)
 	case S5M8767X:
 		data &= ~S5M_RTC_TIME_EN_MASK;
 		break;
+	case S2MPS13X:
 	case S2MPS14X:
 		data |= S2MPS_RTC_RUDR_MASK;
 		break;
@@ -311,7 +313,9 @@ static int s5m_rtc_read_time(struct device *dev, struct rtc_time *tm)
 	u8 data[info->regs->regs_count];
 	int ret;
 
-	if (info->device_type == S2MPS14X) {
+	switch (info->device_type) {
+	case S2MPS13X:
+	case S2MPS14X:
 		ret = regmap_update_bits(info->regmap,
 				info->regs->rtc_udr_update,
 				S2MPS_RTC_RUDR_MASK, S2MPS_RTC_RUDR_MASK);
@@ -333,6 +337,7 @@ static int s5m_rtc_read_time(struct device *dev, struct rtc_time *tm)
 		break;
 
 	case S5M8767X:
+	case S2MPS13X:
 	case S2MPS14X:
 		s5m8767_data_to_tm(data, tm, info->rtc_24hr_mode);
 		break;
@@ -359,6 +364,7 @@ static int s5m_rtc_set_time(struct device *dev, struct rtc_time *tm)
 		s5m8763_tm_to_data(tm, data);
 		break;
 	case S5M8767X:
+	case S2MPS13X:
 	case S2MPS14X:
 		ret = s5m8767_tm_to_data(tm, data);
 		break;
@@ -406,6 +412,7 @@ static int s5m_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
 		break;
 
 	case S5M8767X:
+	case S2MPS13X:
 	case S2MPS14X:
 		s5m8767_data_to_tm(data, &alrm->time, info->rtc_24hr_mode);
 		alrm->enabled = 0;
@@ -454,6 +461,7 @@ static int s5m_rtc_stop_alarm(struct s5m_rtc_info *info)
 		break;
 
 	case S5M8767X:
+	case S2MPS13X:
 	case S2MPS14X:
 		for (i = 0; i < info->regs->regs_count; i++)
 			data[i] &= ~ALARM_ENABLE_MASK;
@@ -498,6 +506,7 @@ static int s5m_rtc_start_alarm(struct s5m_rtc_info *info)
 		break;
 
 	case S5M8767X:
+	case S2MPS13X:
 	case S2MPS14X:
 		data[RTC_SEC] |= ALARM_ENABLE_MASK;
 		data[RTC_MIN] |= ALARM_ENABLE_MASK;
@@ -537,6 +546,7 @@ static int s5m_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
 		break;
 
 	case S5M8767X:
+	case S2MPS13X:
 	case S2MPS14X:
 		s5m8767_tm_to_data(&alrm->time, data);
 		break;
@@ -641,6 +651,7 @@ static int s5m8767_rtc_init_reg(struct s5m_rtc_info *info)
 		ret = regmap_raw_write(info->regmap, S5M_ALARM0_CONF, data, 2);
 		break;
 
+	case S2MPS13X:
 	case S2MPS14X:
 		data[0] = (0 << BCD_EN_SHIFT) | (1 << MODEL24_SHIFT);
 		ret = regmap_write(info->regmap, info->regs->ctrl, data[0]);
@@ -678,6 +689,7 @@ static int s5m_rtc_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	switch (pdata->device_type) {
+	case S2MPS13X:
 	case S2MPS14X:
 		regmap_cfg = &s2mps14_rtc_regmap_config;
 		info->regs = &s2mps_rtc_regs;
@@ -831,6 +843,7 @@ static SIMPLE_DEV_PM_OPS(s5m_rtc_pm_ops, s5m_rtc_suspend, s5m_rtc_resume);
 
 static const struct platform_device_id s5m_rtc_id[] = {
 	{ "s5m-rtc",		S5M8767X },
+	{ "s2mps13-rtc",	S2MPS13X },
 	{ "s2mps14-rtc",	S2MPS14X },
 };
 
-- 
1.8.5.5


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCHv2 5/5] mfd: s2mps11: Add binding documentation for Samsung S2MPS13 PMIC
  2014-11-18  8:59 [PATCHv2 0/5] mfd: sec-core: Add support S2MPS13 PMIC device Chanwoo Choi
                   ` (3 preceding siblings ...)
  2014-11-18  8:59 ` [PATCHv2 4/5] rtc: s5m: Add the support for S2MPS13 RTC Chanwoo Choi
@ 2014-11-18  8:59 ` Chanwoo Choi
  2014-11-25 15:51     ` Lee Jones
  2014-11-25 15:59   ` Lee Jones
  5 siblings, 1 reply; 30+ messages in thread
From: Chanwoo Choi @ 2014-11-18  8:59 UTC (permalink / raw)
  To: lee.jones, broonie, mturquette, a.zummo
  Cc: lgirdwood, sbkim73, sameo, geunsik.lim, inki.dae, kyungmin.park,
	k.kozlowski, linux-kernel, devicetree, Chanwoo Choi

This patch adds the binding documentation for Samsung S2MPS13 PMIC
which is similiar with existing S2MPS14 PMIC. S2MPS13 has the different number
of regulators from S2MPS14 and RTC/Clock is the same with the S2MPS14.

Cc: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Acked-by: Sangbeom Kim <sbkim73@samsung.com>
Acked-by: Lee Jones <lee.jones@linaro.org>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
---
 Documentation/devicetree/bindings/mfd/s2mps11.txt | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt b/Documentation/devicetree/bindings/mfd/s2mps11.txt
index 0e4026a..57a0450 100644
--- a/Documentation/devicetree/bindings/mfd/s2mps11.txt
+++ b/Documentation/devicetree/bindings/mfd/s2mps11.txt
@@ -1,5 +1,5 @@
 
-* Samsung S2MPS11, S2MPS14 and S2MPU02 Voltage and Current Regulator
+* Samsung S2MPS11, S2MPS13, S2MPS14 and S2MPU02 Voltage and Current Regulator
 
 The Samsung S2MPS11 is a multi-function device which includes voltage and
 current regulators, RTC, charger controller and other sub-blocks. It is
@@ -7,8 +7,8 @@ interfaced to the host controller using an I2C interface. Each sub-block is
 addressed by the host system using different I2C slave addresses.
 
 Required properties:
-- compatible: Should be "samsung,s2mps11-pmic" or "samsung,s2mps14-pmic"
-              or "samsung,s2mpu02-pmic".
+- compatible: Should be "samsung,s2mps11-pmic" or "samsung,s2mps13-pmic"
+	      or "samsung,s2mps14-pmic" or "samsung,s2mpu02-pmic".
 - reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
 
 Optional properties:
@@ -17,8 +17,8 @@ Optional properties:
 - interrupts: Interrupt specifiers for interrupt sources.
 
 Optional nodes:
-- clocks: s2mps11 and s5m8767 provide three(AP/CP/BT) buffered 32.768 KHz
-  outputs, so to register these as clocks with common clock framework
+- clocks: s2mps11, s2mps13 and s5m8767 provide three(AP/CP/BT) buffered 32.768
+  KHz outputs, so to register these as clocks with common clock framework
   instantiate a sub-node named "clocks". It uses the common clock binding
   documented in :
   [Documentation/devicetree/bindings/clock/clock-bindings.txt]
@@ -30,12 +30,12 @@ Optional nodes:
     the clock which they consume.
     Clock               ID           Devices
     ----------------------------------------------------------
-    32KhzAP		0            S2MPS11, S2MPS14, S5M8767
-    32KhzCP		1            S2MPS11, S5M8767
-    32KhzBT		2            S2MPS11, S2MPS14, S5M8767
+    32KhzAP		0            S2MPS11, S2MPS13, S2MPS14, S5M8767
+    32KhzCP		1            S2MPS11, S2MPS13, S5M8767
+    32KhzBT		2            S2MPS11, S2MPS13, S2MPS14, S5M8767
 
-  - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps14-clk",
-		"samsung,s5m8767-clk"
+  - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
+		"samsung,s2mps14-clk", "samsung,s5m8767-clk"
 
 - regulators: The regulators of s2mps11 that have to be instantiated should be
 included in a sub-node named 'regulators'. Regulator nodes included in this
@@ -81,12 +81,14 @@ as per the datasheet of s2mps11.
 	- LDOn
 		  - valid values for n are:
 			- S2MPS11: 1 to 38
+			- S2MPS13: 1 to 40
 			- S2MPS14: 1 to 25
 			- S2MPU02: 1 to 28
 		  - Example: LDO1, LDO2, LDO28
 	- BUCKn
 		  - valid values for n are:
 			- S2MPS11: 1 to 10
+			- S2MPS13: 1 to 10
 			- S2MPS14: 1 to 5
 			- S2MPU02: 1 to 7
 		  - Example: BUCK1, BUCK2, BUCK9
-- 
1.8.5.5


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 3/5] clk: s2mps11: Add the support for S2MPS13 PMIC clock
@ 2014-11-18 21:59     ` Mike Turquette
  0 siblings, 0 replies; 30+ messages in thread
From: Mike Turquette @ 2014-11-18 21:59 UTC (permalink / raw)
  To: Chanwoo Choi, lee.jones, broonie, a.zummo
  Cc: lgirdwood, sbkim73, sameo, geunsik.lim, inki.dae, kyungmin.park,
	k.kozlowski, linux-kernel, devicetree, Chanwoo Choi

Quoting Chanwoo Choi (2014-11-18 00:59:41)
> This patch adds the support for S2MPS13 PMIC clock which is same with existing
> S2MPS14 RTC IP. But, S2MPS13 uses all of clocks (32khz_{ap|bt|cp}).
> 
> Cc: Mike Turquette <mturquette@linaro.org>
> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Applied to clk-next.

Regards,
Mike

> ---
>  drivers/clk/clk-s2mps11.c | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c
> index b7797fb..7bb13af 100644
> --- a/drivers/clk/clk-s2mps11.c
> +++ b/drivers/clk/clk-s2mps11.c
> @@ -23,6 +23,7 @@
>  #include <linux/clk-provider.h>
>  #include <linux/platform_device.h>
>  #include <linux/mfd/samsung/s2mps11.h>
> +#include <linux/mfd/samsung/s2mps13.h>
>  #include <linux/mfd/samsung/s2mps14.h>
>  #include <linux/mfd/samsung/s5m8767.h>
>  #include <linux/mfd/samsung/core.h>
> @@ -120,6 +121,24 @@ static struct clk_init_data s2mps11_clks_init[S2MPS11_CLKS_NUM] = {
>         },
>  };
>  
> +static struct clk_init_data s2mps13_clks_init[S2MPS11_CLKS_NUM] = {
> +       [S2MPS11_CLK_AP] = {
> +               .name = "s2mps13_ap",
> +               .ops = &s2mps11_clk_ops,
> +               .flags = CLK_IS_ROOT,
> +       },
> +       [S2MPS11_CLK_CP] = {
> +               .name = "s2mps13_cp",
> +               .ops = &s2mps11_clk_ops,
> +               .flags = CLK_IS_ROOT,
> +       },
> +       [S2MPS11_CLK_BT] = {
> +               .name = "s2mps13_bt",
> +               .ops = &s2mps11_clk_ops,
> +               .flags = CLK_IS_ROOT,
> +       },
> +};
> +
>  static struct clk_init_data s2mps14_clks_init[S2MPS11_CLKS_NUM] = {
>         [S2MPS11_CLK_AP] = {
>                 .name = "s2mps14_ap",
> @@ -184,6 +203,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
>                 s2mps11_reg = S2MPS11_REG_RTC_CTRL;
>                 clks_init = s2mps11_clks_init;
>                 break;
> +       case S2MPS13X:
> +               s2mps11_reg = S2MPS13_REG_RTCCTRL;
> +               clks_init = s2mps13_clks_init;
> +               break;
>         case S2MPS14X:
>                 s2mps11_reg = S2MPS14_REG_RTCCTRL;
>                 clks_init = s2mps14_clks_init;
> @@ -279,6 +302,7 @@ static int s2mps11_clk_remove(struct platform_device *pdev)
>  
>  static const struct platform_device_id s2mps11_clk_id[] = {
>         { "s2mps11-clk", S2MPS11X},
> +       { "s2mps13-clk", S2MPS13X},
>         { "s2mps14-clk", S2MPS14X},
>         { "s5m8767-clk", S5M8767X},
>         { },
> -- 
> 1.8.5.5
> 

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 3/5] clk: s2mps11: Add the support for S2MPS13 PMIC clock
@ 2014-11-18 21:59     ` Mike Turquette
  0 siblings, 0 replies; 30+ messages in thread
From: Mike Turquette @ 2014-11-18 21:59 UTC (permalink / raw)
  To: lee.jones-QSEj5FYQhm4dnm+yROfE0A, broonie-DgEjT+Ai2ygdnm+yROfE0A,
	a.zummo-BfzFCNDTiLLj+vYz1yj4TQ
  Cc: lgirdwood-Re5JQEeQqe8AvxtiuMwx3w, sbkim73-Sze3O3UU22JBDgjK7y7TUQ,
	sameo-VuQAYsv1563Yd54FQh9/CA, geunsik.lim-Sze3O3UU22JBDgjK7y7TUQ,
	inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
	kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
	k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA, Chanwoo Choi

Quoting Chanwoo Choi (2014-11-18 00:59:41)
> This patch adds the support for S2MPS13 PMIC clock which is same with existing
> S2MPS14 RTC IP. But, S2MPS13 uses all of clocks (32khz_{ap|bt|cp}).
> 
> Cc: Mike Turquette <mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
> Signed-off-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> Reviewed-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>

Applied to clk-next.

Regards,
Mike

> ---
>  drivers/clk/clk-s2mps11.c | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c
> index b7797fb..7bb13af 100644
> --- a/drivers/clk/clk-s2mps11.c
> +++ b/drivers/clk/clk-s2mps11.c
> @@ -23,6 +23,7 @@
>  #include <linux/clk-provider.h>
>  #include <linux/platform_device.h>
>  #include <linux/mfd/samsung/s2mps11.h>
> +#include <linux/mfd/samsung/s2mps13.h>
>  #include <linux/mfd/samsung/s2mps14.h>
>  #include <linux/mfd/samsung/s5m8767.h>
>  #include <linux/mfd/samsung/core.h>
> @@ -120,6 +121,24 @@ static struct clk_init_data s2mps11_clks_init[S2MPS11_CLKS_NUM] = {
>         },
>  };
>  
> +static struct clk_init_data s2mps13_clks_init[S2MPS11_CLKS_NUM] = {
> +       [S2MPS11_CLK_AP] = {
> +               .name = "s2mps13_ap",
> +               .ops = &s2mps11_clk_ops,
> +               .flags = CLK_IS_ROOT,
> +       },
> +       [S2MPS11_CLK_CP] = {
> +               .name = "s2mps13_cp",
> +               .ops = &s2mps11_clk_ops,
> +               .flags = CLK_IS_ROOT,
> +       },
> +       [S2MPS11_CLK_BT] = {
> +               .name = "s2mps13_bt",
> +               .ops = &s2mps11_clk_ops,
> +               .flags = CLK_IS_ROOT,
> +       },
> +};
> +
>  static struct clk_init_data s2mps14_clks_init[S2MPS11_CLKS_NUM] = {
>         [S2MPS11_CLK_AP] = {
>                 .name = "s2mps14_ap",
> @@ -184,6 +203,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
>                 s2mps11_reg = S2MPS11_REG_RTC_CTRL;
>                 clks_init = s2mps11_clks_init;
>                 break;
> +       case S2MPS13X:
> +               s2mps11_reg = S2MPS13_REG_RTCCTRL;
> +               clks_init = s2mps13_clks_init;
> +               break;
>         case S2MPS14X:
>                 s2mps11_reg = S2MPS14_REG_RTCCTRL;
>                 clks_init = s2mps14_clks_init;
> @@ -279,6 +302,7 @@ static int s2mps11_clk_remove(struct platform_device *pdev)
>  
>  static const struct platform_device_id s2mps11_clk_id[] = {
>         { "s2mps11-clk", S2MPS11X},
> +       { "s2mps13-clk", S2MPS13X},
>         { "s2mps14-clk", S2MPS14X},
>         { "s5m8767-clk", S5M8767X},
>         { },
> -- 
> 1.8.5.5
> 
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 3/5] clk: s2mps11: Add the support for S2MPS13 PMIC clock
  2014-11-18 21:59     ` Mike Turquette
@ 2014-11-19 16:43       ` Lee Jones
  -1 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2014-11-19 16:43 UTC (permalink / raw)
  To: Mike Turquette
  Cc: Chanwoo Choi, broonie, a.zummo, lgirdwood, sbkim73, sameo,
	geunsik.lim, inki.dae, kyungmin.park, k.kozlowski, linux-kernel,
	devicetree

On Tue, 18 Nov 2014, Mike Turquette wrote:

> Quoting Chanwoo Choi (2014-11-18 00:59:41)
> > This patch adds the support for S2MPS13 PMIC clock which is same with existing
> > S2MPS14 RTC IP. But, S2MPS13 uses all of clocks (32khz_{ap|bt|cp}).
> > 
> > Cc: Mike Turquette <mturquette@linaro.org>
> > Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> > Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> 
> Applied to clk-next.

I'm pretty sure you can't do that.  You have a dependency on
linux/mfd/samsung/s2mps13.h, which is satisfied in one of the earlier
patches in the set.  If you'd care to just provide an Ack for this
patch, I can send you a pull-request with the decencies met.

> > ---
> >  drivers/clk/clk-s2mps11.c | 24 ++++++++++++++++++++++++
> >  1 file changed, 24 insertions(+)
> > 
> > diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c
> > index b7797fb..7bb13af 100644
> > --- a/drivers/clk/clk-s2mps11.c
> > +++ b/drivers/clk/clk-s2mps11.c
> > @@ -23,6 +23,7 @@
> >  #include <linux/clk-provider.h>
> >  #include <linux/platform_device.h>
> >  #include <linux/mfd/samsung/s2mps11.h>
> > +#include <linux/mfd/samsung/s2mps13.h>
> >  #include <linux/mfd/samsung/s2mps14.h>
> >  #include <linux/mfd/samsung/s5m8767.h>
> >  #include <linux/mfd/samsung/core.h>
> > @@ -120,6 +121,24 @@ static struct clk_init_data s2mps11_clks_init[S2MPS11_CLKS_NUM] = {
> >         },
> >  };
> >  
> > +static struct clk_init_data s2mps13_clks_init[S2MPS11_CLKS_NUM] = {
> > +       [S2MPS11_CLK_AP] = {
> > +               .name = "s2mps13_ap",
> > +               .ops = &s2mps11_clk_ops,
> > +               .flags = CLK_IS_ROOT,
> > +       },
> > +       [S2MPS11_CLK_CP] = {
> > +               .name = "s2mps13_cp",
> > +               .ops = &s2mps11_clk_ops,
> > +               .flags = CLK_IS_ROOT,
> > +       },
> > +       [S2MPS11_CLK_BT] = {
> > +               .name = "s2mps13_bt",
> > +               .ops = &s2mps11_clk_ops,
> > +               .flags = CLK_IS_ROOT,
> > +       },
> > +};
> > +
> >  static struct clk_init_data s2mps14_clks_init[S2MPS11_CLKS_NUM] = {
> >         [S2MPS11_CLK_AP] = {
> >                 .name = "s2mps14_ap",
> > @@ -184,6 +203,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
> >                 s2mps11_reg = S2MPS11_REG_RTC_CTRL;
> >                 clks_init = s2mps11_clks_init;
> >                 break;
> > +       case S2MPS13X:
> > +               s2mps11_reg = S2MPS13_REG_RTCCTRL;
> > +               clks_init = s2mps13_clks_init;
> > +               break;
> >         case S2MPS14X:
> >                 s2mps11_reg = S2MPS14_REG_RTCCTRL;
> >                 clks_init = s2mps14_clks_init;
> > @@ -279,6 +302,7 @@ static int s2mps11_clk_remove(struct platform_device *pdev)
> >  
> >  static const struct platform_device_id s2mps11_clk_id[] = {
> >         { "s2mps11-clk", S2MPS11X},
> > +       { "s2mps13-clk", S2MPS13X},
> >         { "s2mps14-clk", S2MPS14X},
> >         { "s5m8767-clk", S5M8767X},
> >         { },

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 3/5] clk: s2mps11: Add the support for S2MPS13 PMIC clock
@ 2014-11-19 16:43       ` Lee Jones
  0 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2014-11-19 16:43 UTC (permalink / raw)
  To: Mike Turquette
  Cc: Chanwoo Choi, broonie-DgEjT+Ai2ygdnm+yROfE0A,
	a.zummo-BfzFCNDTiLLj+vYz1yj4TQ, lgirdwood-Re5JQEeQqe8AvxtiuMwx3w,
	sbkim73-Sze3O3UU22JBDgjK7y7TUQ, sameo-VuQAYsv1563Yd54FQh9/CA,
	geunsik.lim-Sze3O3UU22JBDgjK7y7TUQ,
	inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
	kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
	k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

On Tue, 18 Nov 2014, Mike Turquette wrote:

> Quoting Chanwoo Choi (2014-11-18 00:59:41)
> > This patch adds the support for S2MPS13 PMIC clock which is same with existing
> > S2MPS14 RTC IP. But, S2MPS13 uses all of clocks (32khz_{ap|bt|cp}).
> > 
> > Cc: Mike Turquette <mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
> > Signed-off-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> > Reviewed-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> 
> Applied to clk-next.

I'm pretty sure you can't do that.  You have a dependency on
linux/mfd/samsung/s2mps13.h, which is satisfied in one of the earlier
patches in the set.  If you'd care to just provide an Ack for this
patch, I can send you a pull-request with the decencies met.

> > ---
> >  drivers/clk/clk-s2mps11.c | 24 ++++++++++++++++++++++++
> >  1 file changed, 24 insertions(+)
> > 
> > diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c
> > index b7797fb..7bb13af 100644
> > --- a/drivers/clk/clk-s2mps11.c
> > +++ b/drivers/clk/clk-s2mps11.c
> > @@ -23,6 +23,7 @@
> >  #include <linux/clk-provider.h>
> >  #include <linux/platform_device.h>
> >  #include <linux/mfd/samsung/s2mps11.h>
> > +#include <linux/mfd/samsung/s2mps13.h>
> >  #include <linux/mfd/samsung/s2mps14.h>
> >  #include <linux/mfd/samsung/s5m8767.h>
> >  #include <linux/mfd/samsung/core.h>
> > @@ -120,6 +121,24 @@ static struct clk_init_data s2mps11_clks_init[S2MPS11_CLKS_NUM] = {
> >         },
> >  };
> >  
> > +static struct clk_init_data s2mps13_clks_init[S2MPS11_CLKS_NUM] = {
> > +       [S2MPS11_CLK_AP] = {
> > +               .name = "s2mps13_ap",
> > +               .ops = &s2mps11_clk_ops,
> > +               .flags = CLK_IS_ROOT,
> > +       },
> > +       [S2MPS11_CLK_CP] = {
> > +               .name = "s2mps13_cp",
> > +               .ops = &s2mps11_clk_ops,
> > +               .flags = CLK_IS_ROOT,
> > +       },
> > +       [S2MPS11_CLK_BT] = {
> > +               .name = "s2mps13_bt",
> > +               .ops = &s2mps11_clk_ops,
> > +               .flags = CLK_IS_ROOT,
> > +       },
> > +};
> > +
> >  static struct clk_init_data s2mps14_clks_init[S2MPS11_CLKS_NUM] = {
> >         [S2MPS11_CLK_AP] = {
> >                 .name = "s2mps14_ap",
> > @@ -184,6 +203,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
> >                 s2mps11_reg = S2MPS11_REG_RTC_CTRL;
> >                 clks_init = s2mps11_clks_init;
> >                 break;
> > +       case S2MPS13X:
> > +               s2mps11_reg = S2MPS13_REG_RTCCTRL;
> > +               clks_init = s2mps13_clks_init;
> > +               break;
> >         case S2MPS14X:
> >                 s2mps11_reg = S2MPS14_REG_RTCCTRL;
> >                 clks_init = s2mps14_clks_init;
> > @@ -279,6 +302,7 @@ static int s2mps11_clk_remove(struct platform_device *pdev)
> >  
> >  static const struct platform_device_id s2mps11_clk_id[] = {
> >         { "s2mps11-clk", S2MPS11X},
> > +       { "s2mps13-clk", S2MPS13X},
> >         { "s2mps14-clk", S2MPS14X},
> >         { "s5m8767-clk", S5M8767X},
> >         { },

-- 
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 devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 3/5] clk: s2mps11: Add the support for S2MPS13 PMIC clock
  2014-11-19 16:43       ` Lee Jones
@ 2014-11-24  9:00         ` Chanwoo Choi
  -1 siblings, 0 replies; 30+ messages in thread
From: Chanwoo Choi @ 2014-11-24  9:00 UTC (permalink / raw)
  To: Lee Jones
  Cc: Mike Turquette, broonie, a.zummo, lgirdwood, sbkim73, sameo,
	geunsik.lim, inki.dae, kyungmin.park, k.kozlowski, linux-kernel,
	devicetree

Dear Lee,

Could you please apply this patchset on your tree
or Do we wait the Ack from RTC mainatiner for patch 4?

Best Regards,
Chanwoo Choi

On 11/20/2014 01:43 AM, Lee Jones wrote:
> On Tue, 18 Nov 2014, Mike Turquette wrote:
> 
>> Quoting Chanwoo Choi (2014-11-18 00:59:41)
>>> This patch adds the support for S2MPS13 PMIC clock which is same with existing
>>> S2MPS14 RTC IP. But, S2MPS13 uses all of clocks (32khz_{ap|bt|cp}).
>>>
>>> Cc: Mike Turquette <mturquette@linaro.org>
>>> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
>>> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
>>
>> Applied to clk-next.
> 
> I'm pretty sure you can't do that.  You have a dependency on
> linux/mfd/samsung/s2mps13.h, which is satisfied in one of the earlier
> patches in the set.  If you'd care to just provide an Ack for this
> patch, I can send you a pull-request with the decencies met.
> 
>>> ---
>>>  drivers/clk/clk-s2mps11.c | 24 ++++++++++++++++++++++++
>>>  1 file changed, 24 insertions(+)
>>>
>>> diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c
>>> index b7797fb..7bb13af 100644
>>> --- a/drivers/clk/clk-s2mps11.c
>>> +++ b/drivers/clk/clk-s2mps11.c
>>> @@ -23,6 +23,7 @@
>>>  #include <linux/clk-provider.h>
>>>  #include <linux/platform_device.h>
>>>  #include <linux/mfd/samsung/s2mps11.h>
>>> +#include <linux/mfd/samsung/s2mps13.h>
>>>  #include <linux/mfd/samsung/s2mps14.h>
>>>  #include <linux/mfd/samsung/s5m8767.h>
>>>  #include <linux/mfd/samsung/core.h>
>>> @@ -120,6 +121,24 @@ static struct clk_init_data s2mps11_clks_init[S2MPS11_CLKS_NUM] = {
>>>         },
>>>  };
>>>  
>>> +static struct clk_init_data s2mps13_clks_init[S2MPS11_CLKS_NUM] = {
>>> +       [S2MPS11_CLK_AP] = {
>>> +               .name = "s2mps13_ap",
>>> +               .ops = &s2mps11_clk_ops,
>>> +               .flags = CLK_IS_ROOT,
>>> +       },
>>> +       [S2MPS11_CLK_CP] = {
>>> +               .name = "s2mps13_cp",
>>> +               .ops = &s2mps11_clk_ops,
>>> +               .flags = CLK_IS_ROOT,
>>> +       },
>>> +       [S2MPS11_CLK_BT] = {
>>> +               .name = "s2mps13_bt",
>>> +               .ops = &s2mps11_clk_ops,
>>> +               .flags = CLK_IS_ROOT,
>>> +       },
>>> +};
>>> +
>>>  static struct clk_init_data s2mps14_clks_init[S2MPS11_CLKS_NUM] = {
>>>         [S2MPS11_CLK_AP] = {
>>>                 .name = "s2mps14_ap",
>>> @@ -184,6 +203,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
>>>                 s2mps11_reg = S2MPS11_REG_RTC_CTRL;
>>>                 clks_init = s2mps11_clks_init;
>>>                 break;
>>> +       case S2MPS13X:
>>> +               s2mps11_reg = S2MPS13_REG_RTCCTRL;
>>> +               clks_init = s2mps13_clks_init;
>>> +               break;
>>>         case S2MPS14X:
>>>                 s2mps11_reg = S2MPS14_REG_RTCCTRL;
>>>                 clks_init = s2mps14_clks_init;
>>> @@ -279,6 +302,7 @@ static int s2mps11_clk_remove(struct platform_device *pdev)
>>>  
>>>  static const struct platform_device_id s2mps11_clk_id[] = {
>>>         { "s2mps11-clk", S2MPS11X},
>>> +       { "s2mps13-clk", S2MPS13X},
>>>         { "s2mps14-clk", S2MPS14X},
>>>         { "s5m8767-clk", S5M8767X},
>>>         { },
> 


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 3/5] clk: s2mps11: Add the support for S2MPS13 PMIC clock
@ 2014-11-24  9:00         ` Chanwoo Choi
  0 siblings, 0 replies; 30+ messages in thread
From: Chanwoo Choi @ 2014-11-24  9:00 UTC (permalink / raw)
  To: Lee Jones
  Cc: Mike Turquette, broonie-DgEjT+Ai2ygdnm+yROfE0A,
	a.zummo-BfzFCNDTiLLj+vYz1yj4TQ, lgirdwood-Re5JQEeQqe8AvxtiuMwx3w,
	sbkim73-Sze3O3UU22JBDgjK7y7TUQ, sameo-VuQAYsv1563Yd54FQh9/CA,
	geunsik.lim-Sze3O3UU22JBDgjK7y7TUQ,
	inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
	kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
	k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

Dear Lee,

Could you please apply this patchset on your tree
or Do we wait the Ack from RTC mainatiner for patch 4?

Best Regards,
Chanwoo Choi

On 11/20/2014 01:43 AM, Lee Jones wrote:
> On Tue, 18 Nov 2014, Mike Turquette wrote:
> 
>> Quoting Chanwoo Choi (2014-11-18 00:59:41)
>>> This patch adds the support for S2MPS13 PMIC clock which is same with existing
>>> S2MPS14 RTC IP. But, S2MPS13 uses all of clocks (32khz_{ap|bt|cp}).
>>>
>>> Cc: Mike Turquette <mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
>>> Signed-off-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
>>> Reviewed-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
>>
>> Applied to clk-next.
> 
> I'm pretty sure you can't do that.  You have a dependency on
> linux/mfd/samsung/s2mps13.h, which is satisfied in one of the earlier
> patches in the set.  If you'd care to just provide an Ack for this
> patch, I can send you a pull-request with the decencies met.
> 
>>> ---
>>>  drivers/clk/clk-s2mps11.c | 24 ++++++++++++++++++++++++
>>>  1 file changed, 24 insertions(+)
>>>
>>> diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c
>>> index b7797fb..7bb13af 100644
>>> --- a/drivers/clk/clk-s2mps11.c
>>> +++ b/drivers/clk/clk-s2mps11.c
>>> @@ -23,6 +23,7 @@
>>>  #include <linux/clk-provider.h>
>>>  #include <linux/platform_device.h>
>>>  #include <linux/mfd/samsung/s2mps11.h>
>>> +#include <linux/mfd/samsung/s2mps13.h>
>>>  #include <linux/mfd/samsung/s2mps14.h>
>>>  #include <linux/mfd/samsung/s5m8767.h>
>>>  #include <linux/mfd/samsung/core.h>
>>> @@ -120,6 +121,24 @@ static struct clk_init_data s2mps11_clks_init[S2MPS11_CLKS_NUM] = {
>>>         },
>>>  };
>>>  
>>> +static struct clk_init_data s2mps13_clks_init[S2MPS11_CLKS_NUM] = {
>>> +       [S2MPS11_CLK_AP] = {
>>> +               .name = "s2mps13_ap",
>>> +               .ops = &s2mps11_clk_ops,
>>> +               .flags = CLK_IS_ROOT,
>>> +       },
>>> +       [S2MPS11_CLK_CP] = {
>>> +               .name = "s2mps13_cp",
>>> +               .ops = &s2mps11_clk_ops,
>>> +               .flags = CLK_IS_ROOT,
>>> +       },
>>> +       [S2MPS11_CLK_BT] = {
>>> +               .name = "s2mps13_bt",
>>> +               .ops = &s2mps11_clk_ops,
>>> +               .flags = CLK_IS_ROOT,
>>> +       },
>>> +};
>>> +
>>>  static struct clk_init_data s2mps14_clks_init[S2MPS11_CLKS_NUM] = {
>>>         [S2MPS11_CLK_AP] = {
>>>                 .name = "s2mps14_ap",
>>> @@ -184,6 +203,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
>>>                 s2mps11_reg = S2MPS11_REG_RTC_CTRL;
>>>                 clks_init = s2mps11_clks_init;
>>>                 break;
>>> +       case S2MPS13X:
>>> +               s2mps11_reg = S2MPS13_REG_RTCCTRL;
>>> +               clks_init = s2mps13_clks_init;
>>> +               break;
>>>         case S2MPS14X:
>>>                 s2mps11_reg = S2MPS14_REG_RTCCTRL;
>>>                 clks_init = s2mps14_clks_init;
>>> @@ -279,6 +302,7 @@ static int s2mps11_clk_remove(struct platform_device *pdev)
>>>  
>>>  static const struct platform_device_id s2mps11_clk_id[] = {
>>>         { "s2mps11-clk", S2MPS11X},
>>> +       { "s2mps13-clk", S2MPS13X},
>>>         { "s2mps14-clk", S2MPS14X},
>>>         { "s5m8767-clk", S5M8767X},
>>>         { },
> 

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 3/5] clk: s2mps11: Add the support for S2MPS13 PMIC clock
  2014-11-24  9:00         ` Chanwoo Choi
  (?)
@ 2014-11-24 10:04         ` Lee Jones
  2014-11-25 15:06             ` Chanwoo Choi
  -1 siblings, 1 reply; 30+ messages in thread
From: Lee Jones @ 2014-11-24 10:04 UTC (permalink / raw)
  To: Chanwoo Choi
  Cc: Mike Turquette, broonie, a.zummo, lgirdwood, sbkim73, sameo,
	geunsik.lim, inki.dae, kyungmin.park, k.kozlowski, linux-kernel,
	devicetree

> Could you please apply this patchset on your tree
> or Do we wait the Ack from RTC mainatiner for patch 4?

We still need an Ack from Alessandro.

> On 11/20/2014 01:43 AM, Lee Jones wrote:
> > On Tue, 18 Nov 2014, Mike Turquette wrote:
> > 
> >> Quoting Chanwoo Choi (2014-11-18 00:59:41)
> >>> This patch adds the support for S2MPS13 PMIC clock which is same with existing
> >>> S2MPS14 RTC IP. But, S2MPS13 uses all of clocks (32khz_{ap|bt|cp}).
> >>>
> >>> Cc: Mike Turquette <mturquette@linaro.org>
> >>> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> >>> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> >>
> >> Applied to clk-next.
> > 
> > I'm pretty sure you can't do that.  You have a dependency on
> > linux/mfd/samsung/s2mps13.h, which is satisfied in one of the earlier
> > patches in the set.  If you'd care to just provide an Ack for this
> > patch, I can send you a pull-request with the decencies met.
> > 
> >>> ---
> >>>  drivers/clk/clk-s2mps11.c | 24 ++++++++++++++++++++++++
> >>>  1 file changed, 24 insertions(+)
> >>>
> >>> diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c
> >>> index b7797fb..7bb13af 100644
> >>> --- a/drivers/clk/clk-s2mps11.c
> >>> +++ b/drivers/clk/clk-s2mps11.c
> >>> @@ -23,6 +23,7 @@
> >>>  #include <linux/clk-provider.h>
> >>>  #include <linux/platform_device.h>
> >>>  #include <linux/mfd/samsung/s2mps11.h>
> >>> +#include <linux/mfd/samsung/s2mps13.h>
> >>>  #include <linux/mfd/samsung/s2mps14.h>
> >>>  #include <linux/mfd/samsung/s5m8767.h>
> >>>  #include <linux/mfd/samsung/core.h>
> >>> @@ -120,6 +121,24 @@ static struct clk_init_data s2mps11_clks_init[S2MPS11_CLKS_NUM] = {
> >>>         },
> >>>  };
> >>>  
> >>> +static struct clk_init_data s2mps13_clks_init[S2MPS11_CLKS_NUM] = {
> >>> +       [S2MPS11_CLK_AP] = {
> >>> +               .name = "s2mps13_ap",
> >>> +               .ops = &s2mps11_clk_ops,
> >>> +               .flags = CLK_IS_ROOT,
> >>> +       },
> >>> +       [S2MPS11_CLK_CP] = {
> >>> +               .name = "s2mps13_cp",
> >>> +               .ops = &s2mps11_clk_ops,
> >>> +               .flags = CLK_IS_ROOT,
> >>> +       },
> >>> +       [S2MPS11_CLK_BT] = {
> >>> +               .name = "s2mps13_bt",
> >>> +               .ops = &s2mps11_clk_ops,
> >>> +               .flags = CLK_IS_ROOT,
> >>> +       },
> >>> +};
> >>> +
> >>>  static struct clk_init_data s2mps14_clks_init[S2MPS11_CLKS_NUM] = {
> >>>         [S2MPS11_CLK_AP] = {
> >>>                 .name = "s2mps14_ap",
> >>> @@ -184,6 +203,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
> >>>                 s2mps11_reg = S2MPS11_REG_RTC_CTRL;
> >>>                 clks_init = s2mps11_clks_init;
> >>>                 break;
> >>> +       case S2MPS13X:
> >>> +               s2mps11_reg = S2MPS13_REG_RTCCTRL;
> >>> +               clks_init = s2mps13_clks_init;
> >>> +               break;
> >>>         case S2MPS14X:
> >>>                 s2mps11_reg = S2MPS14_REG_RTCCTRL;
> >>>                 clks_init = s2mps14_clks_init;
> >>> @@ -279,6 +302,7 @@ static int s2mps11_clk_remove(struct platform_device *pdev)
> >>>  
> >>>  static const struct platform_device_id s2mps11_clk_id[] = {
> >>>         { "s2mps11-clk", S2MPS11X},
> >>> +       { "s2mps13-clk", S2MPS13X},
> >>>         { "s2mps14-clk", S2MPS14X},
> >>>         { "s5m8767-clk", S5M8767X},
> >>>         { },
> > 
> 

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 4/5] rtc: s5m: Add the support for S2MPS13 RTC
@ 2014-11-24 10:46     ` Chanwoo Choi
  0 siblings, 0 replies; 30+ messages in thread
From: Chanwoo Choi @ 2014-11-24 10:46 UTC (permalink / raw)
  To: a.zummo
  Cc: Chanwoo Choi, lee.jones, broonie, mturquette, lgirdwood, sbkim73,
	sameo, geunsik.lim, inki.dae, kyungmin.park, k.kozlowski,
	linux-kernel, devicetree

Dear Alessandro,

Could you please review these patchset?
Other patches of these patchset ended up getting Ack message from each Maintainer.

Best Regards,
Chanwoo Choi

On 11/18/2014 05:59 PM, Chanwoo Choi wrote:
> This patch adds only the compatible string for S2MPS13 RTC which is identical
> with S2MPS14 RTC driver.
> 
> Cc: Alessandro Zummo <a.zummo@towertech.it>
> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> ---
>  drivers/rtc/rtc-s5m.c | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/rtc/rtc-s5m.c b/drivers/rtc/rtc-s5m.c
> index 8754c33..e5fdfd3 100644
> --- a/drivers/rtc/rtc-s5m.c
> +++ b/drivers/rtc/rtc-s5m.c
> @@ -191,6 +191,7 @@ static inline int s5m_check_peding_alarm_interrupt(struct s5m_rtc_info *info,
>  		ret = regmap_read(info->regmap, S5M_RTC_STATUS, &val);
>  		val &= S5M_ALARM0_STATUS;
>  		break;
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		ret = regmap_read(info->s5m87xx->regmap_pmic, S2MPS14_REG_ST2,
>  				&val);
> @@ -254,6 +255,7 @@ static inline int s5m8767_rtc_set_alarm_reg(struct s5m_rtc_info *info)
>  	case S5M8767X:
>  		data &= ~S5M_RTC_TIME_EN_MASK;
>  		break;
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		data |= S2MPS_RTC_RUDR_MASK;
>  		break;
> @@ -311,7 +313,9 @@ static int s5m_rtc_read_time(struct device *dev, struct rtc_time *tm)
>  	u8 data[info->regs->regs_count];
>  	int ret;
>  
> -	if (info->device_type == S2MPS14X) {
> +	switch (info->device_type) {
> +	case S2MPS13X:
> +	case S2MPS14X:
>  		ret = regmap_update_bits(info->regmap,
>  				info->regs->rtc_udr_update,
>  				S2MPS_RTC_RUDR_MASK, S2MPS_RTC_RUDR_MASK);
> @@ -333,6 +337,7 @@ static int s5m_rtc_read_time(struct device *dev, struct rtc_time *tm)
>  		break;
>  
>  	case S5M8767X:
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		s5m8767_data_to_tm(data, tm, info->rtc_24hr_mode);
>  		break;
> @@ -359,6 +364,7 @@ static int s5m_rtc_set_time(struct device *dev, struct rtc_time *tm)
>  		s5m8763_tm_to_data(tm, data);
>  		break;
>  	case S5M8767X:
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		ret = s5m8767_tm_to_data(tm, data);
>  		break;
> @@ -406,6 +412,7 @@ static int s5m_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
>  		break;
>  
>  	case S5M8767X:
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		s5m8767_data_to_tm(data, &alrm->time, info->rtc_24hr_mode);
>  		alrm->enabled = 0;
> @@ -454,6 +461,7 @@ static int s5m_rtc_stop_alarm(struct s5m_rtc_info *info)
>  		break;
>  
>  	case S5M8767X:
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		for (i = 0; i < info->regs->regs_count; i++)
>  			data[i] &= ~ALARM_ENABLE_MASK;
> @@ -498,6 +506,7 @@ static int s5m_rtc_start_alarm(struct s5m_rtc_info *info)
>  		break;
>  
>  	case S5M8767X:
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		data[RTC_SEC] |= ALARM_ENABLE_MASK;
>  		data[RTC_MIN] |= ALARM_ENABLE_MASK;
> @@ -537,6 +546,7 @@ static int s5m_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
>  		break;
>  
>  	case S5M8767X:
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		s5m8767_tm_to_data(&alrm->time, data);
>  		break;
> @@ -641,6 +651,7 @@ static int s5m8767_rtc_init_reg(struct s5m_rtc_info *info)
>  		ret = regmap_raw_write(info->regmap, S5M_ALARM0_CONF, data, 2);
>  		break;
>  
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		data[0] = (0 << BCD_EN_SHIFT) | (1 << MODEL24_SHIFT);
>  		ret = regmap_write(info->regmap, info->regs->ctrl, data[0]);
> @@ -678,6 +689,7 @@ static int s5m_rtc_probe(struct platform_device *pdev)
>  		return -ENOMEM;
>  
>  	switch (pdata->device_type) {
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		regmap_cfg = &s2mps14_rtc_regmap_config;
>  		info->regs = &s2mps_rtc_regs;
> @@ -831,6 +843,7 @@ static SIMPLE_DEV_PM_OPS(s5m_rtc_pm_ops, s5m_rtc_suspend, s5m_rtc_resume);
>  
>  static const struct platform_device_id s5m_rtc_id[] = {
>  	{ "s5m-rtc",		S5M8767X },
> +	{ "s2mps13-rtc",	S2MPS13X },
>  	{ "s2mps14-rtc",	S2MPS14X },
>  };
>  
> 


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 4/5] rtc: s5m: Add the support for S2MPS13 RTC
@ 2014-11-24 10:46     ` Chanwoo Choi
  0 siblings, 0 replies; 30+ messages in thread
From: Chanwoo Choi @ 2014-11-24 10:46 UTC (permalink / raw)
  To: a.zummo-BfzFCNDTiLLj+vYz1yj4TQ
  Cc: Chanwoo Choi, lee.jones-QSEj5FYQhm4dnm+yROfE0A,
	broonie-DgEjT+Ai2ygdnm+yROfE0A,
	mturquette-QSEj5FYQhm4dnm+yROfE0A,
	lgirdwood-Re5JQEeQqe8AvxtiuMwx3w, sbkim73-Sze3O3UU22JBDgjK7y7TUQ,
	sameo-VuQAYsv1563Yd54FQh9/CA, geunsik.lim-Sze3O3UU22JBDgjK7y7TUQ,
	inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
	kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
	k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

Dear Alessandro,

Could you please review these patchset?
Other patches of these patchset ended up getting Ack message from each Maintainer.

Best Regards,
Chanwoo Choi

On 11/18/2014 05:59 PM, Chanwoo Choi wrote:
> This patch adds only the compatible string for S2MPS13 RTC which is identical
> with S2MPS14 RTC driver.
> 
> Cc: Alessandro Zummo <a.zummo-BfzFCNDTiLLj+vYz1yj4TQ@public.gmane.org>
> Signed-off-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> ---
>  drivers/rtc/rtc-s5m.c | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/rtc/rtc-s5m.c b/drivers/rtc/rtc-s5m.c
> index 8754c33..e5fdfd3 100644
> --- a/drivers/rtc/rtc-s5m.c
> +++ b/drivers/rtc/rtc-s5m.c
> @@ -191,6 +191,7 @@ static inline int s5m_check_peding_alarm_interrupt(struct s5m_rtc_info *info,
>  		ret = regmap_read(info->regmap, S5M_RTC_STATUS, &val);
>  		val &= S5M_ALARM0_STATUS;
>  		break;
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		ret = regmap_read(info->s5m87xx->regmap_pmic, S2MPS14_REG_ST2,
>  				&val);
> @@ -254,6 +255,7 @@ static inline int s5m8767_rtc_set_alarm_reg(struct s5m_rtc_info *info)
>  	case S5M8767X:
>  		data &= ~S5M_RTC_TIME_EN_MASK;
>  		break;
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		data |= S2MPS_RTC_RUDR_MASK;
>  		break;
> @@ -311,7 +313,9 @@ static int s5m_rtc_read_time(struct device *dev, struct rtc_time *tm)
>  	u8 data[info->regs->regs_count];
>  	int ret;
>  
> -	if (info->device_type == S2MPS14X) {
> +	switch (info->device_type) {
> +	case S2MPS13X:
> +	case S2MPS14X:
>  		ret = regmap_update_bits(info->regmap,
>  				info->regs->rtc_udr_update,
>  				S2MPS_RTC_RUDR_MASK, S2MPS_RTC_RUDR_MASK);
> @@ -333,6 +337,7 @@ static int s5m_rtc_read_time(struct device *dev, struct rtc_time *tm)
>  		break;
>  
>  	case S5M8767X:
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		s5m8767_data_to_tm(data, tm, info->rtc_24hr_mode);
>  		break;
> @@ -359,6 +364,7 @@ static int s5m_rtc_set_time(struct device *dev, struct rtc_time *tm)
>  		s5m8763_tm_to_data(tm, data);
>  		break;
>  	case S5M8767X:
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		ret = s5m8767_tm_to_data(tm, data);
>  		break;
> @@ -406,6 +412,7 @@ static int s5m_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
>  		break;
>  
>  	case S5M8767X:
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		s5m8767_data_to_tm(data, &alrm->time, info->rtc_24hr_mode);
>  		alrm->enabled = 0;
> @@ -454,6 +461,7 @@ static int s5m_rtc_stop_alarm(struct s5m_rtc_info *info)
>  		break;
>  
>  	case S5M8767X:
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		for (i = 0; i < info->regs->regs_count; i++)
>  			data[i] &= ~ALARM_ENABLE_MASK;
> @@ -498,6 +506,7 @@ static int s5m_rtc_start_alarm(struct s5m_rtc_info *info)
>  		break;
>  
>  	case S5M8767X:
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		data[RTC_SEC] |= ALARM_ENABLE_MASK;
>  		data[RTC_MIN] |= ALARM_ENABLE_MASK;
> @@ -537,6 +546,7 @@ static int s5m_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
>  		break;
>  
>  	case S5M8767X:
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		s5m8767_tm_to_data(&alrm->time, data);
>  		break;
> @@ -641,6 +651,7 @@ static int s5m8767_rtc_init_reg(struct s5m_rtc_info *info)
>  		ret = regmap_raw_write(info->regmap, S5M_ALARM0_CONF, data, 2);
>  		break;
>  
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		data[0] = (0 << BCD_EN_SHIFT) | (1 << MODEL24_SHIFT);
>  		ret = regmap_write(info->regmap, info->regs->ctrl, data[0]);
> @@ -678,6 +689,7 @@ static int s5m_rtc_probe(struct platform_device *pdev)
>  		return -ENOMEM;
>  
>  	switch (pdata->device_type) {
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		regmap_cfg = &s2mps14_rtc_regmap_config;
>  		info->regs = &s2mps_rtc_regs;
> @@ -831,6 +843,7 @@ static SIMPLE_DEV_PM_OPS(s5m_rtc_pm_ops, s5m_rtc_suspend, s5m_rtc_resume);
>  
>  static const struct platform_device_id s5m_rtc_id[] = {
>  	{ "s5m-rtc",		S5M8767X },
> +	{ "s2mps13-rtc",	S2MPS13X },
>  	{ "s2mps14-rtc",	S2MPS14X },
>  };
>  
> 

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 3/5] clk: s2mps11: Add the support for S2MPS13 PMIC clock
  2014-11-24 10:04         ` Lee Jones
@ 2014-11-25 15:06             ` Chanwoo Choi
  0 siblings, 0 replies; 30+ messages in thread
From: Chanwoo Choi @ 2014-11-25 15:06 UTC (permalink / raw)
  To: Lee Jones
  Cc: Mike Turquette, Mark Brown, a.zummo, Liam Girdwood, sbkim73,
	Samuel Ortiz, geunsik.lim, inki.dae, Kyungmin Park,
	Krzysztof Kozłowski, linux-kernel, devicetree

Dear Lee,

Could you pick these patchset without RTC patch?
I'll re-send etc patch separately.

Best Regards,
Chanwoo Choi

On Mon, Nov 24, 2014 at 7:04 PM, Lee Jones <lee.jones@linaro.org> wrote:
>> Could you please apply this patchset on your tree
>> or Do we wait the Ack from RTC mainatiner for patch 4?
>
> We still need an Ack from Alessandro.
>
>> On 11/20/2014 01:43 AM, Lee Jones wrote:
>> > On Tue, 18 Nov 2014, Mike Turquette wrote:
>> >
>> >> Quoting Chanwoo Choi (2014-11-18 00:59:41)
>> >>> This patch adds the support for S2MPS13 PMIC clock which is same with existing
>> >>> S2MPS14 RTC IP. But, S2MPS13 uses all of clocks (32khz_{ap|bt|cp}).
>> >>>
>> >>> Cc: Mike Turquette <mturquette@linaro.org>
>> >>> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
>> >>> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
>> >>
>> >> Applied to clk-next.
>> >
>> > I'm pretty sure you can't do that.  You have a dependency on
>> > linux/mfd/samsung/s2mps13.h, which is satisfied in one of the earlier
>> > patches in the set.  If you'd care to just provide an Ack for this
>> > patch, I can send you a pull-request with the decencies met.
>> >
>> >>> ---
>> >>>  drivers/clk/clk-s2mps11.c | 24 ++++++++++++++++++++++++
>> >>>  1 file changed, 24 insertions(+)
>> >>>
>> >>> diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c
>> >>> index b7797fb..7bb13af 100644
>> >>> --- a/drivers/clk/clk-s2mps11.c
>> >>> +++ b/drivers/clk/clk-s2mps11.c
>> >>> @@ -23,6 +23,7 @@
>> >>>  #include <linux/clk-provider.h>
>> >>>  #include <linux/platform_device.h>
>> >>>  #include <linux/mfd/samsung/s2mps11.h>
>> >>> +#include <linux/mfd/samsung/s2mps13.h>
>> >>>  #include <linux/mfd/samsung/s2mps14.h>
>> >>>  #include <linux/mfd/samsung/s5m8767.h>
>> >>>  #include <linux/mfd/samsung/core.h>
>> >>> @@ -120,6 +121,24 @@ static struct clk_init_data s2mps11_clks_init[S2MPS11_CLKS_NUM] = {
>> >>>         },
>> >>>  };
>> >>>
>> >>> +static struct clk_init_data s2mps13_clks_init[S2MPS11_CLKS_NUM] = {
>> >>> +       [S2MPS11_CLK_AP] = {
>> >>> +               .name = "s2mps13_ap",
>> >>> +               .ops = &s2mps11_clk_ops,
>> >>> +               .flags = CLK_IS_ROOT,
>> >>> +       },
>> >>> +       [S2MPS11_CLK_CP] = {
>> >>> +               .name = "s2mps13_cp",
>> >>> +               .ops = &s2mps11_clk_ops,
>> >>> +               .flags = CLK_IS_ROOT,
>> >>> +       },
>> >>> +       [S2MPS11_CLK_BT] = {
>> >>> +               .name = "s2mps13_bt",
>> >>> +               .ops = &s2mps11_clk_ops,
>> >>> +               .flags = CLK_IS_ROOT,
>> >>> +       },
>> >>> +};
>> >>> +
>> >>>  static struct clk_init_data s2mps14_clks_init[S2MPS11_CLKS_NUM] = {
>> >>>         [S2MPS11_CLK_AP] = {
>> >>>                 .name = "s2mps14_ap",
>> >>> @@ -184,6 +203,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
>> >>>                 s2mps11_reg = S2MPS11_REG_RTC_CTRL;
>> >>>                 clks_init = s2mps11_clks_init;
>> >>>                 break;
>> >>> +       case S2MPS13X:
>> >>> +               s2mps11_reg = S2MPS13_REG_RTCCTRL;
>> >>> +               clks_init = s2mps13_clks_init;
>> >>> +               break;
>> >>>         case S2MPS14X:
>> >>>                 s2mps11_reg = S2MPS14_REG_RTCCTRL;
>> >>>                 clks_init = s2mps14_clks_init;
>> >>> @@ -279,6 +302,7 @@ static int s2mps11_clk_remove(struct platform_device *pdev)
>> >>>
>> >>>  static const struct platform_device_id s2mps11_clk_id[] = {
>> >>>         { "s2mps11-clk", S2MPS11X},
>> >>> +       { "s2mps13-clk", S2MPS13X},
>> >>>         { "s2mps14-clk", S2MPS14X},
>> >>>         { "s5m8767-clk", S5M8767X},
>> >>>         { },
>> >
>>
>
> --
> 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 majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 3/5] clk: s2mps11: Add the support for S2MPS13 PMIC clock
@ 2014-11-25 15:06             ` Chanwoo Choi
  0 siblings, 0 replies; 30+ messages in thread
From: Chanwoo Choi @ 2014-11-25 15:06 UTC (permalink / raw)
  To: Lee Jones
  Cc: Mike Turquette, Mark Brown, a.zummo-BfzFCNDTiLLj+vYz1yj4TQ,
	Liam Girdwood, sbkim73-Sze3O3UU22JBDgjK7y7TUQ, Samuel Ortiz,
	geunsik.lim-Sze3O3UU22JBDgjK7y7TUQ,
	inki.dae-Sze3O3UU22JBDgjK7y7TUQ, Kyungmin Park,
	Krzysztof Kozłowski, linux-kernel, devicetree

Dear Lee,

Could you pick these patchset without RTC patch?
I'll re-send etc patch separately.

Best Regards,
Chanwoo Choi

On Mon, Nov 24, 2014 at 7:04 PM, Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> wrote:
>> Could you please apply this patchset on your tree
>> or Do we wait the Ack from RTC mainatiner for patch 4?
>
> We still need an Ack from Alessandro.
>
>> On 11/20/2014 01:43 AM, Lee Jones wrote:
>> > On Tue, 18 Nov 2014, Mike Turquette wrote:
>> >
>> >> Quoting Chanwoo Choi (2014-11-18 00:59:41)
>> >>> This patch adds the support for S2MPS13 PMIC clock which is same with existing
>> >>> S2MPS14 RTC IP. But, S2MPS13 uses all of clocks (32khz_{ap|bt|cp}).
>> >>>
>> >>> Cc: Mike Turquette <mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
>> >>> Signed-off-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
>> >>> Reviewed-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
>> >>
>> >> Applied to clk-next.
>> >
>> > I'm pretty sure you can't do that.  You have a dependency on
>> > linux/mfd/samsung/s2mps13.h, which is satisfied in one of the earlier
>> > patches in the set.  If you'd care to just provide an Ack for this
>> > patch, I can send you a pull-request with the decencies met.
>> >
>> >>> ---
>> >>>  drivers/clk/clk-s2mps11.c | 24 ++++++++++++++++++++++++
>> >>>  1 file changed, 24 insertions(+)
>> >>>
>> >>> diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c
>> >>> index b7797fb..7bb13af 100644
>> >>> --- a/drivers/clk/clk-s2mps11.c
>> >>> +++ b/drivers/clk/clk-s2mps11.c
>> >>> @@ -23,6 +23,7 @@
>> >>>  #include <linux/clk-provider.h>
>> >>>  #include <linux/platform_device.h>
>> >>>  #include <linux/mfd/samsung/s2mps11.h>
>> >>> +#include <linux/mfd/samsung/s2mps13.h>
>> >>>  #include <linux/mfd/samsung/s2mps14.h>
>> >>>  #include <linux/mfd/samsung/s5m8767.h>
>> >>>  #include <linux/mfd/samsung/core.h>
>> >>> @@ -120,6 +121,24 @@ static struct clk_init_data s2mps11_clks_init[S2MPS11_CLKS_NUM] = {
>> >>>         },
>> >>>  };
>> >>>
>> >>> +static struct clk_init_data s2mps13_clks_init[S2MPS11_CLKS_NUM] = {
>> >>> +       [S2MPS11_CLK_AP] = {
>> >>> +               .name = "s2mps13_ap",
>> >>> +               .ops = &s2mps11_clk_ops,
>> >>> +               .flags = CLK_IS_ROOT,
>> >>> +       },
>> >>> +       [S2MPS11_CLK_CP] = {
>> >>> +               .name = "s2mps13_cp",
>> >>> +               .ops = &s2mps11_clk_ops,
>> >>> +               .flags = CLK_IS_ROOT,
>> >>> +       },
>> >>> +       [S2MPS11_CLK_BT] = {
>> >>> +               .name = "s2mps13_bt",
>> >>> +               .ops = &s2mps11_clk_ops,
>> >>> +               .flags = CLK_IS_ROOT,
>> >>> +       },
>> >>> +};
>> >>> +
>> >>>  static struct clk_init_data s2mps14_clks_init[S2MPS11_CLKS_NUM] = {
>> >>>         [S2MPS11_CLK_AP] = {
>> >>>                 .name = "s2mps14_ap",
>> >>> @@ -184,6 +203,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
>> >>>                 s2mps11_reg = S2MPS11_REG_RTC_CTRL;
>> >>>                 clks_init = s2mps11_clks_init;
>> >>>                 break;
>> >>> +       case S2MPS13X:
>> >>> +               s2mps11_reg = S2MPS13_REG_RTCCTRL;
>> >>> +               clks_init = s2mps13_clks_init;
>> >>> +               break;
>> >>>         case S2MPS14X:
>> >>>                 s2mps11_reg = S2MPS14_REG_RTCCTRL;
>> >>>                 clks_init = s2mps14_clks_init;
>> >>> @@ -279,6 +302,7 @@ static int s2mps11_clk_remove(struct platform_device *pdev)
>> >>>
>> >>>  static const struct platform_device_id s2mps11_clk_id[] = {
>> >>>         { "s2mps11-clk", S2MPS11X},
>> >>> +       { "s2mps13-clk", S2MPS13X},
>> >>>         { "s2mps14-clk", S2MPS14X},
>> >>>         { "s5m8767-clk", S5M8767X},
>> >>>         { },
>> >
>>
>
> --
> 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 majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 1/5] mfd: sec-core: Add support for S2MPS13 device
@ 2014-11-25 15:50     ` Lee Jones
  0 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2014-11-25 15:50 UTC (permalink / raw)
  To: Chanwoo Choi
  Cc: broonie, mturquette, a.zummo, lgirdwood, sbkim73, sameo,
	geunsik.lim, inki.dae, kyungmin.park, k.kozlowski, linux-kernel,
	devicetree

On Tue, 18 Nov 2014, Chanwoo Choi wrote:

> This patch adds the support for Samsung S2MPS13 PMIC device to the sec-core MFD
> driver. The S2MPS13 is very similar with existing S2MPS14 and includes PMIC/
> RTC/CLOCK devices.
> 
> Cc: Lee Jones <lee.jones@linaro.org>
> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> Acked-by: Sangbeom Kim <sbkim73@samsung.com>
> Acked-by: Lee Jones <lee.jones@linaro.org>
> ---
>  drivers/mfd/sec-core.c           | 16 ++++++++++++++++
>  drivers/mfd/sec-irq.c            | 23 +++++++++++++++++------
>  include/linux/mfd/samsung/core.h |  1 +
>  3 files changed, 34 insertions(+), 6 deletions(-)

Applied, thanks.

> diff --git a/drivers/mfd/sec-core.c b/drivers/mfd/sec-core.c
> index 5993608..868f03d 100644
> --- a/drivers/mfd/sec-core.c
> +++ b/drivers/mfd/sec-core.c
> @@ -73,6 +73,15 @@ static const struct mfd_cell s2mps11_devs[] = {
>  	}
>  };
>  
> +static const struct mfd_cell s2mps13_devs[] = {
> +	{ .name = "s2mps13-pmic", },
> +	{ .name = "s2mps13-rtc", },
> +	{
> +		.name = "s2mps13-clk",
> +		.of_compatible = "samsung,s2mps13-clk",
> +	},
> +};
> +
>  static const struct mfd_cell s2mps14_devs[] = {
>  	{
>  		.name = "s2mps14-pmic",
> @@ -107,6 +116,9 @@ static const struct of_device_id sec_dt_match[] = {
>  		.compatible = "samsung,s2mps11-pmic",
>  		.data = (void *)S2MPS11X,
>  	}, {
> +		.compatible = "samsung,s2mps13-pmic",
> +		.data = (void *)S2MPS13X,
> +	}, {
>  		.compatible = "samsung,s2mps14-pmic",
>  		.data = (void *)S2MPS14X,
>  	}, {
> @@ -377,6 +389,10 @@ static int sec_pmic_probe(struct i2c_client *i2c,
>  		sec_devs = s2mps11_devs;
>  		num_sec_devs = ARRAY_SIZE(s2mps11_devs);
>  		break;
> +	case S2MPS13X:
> +		sec_devs = s2mps13_devs;
> +		num_sec_devs = ARRAY_SIZE(s2mps13_devs);
> +		break;
>  	case S2MPS14X:
>  		sec_devs = s2mps14_devs;
>  		num_sec_devs = ARRAY_SIZE(s2mps14_devs);
> diff --git a/drivers/mfd/sec-irq.c b/drivers/mfd/sec-irq.c
> index f9a5786..ba86a91 100644
> --- a/drivers/mfd/sec-irq.c
> +++ b/drivers/mfd/sec-irq.c
> @@ -389,14 +389,22 @@ static const struct regmap_irq_chip s2mps11_irq_chip = {
>  	.ack_base = S2MPS11_REG_INT1,
>  };
>  
> +#define S2MPS1X_IRQ_CHIP_COMMON_DATA		\
> +	.irqs = s2mps14_irqs,			\
> +	.num_irqs = ARRAY_SIZE(s2mps14_irqs),	\
> +	.num_regs = 3,				\
> +	.status_base = S2MPS14_REG_INT1,	\
> +	.mask_base = S2MPS14_REG_INT1M,		\
> +	.ack_base = S2MPS14_REG_INT1		\
> +
> +static const struct regmap_irq_chip s2mps13_irq_chip = {
> +	.name = "s2mps13",
> +	S2MPS1X_IRQ_CHIP_COMMON_DATA,
> +};
> +
>  static const struct regmap_irq_chip s2mps14_irq_chip = {
>  	.name = "s2mps14",
> -	.irqs = s2mps14_irqs,
> -	.num_irqs = ARRAY_SIZE(s2mps14_irqs),
> -	.num_regs = 3,
> -	.status_base = S2MPS14_REG_INT1,
> -	.mask_base = S2MPS14_REG_INT1M,
> -	.ack_base = S2MPS14_REG_INT1,
> +	S2MPS1X_IRQ_CHIP_COMMON_DATA,
>  };
>  
>  static const struct regmap_irq_chip s2mpu02_irq_chip = {
> @@ -452,6 +460,9 @@ int sec_irq_init(struct sec_pmic_dev *sec_pmic)
>  	case S2MPS11X:
>  		sec_irq_chip = &s2mps11_irq_chip;
>  		break;
> +	case S2MPS13X:
> +		sec_irq_chip = &s2mps13_irq_chip;
> +		break;
>  	case S2MPS14X:
>  		sec_irq_chip = &s2mps14_irq_chip;
>  		break;
> diff --git a/include/linux/mfd/samsung/core.h b/include/linux/mfd/samsung/core.h
> index 1825eda..0c0343e 100644
> --- a/include/linux/mfd/samsung/core.h
> +++ b/include/linux/mfd/samsung/core.h
> @@ -41,6 +41,7 @@ enum sec_device_type {
>  	S5M8767X,
>  	S2MPA01,
>  	S2MPS11X,
> +	S2MPS13X,
>  	S2MPS14X,
>  	S2MPU02,
>  };

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 1/5] mfd: sec-core: Add support for S2MPS13 device
@ 2014-11-25 15:50     ` Lee Jones
  0 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2014-11-25 15:50 UTC (permalink / raw)
  To: Chanwoo Choi
  Cc: broonie-DgEjT+Ai2ygdnm+yROfE0A,
	mturquette-QSEj5FYQhm4dnm+yROfE0A,
	a.zummo-BfzFCNDTiLLj+vYz1yj4TQ, lgirdwood-Re5JQEeQqe8AvxtiuMwx3w,
	sbkim73-Sze3O3UU22JBDgjK7y7TUQ, sameo-VuQAYsv1563Yd54FQh9/CA,
	geunsik.lim-Sze3O3UU22JBDgjK7y7TUQ,
	inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
	kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
	k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

On Tue, 18 Nov 2014, Chanwoo Choi wrote:

> This patch adds the support for Samsung S2MPS13 PMIC device to the sec-core MFD
> driver. The S2MPS13 is very similar with existing S2MPS14 and includes PMIC/
> RTC/CLOCK devices.
> 
> Cc: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
> Signed-off-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> Acked-by: Sangbeom Kim <sbkim73-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> Acked-by: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
> ---
>  drivers/mfd/sec-core.c           | 16 ++++++++++++++++
>  drivers/mfd/sec-irq.c            | 23 +++++++++++++++++------
>  include/linux/mfd/samsung/core.h |  1 +
>  3 files changed, 34 insertions(+), 6 deletions(-)

Applied, thanks.

> diff --git a/drivers/mfd/sec-core.c b/drivers/mfd/sec-core.c
> index 5993608..868f03d 100644
> --- a/drivers/mfd/sec-core.c
> +++ b/drivers/mfd/sec-core.c
> @@ -73,6 +73,15 @@ static const struct mfd_cell s2mps11_devs[] = {
>  	}
>  };
>  
> +static const struct mfd_cell s2mps13_devs[] = {
> +	{ .name = "s2mps13-pmic", },
> +	{ .name = "s2mps13-rtc", },
> +	{
> +		.name = "s2mps13-clk",
> +		.of_compatible = "samsung,s2mps13-clk",
> +	},
> +};
> +
>  static const struct mfd_cell s2mps14_devs[] = {
>  	{
>  		.name = "s2mps14-pmic",
> @@ -107,6 +116,9 @@ static const struct of_device_id sec_dt_match[] = {
>  		.compatible = "samsung,s2mps11-pmic",
>  		.data = (void *)S2MPS11X,
>  	}, {
> +		.compatible = "samsung,s2mps13-pmic",
> +		.data = (void *)S2MPS13X,
> +	}, {
>  		.compatible = "samsung,s2mps14-pmic",
>  		.data = (void *)S2MPS14X,
>  	}, {
> @@ -377,6 +389,10 @@ static int sec_pmic_probe(struct i2c_client *i2c,
>  		sec_devs = s2mps11_devs;
>  		num_sec_devs = ARRAY_SIZE(s2mps11_devs);
>  		break;
> +	case S2MPS13X:
> +		sec_devs = s2mps13_devs;
> +		num_sec_devs = ARRAY_SIZE(s2mps13_devs);
> +		break;
>  	case S2MPS14X:
>  		sec_devs = s2mps14_devs;
>  		num_sec_devs = ARRAY_SIZE(s2mps14_devs);
> diff --git a/drivers/mfd/sec-irq.c b/drivers/mfd/sec-irq.c
> index f9a5786..ba86a91 100644
> --- a/drivers/mfd/sec-irq.c
> +++ b/drivers/mfd/sec-irq.c
> @@ -389,14 +389,22 @@ static const struct regmap_irq_chip s2mps11_irq_chip = {
>  	.ack_base = S2MPS11_REG_INT1,
>  };
>  
> +#define S2MPS1X_IRQ_CHIP_COMMON_DATA		\
> +	.irqs = s2mps14_irqs,			\
> +	.num_irqs = ARRAY_SIZE(s2mps14_irqs),	\
> +	.num_regs = 3,				\
> +	.status_base = S2MPS14_REG_INT1,	\
> +	.mask_base = S2MPS14_REG_INT1M,		\
> +	.ack_base = S2MPS14_REG_INT1		\
> +
> +static const struct regmap_irq_chip s2mps13_irq_chip = {
> +	.name = "s2mps13",
> +	S2MPS1X_IRQ_CHIP_COMMON_DATA,
> +};
> +
>  static const struct regmap_irq_chip s2mps14_irq_chip = {
>  	.name = "s2mps14",
> -	.irqs = s2mps14_irqs,
> -	.num_irqs = ARRAY_SIZE(s2mps14_irqs),
> -	.num_regs = 3,
> -	.status_base = S2MPS14_REG_INT1,
> -	.mask_base = S2MPS14_REG_INT1M,
> -	.ack_base = S2MPS14_REG_INT1,
> +	S2MPS1X_IRQ_CHIP_COMMON_DATA,
>  };
>  
>  static const struct regmap_irq_chip s2mpu02_irq_chip = {
> @@ -452,6 +460,9 @@ int sec_irq_init(struct sec_pmic_dev *sec_pmic)
>  	case S2MPS11X:
>  		sec_irq_chip = &s2mps11_irq_chip;
>  		break;
> +	case S2MPS13X:
> +		sec_irq_chip = &s2mps13_irq_chip;
> +		break;
>  	case S2MPS14X:
>  		sec_irq_chip = &s2mps14_irq_chip;
>  		break;
> diff --git a/include/linux/mfd/samsung/core.h b/include/linux/mfd/samsung/core.h
> index 1825eda..0c0343e 100644
> --- a/include/linux/mfd/samsung/core.h
> +++ b/include/linux/mfd/samsung/core.h
> @@ -41,6 +41,7 @@ enum sec_device_type {
>  	S5M8767X,
>  	S2MPA01,
>  	S2MPS11X,
> +	S2MPS13X,
>  	S2MPS14X,
>  	S2MPU02,
>  };

-- 
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 devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 2/5] regulator: s2mps11: Add support S2MPS13 regulator device
@ 2014-11-25 15:51     ` Lee Jones
  0 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2014-11-25 15:51 UTC (permalink / raw)
  To: Chanwoo Choi
  Cc: broonie, mturquette, a.zummo, lgirdwood, sbkim73, sameo,
	geunsik.lim, inki.dae, kyungmin.park, k.kozlowski, linux-kernel,
	devicetree

On Tue, 18 Nov 2014, Chanwoo Choi wrote:

> This patch adds S2MPS13 regulator device to existing S2MPS11 device driver.
> The S2MPS13 has just different number of regulators from S2MPS14.
> The S2MPS13 regulator device includes LDO[1-40] and BUCK[1-10].
> 
> Cc: Mark Brown <broonie@kernel.org>
> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> Acked-by: Sangbeom Kim <sbkim73@samsung.com>
> Acked-by: Mark Brown <broonie@kernel.org>
> Acked-by: Lee Jones <lee.jones@linaro.org>
> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> ---
>  drivers/mfd/sec-core.c              |  13 +++
>  drivers/regulator/Kconfig           |  10 +-
>  drivers/regulator/s2mps11.c         | 102 +++++++++++++++++++-
>  include/linux/mfd/samsung/core.h    |   1 +
>  include/linux/mfd/samsung/s2mps13.h | 186 ++++++++++++++++++++++++++++++++++++
>  5 files changed, 304 insertions(+), 8 deletions(-)
>  create mode 100644 include/linux/mfd/samsung/s2mps13.h

Applied, thanks.

> diff --git a/drivers/mfd/sec-core.c b/drivers/mfd/sec-core.c
> index 868f03d..0a7bc43 100644
> --- a/drivers/mfd/sec-core.c
> +++ b/drivers/mfd/sec-core.c
> @@ -27,6 +27,7 @@
>  #include <linux/mfd/samsung/irq.h>
>  #include <linux/mfd/samsung/s2mpa01.h>
>  #include <linux/mfd/samsung/s2mps11.h>
> +#include <linux/mfd/samsung/s2mps13.h>
>  #include <linux/mfd/samsung/s2mps14.h>
>  #include <linux/mfd/samsung/s2mpu02.h>
>  #include <linux/mfd/samsung/s5m8763.h>
> @@ -205,6 +206,15 @@ static const struct regmap_config s2mps11_regmap_config = {
>  	.cache_type = REGCACHE_FLAT,
>  };
>  
> +static const struct regmap_config s2mps13_regmap_config = {
> +	.reg_bits = 8,
> +	.val_bits = 8,
> +
> +	.max_register = S2MPS13_REG_LDODSCH5,
> +	.volatile_reg = s2mps11_volatile,
> +	.cache_type = REGCACHE_FLAT,
> +};
> +
>  static const struct regmap_config s2mps14_regmap_config = {
>  	.reg_bits = 8,
>  	.val_bits = 8,
> @@ -336,6 +346,9 @@ static int sec_pmic_probe(struct i2c_client *i2c,
>  	case S2MPS11X:
>  		regmap = &s2mps11_regmap_config;
>  		break;
> +	case S2MPS13X:
> +		regmap = &s2mps13_regmap_config;
> +		break;
>  	case S2MPS14X:
>  		regmap = &s2mps14_regmap_config;
>  		break;
> diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
> index 55d7b7b..5e06134 100644
> --- a/drivers/regulator/Kconfig
> +++ b/drivers/regulator/Kconfig
> @@ -529,13 +529,13 @@ config REGULATOR_S2MPA01
>  	 via I2C bus. S2MPA01 has 10 Bucks and 26 LDO outputs.
>  
>  config REGULATOR_S2MPS11
> -	tristate "Samsung S2MPS11/S2MPS14/S2MPU02 voltage regulator"
> +	tristate "Samsung S2MPS11/S2MPS13/S2MPS14/S2MPU02 voltage regulator"
>  	depends on MFD_SEC_CORE
>  	help
> -	 This driver supports a Samsung S2MPS11/S2MPS14/S2MPU02 voltage output
> -	 regulator via I2C bus. The chip is comprised of high efficient Buck
> -	 converters including Dual-Phase Buck converter, Buck-Boost converter,
> -	 various LDOs.
> +	 This driver supports a Samsung S2MPS11/S2MPS13/S2MPS14/S2MPU02 voltage
> +	 output regulator via I2C bus. The chip is comprised of high efficient
> +	 Buck converters including Dual-Phase Buck converter, Buck-Boost
> +	 converter, various LDOs.
>  
>  config REGULATOR_S5M8767
>  	tristate "Samsung S5M8767A voltage regulator"
> diff --git a/drivers/regulator/s2mps11.c b/drivers/regulator/s2mps11.c
> index adab82d..738dc77 100644
> --- a/drivers/regulator/s2mps11.c
> +++ b/drivers/regulator/s2mps11.c
> @@ -30,6 +30,7 @@
>  #include <linux/of_gpio.h>
>  #include <linux/mfd/samsung/core.h>
>  #include <linux/mfd/samsung/s2mps11.h>
> +#include <linux/mfd/samsung/s2mps13.h>
>  #include <linux/mfd/samsung/s2mps14.h>
>  #include <linux/mfd/samsung/s2mpu02.h>
>  
> @@ -45,10 +46,10 @@ struct s2mps11_info {
>  	enum sec_device_type dev_type;
>  
>  	/*
> -	 * One bit for each S2MPS14/S2MPU02 regulator whether the suspend mode
> -	 * was enabled.
> +	 * One bit for each S2MPS13/S2MPS14/S2MPU02 regulator whether
> +	 * the suspend mode was enabled.
>  	 */
> -	unsigned long long s2mps14_suspend_state:35;
> +	unsigned long long s2mps14_suspend_state:50;
>  
>  	/* Array of size rdev_num with GPIO-s for external sleep control */
>  	int *ext_control_gpio;
> @@ -369,12 +370,101 @@ static const struct regulator_desc s2mps11_regulators[] = {
>  	regulator_desc_s2mps11_buck6_10(10, MIN_750_MV, STEP_12_5_MV),
>  };
>  
> +static struct regulator_ops s2mps14_reg_ops;
> +
> +#define regulator_desc_s2mps13_ldo(num, min, step, min_sel) {	\
> +	.name		= "LDO"#num,				\
> +	.id		= S2MPS13_LDO##num,			\
> +	.ops		= &s2mps14_reg_ops,			\
> +	.type		= REGULATOR_VOLTAGE,			\
> +	.owner		= THIS_MODULE,				\
> +	.min_uV		= min,					\
> +	.uV_step	= step,					\
> +	.linear_min_sel	= min_sel,				\
> +	.n_voltages	= S2MPS14_LDO_N_VOLTAGES,		\
> +	.vsel_reg	= S2MPS13_REG_L1CTRL + num - 1,		\
> +	.vsel_mask	= S2MPS14_LDO_VSEL_MASK,		\
> +	.enable_reg	= S2MPS13_REG_L1CTRL + num - 1,		\
> +	.enable_mask	= S2MPS14_ENABLE_MASK			\
> +}
> +
> +#define regulator_desc_s2mps13_buck(num, min, step, min_sel) {	\
> +	.name		= "BUCK"#num,				\
> +	.id		= S2MPS13_BUCK##num,			\
> +	.ops		= &s2mps14_reg_ops,			\
> +	.type		= REGULATOR_VOLTAGE,			\
> +	.owner		= THIS_MODULE,				\
> +	.min_uV		= min,					\
> +	.uV_step	= step,					\
> +	.linear_min_sel	= min_sel,				\
> +	.n_voltages	= S2MPS14_BUCK_N_VOLTAGES,		\
> +	.ramp_delay	= S2MPS13_BUCK_RAMP_DELAY,		\
> +	.vsel_reg	= S2MPS13_REG_B1OUT + (num - 1) * 2,	\
> +	.vsel_mask	= S2MPS14_BUCK_VSEL_MASK,		\
> +	.enable_reg	= S2MPS13_REG_B1CTRL + (num - 1) * 2,	\
> +	.enable_mask	= S2MPS14_ENABLE_MASK			\
> +}
> +
> +static const struct regulator_desc s2mps13_regulators[] = {
> +	regulator_desc_s2mps13_ldo(1,  MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(2,  MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(3,  MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(4,  MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(5,  MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(6,  MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(7,  MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(8,  MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(9,  MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(10, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(11, MIN_800_MV,  STEP_25_MV,   0x10),
> +	regulator_desc_s2mps13_ldo(12, MIN_800_MV,  STEP_25_MV,   0x10),
> +	regulator_desc_s2mps13_ldo(13, MIN_800_MV,  STEP_25_MV,   0x10),
> +	regulator_desc_s2mps13_ldo(14, MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(15, MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(16, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(17, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(18, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(19, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(20, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(21, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(22, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(23, MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(24, MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(25, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(26, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(27, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(28, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(29, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(30, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(31, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(32, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(33, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(34, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(35, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(36, MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(37, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(38, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(39, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(40, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_buck(1,  MIN_500_MV,  STEP_6_25_MV, 0x10),
> +	regulator_desc_s2mps13_buck(2,  MIN_500_MV,  STEP_6_25_MV, 0x10),
> +	regulator_desc_s2mps13_buck(3,  MIN_500_MV,  STEP_6_25_MV, 0x10),
> +	regulator_desc_s2mps13_buck(4,  MIN_500_MV,  STEP_6_25_MV, 0x10),
> +	regulator_desc_s2mps13_buck(5,  MIN_500_MV,  STEP_6_25_MV, 0x10),
> +	regulator_desc_s2mps13_buck(6,  MIN_500_MV,  STEP_6_25_MV, 0x10),
> +	regulator_desc_s2mps13_buck(7,  MIN_500_MV,  STEP_6_25_MV, 0x10),
> +	regulator_desc_s2mps13_buck(8,  MIN_1000_MV, STEP_12_5_MV, 0x20),
> +	regulator_desc_s2mps13_buck(9,  MIN_1000_MV, STEP_12_5_MV, 0x20),
> +	regulator_desc_s2mps13_buck(10, MIN_500_MV,  STEP_6_25_MV, 0x10),
> +};
> +
>  static int s2mps14_regulator_enable(struct regulator_dev *rdev)
>  {
>  	struct s2mps11_info *s2mps11 = rdev_get_drvdata(rdev);
>  	unsigned int val;
>  
>  	switch (s2mps11->dev_type) {
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		if (s2mps11->s2mps14_suspend_state & (1 << rdev_get_id(rdev)))
>  			val = S2MPS14_ENABLE_SUSPEND;
> @@ -406,6 +496,7 @@ static int s2mps14_regulator_set_suspend_disable(struct regulator_dev *rdev)
>  
>  	/* Below LDO should be always on or does not support suspend mode. */
>  	switch (s2mps11->dev_type) {
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		switch (rdev_id) {
>  		case S2MPS14_LDO3:
> @@ -831,6 +922,10 @@ static int s2mps11_pmic_probe(struct platform_device *pdev)
>  		s2mps11->rdev_num = ARRAY_SIZE(s2mps11_regulators);
>  		regulators = s2mps11_regulators;
>  		break;
> +	case S2MPS13X:
> +		s2mps11->rdev_num = ARRAY_SIZE(s2mps13_regulators);
> +		regulators = s2mps13_regulators;
> +		break;
>  	case S2MPS14X:
>  		s2mps11->rdev_num = ARRAY_SIZE(s2mps14_regulators);
>  		regulators = s2mps14_regulators;
> @@ -927,6 +1022,7 @@ out:
>  
>  static const struct platform_device_id s2mps11_pmic_id[] = {
>  	{ "s2mps11-pmic", S2MPS11X},
> +	{ "s2mps13-pmic", S2MPS13X},
>  	{ "s2mps14-pmic", S2MPS14X},
>  	{ "s2mpu02-pmic", S2MPU02},
>  	{ },
> diff --git a/include/linux/mfd/samsung/core.h b/include/linux/mfd/samsung/core.h
> index 0c0343e..3fdb7cf 100644
> --- a/include/linux/mfd/samsung/core.h
> +++ b/include/linux/mfd/samsung/core.h
> @@ -28,6 +28,7 @@
>  #define MIN_800_MV		800000
>  #define MIN_750_MV		750000
>  #define MIN_600_MV		600000
> +#define MIN_500_MV		500000
>  
>  /* Macros to represent steps for LDO/BUCK */
>  #define STEP_50_MV		50000
> diff --git a/include/linux/mfd/samsung/s2mps13.h b/include/linux/mfd/samsung/s2mps13.h
> new file mode 100644
> index 0000000..ce5dda8
> --- /dev/null
> +++ b/include/linux/mfd/samsung/s2mps13.h
> @@ -0,0 +1,186 @@
> +/*
> + * s2mps13.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_S2MPS13_H
> +#define __LINUX_MFD_S2MPS13_H
> +
> +/* S2MPS13 registers */
> +enum s2mps13_reg {
> +	S2MPS13_REG_ID,
> +	S2MPS13_REG_INT1,
> +	S2MPS13_REG_INT2,
> +	S2MPS13_REG_INT3,
> +	S2MPS13_REG_INT1M,
> +	S2MPS13_REG_INT2M,
> +	S2MPS13_REG_INT3M,
> +	S2MPS13_REG_ST1,
> +	S2MPS13_REG_ST2,
> +	S2MPS13_REG_PWRONSRC,
> +	S2MPS13_REG_OFFSRC,
> +	S2MPS13_REG_BU_CHG,
> +	S2MPS13_REG_RTCCTRL,
> +	S2MPS13_REG_CTRL1,
> +	S2MPS13_REG_CTRL2,
> +	S2MPS13_REG_RSVD1,
> +	S2MPS13_REG_RSVD2,
> +	S2MPS13_REG_RSVD3,
> +	S2MPS13_REG_RSVD4,
> +	S2MPS13_REG_RSVD5,
> +	S2MPS13_REG_RSVD6,
> +	S2MPS13_REG_CTRL3,
> +	S2MPS13_REG_RSVD7,
> +	S2MPS13_REG_RSVD8,
> +	S2MPS13_REG_WRSTBI,
> +	S2MPS13_REG_B1CTRL,
> +	S2MPS13_REG_B1OUT,
> +	S2MPS13_REG_B2CTRL,
> +	S2MPS13_REG_B2OUT,
> +	S2MPS13_REG_B3CTRL,
> +	S2MPS13_REG_B3OUT,
> +	S2MPS13_REG_B4CTRL,
> +	S2MPS13_REG_B4OUT,
> +	S2MPS13_REG_B5CTRL,
> +	S2MPS13_REG_B5OUT,
> +	S2MPS13_REG_B6CTRL,
> +	S2MPS13_REG_B6OUT,
> +	S2MPS13_REG_B7CTRL,
> +	S2MPS13_REG_B7OUT,
> +	S2MPS13_REG_B8CTRL,
> +	S2MPS13_REG_B8OUT,
> +	S2MPS13_REG_B9CTRL,
> +	S2MPS13_REG_B9OUT,
> +	S2MPS13_REG_B10CTRL,
> +	S2MPS13_REG_B10OUT,
> +	S2MPS13_REG_BB1CTRL,
> +	S2MPS13_REG_BB1OUT,
> +	S2MPS13_REG_BUCK_RAMP1,
> +	S2MPS13_REG_BUCK_RAMP2,
> +	S2MPS13_REG_LDO_DVS1,
> +	S2MPS13_REG_LDO_DVS2,
> +	S2MPS13_REG_LDO_DVS3,
> +	S2MPS13_REG_B6OUT2,
> +	S2MPS13_REG_L1CTRL,
> +	S2MPS13_REG_L2CTRL,
> +	S2MPS13_REG_L3CTRL,
> +	S2MPS13_REG_L4CTRL,
> +	S2MPS13_REG_L5CTRL,
> +	S2MPS13_REG_L6CTRL,
> +	S2MPS13_REG_L7CTRL,
> +	S2MPS13_REG_L8CTRL,
> +	S2MPS13_REG_L9CTRL,
> +	S2MPS13_REG_L10CTRL,
> +	S2MPS13_REG_L11CTRL,
> +	S2MPS13_REG_L12CTRL,
> +	S2MPS13_REG_L13CTRL,
> +	S2MPS13_REG_L14CTRL,
> +	S2MPS13_REG_L15CTRL,
> +	S2MPS13_REG_L16CTRL,
> +	S2MPS13_REG_L17CTRL,
> +	S2MPS13_REG_L18CTRL,
> +	S2MPS13_REG_L19CTRL,
> +	S2MPS13_REG_L20CTRL,
> +	S2MPS13_REG_L21CTRL,
> +	S2MPS13_REG_L22CTRL,
> +	S2MPS13_REG_L23CTRL,
> +	S2MPS13_REG_L24CTRL,
> +	S2MPS13_REG_L25CTRL,
> +	S2MPS13_REG_L26CTRL,
> +	S2MPS13_REG_L27CTRL,
> +	S2MPS13_REG_L28CTRL,
> +	S2MPS13_REG_L30CTRL,
> +	S2MPS13_REG_L31CTRL,
> +	S2MPS13_REG_L32CTRL,
> +	S2MPS13_REG_L33CTRL,
> +	S2MPS13_REG_L34CTRL,
> +	S2MPS13_REG_L35CTRL,
> +	S2MPS13_REG_L36CTRL,
> +	S2MPS13_REG_L37CTRL,
> +	S2MPS13_REG_L38CTRL,
> +	S2MPS13_REG_L39CTRL,
> +	S2MPS13_REG_L40CTRL,
> +	S2MPS13_REG_LDODSCH1,
> +	S2MPS13_REG_LDODSCH2,
> +	S2MPS13_REG_LDODSCH3,
> +	S2MPS13_REG_LDODSCH4,
> +	S2MPS13_REG_LDODSCH5,
> +};
> +
> +/*  regulator ids */
> +enum s2mps13_regulators {
> +	S2MPS13_LDO1,
> +	S2MPS13_LDO2,
> +	S2MPS13_LDO3,
> +	S2MPS13_LDO4,
> +	S2MPS13_LDO5,
> +	S2MPS13_LDO6,
> +	S2MPS13_LDO7,
> +	S2MPS13_LDO8,
> +	S2MPS13_LDO9,
> +	S2MPS13_LDO10,
> +	S2MPS13_LDO11,
> +	S2MPS13_LDO12,
> +	S2MPS13_LDO13,
> +	S2MPS13_LDO14,
> +	S2MPS13_LDO15,
> +	S2MPS13_LDO16,
> +	S2MPS13_LDO17,
> +	S2MPS13_LDO18,
> +	S2MPS13_LDO19,
> +	S2MPS13_LDO20,
> +	S2MPS13_LDO21,
> +	S2MPS13_LDO22,
> +	S2MPS13_LDO23,
> +	S2MPS13_LDO24,
> +	S2MPS13_LDO25,
> +	S2MPS13_LDO26,
> +	S2MPS13_LDO27,
> +	S2MPS13_LDO28,
> +	S2MPS13_LDO29,
> +	S2MPS13_LDO30,
> +	S2MPS13_LDO31,
> +	S2MPS13_LDO32,
> +	S2MPS13_LDO33,
> +	S2MPS13_LDO34,
> +	S2MPS13_LDO35,
> +	S2MPS13_LDO36,
> +	S2MPS13_LDO37,
> +	S2MPS13_LDO38,
> +	S2MPS13_LDO39,
> +	S2MPS13_LDO40,
> +	S2MPS13_BUCK1,
> +	S2MPS13_BUCK2,
> +	S2MPS13_BUCK3,
> +	S2MPS13_BUCK4,
> +	S2MPS13_BUCK5,
> +	S2MPS13_BUCK6,
> +	S2MPS13_BUCK7,
> +	S2MPS13_BUCK8,
> +	S2MPS13_BUCK9,
> +	S2MPS13_BUCK10,
> +
> +	S2MPS13_REGULATOR_MAX,
> +};
> +
> +/*
> + * Default ramp delay in uv/us. Datasheet says that ramp delay can be
> + * controlled however it does not specify which register is used for that.
> + * Let's assume that default value will be set.
> + */
> +#define S2MPS13_BUCK_RAMP_DELAY		12500
> +
> +#endif /*  __LINUX_MFD_S2MPS13_H */

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 2/5] regulator: s2mps11: Add support S2MPS13 regulator device
@ 2014-11-25 15:51     ` Lee Jones
  0 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2014-11-25 15:51 UTC (permalink / raw)
  To: Chanwoo Choi
  Cc: broonie-DgEjT+Ai2ygdnm+yROfE0A,
	mturquette-QSEj5FYQhm4dnm+yROfE0A,
	a.zummo-BfzFCNDTiLLj+vYz1yj4TQ, lgirdwood-Re5JQEeQqe8AvxtiuMwx3w,
	sbkim73-Sze3O3UU22JBDgjK7y7TUQ, sameo-VuQAYsv1563Yd54FQh9/CA,
	geunsik.lim-Sze3O3UU22JBDgjK7y7TUQ,
	inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
	kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
	k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

On Tue, 18 Nov 2014, Chanwoo Choi wrote:

> This patch adds S2MPS13 regulator device to existing S2MPS11 device driver.
> The S2MPS13 has just different number of regulators from S2MPS14.
> The S2MPS13 regulator device includes LDO[1-40] and BUCK[1-10].
> 
> Cc: Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
> Signed-off-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> Acked-by: Sangbeom Kim <sbkim73-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> Acked-by: Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
> Acked-by: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
> Reviewed-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> ---
>  drivers/mfd/sec-core.c              |  13 +++
>  drivers/regulator/Kconfig           |  10 +-
>  drivers/regulator/s2mps11.c         | 102 +++++++++++++++++++-
>  include/linux/mfd/samsung/core.h    |   1 +
>  include/linux/mfd/samsung/s2mps13.h | 186 ++++++++++++++++++++++++++++++++++++
>  5 files changed, 304 insertions(+), 8 deletions(-)
>  create mode 100644 include/linux/mfd/samsung/s2mps13.h

Applied, thanks.

> diff --git a/drivers/mfd/sec-core.c b/drivers/mfd/sec-core.c
> index 868f03d..0a7bc43 100644
> --- a/drivers/mfd/sec-core.c
> +++ b/drivers/mfd/sec-core.c
> @@ -27,6 +27,7 @@
>  #include <linux/mfd/samsung/irq.h>
>  #include <linux/mfd/samsung/s2mpa01.h>
>  #include <linux/mfd/samsung/s2mps11.h>
> +#include <linux/mfd/samsung/s2mps13.h>
>  #include <linux/mfd/samsung/s2mps14.h>
>  #include <linux/mfd/samsung/s2mpu02.h>
>  #include <linux/mfd/samsung/s5m8763.h>
> @@ -205,6 +206,15 @@ static const struct regmap_config s2mps11_regmap_config = {
>  	.cache_type = REGCACHE_FLAT,
>  };
>  
> +static const struct regmap_config s2mps13_regmap_config = {
> +	.reg_bits = 8,
> +	.val_bits = 8,
> +
> +	.max_register = S2MPS13_REG_LDODSCH5,
> +	.volatile_reg = s2mps11_volatile,
> +	.cache_type = REGCACHE_FLAT,
> +};
> +
>  static const struct regmap_config s2mps14_regmap_config = {
>  	.reg_bits = 8,
>  	.val_bits = 8,
> @@ -336,6 +346,9 @@ static int sec_pmic_probe(struct i2c_client *i2c,
>  	case S2MPS11X:
>  		regmap = &s2mps11_regmap_config;
>  		break;
> +	case S2MPS13X:
> +		regmap = &s2mps13_regmap_config;
> +		break;
>  	case S2MPS14X:
>  		regmap = &s2mps14_regmap_config;
>  		break;
> diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
> index 55d7b7b..5e06134 100644
> --- a/drivers/regulator/Kconfig
> +++ b/drivers/regulator/Kconfig
> @@ -529,13 +529,13 @@ config REGULATOR_S2MPA01
>  	 via I2C bus. S2MPA01 has 10 Bucks and 26 LDO outputs.
>  
>  config REGULATOR_S2MPS11
> -	tristate "Samsung S2MPS11/S2MPS14/S2MPU02 voltage regulator"
> +	tristate "Samsung S2MPS11/S2MPS13/S2MPS14/S2MPU02 voltage regulator"
>  	depends on MFD_SEC_CORE
>  	help
> -	 This driver supports a Samsung S2MPS11/S2MPS14/S2MPU02 voltage output
> -	 regulator via I2C bus. The chip is comprised of high efficient Buck
> -	 converters including Dual-Phase Buck converter, Buck-Boost converter,
> -	 various LDOs.
> +	 This driver supports a Samsung S2MPS11/S2MPS13/S2MPS14/S2MPU02 voltage
> +	 output regulator via I2C bus. The chip is comprised of high efficient
> +	 Buck converters including Dual-Phase Buck converter, Buck-Boost
> +	 converter, various LDOs.
>  
>  config REGULATOR_S5M8767
>  	tristate "Samsung S5M8767A voltage regulator"
> diff --git a/drivers/regulator/s2mps11.c b/drivers/regulator/s2mps11.c
> index adab82d..738dc77 100644
> --- a/drivers/regulator/s2mps11.c
> +++ b/drivers/regulator/s2mps11.c
> @@ -30,6 +30,7 @@
>  #include <linux/of_gpio.h>
>  #include <linux/mfd/samsung/core.h>
>  #include <linux/mfd/samsung/s2mps11.h>
> +#include <linux/mfd/samsung/s2mps13.h>
>  #include <linux/mfd/samsung/s2mps14.h>
>  #include <linux/mfd/samsung/s2mpu02.h>
>  
> @@ -45,10 +46,10 @@ struct s2mps11_info {
>  	enum sec_device_type dev_type;
>  
>  	/*
> -	 * One bit for each S2MPS14/S2MPU02 regulator whether the suspend mode
> -	 * was enabled.
> +	 * One bit for each S2MPS13/S2MPS14/S2MPU02 regulator whether
> +	 * the suspend mode was enabled.
>  	 */
> -	unsigned long long s2mps14_suspend_state:35;
> +	unsigned long long s2mps14_suspend_state:50;
>  
>  	/* Array of size rdev_num with GPIO-s for external sleep control */
>  	int *ext_control_gpio;
> @@ -369,12 +370,101 @@ static const struct regulator_desc s2mps11_regulators[] = {
>  	regulator_desc_s2mps11_buck6_10(10, MIN_750_MV, STEP_12_5_MV),
>  };
>  
> +static struct regulator_ops s2mps14_reg_ops;
> +
> +#define regulator_desc_s2mps13_ldo(num, min, step, min_sel) {	\
> +	.name		= "LDO"#num,				\
> +	.id		= S2MPS13_LDO##num,			\
> +	.ops		= &s2mps14_reg_ops,			\
> +	.type		= REGULATOR_VOLTAGE,			\
> +	.owner		= THIS_MODULE,				\
> +	.min_uV		= min,					\
> +	.uV_step	= step,					\
> +	.linear_min_sel	= min_sel,				\
> +	.n_voltages	= S2MPS14_LDO_N_VOLTAGES,		\
> +	.vsel_reg	= S2MPS13_REG_L1CTRL + num - 1,		\
> +	.vsel_mask	= S2MPS14_LDO_VSEL_MASK,		\
> +	.enable_reg	= S2MPS13_REG_L1CTRL + num - 1,		\
> +	.enable_mask	= S2MPS14_ENABLE_MASK			\
> +}
> +
> +#define regulator_desc_s2mps13_buck(num, min, step, min_sel) {	\
> +	.name		= "BUCK"#num,				\
> +	.id		= S2MPS13_BUCK##num,			\
> +	.ops		= &s2mps14_reg_ops,			\
> +	.type		= REGULATOR_VOLTAGE,			\
> +	.owner		= THIS_MODULE,				\
> +	.min_uV		= min,					\
> +	.uV_step	= step,					\
> +	.linear_min_sel	= min_sel,				\
> +	.n_voltages	= S2MPS14_BUCK_N_VOLTAGES,		\
> +	.ramp_delay	= S2MPS13_BUCK_RAMP_DELAY,		\
> +	.vsel_reg	= S2MPS13_REG_B1OUT + (num - 1) * 2,	\
> +	.vsel_mask	= S2MPS14_BUCK_VSEL_MASK,		\
> +	.enable_reg	= S2MPS13_REG_B1CTRL + (num - 1) * 2,	\
> +	.enable_mask	= S2MPS14_ENABLE_MASK			\
> +}
> +
> +static const struct regulator_desc s2mps13_regulators[] = {
> +	regulator_desc_s2mps13_ldo(1,  MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(2,  MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(3,  MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(4,  MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(5,  MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(6,  MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(7,  MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(8,  MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(9,  MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(10, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(11, MIN_800_MV,  STEP_25_MV,   0x10),
> +	regulator_desc_s2mps13_ldo(12, MIN_800_MV,  STEP_25_MV,   0x10),
> +	regulator_desc_s2mps13_ldo(13, MIN_800_MV,  STEP_25_MV,   0x10),
> +	regulator_desc_s2mps13_ldo(14, MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(15, MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(16, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(17, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(18, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(19, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(20, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(21, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(22, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(23, MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(24, MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(25, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(26, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(27, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(28, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(29, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(30, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(31, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(32, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(33, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(34, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(35, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(36, MIN_800_MV,  STEP_12_5_MV, 0x00),
> +	regulator_desc_s2mps13_ldo(37, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(38, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_ldo(39, MIN_1000_MV, STEP_25_MV,   0x08),
> +	regulator_desc_s2mps13_ldo(40, MIN_1400_MV, STEP_50_MV,   0x0C),
> +	regulator_desc_s2mps13_buck(1,  MIN_500_MV,  STEP_6_25_MV, 0x10),
> +	regulator_desc_s2mps13_buck(2,  MIN_500_MV,  STEP_6_25_MV, 0x10),
> +	regulator_desc_s2mps13_buck(3,  MIN_500_MV,  STEP_6_25_MV, 0x10),
> +	regulator_desc_s2mps13_buck(4,  MIN_500_MV,  STEP_6_25_MV, 0x10),
> +	regulator_desc_s2mps13_buck(5,  MIN_500_MV,  STEP_6_25_MV, 0x10),
> +	regulator_desc_s2mps13_buck(6,  MIN_500_MV,  STEP_6_25_MV, 0x10),
> +	regulator_desc_s2mps13_buck(7,  MIN_500_MV,  STEP_6_25_MV, 0x10),
> +	regulator_desc_s2mps13_buck(8,  MIN_1000_MV, STEP_12_5_MV, 0x20),
> +	regulator_desc_s2mps13_buck(9,  MIN_1000_MV, STEP_12_5_MV, 0x20),
> +	regulator_desc_s2mps13_buck(10, MIN_500_MV,  STEP_6_25_MV, 0x10),
> +};
> +
>  static int s2mps14_regulator_enable(struct regulator_dev *rdev)
>  {
>  	struct s2mps11_info *s2mps11 = rdev_get_drvdata(rdev);
>  	unsigned int val;
>  
>  	switch (s2mps11->dev_type) {
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		if (s2mps11->s2mps14_suspend_state & (1 << rdev_get_id(rdev)))
>  			val = S2MPS14_ENABLE_SUSPEND;
> @@ -406,6 +496,7 @@ static int s2mps14_regulator_set_suspend_disable(struct regulator_dev *rdev)
>  
>  	/* Below LDO should be always on or does not support suspend mode. */
>  	switch (s2mps11->dev_type) {
> +	case S2MPS13X:
>  	case S2MPS14X:
>  		switch (rdev_id) {
>  		case S2MPS14_LDO3:
> @@ -831,6 +922,10 @@ static int s2mps11_pmic_probe(struct platform_device *pdev)
>  		s2mps11->rdev_num = ARRAY_SIZE(s2mps11_regulators);
>  		regulators = s2mps11_regulators;
>  		break;
> +	case S2MPS13X:
> +		s2mps11->rdev_num = ARRAY_SIZE(s2mps13_regulators);
> +		regulators = s2mps13_regulators;
> +		break;
>  	case S2MPS14X:
>  		s2mps11->rdev_num = ARRAY_SIZE(s2mps14_regulators);
>  		regulators = s2mps14_regulators;
> @@ -927,6 +1022,7 @@ out:
>  
>  static const struct platform_device_id s2mps11_pmic_id[] = {
>  	{ "s2mps11-pmic", S2MPS11X},
> +	{ "s2mps13-pmic", S2MPS13X},
>  	{ "s2mps14-pmic", S2MPS14X},
>  	{ "s2mpu02-pmic", S2MPU02},
>  	{ },
> diff --git a/include/linux/mfd/samsung/core.h b/include/linux/mfd/samsung/core.h
> index 0c0343e..3fdb7cf 100644
> --- a/include/linux/mfd/samsung/core.h
> +++ b/include/linux/mfd/samsung/core.h
> @@ -28,6 +28,7 @@
>  #define MIN_800_MV		800000
>  #define MIN_750_MV		750000
>  #define MIN_600_MV		600000
> +#define MIN_500_MV		500000
>  
>  /* Macros to represent steps for LDO/BUCK */
>  #define STEP_50_MV		50000
> diff --git a/include/linux/mfd/samsung/s2mps13.h b/include/linux/mfd/samsung/s2mps13.h
> new file mode 100644
> index 0000000..ce5dda8
> --- /dev/null
> +++ b/include/linux/mfd/samsung/s2mps13.h
> @@ -0,0 +1,186 @@
> +/*
> + * s2mps13.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_S2MPS13_H
> +#define __LINUX_MFD_S2MPS13_H
> +
> +/* S2MPS13 registers */
> +enum s2mps13_reg {
> +	S2MPS13_REG_ID,
> +	S2MPS13_REG_INT1,
> +	S2MPS13_REG_INT2,
> +	S2MPS13_REG_INT3,
> +	S2MPS13_REG_INT1M,
> +	S2MPS13_REG_INT2M,
> +	S2MPS13_REG_INT3M,
> +	S2MPS13_REG_ST1,
> +	S2MPS13_REG_ST2,
> +	S2MPS13_REG_PWRONSRC,
> +	S2MPS13_REG_OFFSRC,
> +	S2MPS13_REG_BU_CHG,
> +	S2MPS13_REG_RTCCTRL,
> +	S2MPS13_REG_CTRL1,
> +	S2MPS13_REG_CTRL2,
> +	S2MPS13_REG_RSVD1,
> +	S2MPS13_REG_RSVD2,
> +	S2MPS13_REG_RSVD3,
> +	S2MPS13_REG_RSVD4,
> +	S2MPS13_REG_RSVD5,
> +	S2MPS13_REG_RSVD6,
> +	S2MPS13_REG_CTRL3,
> +	S2MPS13_REG_RSVD7,
> +	S2MPS13_REG_RSVD8,
> +	S2MPS13_REG_WRSTBI,
> +	S2MPS13_REG_B1CTRL,
> +	S2MPS13_REG_B1OUT,
> +	S2MPS13_REG_B2CTRL,
> +	S2MPS13_REG_B2OUT,
> +	S2MPS13_REG_B3CTRL,
> +	S2MPS13_REG_B3OUT,
> +	S2MPS13_REG_B4CTRL,
> +	S2MPS13_REG_B4OUT,
> +	S2MPS13_REG_B5CTRL,
> +	S2MPS13_REG_B5OUT,
> +	S2MPS13_REG_B6CTRL,
> +	S2MPS13_REG_B6OUT,
> +	S2MPS13_REG_B7CTRL,
> +	S2MPS13_REG_B7OUT,
> +	S2MPS13_REG_B8CTRL,
> +	S2MPS13_REG_B8OUT,
> +	S2MPS13_REG_B9CTRL,
> +	S2MPS13_REG_B9OUT,
> +	S2MPS13_REG_B10CTRL,
> +	S2MPS13_REG_B10OUT,
> +	S2MPS13_REG_BB1CTRL,
> +	S2MPS13_REG_BB1OUT,
> +	S2MPS13_REG_BUCK_RAMP1,
> +	S2MPS13_REG_BUCK_RAMP2,
> +	S2MPS13_REG_LDO_DVS1,
> +	S2MPS13_REG_LDO_DVS2,
> +	S2MPS13_REG_LDO_DVS3,
> +	S2MPS13_REG_B6OUT2,
> +	S2MPS13_REG_L1CTRL,
> +	S2MPS13_REG_L2CTRL,
> +	S2MPS13_REG_L3CTRL,
> +	S2MPS13_REG_L4CTRL,
> +	S2MPS13_REG_L5CTRL,
> +	S2MPS13_REG_L6CTRL,
> +	S2MPS13_REG_L7CTRL,
> +	S2MPS13_REG_L8CTRL,
> +	S2MPS13_REG_L9CTRL,
> +	S2MPS13_REG_L10CTRL,
> +	S2MPS13_REG_L11CTRL,
> +	S2MPS13_REG_L12CTRL,
> +	S2MPS13_REG_L13CTRL,
> +	S2MPS13_REG_L14CTRL,
> +	S2MPS13_REG_L15CTRL,
> +	S2MPS13_REG_L16CTRL,
> +	S2MPS13_REG_L17CTRL,
> +	S2MPS13_REG_L18CTRL,
> +	S2MPS13_REG_L19CTRL,
> +	S2MPS13_REG_L20CTRL,
> +	S2MPS13_REG_L21CTRL,
> +	S2MPS13_REG_L22CTRL,
> +	S2MPS13_REG_L23CTRL,
> +	S2MPS13_REG_L24CTRL,
> +	S2MPS13_REG_L25CTRL,
> +	S2MPS13_REG_L26CTRL,
> +	S2MPS13_REG_L27CTRL,
> +	S2MPS13_REG_L28CTRL,
> +	S2MPS13_REG_L30CTRL,
> +	S2MPS13_REG_L31CTRL,
> +	S2MPS13_REG_L32CTRL,
> +	S2MPS13_REG_L33CTRL,
> +	S2MPS13_REG_L34CTRL,
> +	S2MPS13_REG_L35CTRL,
> +	S2MPS13_REG_L36CTRL,
> +	S2MPS13_REG_L37CTRL,
> +	S2MPS13_REG_L38CTRL,
> +	S2MPS13_REG_L39CTRL,
> +	S2MPS13_REG_L40CTRL,
> +	S2MPS13_REG_LDODSCH1,
> +	S2MPS13_REG_LDODSCH2,
> +	S2MPS13_REG_LDODSCH3,
> +	S2MPS13_REG_LDODSCH4,
> +	S2MPS13_REG_LDODSCH5,
> +};
> +
> +/*  regulator ids */
> +enum s2mps13_regulators {
> +	S2MPS13_LDO1,
> +	S2MPS13_LDO2,
> +	S2MPS13_LDO3,
> +	S2MPS13_LDO4,
> +	S2MPS13_LDO5,
> +	S2MPS13_LDO6,
> +	S2MPS13_LDO7,
> +	S2MPS13_LDO8,
> +	S2MPS13_LDO9,
> +	S2MPS13_LDO10,
> +	S2MPS13_LDO11,
> +	S2MPS13_LDO12,
> +	S2MPS13_LDO13,
> +	S2MPS13_LDO14,
> +	S2MPS13_LDO15,
> +	S2MPS13_LDO16,
> +	S2MPS13_LDO17,
> +	S2MPS13_LDO18,
> +	S2MPS13_LDO19,
> +	S2MPS13_LDO20,
> +	S2MPS13_LDO21,
> +	S2MPS13_LDO22,
> +	S2MPS13_LDO23,
> +	S2MPS13_LDO24,
> +	S2MPS13_LDO25,
> +	S2MPS13_LDO26,
> +	S2MPS13_LDO27,
> +	S2MPS13_LDO28,
> +	S2MPS13_LDO29,
> +	S2MPS13_LDO30,
> +	S2MPS13_LDO31,
> +	S2MPS13_LDO32,
> +	S2MPS13_LDO33,
> +	S2MPS13_LDO34,
> +	S2MPS13_LDO35,
> +	S2MPS13_LDO36,
> +	S2MPS13_LDO37,
> +	S2MPS13_LDO38,
> +	S2MPS13_LDO39,
> +	S2MPS13_LDO40,
> +	S2MPS13_BUCK1,
> +	S2MPS13_BUCK2,
> +	S2MPS13_BUCK3,
> +	S2MPS13_BUCK4,
> +	S2MPS13_BUCK5,
> +	S2MPS13_BUCK6,
> +	S2MPS13_BUCK7,
> +	S2MPS13_BUCK8,
> +	S2MPS13_BUCK9,
> +	S2MPS13_BUCK10,
> +
> +	S2MPS13_REGULATOR_MAX,
> +};
> +
> +/*
> + * Default ramp delay in uv/us. Datasheet says that ramp delay can be
> + * controlled however it does not specify which register is used for that.
> + * Let's assume that default value will be set.
> + */
> +#define S2MPS13_BUCK_RAMP_DELAY		12500
> +
> +#endif /*  __LINUX_MFD_S2MPS13_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 devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 3/5] clk: s2mps11: Add the support for S2MPS13 PMIC clock
@ 2014-11-25 15:51     ` Lee Jones
  0 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2014-11-25 15:51 UTC (permalink / raw)
  To: Chanwoo Choi
  Cc: broonie, mturquette, a.zummo, lgirdwood, sbkim73, sameo,
	geunsik.lim, inki.dae, kyungmin.park, k.kozlowski, linux-kernel,
	devicetree

On Tue, 18 Nov 2014, Chanwoo Choi wrote:

> This patch adds the support for S2MPS13 PMIC clock which is same with existing
> S2MPS14 RTC IP. But, S2MPS13 uses all of clocks (32khz_{ap|bt|cp}).
> 
> Cc: Mike Turquette <mturquette@linaro.org>
> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> ---
>  drivers/clk/clk-s2mps11.c | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)

Applied with Mike's Ack, thanks.

> diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c
> index b7797fb..7bb13af 100644
> --- a/drivers/clk/clk-s2mps11.c
> +++ b/drivers/clk/clk-s2mps11.c
> @@ -23,6 +23,7 @@
>  #include <linux/clk-provider.h>
>  #include <linux/platform_device.h>
>  #include <linux/mfd/samsung/s2mps11.h>
> +#include <linux/mfd/samsung/s2mps13.h>
>  #include <linux/mfd/samsung/s2mps14.h>
>  #include <linux/mfd/samsung/s5m8767.h>
>  #include <linux/mfd/samsung/core.h>
> @@ -120,6 +121,24 @@ static struct clk_init_data s2mps11_clks_init[S2MPS11_CLKS_NUM] = {
>  	},
>  };
>  
> +static struct clk_init_data s2mps13_clks_init[S2MPS11_CLKS_NUM] = {
> +	[S2MPS11_CLK_AP] = {
> +		.name = "s2mps13_ap",
> +		.ops = &s2mps11_clk_ops,
> +		.flags = CLK_IS_ROOT,
> +	},
> +	[S2MPS11_CLK_CP] = {
> +		.name = "s2mps13_cp",
> +		.ops = &s2mps11_clk_ops,
> +		.flags = CLK_IS_ROOT,
> +	},
> +	[S2MPS11_CLK_BT] = {
> +		.name = "s2mps13_bt",
> +		.ops = &s2mps11_clk_ops,
> +		.flags = CLK_IS_ROOT,
> +	},
> +};
> +
>  static struct clk_init_data s2mps14_clks_init[S2MPS11_CLKS_NUM] = {
>  	[S2MPS11_CLK_AP] = {
>  		.name = "s2mps14_ap",
> @@ -184,6 +203,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
>  		s2mps11_reg = S2MPS11_REG_RTC_CTRL;
>  		clks_init = s2mps11_clks_init;
>  		break;
> +	case S2MPS13X:
> +		s2mps11_reg = S2MPS13_REG_RTCCTRL;
> +		clks_init = s2mps13_clks_init;
> +		break;
>  	case S2MPS14X:
>  		s2mps11_reg = S2MPS14_REG_RTCCTRL;
>  		clks_init = s2mps14_clks_init;
> @@ -279,6 +302,7 @@ static int s2mps11_clk_remove(struct platform_device *pdev)
>  
>  static const struct platform_device_id s2mps11_clk_id[] = {
>  	{ "s2mps11-clk", S2MPS11X},
> +	{ "s2mps13-clk", S2MPS13X},
>  	{ "s2mps14-clk", S2MPS14X},
>  	{ "s5m8767-clk", S5M8767X},
>  	{ },

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 3/5] clk: s2mps11: Add the support for S2MPS13 PMIC clock
@ 2014-11-25 15:51     ` Lee Jones
  0 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2014-11-25 15:51 UTC (permalink / raw)
  To: Chanwoo Choi
  Cc: broonie-DgEjT+Ai2ygdnm+yROfE0A,
	mturquette-QSEj5FYQhm4dnm+yROfE0A,
	a.zummo-BfzFCNDTiLLj+vYz1yj4TQ, lgirdwood-Re5JQEeQqe8AvxtiuMwx3w,
	sbkim73-Sze3O3UU22JBDgjK7y7TUQ, sameo-VuQAYsv1563Yd54FQh9/CA,
	geunsik.lim-Sze3O3UU22JBDgjK7y7TUQ,
	inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
	kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
	k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

On Tue, 18 Nov 2014, Chanwoo Choi wrote:

> This patch adds the support for S2MPS13 PMIC clock which is same with existing
> S2MPS14 RTC IP. But, S2MPS13 uses all of clocks (32khz_{ap|bt|cp}).
> 
> Cc: Mike Turquette <mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
> Signed-off-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> Reviewed-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> ---
>  drivers/clk/clk-s2mps11.c | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)

Applied with Mike's Ack, thanks.

> diff --git a/drivers/clk/clk-s2mps11.c b/drivers/clk/clk-s2mps11.c
> index b7797fb..7bb13af 100644
> --- a/drivers/clk/clk-s2mps11.c
> +++ b/drivers/clk/clk-s2mps11.c
> @@ -23,6 +23,7 @@
>  #include <linux/clk-provider.h>
>  #include <linux/platform_device.h>
>  #include <linux/mfd/samsung/s2mps11.h>
> +#include <linux/mfd/samsung/s2mps13.h>
>  #include <linux/mfd/samsung/s2mps14.h>
>  #include <linux/mfd/samsung/s5m8767.h>
>  #include <linux/mfd/samsung/core.h>
> @@ -120,6 +121,24 @@ static struct clk_init_data s2mps11_clks_init[S2MPS11_CLKS_NUM] = {
>  	},
>  };
>  
> +static struct clk_init_data s2mps13_clks_init[S2MPS11_CLKS_NUM] = {
> +	[S2MPS11_CLK_AP] = {
> +		.name = "s2mps13_ap",
> +		.ops = &s2mps11_clk_ops,
> +		.flags = CLK_IS_ROOT,
> +	},
> +	[S2MPS11_CLK_CP] = {
> +		.name = "s2mps13_cp",
> +		.ops = &s2mps11_clk_ops,
> +		.flags = CLK_IS_ROOT,
> +	},
> +	[S2MPS11_CLK_BT] = {
> +		.name = "s2mps13_bt",
> +		.ops = &s2mps11_clk_ops,
> +		.flags = CLK_IS_ROOT,
> +	},
> +};
> +
>  static struct clk_init_data s2mps14_clks_init[S2MPS11_CLKS_NUM] = {
>  	[S2MPS11_CLK_AP] = {
>  		.name = "s2mps14_ap",
> @@ -184,6 +203,10 @@ static int s2mps11_clk_probe(struct platform_device *pdev)
>  		s2mps11_reg = S2MPS11_REG_RTC_CTRL;
>  		clks_init = s2mps11_clks_init;
>  		break;
> +	case S2MPS13X:
> +		s2mps11_reg = S2MPS13_REG_RTCCTRL;
> +		clks_init = s2mps13_clks_init;
> +		break;
>  	case S2MPS14X:
>  		s2mps11_reg = S2MPS14_REG_RTCCTRL;
>  		clks_init = s2mps14_clks_init;
> @@ -279,6 +302,7 @@ static int s2mps11_clk_remove(struct platform_device *pdev)
>  
>  static const struct platform_device_id s2mps11_clk_id[] = {
>  	{ "s2mps11-clk", S2MPS11X},
> +	{ "s2mps13-clk", S2MPS13X},
>  	{ "s2mps14-clk", S2MPS14X},
>  	{ "s5m8767-clk", S5M8767X},
>  	{ },

-- 
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 devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 5/5] mfd: s2mps11: Add binding documentation for Samsung S2MPS13 PMIC
@ 2014-11-25 15:51     ` Lee Jones
  0 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2014-11-25 15:51 UTC (permalink / raw)
  To: Chanwoo Choi
  Cc: broonie, mturquette, a.zummo, lgirdwood, sbkim73, sameo,
	geunsik.lim, inki.dae, kyungmin.park, k.kozlowski, linux-kernel,
	devicetree

On Tue, 18 Nov 2014, Chanwoo Choi wrote:

> This patch adds the binding documentation for Samsung S2MPS13 PMIC
> which is similiar with existing S2MPS14 PMIC. S2MPS13 has the different number
> of regulators from S2MPS14 and RTC/Clock is the same with the S2MPS14.
> 
> Cc: Lee Jones <lee.jones@linaro.org>
> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> Acked-by: Sangbeom Kim <sbkim73@samsung.com>
> Acked-by: Lee Jones <lee.jones@linaro.org>
> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> ---
>  Documentation/devicetree/bindings/mfd/s2mps11.txt | 22 ++++++++++++----------
>  1 file changed, 12 insertions(+), 10 deletions(-)

Applied, thanks.

> diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt b/Documentation/devicetree/bindings/mfd/s2mps11.txt
> index 0e4026a..57a0450 100644
> --- a/Documentation/devicetree/bindings/mfd/s2mps11.txt
> +++ b/Documentation/devicetree/bindings/mfd/s2mps11.txt
> @@ -1,5 +1,5 @@
>  
> -* Samsung S2MPS11, S2MPS14 and S2MPU02 Voltage and Current Regulator
> +* Samsung S2MPS11, S2MPS13, S2MPS14 and S2MPU02 Voltage and Current Regulator
>  
>  The Samsung S2MPS11 is a multi-function device which includes voltage and
>  current regulators, RTC, charger controller and other sub-blocks. It is
> @@ -7,8 +7,8 @@ interfaced to the host controller using an I2C interface. Each sub-block is
>  addressed by the host system using different I2C slave addresses.
>  
>  Required properties:
> -- compatible: Should be "samsung,s2mps11-pmic" or "samsung,s2mps14-pmic"
> -              or "samsung,s2mpu02-pmic".
> +- compatible: Should be "samsung,s2mps11-pmic" or "samsung,s2mps13-pmic"
> +	      or "samsung,s2mps14-pmic" or "samsung,s2mpu02-pmic".
>  - reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
>  
>  Optional properties:
> @@ -17,8 +17,8 @@ Optional properties:
>  - interrupts: Interrupt specifiers for interrupt sources.
>  
>  Optional nodes:
> -- clocks: s2mps11 and s5m8767 provide three(AP/CP/BT) buffered 32.768 KHz
> -  outputs, so to register these as clocks with common clock framework
> +- clocks: s2mps11, s2mps13 and s5m8767 provide three(AP/CP/BT) buffered 32.768
> +  KHz outputs, so to register these as clocks with common clock framework
>    instantiate a sub-node named "clocks". It uses the common clock binding
>    documented in :
>    [Documentation/devicetree/bindings/clock/clock-bindings.txt]
> @@ -30,12 +30,12 @@ Optional nodes:
>      the clock which they consume.
>      Clock               ID           Devices
>      ----------------------------------------------------------
> -    32KhzAP		0            S2MPS11, S2MPS14, S5M8767
> -    32KhzCP		1            S2MPS11, S5M8767
> -    32KhzBT		2            S2MPS11, S2MPS14, S5M8767
> +    32KhzAP		0            S2MPS11, S2MPS13, S2MPS14, S5M8767
> +    32KhzCP		1            S2MPS11, S2MPS13, S5M8767
> +    32KhzBT		2            S2MPS11, S2MPS13, S2MPS14, S5M8767
>  
> -  - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps14-clk",
> -		"samsung,s5m8767-clk"
> +  - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
> +		"samsung,s2mps14-clk", "samsung,s5m8767-clk"
>  
>  - regulators: The regulators of s2mps11 that have to be instantiated should be
>  included in a sub-node named 'regulators'. Regulator nodes included in this
> @@ -81,12 +81,14 @@ as per the datasheet of s2mps11.
>  	- LDOn
>  		  - valid values for n are:
>  			- S2MPS11: 1 to 38
> +			- S2MPS13: 1 to 40
>  			- S2MPS14: 1 to 25
>  			- S2MPU02: 1 to 28
>  		  - Example: LDO1, LDO2, LDO28
>  	- BUCKn
>  		  - valid values for n are:
>  			- S2MPS11: 1 to 10
> +			- S2MPS13: 1 to 10
>  			- S2MPS14: 1 to 5
>  			- S2MPU02: 1 to 7
>  		  - Example: BUCK1, BUCK2, BUCK9

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCHv2 5/5] mfd: s2mps11: Add binding documentation for Samsung S2MPS13 PMIC
@ 2014-11-25 15:51     ` Lee Jones
  0 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2014-11-25 15:51 UTC (permalink / raw)
  To: Chanwoo Choi
  Cc: broonie-DgEjT+Ai2ygdnm+yROfE0A,
	mturquette-QSEj5FYQhm4dnm+yROfE0A,
	a.zummo-BfzFCNDTiLLj+vYz1yj4TQ, lgirdwood-Re5JQEeQqe8AvxtiuMwx3w,
	sbkim73-Sze3O3UU22JBDgjK7y7TUQ, sameo-VuQAYsv1563Yd54FQh9/CA,
	geunsik.lim-Sze3O3UU22JBDgjK7y7TUQ,
	inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
	kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
	k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

On Tue, 18 Nov 2014, Chanwoo Choi wrote:

> This patch adds the binding documentation for Samsung S2MPS13 PMIC
> which is similiar with existing S2MPS14 PMIC. S2MPS13 has the different number
> of regulators from S2MPS14 and RTC/Clock is the same with the S2MPS14.
> 
> Cc: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
> Signed-off-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> Acked-by: Sangbeom Kim <sbkim73-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> Acked-by: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
> Reviewed-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> ---
>  Documentation/devicetree/bindings/mfd/s2mps11.txt | 22 ++++++++++++----------
>  1 file changed, 12 insertions(+), 10 deletions(-)

Applied, thanks.

> diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt b/Documentation/devicetree/bindings/mfd/s2mps11.txt
> index 0e4026a..57a0450 100644
> --- a/Documentation/devicetree/bindings/mfd/s2mps11.txt
> +++ b/Documentation/devicetree/bindings/mfd/s2mps11.txt
> @@ -1,5 +1,5 @@
>  
> -* Samsung S2MPS11, S2MPS14 and S2MPU02 Voltage and Current Regulator
> +* Samsung S2MPS11, S2MPS13, S2MPS14 and S2MPU02 Voltage and Current Regulator
>  
>  The Samsung S2MPS11 is a multi-function device which includes voltage and
>  current regulators, RTC, charger controller and other sub-blocks. It is
> @@ -7,8 +7,8 @@ interfaced to the host controller using an I2C interface. Each sub-block is
>  addressed by the host system using different I2C slave addresses.
>  
>  Required properties:
> -- compatible: Should be "samsung,s2mps11-pmic" or "samsung,s2mps14-pmic"
> -              or "samsung,s2mpu02-pmic".
> +- compatible: Should be "samsung,s2mps11-pmic" or "samsung,s2mps13-pmic"
> +	      or "samsung,s2mps14-pmic" or "samsung,s2mpu02-pmic".
>  - reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
>  
>  Optional properties:
> @@ -17,8 +17,8 @@ Optional properties:
>  - interrupts: Interrupt specifiers for interrupt sources.
>  
>  Optional nodes:
> -- clocks: s2mps11 and s5m8767 provide three(AP/CP/BT) buffered 32.768 KHz
> -  outputs, so to register these as clocks with common clock framework
> +- clocks: s2mps11, s2mps13 and s5m8767 provide three(AP/CP/BT) buffered 32.768
> +  KHz outputs, so to register these as clocks with common clock framework
>    instantiate a sub-node named "clocks". It uses the common clock binding
>    documented in :
>    [Documentation/devicetree/bindings/clock/clock-bindings.txt]
> @@ -30,12 +30,12 @@ Optional nodes:
>      the clock which they consume.
>      Clock               ID           Devices
>      ----------------------------------------------------------
> -    32KhzAP		0            S2MPS11, S2MPS14, S5M8767
> -    32KhzCP		1            S2MPS11, S5M8767
> -    32KhzBT		2            S2MPS11, S2MPS14, S5M8767
> +    32KhzAP		0            S2MPS11, S2MPS13, S2MPS14, S5M8767
> +    32KhzCP		1            S2MPS11, S2MPS13, S5M8767
> +    32KhzBT		2            S2MPS11, S2MPS13, S2MPS14, S5M8767
>  
> -  - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps14-clk",
> -		"samsung,s5m8767-clk"
> +  - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
> +		"samsung,s2mps14-clk", "samsung,s5m8767-clk"
>  
>  - regulators: The regulators of s2mps11 that have to be instantiated should be
>  included in a sub-node named 'regulators'. Regulator nodes included in this
> @@ -81,12 +81,14 @@ as per the datasheet of s2mps11.
>  	- LDOn
>  		  - valid values for n are:
>  			- S2MPS11: 1 to 38
> +			- S2MPS13: 1 to 40
>  			- S2MPS14: 1 to 25
>  			- S2MPU02: 1 to 28
>  		  - Example: LDO1, LDO2, LDO28
>  	- BUCKn
>  		  - valid values for n are:
>  			- S2MPS11: 1 to 10
> +			- S2MPS13: 1 to 10
>  			- S2MPS14: 1 to 5
>  			- S2MPU02: 1 to 7
>  		  - Example: BUCK1, BUCK2, BUCK9

-- 
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 devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [GIT PULL] Immutable branch between MFD, Regulator and Clk, due for v3.19
@ 2014-11-25 15:59   ` Lee Jones
  0 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2014-11-25 15:59 UTC (permalink / raw)
  To: Chanwoo Choi
  Cc: broonie, mturquette, a.zummo, lgirdwood, sbkim73, sameo,
	geunsik.lim, inki.dae, kyungmin.park, k.kozlowski, linux-kernel,
	devicetree

Mark, Mike,

Please merge this into your trees for v3.19.

The following changes since commit f114040e3ea6e07372334ade75d1ee0775c355e1:

  Linux 3.18-rc1 (2014-10-19 18:08:38 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git tags/ib-mfd-regulator-clk-v3.19

for you to fetch changes up to 159a5e920446aed12fe373ecc3c7b3dc667091ae:

  mfd: s2mps11: Add binding documentation for Samsung S2MPS13 PMIC (2014-11-25 15:55:12 +0000)

----------------------------------------------------------------
Immutable branch between MFD, Regulator and Clk, due for v3.19

----------------------------------------------------------------
Chanwoo Choi (4):
      mfd: sec-core: Add support for S2MPS13 device
      regulator: s2mps11: Add support S2MPS13 regulator device
      clk: s2mps11: Add the support for S2MPS13 PMIC clock
      mfd: s2mps11: Add binding documentation for Samsung S2MPS13 PMIC

 Documentation/devicetree/bindings/mfd/s2mps11.txt |  22 +--
 drivers/clk/clk-s2mps11.c                         |  24 +++
 drivers/mfd/sec-core.c                            |  29 ++++
 drivers/mfd/sec-irq.c                             |  23 ++-
 drivers/regulator/Kconfig                         |  10 +-
 drivers/regulator/s2mps11.c                       | 102 +++++++++++-
 include/linux/mfd/samsung/core.h                  |   2 +
 include/linux/mfd/samsung/s2mps13.h               | 186 ++++++++++++++++++++++
 8 files changed, 374 insertions(+), 24 deletions(-)
 create mode 100644 include/linux/mfd/samsung/s2mps13.h

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [GIT PULL] Immutable branch between MFD, Regulator and Clk, due for v3.19
@ 2014-11-25 15:59   ` Lee Jones
  0 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2014-11-25 15:59 UTC (permalink / raw)
  To: Chanwoo Choi
  Cc: broonie-DgEjT+Ai2ygdnm+yROfE0A,
	mturquette-QSEj5FYQhm4dnm+yROfE0A,
	a.zummo-BfzFCNDTiLLj+vYz1yj4TQ, lgirdwood-Re5JQEeQqe8AvxtiuMwx3w,
	sbkim73-Sze3O3UU22JBDgjK7y7TUQ, sameo-VuQAYsv1563Yd54FQh9/CA,
	geunsik.lim-Sze3O3UU22JBDgjK7y7TUQ,
	inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
	kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
	k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

Mark, Mike,

Please merge this into your trees for v3.19.

The following changes since commit f114040e3ea6e07372334ade75d1ee0775c355e1:

  Linux 3.18-rc1 (2014-10-19 18:08:38 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git tags/ib-mfd-regulator-clk-v3.19

for you to fetch changes up to 159a5e920446aed12fe373ecc3c7b3dc667091ae:

  mfd: s2mps11: Add binding documentation for Samsung S2MPS13 PMIC (2014-11-25 15:55:12 +0000)

----------------------------------------------------------------
Immutable branch between MFD, Regulator and Clk, due for v3.19

----------------------------------------------------------------
Chanwoo Choi (4):
      mfd: sec-core: Add support for S2MPS13 device
      regulator: s2mps11: Add support S2MPS13 regulator device
      clk: s2mps11: Add the support for S2MPS13 PMIC clock
      mfd: s2mps11: Add binding documentation for Samsung S2MPS13 PMIC

 Documentation/devicetree/bindings/mfd/s2mps11.txt |  22 +--
 drivers/clk/clk-s2mps11.c                         |  24 +++
 drivers/mfd/sec-core.c                            |  29 ++++
 drivers/mfd/sec-irq.c                             |  23 ++-
 drivers/regulator/Kconfig                         |  10 +-
 drivers/regulator/s2mps11.c                       | 102 +++++++++++-
 include/linux/mfd/samsung/core.h                  |   2 +
 include/linux/mfd/samsung/s2mps13.h               | 186 ++++++++++++++++++++++
 8 files changed, 374 insertions(+), 24 deletions(-)
 create mode 100644 include/linux/mfd/samsung/s2mps13.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 devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [GIT PULL] Immutable branch between MFD, Regulator and Clk, due for v3.19
  2014-11-25 15:59   ` Lee Jones
@ 2014-11-29  5:13     ` Mike Turquette
  -1 siblings, 0 replies; 30+ messages in thread
From: Mike Turquette @ 2014-11-29  5:13 UTC (permalink / raw)
  To: Lee Jones, Chanwoo Choi
  Cc: broonie, a.zummo, lgirdwood, sbkim73, sameo, geunsik.lim,
	inki.dae, kyungmin.park, k.kozlowski, linux-kernel, devicetree

Quoting Lee Jones (2014-11-25 07:59:18)
> Mark, Mike,
> 
> Please merge this into your trees for v3.19.
> 
> The following changes since commit f114040e3ea6e07372334ade75d1ee0775c355e1:
> 
>   Linux 3.18-rc1 (2014-10-19 18:08:38 -0700)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git tags/ib-mfd-regulator-clk-v3.19
> 
> for you to fetch changes up to 159a5e920446aed12fe373ecc3c7b3dc667091ae:
> 
>   mfd: s2mps11: Add binding documentation for Samsung S2MPS13 PMIC (2014-11-25 15:55:12 +0000)

Pulled.

Thanks,
Mike

> 
> ----------------------------------------------------------------
> Immutable branch between MFD, Regulator and Clk, due for v3.19
> 
> ----------------------------------------------------------------
> Chanwoo Choi (4):
>       mfd: sec-core: Add support for S2MPS13 device
>       regulator: s2mps11: Add support S2MPS13 regulator device
>       clk: s2mps11: Add the support for S2MPS13 PMIC clock
>       mfd: s2mps11: Add binding documentation for Samsung S2MPS13 PMIC
> 
>  Documentation/devicetree/bindings/mfd/s2mps11.txt |  22 +--
>  drivers/clk/clk-s2mps11.c                         |  24 +++
>  drivers/mfd/sec-core.c                            |  29 ++++
>  drivers/mfd/sec-irq.c                             |  23 ++-
>  drivers/regulator/Kconfig                         |  10 +-
>  drivers/regulator/s2mps11.c                       | 102 +++++++++++-
>  include/linux/mfd/samsung/core.h                  |   2 +
>  include/linux/mfd/samsung/s2mps13.h               | 186 ++++++++++++++++++++++
>  8 files changed, 374 insertions(+), 24 deletions(-)
>  create mode 100644 include/linux/mfd/samsung/s2mps13.h
> 
> -- 
> Lee Jones
> Linaro STMicroelectronics Landing Team Lead
> Linaro.org │ Open source software for ARM SoCs
> Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [GIT PULL] Immutable branch between MFD, Regulator and Clk, due for v3.19
@ 2014-11-29  5:13     ` Mike Turquette
  0 siblings, 0 replies; 30+ messages in thread
From: Mike Turquette @ 2014-11-29  5:13 UTC (permalink / raw)
  To: Lee Jones, Chanwoo Choi
  Cc: broonie-DgEjT+Ai2ygdnm+yROfE0A, a.zummo-BfzFCNDTiLLj+vYz1yj4TQ,
	lgirdwood-Re5JQEeQqe8AvxtiuMwx3w, sbkim73-Sze3O3UU22JBDgjK7y7TUQ,
	sameo-VuQAYsv1563Yd54FQh9/CA, geunsik.lim-Sze3O3UU22JBDgjK7y7TUQ,
	inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
	kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
	k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

Quoting Lee Jones (2014-11-25 07:59:18)
> Mark, Mike,
> 
> Please merge this into your trees for v3.19.
> 
> The following changes since commit f114040e3ea6e07372334ade75d1ee0775c355e1:
> 
>   Linux 3.18-rc1 (2014-10-19 18:08:38 -0700)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git tags/ib-mfd-regulator-clk-v3.19
> 
> for you to fetch changes up to 159a5e920446aed12fe373ecc3c7b3dc667091ae:
> 
>   mfd: s2mps11: Add binding documentation for Samsung S2MPS13 PMIC (2014-11-25 15:55:12 +0000)

Pulled.

Thanks,
Mike

> 
> ----------------------------------------------------------------
> Immutable branch between MFD, Regulator and Clk, due for v3.19
> 
> ----------------------------------------------------------------
> Chanwoo Choi (4):
>       mfd: sec-core: Add support for S2MPS13 device
>       regulator: s2mps11: Add support S2MPS13 regulator device
>       clk: s2mps11: Add the support for S2MPS13 PMIC clock
>       mfd: s2mps11: Add binding documentation for Samsung S2MPS13 PMIC
> 
>  Documentation/devicetree/bindings/mfd/s2mps11.txt |  22 +--
>  drivers/clk/clk-s2mps11.c                         |  24 +++
>  drivers/mfd/sec-core.c                            |  29 ++++
>  drivers/mfd/sec-irq.c                             |  23 ++-
>  drivers/regulator/Kconfig                         |  10 +-
>  drivers/regulator/s2mps11.c                       | 102 +++++++++++-
>  include/linux/mfd/samsung/core.h                  |   2 +
>  include/linux/mfd/samsung/s2mps13.h               | 186 ++++++++++++++++++++++
>  8 files changed, 374 insertions(+), 24 deletions(-)
>  create mode 100644 include/linux/mfd/samsung/s2mps13.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 devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2014-11-29  5:13 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-18  8:59 [PATCHv2 0/5] mfd: sec-core: Add support S2MPS13 PMIC device Chanwoo Choi
2014-11-18  8:59 ` [PATCHv2 1/5] mfd: sec-core: Add support for S2MPS13 device Chanwoo Choi
2014-11-18  8:59   ` Chanwoo Choi
2014-11-25 15:50   ` Lee Jones
2014-11-25 15:50     ` Lee Jones
2014-11-18  8:59 ` [PATCHv2 2/5] regulator: s2mps11: Add support S2MPS13 regulator device Chanwoo Choi
2014-11-25 15:51   ` Lee Jones
2014-11-25 15:51     ` Lee Jones
2014-11-18  8:59 ` [PATCHv2 3/5] clk: s2mps11: Add the support for S2MPS13 PMIC clock Chanwoo Choi
2014-11-18 21:59   ` Mike Turquette
2014-11-18 21:59     ` Mike Turquette
2014-11-19 16:43     ` Lee Jones
2014-11-19 16:43       ` Lee Jones
2014-11-24  9:00       ` Chanwoo Choi
2014-11-24  9:00         ` Chanwoo Choi
2014-11-24 10:04         ` Lee Jones
2014-11-25 15:06           ` Chanwoo Choi
2014-11-25 15:06             ` Chanwoo Choi
2014-11-25 15:51   ` Lee Jones
2014-11-25 15:51     ` Lee Jones
2014-11-18  8:59 ` [PATCHv2 4/5] rtc: s5m: Add the support for S2MPS13 RTC Chanwoo Choi
2014-11-24 10:46   ` Chanwoo Choi
2014-11-24 10:46     ` Chanwoo Choi
2014-11-18  8:59 ` [PATCHv2 5/5] mfd: s2mps11: Add binding documentation for Samsung S2MPS13 PMIC Chanwoo Choi
2014-11-25 15:51   ` Lee Jones
2014-11-25 15:51     ` Lee Jones
2014-11-25 15:59 ` [GIT PULL] Immutable branch between MFD, Regulator and Clk, due for v3.19 Lee Jones
2014-11-25 15:59   ` Lee Jones
2014-11-29  5:13   ` Mike Turquette
2014-11-29  5:13     ` Mike Turquette

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.