* [PATCH v3 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators
@ 2025-02-28 19:37 Kaustabh Chakraborty
2025-02-28 19:37 ` [PATCH v3 1/3] regulator: dt-bindings: add documentation for s2mpu05-pmic regulators Kaustabh Chakraborty
` (5 more replies)
0 siblings, 6 replies; 10+ messages in thread
From: Kaustabh Chakraborty @ 2025-02-28 19:37 UTC (permalink / raw)
To: Krzysztof Kozlowski, Liam Girdwood, Mark Brown, Rob Herring,
Conor Dooley, Lee Jones
Cc: linux-kernel, linux-samsung-soc, devicetree, Kaustabh Chakraborty
Exynos7870 devices use Samsung S2MPU05 as its primary PMIC. Add support
for it in the existing PMIC driver. Additionally, also add support for
voltage regulators which can be accessed and controlled from the PMIC
itself.
Patches from mfd and regulator subsystems have been placed together in
this series. Here, both patches from both subsystems depend on the other:
1. The regulator driver patch includes a header file which describes the
PMIC registers. This header is introduced in a PMIC patch.
2. The PMIC dt-binding patch references the regulator documentation.
Note that 1. is a build dependency, but 2. is not.
This patch series is a part of Exynos7870 upstreaming.
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
---
Changes in v3:
- Lowercase "ldo" and "buck" in regulator dt-bindings and driver patches.
- Add back missing Reviewed-by: tag in [PATCH v2 2/3].
- Link to v2: https://lore.kernel.org/r/20250219-exynos7870-pmic-regulators-v2-0-1ea86fb332f7@disroot.org
Changes in v2:
- Drop applied [PATCH 2/4].
- Added myself as maintainer in s2mpu05-pmic DT docs.
- Edited LDO description to explain missing LDOs.
- Added all missing regulator control registers intended for CP.
- Modify regulator_desc_s2mpu05_ldo* macros to allow choosing register
suffixes (CTRL, CTRL1, etc). Subsequently, drop Reviewed-by: tag in
[PATCH 4/4].
- Take over ownership of patches by the co-author, upon their request.
- Link to v1: https://lore.kernel.org/r/20250204-exynos7870-pmic-regulators-v1-0-05adad38102c@disroot.org
---
Kaustabh Chakraborty (3):
regulator: dt-bindings: add documentation for s2mpu05-pmic regulators
mfd: sec: add support for S2MPU05 PMIC
regulator: s2mps11: Add support for S2MPU05 regulators
.../bindings/regulator/samsung,s2mpu05.yaml | 47 ++++++
drivers/mfd/sec-core.c | 12 ++
drivers/mfd/sec-irq.c | 34 ++++
drivers/regulator/Kconfig | 4 +-
drivers/regulator/s2mps11.c | 92 ++++++++++-
include/linux/mfd/samsung/core.h | 1 +
include/linux/mfd/samsung/irq.h | 44 +++++
include/linux/mfd/samsung/s2mpu05.h | 183 +++++++++++++++++++++
8 files changed, 414 insertions(+), 3 deletions(-)
---
base-commit: be5c7bbb3a64baf884481a1ba0c2f8fb2f93f7c3
change-id: 20250203-exynos7870-pmic-regulators-26512b79a29b
Best regards,
--
Kaustabh Chakraborty <kauschluss@disroot.org>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 1/3] regulator: dt-bindings: add documentation for s2mpu05-pmic regulators
2025-02-28 19:37 [PATCH v3 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators Kaustabh Chakraborty
@ 2025-02-28 19:37 ` Kaustabh Chakraborty
2025-03-03 9:10 ` Krzysztof Kozlowski
2025-02-28 19:37 ` [PATCH v3 2/3] mfd: sec: add support for S2MPU05 PMIC Kaustabh Chakraborty
` (4 subsequent siblings)
5 siblings, 1 reply; 10+ messages in thread
From: Kaustabh Chakraborty @ 2025-02-28 19:37 UTC (permalink / raw)
To: Krzysztof Kozlowski, Liam Girdwood, Mark Brown, Rob Herring,
Conor Dooley, Lee Jones
Cc: linux-kernel, linux-samsung-soc, devicetree, Kaustabh Chakraborty
S2MPU05 is a PMIC found in Exynos7870 devices, which controls voltage
regulators (21 LDOs and 5 BUCKs). Provide documentation for devicetree
definitions, regulator naming patterns, etc.
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
---
.../bindings/regulator/samsung,s2mpu05.yaml | 47 ++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/Documentation/devicetree/bindings/regulator/samsung,s2mpu05.yaml b/Documentation/devicetree/bindings/regulator/samsung,s2mpu05.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..378518a5a7f59822e549cabf4d4b430ec836a68f
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/samsung,s2mpu05.yaml
@@ -0,0 +1,47 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/samsung,s2mpu05.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung S2MPU05 Power Management IC regulators
+
+maintainers:
+ - Kaustabh Chakraborty <kauschluss@disroot.org>
+
+description: |
+ This is a part of device tree bindings for S2M and S5M family of Power
+ Management IC (PMIC).
+
+ The S2MPU05 provides buck and LDO regulators.
+
+ See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
+ additional information and example.
+
+patternProperties:
+ # 21 LDOs
+ "^ldo([1-9]|10|2[5-9]|3[0-5])$":
+ type: object
+ $ref: regulator.yaml#
+ unevaluatedProperties: false
+ description:
+ Properties for single LDO regulator.
+
+ LDOs 11-24 are used for CP, and they're left unimplemented due to lack
+ of documentation on these regulators.
+
+ required:
+ - regulator-name
+
+ # 5 bucks
+ "^buck[1-5]$":
+ type: object
+ $ref: regulator.yaml#
+ unevaluatedProperties: false
+ description:
+ Properties for single buck regulator.
+
+ required:
+ - regulator-name
+
+additionalProperties: false
--
2.48.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 2/3] mfd: sec: add support for S2MPU05 PMIC
2025-02-28 19:37 [PATCH v3 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators Kaustabh Chakraborty
2025-02-28 19:37 ` [PATCH v3 1/3] regulator: dt-bindings: add documentation for s2mpu05-pmic regulators Kaustabh Chakraborty
@ 2025-02-28 19:37 ` Kaustabh Chakraborty
2025-03-03 9:10 ` Krzysztof Kozlowski
2025-02-28 19:37 ` [PATCH v3 3/3] regulator: s2mps11: Add support for S2MPU05 regulators Kaustabh Chakraborty
` (3 subsequent siblings)
5 siblings, 1 reply; 10+ messages in thread
From: Kaustabh Chakraborty @ 2025-02-28 19:37 UTC (permalink / raw)
To: Krzysztof Kozlowski, Liam Girdwood, Mark Brown, Rob Herring,
Conor Dooley, Lee Jones
Cc: linux-kernel, linux-samsung-soc, devicetree, Kaustabh Chakraborty
Add support for Samsung's S2MPU05 PMIC. It's the primary PMIC used by
Exynos7870 devices. It houses regulators (21 LDOs and 5 BUCKs) and a RTC
clock device.
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
---
drivers/mfd/sec-core.c | 12 +++
drivers/mfd/sec-irq.c | 34 +++++++
include/linux/mfd/samsung/core.h | 1 +
include/linux/mfd/samsung/irq.h | 44 +++++++++
include/linux/mfd/samsung/s2mpu05.h | 183 ++++++++++++++++++++++++++++++++++++
5 files changed, 274 insertions(+)
diff --git a/drivers/mfd/sec-core.c b/drivers/mfd/sec-core.c
index cdfe738e1d76e63145e5888da1cecc122fbc3737..3e9b65c988a7f08bf16d3703004a3d60cfcb1c75 100644
--- a/drivers/mfd/sec-core.c
+++ b/drivers/mfd/sec-core.c
@@ -83,6 +83,11 @@ static const struct mfd_cell s2mpu02_devs[] = {
{ .name = "s2mpu02-regulator", },
};
+static const struct mfd_cell s2mpu05_devs[] = {
+ { .name = "s2mpu05-regulator", },
+ { .name = "s2mps15-rtc", },
+};
+
static const struct of_device_id sec_dt_match[] = {
{
.compatible = "samsung,s5m8767-pmic",
@@ -108,6 +113,9 @@ static const struct of_device_id sec_dt_match[] = {
}, {
.compatible = "samsung,s2mpu02-pmic",
.data = (void *)S2MPU02,
+ }, {
+ .compatible = "samsung,s2mpu05-pmic",
+ .data = (void *)S2MPU05,
}, {
/* Sentinel */
},
@@ -374,6 +382,10 @@ static int sec_pmic_probe(struct i2c_client *i2c)
sec_devs = s2mpu02_devs;
num_sec_devs = ARRAY_SIZE(s2mpu02_devs);
break;
+ case S2MPU05:
+ sec_devs = s2mpu05_devs;
+ num_sec_devs = ARRAY_SIZE(s2mpu05_devs);
+ break;
default:
dev_err(&i2c->dev, "Unsupported device type (%lu)\n",
sec_pmic->device_type);
diff --git a/drivers/mfd/sec-irq.c b/drivers/mfd/sec-irq.c
index e191aeb0c07c58a3bc4850d94af39dfe085a33e5..047fc065fcf17f5bde84143d77a46749111ea5b8 100644
--- a/drivers/mfd/sec-irq.c
+++ b/drivers/mfd/sec-irq.c
@@ -14,6 +14,7 @@
#include <linux/mfd/samsung/s2mps11.h>
#include <linux/mfd/samsung/s2mps14.h>
#include <linux/mfd/samsung/s2mpu02.h>
+#include <linux/mfd/samsung/s2mpu05.h>
#include <linux/mfd/samsung/s5m8767.h>
static const struct regmap_irq s2mps11_irqs[] = {
@@ -225,6 +226,26 @@ static const struct regmap_irq s2mpu02_irqs[] = {
},
};
+static const struct regmap_irq s2mpu05_irqs[] = {
+ REGMAP_IRQ_REG(S2MPU05_IRQ_PWRONF, 0, S2MPU05_IRQ_PWRONF_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_PWRONR, 0, S2MPU05_IRQ_PWRONR_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_JIGONBF, 0, S2MPU05_IRQ_JIGONBF_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_JIGONBR, 0, S2MPU05_IRQ_JIGONBR_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_ACOKF, 0, S2MPU05_IRQ_ACOKF_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_ACOKR, 0, S2MPU05_IRQ_ACOKR_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_PWRON1S, 0, S2MPU05_IRQ_PWRON1S_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_MRB, 0, S2MPU05_IRQ_MRB_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_RTC60S, 1, S2MPU05_IRQ_RTC60S_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_RTCA1, 1, S2MPU05_IRQ_RTCA1_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_RTCA0, 1, S2MPU05_IRQ_RTCA0_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_SMPL, 1, S2MPU05_IRQ_SMPL_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_RTC1S, 1, S2MPU05_IRQ_RTC1S_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_WTSR, 1, S2MPU05_IRQ_WTSR_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_INT120C, 2, S2MPU05_IRQ_INT120C_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_INT140C, 2, S2MPU05_IRQ_INT140C_MASK),
+ REGMAP_IRQ_REG(S2MPU05_IRQ_TSD, 2, S2MPU05_IRQ_TSD_MASK),
+};
+
static const struct regmap_irq s5m8767_irqs[] = {
[S5M8767_IRQ_PWRR] = {
.reg_offset = 0,
@@ -339,6 +360,16 @@ static const struct regmap_irq_chip s2mpu02_irq_chip = {
.ack_base = S2MPU02_REG_INT1,
};
+static const struct regmap_irq_chip s2mpu05_irq_chip = {
+ .name = "s2mpu05",
+ .irqs = s2mpu05_irqs,
+ .num_irqs = ARRAY_SIZE(s2mpu05_irqs),
+ .num_regs = 3,
+ .status_base = S2MPU05_REG_INT1,
+ .mask_base = S2MPU05_REG_INT1M,
+ .ack_base = S2MPU05_REG_INT1,
+};
+
static const struct regmap_irq_chip s5m8767_irq_chip = {
.name = "s5m8767",
.irqs = s5m8767_irqs,
@@ -383,6 +414,9 @@ int sec_irq_init(struct sec_pmic_dev *sec_pmic)
case S2MPU02:
sec_irq_chip = &s2mpu02_irq_chip;
break;
+ case S2MPU05:
+ sec_irq_chip = &s2mpu05_irq_chip;
+ break;
default:
dev_err(sec_pmic->dev, "Unknown device type %lu\n",
sec_pmic->device_type);
diff --git a/include/linux/mfd/samsung/core.h b/include/linux/mfd/samsung/core.h
index 750274d41fc06b0411dbfea6d5efa6092214100d..f35314458fd22e43fa13034439406bea17a155c9 100644
--- a/include/linux/mfd/samsung/core.h
+++ b/include/linux/mfd/samsung/core.h
@@ -44,6 +44,7 @@ enum sec_device_type {
S2MPS14X,
S2MPS15X,
S2MPU02,
+ S2MPU05,
};
/**
diff --git a/include/linux/mfd/samsung/irq.h b/include/linux/mfd/samsung/irq.h
index 3fd2775eb9bbf86ac227810f49d24ae815bb3fcb..978f7af66f74842c4f8dd62c0f58a7a45aba7c34 100644
--- a/include/linux/mfd/samsung/irq.h
+++ b/include/linux/mfd/samsung/irq.h
@@ -150,6 +150,50 @@ enum s2mpu02_irq {
/* Masks for interrupts are the same as in s2mps11 */
#define S2MPS14_IRQ_TSD_MASK (1 << 2)
+enum s2mpu05_irq {
+ S2MPU05_IRQ_PWRONF,
+ S2MPU05_IRQ_PWRONR,
+ S2MPU05_IRQ_JIGONBF,
+ S2MPU05_IRQ_JIGONBR,
+ S2MPU05_IRQ_ACOKF,
+ S2MPU05_IRQ_ACOKR,
+ S2MPU05_IRQ_PWRON1S,
+ S2MPU05_IRQ_MRB,
+
+ S2MPU05_IRQ_RTC60S,
+ S2MPU05_IRQ_RTCA1,
+ S2MPU05_IRQ_RTCA0,
+ S2MPU05_IRQ_SMPL,
+ S2MPU05_IRQ_RTC1S,
+ S2MPU05_IRQ_WTSR,
+
+ S2MPU05_IRQ_INT120C,
+ S2MPU05_IRQ_INT140C,
+ S2MPU05_IRQ_TSD,
+
+ S2MPU05_IRQ_NR,
+};
+
+#define S2MPU05_IRQ_PWRONF_MASK BIT(0)
+#define S2MPU05_IRQ_PWRONR_MASK BIT(1)
+#define S2MPU05_IRQ_JIGONBF_MASK BIT(2)
+#define S2MPU05_IRQ_JIGONBR_MASK BIT(3)
+#define S2MPU05_IRQ_ACOKF_MASK BIT(4)
+#define S2MPU05_IRQ_ACOKR_MASK BIT(5)
+#define S2MPU05_IRQ_PWRON1S_MASK BIT(6)
+#define S2MPU05_IRQ_MRB_MASK BIT(7)
+
+#define S2MPU05_IRQ_RTC60S_MASK BIT(0)
+#define S2MPU05_IRQ_RTCA1_MASK BIT(1)
+#define S2MPU05_IRQ_RTCA0_MASK BIT(2)
+#define S2MPU05_IRQ_SMPL_MASK BIT(3)
+#define S2MPU05_IRQ_RTC1S_MASK BIT(4)
+#define S2MPU05_IRQ_WTSR_MASK BIT(5)
+
+#define S2MPU05_IRQ_INT120C_MASK BIT(0)
+#define S2MPU05_IRQ_INT140C_MASK BIT(1)
+#define S2MPU05_IRQ_TSD_MASK BIT(2)
+
enum s5m8767_irq {
S5M8767_IRQ_PWRR,
S5M8767_IRQ_PWRF,
diff --git a/include/linux/mfd/samsung/s2mpu05.h b/include/linux/mfd/samsung/s2mpu05.h
new file mode 100644
index 0000000000000000000000000000000000000000..fcdb6c8adb03f284612ef9ee0079ba35cb9b071c
--- /dev/null
+++ b/include/linux/mfd/samsung/s2mpu05.h
@@ -0,0 +1,183 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd
+ * Copyright (c) 2025 Kaustabh Chakraborty <kauschluss@disroot.org>
+ */
+
+#ifndef __LINUX_MFD_S2MPU05_H
+#define __LINUX_MFD_S2MPU05_H
+
+/* S2MPU05 registers */
+enum S2MPU05_reg {
+ S2MPU05_REG_ID,
+ S2MPU05_REG_INT1,
+ S2MPU05_REG_INT2,
+ S2MPU05_REG_INT3,
+ S2MPU05_REG_INT1M,
+ S2MPU05_REG_INT2M,
+ S2MPU05_REG_INT3M,
+ S2MPU05_REG_ST1,
+ S2MPU05_REG_ST2,
+ S2MPU05_REG_PWRONSRC,
+ S2MPU05_REG_OFFSRC,
+ S2MPU05_REG_BU_CHG,
+ S2MPU05_REG_RTC_BUF,
+ S2MPU05_REG_CTRL1,
+ S2MPU05_REG_CTRL2,
+ S2MPU05_REG_ETC_TEST,
+ S2MPU05_REG_OTP_ADRL,
+ S2MPU05_REG_OTP_ADRH,
+ S2MPU05_REG_OTP_DATA,
+ S2MPU05_REG_MON1SEL,
+ S2MPU05_REG_MON2SEL,
+ S2MPU05_REG_CTRL3,
+ S2MPU05_REG_ETC_OTP,
+ S2MPU05_REG_UVLO,
+ S2MPU05_REG_TIME_CTRL1,
+ S2MPU05_REG_TIME_CTRL2,
+ S2MPU05_REG_B1CTRL1,
+ S2MPU05_REG_B1CTRL2,
+ S2MPU05_REG_B2CTRL1,
+ S2MPU05_REG_B2CTRL2,
+ S2MPU05_REG_B2CTRL3,
+ S2MPU05_REG_B2CTRL4,
+ S2MPU05_REG_B3CTRL1,
+ S2MPU05_REG_B3CTRL2,
+ S2MPU05_REG_B3CTRL3,
+ S2MPU05_REG_B4CTRL1,
+ S2MPU05_REG_B4CTRL2,
+ S2MPU05_REG_B5CTRL1,
+ S2MPU05_REG_B5CTRL2,
+ S2MPU05_REG_BUCK_RAMP,
+ S2MPU05_REG_LDO_DVS1,
+ S2MPU05_REG_LDO_DVS9,
+ S2MPU05_REG_LDO_DVS10,
+ S2MPU05_REG_L1CTRL,
+ S2MPU05_REG_L2CTRL,
+ S2MPU05_REG_L3CTRL,
+ S2MPU05_REG_L4CTRL,
+ S2MPU05_REG_L5CTRL,
+ S2MPU05_REG_L6CTRL,
+ S2MPU05_REG_L7CTRL,
+ S2MPU05_REG_L8CTRL,
+ S2MPU05_REG_L9CTRL1,
+ S2MPU05_REG_L9CTRL2,
+ S2MPU05_REG_L10CTRL,
+ S2MPU05_REG_L11CTRL1,
+ S2MPU05_REG_L11CTRL2,
+ S2MPU05_REG_L12CTRL,
+ S2MPU05_REG_L13CTRL,
+ S2MPU05_REG_L14CTRL,
+ S2MPU05_REG_L15CTRL,
+ S2MPU05_REG_L16CTRL,
+ S2MPU05_REG_L17CTRL1,
+ S2MPU05_REG_L17CTRL2,
+ S2MPU05_REG_L18CTRL1,
+ S2MPU05_REG_L18CTRL2,
+ S2MPU05_REG_L19CTRL,
+ S2MPU05_REG_L20CTRL,
+ S2MPU05_REG_L21CTRL,
+ S2MPU05_REG_L22CTRL,
+ S2MPU05_REG_L23CTRL,
+ S2MPU05_REG_L24CTRL,
+ S2MPU05_REG_L25CTRL,
+ S2MPU05_REG_L26CTRL,
+ S2MPU05_REG_L27CTRL,
+ S2MPU05_REG_L28CTRL,
+ S2MPU05_REG_L29CTRL,
+ S2MPU05_REG_L30CTRL,
+ S2MPU05_REG_L31CTRL,
+ S2MPU05_REG_L32CTRL,
+ S2MPU05_REG_L33CTRL,
+ S2MPU05_REG_L34CTRL,
+ S2MPU05_REG_L35CTRL,
+ S2MPU05_REG_LDO_DSCH1,
+ S2MPU05_REG_LDO_DSCH2,
+ S2MPU05_REG_LDO_DSCH3,
+ S2MPU05_REG_LDO_DSCH4,
+ S2MPU05_REG_LDO_DSCH5,
+ S2MPU05_REG_LDO_CTRL1,
+ S2MPU05_REG_LDO_CTRL2,
+ S2MPU05_REG_TCXO_CTRL,
+ S2MPU05_REG_SELMIF,
+};
+
+/* S2MPU05 regulator ids */
+enum S2MPU05_regulators {
+ S2MPU05_LDO1,
+ S2MPU05_LDO2,
+ S2MPU05_LDO3,
+ S2MPU05_LDO4,
+ S2MPU05_LDO5,
+ S2MPU05_LDO6,
+ S2MPU05_LDO7,
+ S2MPU05_LDO8,
+ S2MPU05_LDO9,
+ S2MPU05_LDO10,
+ S2MPU05_LDO11,
+ S2MPU05_LDO12,
+ S2MPU05_LDO13,
+ S2MPU05_LDO14,
+ S2MPU05_LDO15,
+ S2MPU05_LDO16,
+ S2MPU05_LDO17,
+ S2MPU05_LDO18,
+ S2MPU05_LDO19,
+ S2MPU05_LDO20,
+ S2MPU05_LDO21,
+ S2MPU05_LDO22,
+ S2MPU05_LDO23,
+ S2MPU05_LDO24,
+ S2MPU05_LDO25,
+ S2MPU05_LDO26,
+ S2MPU05_LDO27,
+ S2MPU05_LDO28,
+ S2MPU05_LDO29,
+ S2MPU05_LDO30,
+ S2MPU05_LDO31,
+ S2MPU05_LDO32,
+ S2MPU05_LDO33,
+ S2MPU05_LDO34,
+ S2MPU05_LDO35,
+ S2MPU05_BUCK1,
+ S2MPU05_BUCK2,
+ S2MPU05_BUCK3,
+ S2MPU05_BUCK4,
+ S2MPU05_BUCK5,
+
+ S2MPU05_REGULATOR_MAX,
+};
+
+#define S2MPU05_SW_ENABLE_MASK 0x03
+
+#define S2MPU05_ENABLE_TIME_LDO 128
+#define S2MPU05_ENABLE_TIME_BUCK1 110
+#define S2MPU05_ENABLE_TIME_BUCK2 110
+#define S2MPU05_ENABLE_TIME_BUCK3 110
+#define S2MPU05_ENABLE_TIME_BUCK4 150
+#define S2MPU05_ENABLE_TIME_BUCK5 150
+
+#define S2MPU05_LDO_MIN1 800000
+#define S2MPU05_LDO_MIN2 1800000
+#define S2MPU05_LDO_MIN3 400000
+#define S2MPU05_LDO_STEP1 12500
+#define S2MPU05_LDO_STEP2 25000
+
+#define S2MPU05_BUCK_MIN1 400000
+#define S2MPU05_BUCK_MIN2 600000
+#define S2MPU05_BUCK_STEP1 6250
+#define S2MPU05_BUCK_STEP2 12500
+
+#define S2MPU05_RAMP_DELAY 12000 /* uV/uS */
+
+#define S2MPU05_ENABLE_SHIFT 6
+#define S2MPU05_ENABLE_MASK (0x03 << S2MPU05_ENABLE_SHIFT)
+
+#define S2MPU05_LDO_VSEL_MASK 0x3F
+#define S2MPU05_BUCK_VSEL_MASK 0xFF
+#define S2MPU05_LDO_N_VOLTAGES (S2MPU05_LDO_VSEL_MASK + 1)
+#define S2MPU05_BUCK_N_VOLTAGES (S2MPU05_BUCK_VSEL_MASK + 1)
+
+#define S2MPU05_PMIC_EN_SHIFT 6
+
+#endif /* __LINUX_MFD_S2MPU05_H */
--
2.48.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 3/3] regulator: s2mps11: Add support for S2MPU05 regulators
2025-02-28 19:37 [PATCH v3 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators Kaustabh Chakraborty
2025-02-28 19:37 ` [PATCH v3 1/3] regulator: dt-bindings: add documentation for s2mpu05-pmic regulators Kaustabh Chakraborty
2025-02-28 19:37 ` [PATCH v3 2/3] mfd: sec: add support for S2MPU05 PMIC Kaustabh Chakraborty
@ 2025-02-28 19:37 ` Kaustabh Chakraborty
2025-03-03 9:11 ` Krzysztof Kozlowski
2025-03-13 12:46 ` [PATCH v3 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators Lee Jones
` (2 subsequent siblings)
5 siblings, 1 reply; 10+ messages in thread
From: Kaustabh Chakraborty @ 2025-02-28 19:37 UTC (permalink / raw)
To: Krzysztof Kozlowski, Liam Girdwood, Mark Brown, Rob Herring,
Conor Dooley, Lee Jones
Cc: linux-kernel, linux-samsung-soc, devicetree, Kaustabh Chakraborty
S2MPU05 is a PMIC by manufactured by Samsung, particularly used in
Exynos7870 based devices. Add driver support for controlling its 21 LDO
and 5 BUCK regulators.
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Acked-by: Mark Brown <broonie@kernel.org>
---
drivers/regulator/Kconfig | 4 +-
drivers/regulator/s2mps11.c | 92 ++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 93 insertions(+), 3 deletions(-)
diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
index 39297f7d8177193e51c99bc2b360c6d9936e62fe..e47ef257696e2ff3745affa1a403a29f086a2833 100644
--- a/drivers/regulator/Kconfig
+++ b/drivers/regulator/Kconfig
@@ -1330,10 +1330,10 @@ config REGULATOR_S2MPA01
via I2C bus. S2MPA01 has 10 Bucks and 26 LDO outputs.
config REGULATOR_S2MPS11
- tristate "Samsung S2MPS11/13/14/15/S2MPU02 voltage regulator"
+ tristate "Samsung S2MPS11/13/14/15/S2MPU02/05 voltage regulator"
depends on MFD_SEC_CORE || COMPILE_TEST
help
- This driver supports a Samsung S2MPS11/13/14/15/S2MPU02 voltage
+ This driver supports a Samsung S2MPS11/13/14/15/S2MPU02/05 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.
diff --git a/drivers/regulator/s2mps11.c b/drivers/regulator/s2mps11.c
index 7dcf92af8f15e63fb634d978fba41df0ca09fd65..04ae9c6150bd5ae9dba47b9b3cfcfb62e4698b6d 100644
--- a/drivers/regulator/s2mps11.c
+++ b/drivers/regulator/s2mps11.c
@@ -21,6 +21,7 @@
#include <linux/mfd/samsung/s2mps14.h>
#include <linux/mfd/samsung/s2mps15.h>
#include <linux/mfd/samsung/s2mpu02.h>
+#include <linux/mfd/samsung/s2mpu05.h>
/* The highest number of possible regulators for supported devices. */
#define S2MPS_REGULATOR_MAX S2MPS13_REGULATOR_MAX
@@ -254,6 +255,9 @@ static int s2mps11_regulator_enable(struct regulator_dev *rdev)
else
val = rdev->desc->enable_mask;
break;
+ case S2MPU05:
+ val = rdev->desc->enable_mask;
+ break;
default:
return -EINVAL;
}
@@ -1118,6 +1122,86 @@ static const struct regulator_desc s2mpu02_regulators[] = {
regulator_desc_s2mpu02_buck7(7),
};
+#define regulator_desc_s2mpu05_ldo_reg(num, min, step, reg) { \
+ .name = "ldo"#num, \
+ .id = S2MPU05_LDO##num, \
+ .ops = &s2mpu02_ldo_ops, \
+ .type = REGULATOR_VOLTAGE, \
+ .owner = THIS_MODULE, \
+ .min_uV = min, \
+ .uV_step = step, \
+ .n_voltages = S2MPU05_LDO_N_VOLTAGES, \
+ .vsel_reg = reg, \
+ .vsel_mask = S2MPU05_LDO_VSEL_MASK, \
+ .enable_reg = reg, \
+ .enable_mask = S2MPU05_ENABLE_MASK, \
+ .enable_time = S2MPU05_ENABLE_TIME_LDO \
+}
+
+#define regulator_desc_s2mpu05_ldo(num, reg, min, step) \
+ regulator_desc_s2mpu05_ldo_reg(num, min, step, S2MPU05_REG_L##num##reg)
+
+#define regulator_desc_s2mpu05_ldo1(num, reg) \
+ regulator_desc_s2mpu05_ldo(num, reg, S2MPU05_LDO_MIN1, S2MPU05_LDO_STEP1)
+
+#define regulator_desc_s2mpu05_ldo2(num, reg) \
+ regulator_desc_s2mpu05_ldo(num, reg, S2MPU05_LDO_MIN1, S2MPU05_LDO_STEP2)
+
+#define regulator_desc_s2mpu05_ldo3(num, reg) \
+ regulator_desc_s2mpu05_ldo(num, reg, S2MPU05_LDO_MIN2, S2MPU05_LDO_STEP2)
+
+#define regulator_desc_s2mpu05_ldo4(num, reg) \
+ regulator_desc_s2mpu05_ldo(num, reg, S2MPU05_LDO_MIN3, S2MPU05_LDO_STEP2)
+
+#define regulator_desc_s2mpu05_buck(num, which) { \
+ .name = "buck"#num, \
+ .id = S2MPU05_BUCK##num, \
+ .ops = &s2mpu02_buck_ops, \
+ .type = REGULATOR_VOLTAGE, \
+ .owner = THIS_MODULE, \
+ .min_uV = S2MPU05_BUCK_MIN##which, \
+ .uV_step = S2MPU05_BUCK_STEP##which, \
+ .n_voltages = S2MPU05_BUCK_N_VOLTAGES, \
+ .vsel_reg = S2MPU05_REG_B##num##CTRL2, \
+ .vsel_mask = S2MPU05_BUCK_VSEL_MASK, \
+ .enable_reg = S2MPU05_REG_B##num##CTRL1, \
+ .enable_mask = S2MPU05_ENABLE_MASK, \
+ .enable_time = S2MPU05_ENABLE_TIME_BUCK##num \
+}
+
+#define regulator_desc_s2mpu05_buck123(num) regulator_desc_s2mpu05_buck(num, 1)
+#define regulator_desc_s2mpu05_buck45(num) regulator_desc_s2mpu05_buck(num, 2)
+
+static const struct regulator_desc s2mpu05_regulators[] = {
+ regulator_desc_s2mpu05_ldo4(1, CTRL),
+ regulator_desc_s2mpu05_ldo3(2, CTRL),
+ regulator_desc_s2mpu05_ldo2(3, CTRL),
+ regulator_desc_s2mpu05_ldo1(4, CTRL),
+ regulator_desc_s2mpu05_ldo1(5, CTRL),
+ regulator_desc_s2mpu05_ldo1(6, CTRL),
+ regulator_desc_s2mpu05_ldo2(7, CTRL),
+ regulator_desc_s2mpu05_ldo3(8, CTRL),
+ regulator_desc_s2mpu05_ldo4(9, CTRL1),
+ regulator_desc_s2mpu05_ldo4(10, CTRL),
+ /* LDOs 11-24 are used for CP. They aren't documented. */
+ regulator_desc_s2mpu05_ldo2(25, CTRL),
+ regulator_desc_s2mpu05_ldo3(26, CTRL),
+ regulator_desc_s2mpu05_ldo2(27, CTRL),
+ regulator_desc_s2mpu05_ldo3(28, CTRL),
+ regulator_desc_s2mpu05_ldo3(29, CTRL),
+ regulator_desc_s2mpu05_ldo2(30, CTRL),
+ regulator_desc_s2mpu05_ldo3(31, CTRL),
+ regulator_desc_s2mpu05_ldo3(32, CTRL),
+ regulator_desc_s2mpu05_ldo3(33, CTRL),
+ regulator_desc_s2mpu05_ldo3(34, CTRL),
+ regulator_desc_s2mpu05_ldo3(35, CTRL),
+ regulator_desc_s2mpu05_buck123(1),
+ regulator_desc_s2mpu05_buck123(2),
+ regulator_desc_s2mpu05_buck123(3),
+ regulator_desc_s2mpu05_buck45(4),
+ regulator_desc_s2mpu05_buck45(5),
+};
+
static int s2mps11_pmic_probe(struct platform_device *pdev)
{
struct sec_pmic_dev *iodev = dev_get_drvdata(pdev->dev.parent);
@@ -1159,6 +1243,11 @@ static int s2mps11_pmic_probe(struct platform_device *pdev)
regulators = s2mpu02_regulators;
BUILD_BUG_ON(S2MPS_REGULATOR_MAX < ARRAY_SIZE(s2mpu02_regulators));
break;
+ case S2MPU05:
+ rdev_num = ARRAY_SIZE(s2mpu05_regulators);
+ regulators = s2mpu05_regulators;
+ BUILD_BUG_ON(S2MPS_REGULATOR_MAX < ARRAY_SIZE(s2mpu05_regulators));
+ break;
default:
dev_err(&pdev->dev, "Invalid device type: %u\n",
s2mps11->dev_type);
@@ -1228,6 +1317,7 @@ static const struct platform_device_id s2mps11_pmic_id[] = {
{ "s2mps14-regulator", S2MPS14X},
{ "s2mps15-regulator", S2MPS15X},
{ "s2mpu02-regulator", S2MPU02},
+ { "s2mpu05-regulator", S2MPU05},
{ },
};
MODULE_DEVICE_TABLE(platform, s2mps11_pmic_id);
@@ -1245,5 +1335,5 @@ module_platform_driver(s2mps11_pmic_driver);
/* Module information */
MODULE_AUTHOR("Sangbeom Kim <sbkim73@samsung.com>");
-MODULE_DESCRIPTION("Samsung S2MPS11/S2MPS14/S2MPS15/S2MPU02 Regulator Driver");
+MODULE_DESCRIPTION("Samsung S2MPS11/14/15/S2MPU02/05 Regulator Driver");
MODULE_LICENSE("GPL");
--
2.48.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/3] regulator: dt-bindings: add documentation for s2mpu05-pmic regulators
2025-02-28 19:37 ` [PATCH v3 1/3] regulator: dt-bindings: add documentation for s2mpu05-pmic regulators Kaustabh Chakraborty
@ 2025-03-03 9:10 ` Krzysztof Kozlowski
0 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2025-03-03 9:10 UTC (permalink / raw)
To: Kaustabh Chakraborty
Cc: Liam Girdwood, Mark Brown, Rob Herring, Conor Dooley, Lee Jones,
linux-kernel, linux-samsung-soc, devicetree
On Sat, Mar 01, 2025 at 01:07:12AM +0530, Kaustabh Chakraborty wrote:
> S2MPU05 is a PMIC found in Exynos7870 devices, which controls voltage
> regulators (21 LDOs and 5 BUCKs). Provide documentation for devicetree
> definitions, regulator naming patterns, etc.
>
> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
> ---
> .../bindings/regulator/samsung,s2mpu05.yaml | 47 ++++++++++++++++++++++
> 1 file changed, 47 insertions(+)
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/3] mfd: sec: add support for S2MPU05 PMIC
2025-02-28 19:37 ` [PATCH v3 2/3] mfd: sec: add support for S2MPU05 PMIC Kaustabh Chakraborty
@ 2025-03-03 9:10 ` Krzysztof Kozlowski
0 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2025-03-03 9:10 UTC (permalink / raw)
To: Kaustabh Chakraborty
Cc: Liam Girdwood, Mark Brown, Rob Herring, Conor Dooley, Lee Jones,
linux-kernel, linux-samsung-soc, devicetree
On Sat, Mar 01, 2025 at 01:07:13AM +0530, Kaustabh Chakraborty wrote:
> Add support for Samsung's S2MPU05 PMIC. It's the primary PMIC used by
> Exynos7870 devices. It houses regulators (21 LDOs and 5 BUCKs) and a RTC
> clock device.
>
> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
> ---
> drivers/mfd/sec-core.c | 12 +++
> drivers/mfd/sec-irq.c | 34 +++++++
> include/linux/mfd/samsung/core.h | 1 +
> include/linux/mfd/samsung/irq.h | 44 +++++++++
> include/linux/mfd/samsung/s2mpu05.h | 183 ++++++++++++++++++++++++++++++++++++
> 5 files changed, 274 insertions(+)
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 3/3] regulator: s2mps11: Add support for S2MPU05 regulators
2025-02-28 19:37 ` [PATCH v3 3/3] regulator: s2mps11: Add support for S2MPU05 regulators Kaustabh Chakraborty
@ 2025-03-03 9:11 ` Krzysztof Kozlowski
0 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2025-03-03 9:11 UTC (permalink / raw)
To: Kaustabh Chakraborty
Cc: Liam Girdwood, Mark Brown, Rob Herring, Conor Dooley, Lee Jones,
linux-kernel, linux-samsung-soc, devicetree
On Sat, Mar 01, 2025 at 01:07:14AM +0530, Kaustabh Chakraborty wrote:
> S2MPU05 is a PMIC by manufactured by Samsung, particularly used in
> Exynos7870 based devices. Add driver support for controlling its 21 LDO
> and 5 BUCK regulators.
>
> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
> Acked-by: Mark Brown <broonie@kernel.org>
> ---
> drivers/regulator/Kconfig | 4 +-
> drivers/regulator/s2mps11.c | 92 ++++++++++++++++++++++++++++++++++++++++++++-
> 2 files changed, 93 insertions(+), 3 deletions(-)
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators
2025-02-28 19:37 [PATCH v3 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators Kaustabh Chakraborty
` (2 preceding siblings ...)
2025-02-28 19:37 ` [PATCH v3 3/3] regulator: s2mps11: Add support for S2MPU05 regulators Kaustabh Chakraborty
@ 2025-03-13 12:46 ` Lee Jones
2025-03-13 13:01 ` Lee Jones
2025-03-14 8:57 ` [GIT PULL] Immutable branch between MFD and Regulator due for the v6.15 merge window Lee Jones
5 siblings, 0 replies; 10+ messages in thread
From: Lee Jones @ 2025-03-13 12:46 UTC (permalink / raw)
To: Kaustabh Chakraborty
Cc: Krzysztof Kozlowski, Liam Girdwood, Mark Brown, Rob Herring,
Conor Dooley, linux-kernel, linux-samsung-soc, devicetree
On Sat, 01 Mar 2025, Kaustabh Chakraborty wrote:
> Exynos7870 devices use Samsung S2MPU05 as its primary PMIC. Add support
> for it in the existing PMIC driver. Additionally, also add support for
> voltage regulators which can be accessed and controlled from the PMIC
> itself.
>
> Patches from mfd and regulator subsystems have been placed together in
> this series. Here, both patches from both subsystems depend on the other:
> 1. The regulator driver patch includes a header file which describes the
> PMIC registers. This header is introduced in a PMIC patch.
> 2. The PMIC dt-binding patch references the regulator documentation.
>
> Note that 1. is a build dependency, but 2. is not.
>
> This patch series is a part of Exynos7870 upstreaming.
>
> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
> ---
> Changes in v3:
> - Lowercase "ldo" and "buck" in regulator dt-bindings and driver patches.
> - Add back missing Reviewed-by: tag in [PATCH v2 2/3].
> - Link to v2: https://lore.kernel.org/r/20250219-exynos7870-pmic-regulators-v2-0-1ea86fb332f7@disroot.org
>
> Changes in v2:
> - Drop applied [PATCH 2/4].
> - Added myself as maintainer in s2mpu05-pmic DT docs.
> - Edited LDO description to explain missing LDOs.
> - Added all missing regulator control registers intended for CP.
> - Modify regulator_desc_s2mpu05_ldo* macros to allow choosing register
> suffixes (CTRL, CTRL1, etc). Subsequently, drop Reviewed-by: tag in
> [PATCH 4/4].
> - Take over ownership of patches by the co-author, upon their request.
> - Link to v1: https://lore.kernel.org/r/20250204-exynos7870-pmic-regulators-v1-0-05adad38102c@disroot.org
>
> ---
> Kaustabh Chakraborty (3):
> regulator: dt-bindings: add documentation for s2mpu05-pmic regulators
> mfd: sec: add support for S2MPU05 PMIC
> regulator: s2mps11: Add support for S2MPU05 regulators
>
> .../bindings/regulator/samsung,s2mpu05.yaml | 47 ++++++
> drivers/mfd/sec-core.c | 12 ++
> drivers/mfd/sec-irq.c | 34 ++++
> drivers/regulator/Kconfig | 4 +-
> drivers/regulator/s2mps11.c | 92 ++++++++++-
> include/linux/mfd/samsung/core.h | 1 +
> include/linux/mfd/samsung/irq.h | 44 +++++
> include/linux/mfd/samsung/s2mpu05.h | 183 +++++++++++++++++++++
> 8 files changed, 414 insertions(+), 3 deletions(-)
> ---
> base-commit: be5c7bbb3a64baf884481a1ba0c2f8fb2f93f7c3
> change-id: 20250203-exynos7870-pmic-regulators-26512b79a29b
>
> Best regards,
> --
> Kaustabh Chakraborty <kauschluss@disroot.org>
Applied the set.
I'll send out a pull-request if all goes well with build testing.
Note to self: ib-mfd-regulator-6.15
--
Lee Jones [李琼斯]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators
2025-02-28 19:37 [PATCH v3 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators Kaustabh Chakraborty
` (3 preceding siblings ...)
2025-03-13 12:46 ` [PATCH v3 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators Lee Jones
@ 2025-03-13 13:01 ` Lee Jones
2025-03-14 8:57 ` [GIT PULL] Immutable branch between MFD and Regulator due for the v6.15 merge window Lee Jones
5 siblings, 0 replies; 10+ messages in thread
From: Lee Jones @ 2025-03-13 13:01 UTC (permalink / raw)
To: Krzysztof Kozlowski, Liam Girdwood, Mark Brown, Rob Herring,
Conor Dooley, Lee Jones, Kaustabh Chakraborty
Cc: linux-kernel, linux-samsung-soc, devicetree
On Sat, 01 Mar 2025 01:07:11 +0530, Kaustabh Chakraborty wrote:
> Exynos7870 devices use Samsung S2MPU05 as its primary PMIC. Add support
> for it in the existing PMIC driver. Additionally, also add support for
> voltage regulators which can be accessed and controlled from the PMIC
> itself.
>
> Patches from mfd and regulator subsystems have been placed together in
> this series. Here, both patches from both subsystems depend on the other:
> 1. The regulator driver patch includes a header file which describes the
> PMIC registers. This header is introduced in a PMIC patch.
> 2. The PMIC dt-binding patch references the regulator documentation.
>
> [...]
Applied, thanks!
[1/3] regulator: dt-bindings: add documentation for s2mpu05-pmic regulators
commit: 07ef6dc942741b918dd0dcbb951e0ae3dd6b53b9
[2/3] mfd: sec: add support for S2MPU05 PMIC
commit: ed33479b7beb2b2dc9649a4e7474b47253d554f9
[3/3] regulator: s2mps11: Add support for S2MPU05 regulators
commit: 169cd52fd9445b30379ea6deafa28a260d489699
--
Lee Jones [李琼斯]
^ permalink raw reply [flat|nested] 10+ messages in thread
* [GIT PULL] Immutable branch between MFD and Regulator due for the v6.15 merge window
2025-02-28 19:37 [PATCH v3 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators Kaustabh Chakraborty
` (4 preceding siblings ...)
2025-03-13 13:01 ` Lee Jones
@ 2025-03-14 8:57 ` Lee Jones
5 siblings, 0 replies; 10+ messages in thread
From: Lee Jones @ 2025-03-14 8:57 UTC (permalink / raw)
To: Kaustabh Chakraborty
Cc: Krzysztof Kozlowski, Liam Girdwood, Mark Brown, Rob Herring,
Conor Dooley, linux-kernel, linux-samsung-soc, devicetree
Enjoy!
The following changes since commit 2014c95afecee3e76ca4a56956a936e23283f05b:
Linux 6.14-rc1 (2025-02-02 15:39:26 -0800)
are available in the Git repository at:
ssh://git@gitolite.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git tags/ib-mfd-regulator-v6.15
for you to fetch changes up to 169cd52fd9445b30379ea6deafa28a260d489699:
regulator: s2mps11: Add support for S2MPU05 regulators (2025-03-13 12:38:52 +0000)
----------------------------------------------------------------
Immutable branch between MFD and Regulator due for the v6.15 merge window
----------------------------------------------------------------
Kaustabh Chakraborty (3):
regulator: dt-bindings: add documentation for s2mpu05-pmic regulators
mfd: sec: Add support for S2MPU05 PMIC
regulator: s2mps11: Add support for S2MPU05 regulators
.../bindings/regulator/samsung,s2mpu05.yaml | 47 ++++++
drivers/mfd/sec-core.c | 12 ++
drivers/mfd/sec-irq.c | 34 ++++
drivers/regulator/Kconfig | 4 +-
drivers/regulator/s2mps11.c | 92 ++++++++++-
include/linux/mfd/samsung/core.h | 1 +
include/linux/mfd/samsung/irq.h | 44 +++++
include/linux/mfd/samsung/s2mpu05.h | 183 +++++++++++++++++++++
8 files changed, 414 insertions(+), 3 deletions(-)
create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mpu05.yaml
create mode 100644 include/linux/mfd/samsung/s2mpu05.h
--
Lee Jones [李琼斯]
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2025-03-14 8:57 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-28 19:37 [PATCH v3 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators Kaustabh Chakraborty
2025-02-28 19:37 ` [PATCH v3 1/3] regulator: dt-bindings: add documentation for s2mpu05-pmic regulators Kaustabh Chakraborty
2025-03-03 9:10 ` Krzysztof Kozlowski
2025-02-28 19:37 ` [PATCH v3 2/3] mfd: sec: add support for S2MPU05 PMIC Kaustabh Chakraborty
2025-03-03 9:10 ` Krzysztof Kozlowski
2025-02-28 19:37 ` [PATCH v3 3/3] regulator: s2mps11: Add support for S2MPU05 regulators Kaustabh Chakraborty
2025-03-03 9:11 ` Krzysztof Kozlowski
2025-03-13 12:46 ` [PATCH v3 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators Lee Jones
2025-03-13 13:01 ` Lee Jones
2025-03-14 8:57 ` [GIT PULL] Immutable branch between MFD and Regulator due for the v6.15 merge window Lee Jones
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).