* [PATCH v2 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators
@ 2025-02-18 18:49 Kaustabh Chakraborty
2025-02-18 18:49 ` [PATCH v2 1/3] regulator: dt-bindings: add documentation for s2mpu05-pmic regulators Kaustabh Chakraborty
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Kaustabh Chakraborty @ 2025-02-18 18:49 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 two subsystems have been placed in a single series here as
header files and documentation YAML references have been shared.
This patch series is a part of Exynos7870 upstreaming.
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
---
Changes in v2:
- Drop applied [PATCH 2/4] from v1.
- 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).
- 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: e5d3fd687aac5eceb1721fa92b9f49afcf4c3717
change-id: 20250203-exynos7870-pmic-regulators-26512b79a29b
Best regards,
--
Kaustabh Chakraborty <kauschluss@disroot.org>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 1/3] regulator: dt-bindings: add documentation for s2mpu05-pmic regulators
2025-02-18 18:49 [PATCH v2 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators Kaustabh Chakraborty
@ 2025-02-18 18:49 ` Kaustabh Chakraborty
2025-02-23 10:38 ` Krzysztof Kozlowski
2025-02-18 18:49 ` [PATCH v2 2/3] mfd: sec: add support for S2MPU05 PMIC Kaustabh Chakraborty
2025-02-18 18:49 ` [PATCH v2 3/3] regulator: s2mps11: Add support for S2MPU05 regulators Kaustabh Chakraborty
2 siblings, 1 reply; 12+ messages in thread
From: Kaustabh Chakraborty @ 2025-02-18 18:49 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..8189e4335b54651f9e7edebf74edb768674791e6
--- /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] 12+ messages in thread
* [PATCH v2 2/3] mfd: sec: add support for S2MPU05 PMIC
2025-02-18 18:49 [PATCH v2 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators Kaustabh Chakraborty
2025-02-18 18:49 ` [PATCH v2 1/3] regulator: dt-bindings: add documentation for s2mpu05-pmic regulators Kaustabh Chakraborty
@ 2025-02-18 18:49 ` Kaustabh Chakraborty
2025-02-23 10:40 ` Krzysztof Kozlowski
2025-02-18 18:49 ` [PATCH v2 3/3] regulator: s2mps11: Add support for S2MPU05 regulators Kaustabh Chakraborty
2 siblings, 1 reply; 12+ messages in thread
From: Kaustabh Chakraborty @ 2025-02-18 18:49 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] 12+ messages in thread
* [PATCH v2 3/3] regulator: s2mps11: Add support for S2MPU05 regulators
2025-02-18 18:49 [PATCH v2 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators Kaustabh Chakraborty
2025-02-18 18:49 ` [PATCH v2 1/3] regulator: dt-bindings: add documentation for s2mpu05-pmic regulators Kaustabh Chakraborty
2025-02-18 18:49 ` [PATCH v2 2/3] mfd: sec: add support for S2MPU05 PMIC Kaustabh Chakraborty
@ 2025-02-18 18:49 ` Kaustabh Chakraborty
2025-02-23 10:42 ` Krzysztof Kozlowski
2 siblings, 1 reply; 12+ messages in thread
From: Kaustabh Chakraborty @ 2025-02-18 18:49 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..b54f9bba21a9c9af7d72449529e74e1445f7d455 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] 12+ messages in thread
* Re: [PATCH v2 1/3] regulator: dt-bindings: add documentation for s2mpu05-pmic regulators
2025-02-18 18:49 ` [PATCH v2 1/3] regulator: dt-bindings: add documentation for s2mpu05-pmic regulators Kaustabh Chakraborty
@ 2025-02-23 10:38 ` Krzysztof Kozlowski
0 siblings, 0 replies; 12+ messages in thread
From: Krzysztof Kozlowski @ 2025-02-23 10:38 UTC (permalink / raw)
To: Kaustabh Chakraborty
Cc: Liam Girdwood, Mark Brown, Rob Herring, Conor Dooley, Lee Jones,
linux-kernel, linux-samsung-soc, devicetree
On Wed, Feb 19, 2025 at 12:19:49AM +0530, Kaustabh Chakraborty wrote:
> +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])$":
I forgot last time, my bad, this should be lowercase.
> + 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]$":
same here
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/3] mfd: sec: add support for S2MPU05 PMIC
2025-02-18 18:49 ` [PATCH v2 2/3] mfd: sec: add support for S2MPU05 PMIC Kaustabh Chakraborty
@ 2025-02-23 10:40 ` Krzysztof Kozlowski
2025-02-24 17:37 ` Kaustabh Chakraborty
0 siblings, 1 reply; 12+ messages in thread
From: Krzysztof Kozlowski @ 2025-02-23 10:40 UTC (permalink / raw)
To: Kaustabh Chakraborty
Cc: Liam Girdwood, Mark Brown, Rob Herring, Conor Dooley, Lee Jones,
linux-kernel, linux-samsung-soc, devicetree
On Wed, Feb 19, 2025 at 12:19:50AM +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(+)
>
> 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",
Please run scripts/checkpatch.pl and fix reported warnings. After that,
run also 'scripts/checkpatch.pl --strict' and (probably) fix more
warnings. Some warnings can be ignored, especially from --strict run,
but the code here looks like it needs a fix. Feel free to get in touch
if the warning is not clear.
Missing bindings.
BTW, don't combine independent patches from different subsystems into
one patchset. It's not helping anyone especially without explaining
dependencies/merging in the cover letter or here in changelog.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 3/3] regulator: s2mps11: Add support for S2MPU05 regulators
2025-02-18 18:49 ` [PATCH v2 3/3] regulator: s2mps11: Add support for S2MPU05 regulators Kaustabh Chakraborty
@ 2025-02-23 10:42 ` Krzysztof Kozlowski
0 siblings, 0 replies; 12+ messages in thread
From: Krzysztof Kozlowski @ 2025-02-23 10:42 UTC (permalink / raw)
To: Kaustabh Chakraborty
Cc: Liam Girdwood, Mark Brown, Rob Herring, Conor Dooley, Lee Jones,
linux-kernel, linux-samsung-soc, devicetree
On Wed, Feb 19, 2025 at 12:19:51AM +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(-)
>
> 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..b54f9bba21a9c9af7d72449529e74e1445f7d455 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, \
lowercase
> + .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, \
Same here.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/3] mfd: sec: add support for S2MPU05 PMIC
2025-02-23 10:40 ` Krzysztof Kozlowski
@ 2025-02-24 17:37 ` Kaustabh Chakraborty
2025-02-24 19:18 ` Krzysztof Kozlowski
0 siblings, 1 reply; 12+ messages in thread
From: Kaustabh Chakraborty @ 2025-02-24 17:37 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Liam Girdwood, Mark Brown, Rob Herring, Conor Dooley, Lee Jones,
linux-kernel, linux-samsung-soc, devicetree, Kaustabh Chakraborty
On 2025-02-23 16:10, Krzysztof Kozlowski wrote:
> Please run scripts/checkpatch.pl and fix reported warnings. After that,
> run also 'scripts/checkpatch.pl --strict' and (probably) fix more
> warnings. Some warnings can be ignored, especially from --strict run,
> but the code here looks like it needs a fix. Feel free to get in touch
> if the warning is not clear.
>
> Missing bindings.
Bindings have been applied in v1.
> BTW, don't combine independent patches from different subsystems into
> one patchset. It's not helping anyone especially without explaining
> dependencies/merging in the cover letter or here in changelog.
Alright I'm a bit lost here. The binding patch (the one you enquired
for above) referenced the regulator bindings, whereas the regulator
driver is including the S2MU005 PMIC header which defines the
register addresses, etc.
So it seems like patches from both subsystems are inter-dependent
on each other, and hence both are put together in a single series.
What should I do then? Should I explicitly mention this in the cover
letter? Or split into two? Or...?
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/3] mfd: sec: add support for S2MPU05 PMIC
2025-02-24 17:37 ` Kaustabh Chakraborty
@ 2025-02-24 19:18 ` Krzysztof Kozlowski
2025-02-25 18:14 ` Kaustabh Chakraborty
0 siblings, 1 reply; 12+ messages in thread
From: Krzysztof Kozlowski @ 2025-02-24 19:18 UTC (permalink / raw)
To: Kaustabh Chakraborty
Cc: Liam Girdwood, Mark Brown, Rob Herring, Conor Dooley, Lee Jones,
linux-kernel, linux-samsung-soc, devicetree
On 24/02/2025 18:37, Kaustabh Chakraborty wrote:
> On 2025-02-23 16:10, Krzysztof Kozlowski wrote:
>> Please run scripts/checkpatch.pl and fix reported warnings. After that,
>> run also 'scripts/checkpatch.pl --strict' and (probably) fix more
>> warnings. Some warnings can be ignored, especially from --strict run,
>> but the code here looks like it needs a fix. Feel free to get in touch
>> if the warning is not clear.
>>
>> Missing bindings.
>
> Bindings have been applied in v1.
Heh, I see email from Lee now but mainline does not have them, next from
19th Feb neither.
BTW, what happened with all the review tags? Nothing in cover letter nor
changelog explains dropping reviews.
>
>> BTW, don't combine independent patches from different subsystems into
>> one patchset. It's not helping anyone especially without explaining
>> dependencies/merging in the cover letter or here in changelog.
>
> Alright I'm a bit lost here. The binding patch (the one you enquired
> for above) referenced the regulator bindings, whereas the regulator
> driver is including the S2MU005 PMIC header which defines the
> register addresses, etc.
You have entire cover letter to explain dependencies and merging... If
you target specific subsystem - write.
>
> So it seems like patches from both subsystems are inter-dependent
> on each other, and hence both are put together in a single series.
>
> What should I do then? Should I explicitly mention this in the cover
> letter? Or split into two? Or...?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/3] mfd: sec: add support for S2MPU05 PMIC
2025-02-24 19:18 ` Krzysztof Kozlowski
@ 2025-02-25 18:14 ` Kaustabh Chakraborty
2025-02-25 18:44 ` Krzysztof Kozlowski
0 siblings, 1 reply; 12+ messages in thread
From: Kaustabh Chakraborty @ 2025-02-25 18:14 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Liam Girdwood, Mark Brown, Rob Herring, Conor Dooley, Lee Jones,
linux-kernel, linux-samsung-soc, devicetree, Kaustabh Chakraborty
On 2025-02-25 00:48, Krzysztof Kozlowski wrote:
> On 24/02/2025 18:37, Kaustabh Chakraborty wrote:
>> On 2025-02-23 16:10, Krzysztof Kozlowski wrote:
>>> Missing bindings.
>>
>> Bindings have been applied in v1.
>
> Heh, I see email from Lee now but mainline does not have them, next from
> 19th Feb neither.
I see it in lee/mfd/for-mfd-next. [1]
>
> BTW, what happened with all the review tags? Nothing in cover letter nor
> changelog explains dropping reviews.
Haven't explicitly mentioned dropping the tags, but I've changed the
macros a bit, among other things (which is mentioned in cover). I assume
that's the standard procedure.
>
>>
>>> BTW, don't combine independent patches from different subsystems into
>>> one patchset. It's not helping anyone especially without explaining
>>> dependencies/merging in the cover letter or here in changelog.
>>
>> Alright I'm a bit lost here. The binding patch (the one you enquired
>> for above) referenced the regulator bindings, whereas the regulator
>> driver is including the S2MU005 PMIC header which defines the
>> register addresses, etc.
>
> You have entire cover letter to explain dependencies and merging... If
> you target specific subsystem - write.
Okay, I do have that in there, but the wording is indeed quite vague.
Will try to improve it in v3.
Though the PMIC's dt-binding patch has been merged... so not really
sure what to assert now.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git/commit/?h=for-mfd-next&id=d237e8037d524bc5683d27268086620c5df605ea
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/3] mfd: sec: add support for S2MPU05 PMIC
2025-02-25 18:14 ` Kaustabh Chakraborty
@ 2025-02-25 18:44 ` Krzysztof Kozlowski
2025-02-25 20:06 ` Kaustabh Chakraborty
0 siblings, 1 reply; 12+ messages in thread
From: Krzysztof Kozlowski @ 2025-02-25 18:44 UTC (permalink / raw)
To: Kaustabh Chakraborty
Cc: Liam Girdwood, Mark Brown, Rob Herring, Conor Dooley, Lee Jones,
linux-kernel, linux-samsung-soc, devicetree
On 25/02/2025 19:14, Kaustabh Chakraborty wrote:
> On 2025-02-25 00:48, Krzysztof Kozlowski wrote:
>> On 24/02/2025 18:37, Kaustabh Chakraborty wrote:
>>> On 2025-02-23 16:10, Krzysztof Kozlowski wrote:
>>>> Missing bindings.
>>>
>>> Bindings have been applied in v1.
>>
>> Heh, I see email from Lee now but mainline does not have them, next from
>> 19th Feb neither.
>
> I see it in lee/mfd/for-mfd-next. [1]
>
>>
>> BTW, what happened with all the review tags? Nothing in cover letter nor
>> changelog explains dropping reviews.
>
> Haven't explicitly mentioned dropping the tags, but I've changed the
> macros a bit, among other things (which is mentioned in cover). I assume
> that's the standard procedure.
No, it is highly nonstandard. You must mention dropping tags and
submitting-patches explicitly asks for that.
How would you feel if you provide feedback and other person just skips it?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/3] mfd: sec: add support for S2MPU05 PMIC
2025-02-25 18:44 ` Krzysztof Kozlowski
@ 2025-02-25 20:06 ` Kaustabh Chakraborty
0 siblings, 0 replies; 12+ messages in thread
From: Kaustabh Chakraborty @ 2025-02-25 20:06 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Liam Girdwood, Mark Brown, Rob Herring, Conor Dooley, Lee Jones,
linux-kernel, linux-samsung-soc, devicetree, Kaustabh Chakraborty
On 2025-02-26 00:14, Krzysztof Kozlowski wrote:
>>> BTW, what happened with all the review tags? Nothing in cover letter nor
>>> changelog explains dropping reviews.
>>
>> Haven't explicitly mentioned dropping the tags, but I've changed the
>> macros a bit, among other things (which is mentioned in cover). I assume
>> that's the standard procedure.
>
>
> No, it is highly nonstandard. You must mention dropping tags and
> submitting-patches explicitly asks for that.
Then I might've missed it, apologies. Will mention in changelog in v3.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2025-02-25 20:06 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-18 18:49 [PATCH v2 0/3] Introduce support for Exynos7870's S2MPU05 PMIC and its regulators Kaustabh Chakraborty
2025-02-18 18:49 ` [PATCH v2 1/3] regulator: dt-bindings: add documentation for s2mpu05-pmic regulators Kaustabh Chakraborty
2025-02-23 10:38 ` Krzysztof Kozlowski
2025-02-18 18:49 ` [PATCH v2 2/3] mfd: sec: add support for S2MPU05 PMIC Kaustabh Chakraborty
2025-02-23 10:40 ` Krzysztof Kozlowski
2025-02-24 17:37 ` Kaustabh Chakraborty
2025-02-24 19:18 ` Krzysztof Kozlowski
2025-02-25 18:14 ` Kaustabh Chakraborty
2025-02-25 18:44 ` Krzysztof Kozlowski
2025-02-25 20:06 ` Kaustabh Chakraborty
2025-02-18 18:49 ` [PATCH v2 3/3] regulator: s2mps11: Add support for S2MPU05 regulators Kaustabh Chakraborty
2025-02-23 10:42 ` Krzysztof Kozlowski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox