* [PATCH 0/5] regulator: pca9450: collect some improvement patches
@ 2024-12-05 16:51 Frank Li
2024-12-05 16:51 ` [PATCH 1/5] regulator: pca9450: add enable_value for all bucks Frank Li
` (5 more replies)
0 siblings, 6 replies; 11+ messages in thread
From: Frank Li @ 2024-12-05 16:51 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Robin Gong, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: linux-kernel, devicetree, imx, joy.zou, linux-arm-kernel,
Frank Li
Add pca9452 support
Use dev_err_probe() to simple code
add pca9452 support in imx93-14x14 dts
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Frank Li (1):
regulator: pca9450: Use dev_err_probe() to simplify code
Joy Zou (3):
regulator: dt-bindings: pca9450: Add pca9452 support
regulator: pca9450: Add PMIC pca9452 support
arm64: dts: imx93: add pca9452 support
Robin Gong (1):
regulator: pca9450: add enable_value for all bucks
.../bindings/regulator/nxp,pca9450-regulator.yaml | 1 +
arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts | 83 +++++++++++++++
drivers/regulator/pca9450-regulator.c | 111 ++++++++++++---------
include/linux/regulator/pca9450.h | 1 +
4 files changed, 150 insertions(+), 46 deletions(-)
---
base-commit: af2ea8ab7a546b430726183458da0a173d331272
change-id: 20241121-pca9450-72c3f757a0b0
Best regards,
---
Frank Li <Frank.Li@nxp.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/5] regulator: pca9450: add enable_value for all bucks
2024-12-05 16:51 [PATCH 0/5] regulator: pca9450: collect some improvement patches Frank Li
@ 2024-12-05 16:51 ` Frank Li
2024-12-05 16:51 ` [PATCH 2/5] regulator: pca9450: Use dev_err_probe() to simplify code Frank Li
` (4 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Frank Li @ 2024-12-05 16:51 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Robin Gong, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: linux-kernel, devicetree, imx, joy.zou, linux-arm-kernel,
Frank Li
From: Robin Gong <yibin.gong@nxp.com>
Set 'enable_value' in the regulator descriptor for different bucks to
manage their enable modes:
- 00b: OFF
- 01b: ON when PMIC_ON_REQ = H
- 10b: ON when PMIC_ON_REQ = H && PMIC_STBY_REQ = L
- 11b: Always ON
Ensure appropriate behavior based on the intended design. For example:
- Buck2, designed for vddarm, should be set to '10b' (ON when
PMIC_STBY_REQ = L) since it can be off when `PMIC_STBY_REQ = H` after the
kernel enters suspend.
- Other bucks remain '01b' (ON when PMIC_ON_REQ = H), matching the default
setting. This avoids the need to re-enable them during kernel boot as they
are already enabled after PMIC initialization.
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
drivers/regulator/pca9450-regulator.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/regulator/pca9450-regulator.c b/drivers/regulator/pca9450-regulator.c
index 9714afe347dcc..caeeed433165c 100644
--- a/drivers/regulator/pca9450-regulator.c
+++ b/drivers/regulator/pca9450-regulator.c
@@ -247,6 +247,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
.ramp_mask = BUCK1_RAMP_MASK,
.ramp_delay_table = pca9450_dvs_buck_ramp_table,
.n_ramp_values = ARRAY_SIZE(pca9450_dvs_buck_ramp_table),
+ .enable_val = BUCK_ENMODE_ONREQ,
.owner = THIS_MODULE,
.of_parse_cb = pca9450_set_dvs_levels,
},
@@ -272,6 +273,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
.vsel_mask = BUCK2OUT_DVS0_MASK,
.enable_reg = PCA9450_REG_BUCK2CTRL,
.enable_mask = BUCK2_ENMODE_MASK,
+ .enable_val = BUCK_ENMODE_ONREQ_STBYREQ,
.ramp_reg = PCA9450_REG_BUCK2CTRL,
.ramp_mask = BUCK2_RAMP_MASK,
.ramp_delay_table = pca9450_dvs_buck_ramp_table,
@@ -301,6 +303,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
.vsel_mask = BUCK3OUT_DVS0_MASK,
.enable_reg = PCA9450_REG_BUCK3CTRL,
.enable_mask = BUCK3_ENMODE_MASK,
+ .enable_val = BUCK_ENMODE_ONREQ,
.ramp_reg = PCA9450_REG_BUCK3CTRL,
.ramp_mask = BUCK3_RAMP_MASK,
.ramp_delay_table = pca9450_dvs_buck_ramp_table,
@@ -330,6 +333,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
.vsel_mask = BUCK4OUT_MASK,
.enable_reg = PCA9450_REG_BUCK4CTRL,
.enable_mask = BUCK4_ENMODE_MASK,
+ .enable_val = BUCK_ENMODE_ONREQ,
.owner = THIS_MODULE,
},
},
@@ -348,6 +352,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
.vsel_mask = BUCK5OUT_MASK,
.enable_reg = PCA9450_REG_BUCK5CTRL,
.enable_mask = BUCK5_ENMODE_MASK,
+ .enable_val = BUCK_ENMODE_ONREQ,
.owner = THIS_MODULE,
},
},
@@ -366,6 +371,7 @@ static const struct pca9450_regulator_desc pca9450a_regulators[] = {
.vsel_mask = BUCK6OUT_MASK,
.enable_reg = PCA9450_REG_BUCK6CTRL,
.enable_mask = BUCK6_ENMODE_MASK,
+ .enable_val = BUCK_ENMODE_ONREQ,
.owner = THIS_MODULE,
},
},
@@ -481,6 +487,7 @@ static const struct pca9450_regulator_desc pca9450bc_regulators[] = {
.vsel_mask = BUCK1OUT_DVS0_MASK,
.enable_reg = PCA9450_REG_BUCK1CTRL,
.enable_mask = BUCK1_ENMODE_MASK,
+ .enable_val = BUCK_ENMODE_ONREQ,
.ramp_reg = PCA9450_REG_BUCK1CTRL,
.ramp_mask = BUCK1_RAMP_MASK,
.ramp_delay_table = pca9450_dvs_buck_ramp_table,
@@ -510,6 +517,7 @@ static const struct pca9450_regulator_desc pca9450bc_regulators[] = {
.vsel_mask = BUCK2OUT_DVS0_MASK,
.enable_reg = PCA9450_REG_BUCK2CTRL,
.enable_mask = BUCK2_ENMODE_MASK,
+ .enable_val = BUCK_ENMODE_ONREQ_STBYREQ,
.ramp_reg = PCA9450_REG_BUCK2CTRL,
.ramp_mask = BUCK2_RAMP_MASK,
.ramp_delay_table = pca9450_dvs_buck_ramp_table,
@@ -539,6 +547,7 @@ static const struct pca9450_regulator_desc pca9450bc_regulators[] = {
.vsel_mask = BUCK4OUT_MASK,
.enable_reg = PCA9450_REG_BUCK4CTRL,
.enable_mask = BUCK4_ENMODE_MASK,
+ .enable_val = BUCK_ENMODE_ONREQ,
.owner = THIS_MODULE,
},
},
@@ -557,6 +566,7 @@ static const struct pca9450_regulator_desc pca9450bc_regulators[] = {
.vsel_mask = BUCK5OUT_MASK,
.enable_reg = PCA9450_REG_BUCK5CTRL,
.enable_mask = BUCK5_ENMODE_MASK,
+ .enable_val = BUCK_ENMODE_ONREQ,
.owner = THIS_MODULE,
},
},
@@ -575,6 +585,7 @@ static const struct pca9450_regulator_desc pca9450bc_regulators[] = {
.vsel_mask = BUCK6OUT_MASK,
.enable_reg = PCA9450_REG_BUCK6CTRL,
.enable_mask = BUCK6_ENMODE_MASK,
+ .enable_val = BUCK_ENMODE_ONREQ,
.owner = THIS_MODULE,
},
},
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/5] regulator: pca9450: Use dev_err_probe() to simplify code
2024-12-05 16:51 [PATCH 0/5] regulator: pca9450: collect some improvement patches Frank Li
2024-12-05 16:51 ` [PATCH 1/5] regulator: pca9450: add enable_value for all bucks Frank Li
@ 2024-12-05 16:51 ` Frank Li
2024-12-05 16:51 ` [PATCH 3/5] regulator: dt-bindings: pca9450: Add pca9452 support Frank Li
` (3 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Frank Li @ 2024-12-05 16:51 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Robin Gong, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: linux-kernel, devicetree, imx, joy.zou, linux-arm-kernel,
Frank Li
Use dev_err_probe() to simplify code.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
drivers/regulator/pca9450-regulator.c | 73 +++++++++++++----------------------
1 file changed, 27 insertions(+), 46 deletions(-)
diff --git a/drivers/regulator/pca9450-regulator.c b/drivers/regulator/pca9450-regulator.c
index caeeed433165c..0b1f099fdd5ee 100644
--- a/drivers/regulator/pca9450-regulator.c
+++ b/drivers/regulator/pca9450-regulator.c
@@ -932,25 +932,20 @@ static int pca9450_i2c_probe(struct i2c_client *i2c)
pca9450->regmap = devm_regmap_init_i2c(i2c,
&pca9450_regmap_config);
- if (IS_ERR(pca9450->regmap)) {
- dev_err(&i2c->dev, "regmap initialization failed\n");
- return PTR_ERR(pca9450->regmap);
- }
+ if (IS_ERR(pca9450->regmap))
+ return dev_err_probe(&i2c->dev, PTR_ERR(pca9450->regmap),
+ "regmap initialization failed\n");
ret = regmap_read(pca9450->regmap, PCA9450_REG_DEV_ID, &device_id);
- if (ret) {
- dev_err(&i2c->dev, "Read device id error\n");
- return ret;
- }
+ if (ret)
+ return dev_err_probe(&i2c->dev, ret, "Read device id error\n");
/* Check your board and dts for match the right pmic */
if (((device_id >> 4) != 0x1 && type == PCA9450_TYPE_PCA9450A) ||
((device_id >> 4) != 0x3 && type == PCA9450_TYPE_PCA9450BC) ||
- ((device_id >> 4) != 0x9 && type == PCA9450_TYPE_PCA9451A)) {
- dev_err(&i2c->dev, "Device id(%x) mismatched\n",
- device_id >> 4);
- return -EINVAL;
- }
+ ((device_id >> 4) != 0x9 && type == PCA9450_TYPE_PCA9451A))
+ return dev_err_probe(&i2c->dev, -EINVAL,
+ "Device id(%x) mismatched\n", device_id >> 4);
for (i = 0; i < pca9450->rcnt; i++) {
const struct regulator_desc *desc;
@@ -964,13 +959,9 @@ static int pca9450_i2c_probe(struct i2c_client *i2c)
config.dev = pca9450->dev;
rdev = devm_regulator_register(pca9450->dev, desc, &config);
- if (IS_ERR(rdev)) {
- ret = PTR_ERR(rdev);
- dev_err(pca9450->dev,
- "Failed to register regulator(%s): %d\n",
- desc->name, ret);
- return ret;
- }
+ if (IS_ERR(rdev))
+ return dev_err_probe(pca9450->dev, PTR_ERR(rdev),
+ "Failed to register regulator(%s)\n", desc->name);
}
if (pca9450->irq) {
@@ -978,29 +969,24 @@ static int pca9450_i2c_probe(struct i2c_client *i2c)
pca9450_irq_handler,
(IRQF_TRIGGER_FALLING | IRQF_ONESHOT),
"pca9450-irq", pca9450);
- if (ret != 0) {
- dev_err(pca9450->dev, "Failed to request IRQ: %d\n",
- pca9450->irq);
- return ret;
- }
+ if (ret != 0)
+ return dev_err_probe(pca9450->dev, ret, "Failed to request IRQ: %d\n",
+ pca9450->irq);
+
/* Unmask all interrupt except PWRON/WDOG/RSVD */
ret = regmap_update_bits(pca9450->regmap, PCA9450_REG_INT1_MSK,
IRQ_VR_FLT1 | IRQ_VR_FLT2 | IRQ_LOWVSYS |
IRQ_THERM_105 | IRQ_THERM_125,
IRQ_PWRON | IRQ_WDOGB | IRQ_RSVD);
- if (ret) {
- dev_err(&i2c->dev, "Unmask irq error\n");
- return ret;
- }
+ if (ret)
+ return dev_err_probe(&i2c->dev, ret, "Unmask irq error\n");
}
/* Clear PRESET_EN bit in BUCK123_DVS to use DVS registers */
ret = regmap_clear_bits(pca9450->regmap, PCA9450_REG_BUCK123_DVS,
BUCK123_PRESET_EN);
- if (ret) {
- dev_err(&i2c->dev, "Failed to clear PRESET_EN bit: %d\n", ret);
- return ret;
- }
+ if (ret)
+ return dev_err_probe(&i2c->dev, ret, "Failed to clear PRESET_EN bit\n");
if (of_property_read_bool(i2c->dev.of_node, "nxp,wdog_b-warm-reset"))
reset_ctrl = WDOG_B_CFG_WARM;
@@ -1010,20 +996,16 @@ static int pca9450_i2c_probe(struct i2c_client *i2c)
/* Set reset behavior on assertion of WDOG_B signal */
ret = regmap_update_bits(pca9450->regmap, PCA9450_REG_RESET_CTRL,
WDOG_B_CFG_MASK, reset_ctrl);
- if (ret) {
- dev_err(&i2c->dev, "Failed to set WDOG_B reset behavior\n");
- return ret;
- }
+ if (ret)
+ return dev_err_probe(&i2c->dev, ret, "Failed to set WDOG_B reset behavior\n");
if (of_property_read_bool(i2c->dev.of_node, "nxp,i2c-lt-enable")) {
/* Enable I2C Level Translator */
ret = regmap_update_bits(pca9450->regmap, PCA9450_REG_CONFIG2,
I2C_LT_MASK, I2C_LT_ON_STANDBY_RUN);
- if (ret) {
- dev_err(&i2c->dev,
- "Failed to enable I2C level translator\n");
- return ret;
- }
+ if (ret)
+ return dev_err_probe(&i2c->dev, ret,
+ "Failed to enable I2C level translator\n");
}
/*
@@ -1033,10 +1015,9 @@ static int pca9450_i2c_probe(struct i2c_client *i2c)
*/
pca9450->sd_vsel_gpio = gpiod_get_optional(pca9450->dev, "sd-vsel", GPIOD_OUT_HIGH);
- if (IS_ERR(pca9450->sd_vsel_gpio)) {
- dev_err(&i2c->dev, "Failed to get SD_VSEL GPIO\n");
- return PTR_ERR(pca9450->sd_vsel_gpio);
- }
+ if (IS_ERR(pca9450->sd_vsel_gpio))
+ return dev_err_probe(&i2c->dev, PTR_ERR(pca9450->sd_vsel_gpio),
+ "Failed to get SD_VSEL GPIO\n");
dev_info(&i2c->dev, "%s probed.\n",
type == PCA9450_TYPE_PCA9450A ? "pca9450a" :
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/5] regulator: dt-bindings: pca9450: Add pca9452 support
2024-12-05 16:51 [PATCH 0/5] regulator: pca9450: collect some improvement patches Frank Li
2024-12-05 16:51 ` [PATCH 1/5] regulator: pca9450: add enable_value for all bucks Frank Li
2024-12-05 16:51 ` [PATCH 2/5] regulator: pca9450: Use dev_err_probe() to simplify code Frank Li
@ 2024-12-05 16:51 ` Frank Li
2024-12-05 17:58 ` Conor Dooley
2024-12-05 16:51 ` [PATCH 4/5] regulator: pca9450: Add PMIC " Frank Li
` (2 subsequent siblings)
5 siblings, 1 reply; 11+ messages in thread
From: Frank Li @ 2024-12-05 16:51 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Robin Gong, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: linux-kernel, devicetree, imx, joy.zou, linux-arm-kernel,
Frank Li
From: Joy Zou <joy.zou@nxp.com>
Add compatible string 'nxp,pca9452'. pca9452 add 'ldo3' compared with
pca9451a.
Signed-off-by: Joy Zou <joy.zou@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml b/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml
index f8057bba747a5..68709a7dc43f1 100644
--- a/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml
+++ b/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml
@@ -29,6 +29,7 @@ properties:
- nxp,pca9450b
- nxp,pca9450c
- nxp,pca9451a
+ - nxp,pca9452
reg:
maxItems: 1
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 4/5] regulator: pca9450: Add PMIC pca9452 support
2024-12-05 16:51 [PATCH 0/5] regulator: pca9450: collect some improvement patches Frank Li
` (2 preceding siblings ...)
2024-12-05 16:51 ` [PATCH 3/5] regulator: dt-bindings: pca9450: Add pca9452 support Frank Li
@ 2024-12-05 16:51 ` Frank Li
2024-12-05 16:51 ` [PATCH 5/5] arm64: dts: imx93: add " Frank Li
2024-12-10 13:02 ` (subset) [PATCH 0/5] regulator: pca9450: collect some improvement patches Mark Brown
5 siblings, 0 replies; 11+ messages in thread
From: Frank Li @ 2024-12-05 16:51 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Robin Gong, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: linux-kernel, devicetree, imx, joy.zou, linux-arm-kernel,
Frank Li
From: Joy Zou <joy.zou@nxp.com>
Add the PMIC pca9452 support, which add ldo3 compared with pca9451a.
Signed-off-by: Joy Zou <joy.zou@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
drivers/regulator/pca9450-regulator.c | 29 ++++++++++++++++++++++++++++-
include/linux/regulator/pca9450.h | 1 +
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/drivers/regulator/pca9450-regulator.c b/drivers/regulator/pca9450-regulator.c
index 0b1f099fdd5ee..faa6b79c27d75 100644
--- a/drivers/regulator/pca9450-regulator.c
+++ b/drivers/regulator/pca9450-regulator.c
@@ -815,6 +815,24 @@ static const struct pca9450_regulator_desc pca9451a_regulators[] = {
.owner = THIS_MODULE,
},
},
+ {
+ .desc = {
+ .name = "ldo3",
+ .of_match = of_match_ptr("LDO3"),
+ .regulators_node = of_match_ptr("regulators"),
+ .id = PCA9450_LDO3,
+ .ops = &pca9450_ldo_regulator_ops,
+ .type = REGULATOR_VOLTAGE,
+ .n_voltages = PCA9450_LDO3_VOLTAGE_NUM,
+ .linear_ranges = pca9450_ldo34_volts,
+ .n_linear_ranges = ARRAY_SIZE(pca9450_ldo34_volts),
+ .vsel_reg = PCA9450_REG_LDO3CTRL,
+ .vsel_mask = LDO3OUT_MASK,
+ .enable_reg = PCA9450_REG_LDO3CTRL,
+ .enable_mask = LDO3_EN_MASK,
+ .owner = THIS_MODULE,
+ },
+ },
{
.desc = {
.name = "ldo4",
@@ -916,6 +934,7 @@ static int pca9450_i2c_probe(struct i2c_client *i2c)
pca9450->rcnt = ARRAY_SIZE(pca9450bc_regulators);
break;
case PCA9450_TYPE_PCA9451A:
+ case PCA9450_TYPE_PCA9452:
regulator_desc = pca9451a_regulators;
pca9450->rcnt = ARRAY_SIZE(pca9451a_regulators);
break;
@@ -943,7 +962,8 @@ static int pca9450_i2c_probe(struct i2c_client *i2c)
/* Check your board and dts for match the right pmic */
if (((device_id >> 4) != 0x1 && type == PCA9450_TYPE_PCA9450A) ||
((device_id >> 4) != 0x3 && type == PCA9450_TYPE_PCA9450BC) ||
- ((device_id >> 4) != 0x9 && type == PCA9450_TYPE_PCA9451A))
+ ((device_id >> 4) != 0x9 && type == PCA9450_TYPE_PCA9451A) ||
+ ((device_id >> 4) != 0x9 && type == PCA9450_TYPE_PCA9452))
return dev_err_probe(&i2c->dev, -EINVAL,
"Device id(%x) mismatched\n", device_id >> 4);
@@ -955,6 +975,9 @@ static int pca9450_i2c_probe(struct i2c_client *i2c)
r = ®ulator_desc[i];
desc = &r->desc;
+ if (type == PCA9450_TYPE_PCA9451A && !strcmp(desc->name, "ldo3"))
+ continue;
+
config.regmap = pca9450->regmap;
config.dev = pca9450->dev;
@@ -1043,6 +1066,10 @@ static const struct of_device_id pca9450_of_match[] = {
.compatible = "nxp,pca9451a",
.data = (void *)PCA9450_TYPE_PCA9451A,
},
+ {
+ .compatible = "nxp,pca9452",
+ .data = (void *)PCA9450_TYPE_PCA9452,
+ },
{ }
};
MODULE_DEVICE_TABLE(of, pca9450_of_match);
diff --git a/include/linux/regulator/pca9450.h b/include/linux/regulator/pca9450.h
index 243633c8dceb3..b427b5873de1a 100644
--- a/include/linux/regulator/pca9450.h
+++ b/include/linux/regulator/pca9450.h
@@ -10,6 +10,7 @@ enum pca9450_chip_type {
PCA9450_TYPE_PCA9450A = 0,
PCA9450_TYPE_PCA9450BC,
PCA9450_TYPE_PCA9451A,
+ PCA9450_TYPE_PCA9452,
PCA9450_TYPE_AMOUNT,
};
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 5/5] arm64: dts: imx93: add pca9452 support
2024-12-05 16:51 [PATCH 0/5] regulator: pca9450: collect some improvement patches Frank Li
` (3 preceding siblings ...)
2024-12-05 16:51 ` [PATCH 4/5] regulator: pca9450: Add PMIC " Frank Li
@ 2024-12-05 16:51 ` Frank Li
2024-12-05 16:58 ` Mark Brown
2024-12-30 4:34 ` Shawn Guo
2024-12-10 13:02 ` (subset) [PATCH 0/5] regulator: pca9450: collect some improvement patches Mark Brown
5 siblings, 2 replies; 11+ messages in thread
From: Frank Li @ 2024-12-05 16:51 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Robin Gong, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam
Cc: linux-kernel, devicetree, imx, joy.zou, linux-arm-kernel,
Frank Li
From: Joy Zou <joy.zou@nxp.com>
Support pca9452 on imx93-14x14-evk.
Signed-off-by: Joy Zou <joy.zou@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts | 83 +++++++++++++++++++++++
1 file changed, 83 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
index 236a44c1782ae..348abb9ceae19 100644
--- a/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
@@ -219,6 +219,89 @@ pcal6524: gpio@22 {
interrupt-parent = <&gpio3>;
interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
};
+
+ pmic@25 {
+ compatible = "nxp,pca9452";
+ reg = <0x25>;
+ interrupt-parent = <&pcal6524>;
+ interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
+
+ regulators {
+ buck1: BUCK1 {
+ regulator-name = "BUCK1";
+ regulator-min-microvolt = <610000>;
+ regulator-max-microvolt = <950000>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-ramp-delay = <3125>;
+ };
+
+ buck2: BUCK2 {
+ regulator-name = "BUCK2";
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <670000>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-ramp-delay = <3125>;
+ };
+
+ buck4: BUCK4{
+ regulator-name = "BUCK4";
+ regulator-min-microvolt = <1620000>;
+ regulator-max-microvolt = <3400000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ buck5: BUCK5{
+ regulator-name = "BUCK5";
+ regulator-min-microvolt = <1620000>;
+ regulator-max-microvolt = <3400000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ buck6: BUCK6 {
+ regulator-name = "BUCK6";
+ regulator-min-microvolt = <1060000>;
+ regulator-max-microvolt = <1140000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ ldo1: LDO1 {
+ regulator-name = "LDO1";
+ regulator-min-microvolt = <1620000>;
+ regulator-max-microvolt = <1980000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ ldo3: LDO3 {
+ regulator-name = "LDO3";
+ regulator-min-microvolt = <1710000>;
+ regulator-max-microvolt = <1890000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ ldo4: LDO4 {
+ regulator-name = "LDO4";
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <840000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ ldo5: LDO5 {
+ regulator-name = "LDO5";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+ };
+ };
};
&lpi2c3 {
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 5/5] arm64: dts: imx93: add pca9452 support
2024-12-05 16:51 ` [PATCH 5/5] arm64: dts: imx93: add " Frank Li
@ 2024-12-05 16:58 ` Mark Brown
2024-12-06 7:32 ` [EXT] " Joy Zou
2024-12-30 4:34 ` Shawn Guo
1 sibling, 1 reply; 11+ messages in thread
From: Mark Brown @ 2024-12-05 16:58 UTC (permalink / raw)
To: Frank Li
Cc: Liam Girdwood, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Robin Gong, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, linux-kernel, devicetree, imx, joy.zou,
linux-arm-kernel
[-- Attachment #1: Type: text/plain, Size: 434 bytes --]
On Thu, Dec 05, 2024 at 11:51:13AM -0500, Frank Li wrote:
> + regulator-name = "BUCK1";
> + regulator-min-microvolt = <610000>;
> + regulator-max-microvolt = <950000>;
> + regulator-name = "BUCK4";
> + regulator-min-microvolt = <1620000>;
> + regulator-max-microvolt = <3400000>;
The regulators all have really wide ranges, especially with no obvious
consumers specified. Are these actually valid for the board?
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/5] regulator: dt-bindings: pca9450: Add pca9452 support
2024-12-05 16:51 ` [PATCH 3/5] regulator: dt-bindings: pca9450: Add pca9452 support Frank Li
@ 2024-12-05 17:58 ` Conor Dooley
0 siblings, 0 replies; 11+ messages in thread
From: Conor Dooley @ 2024-12-05 17:58 UTC (permalink / raw)
To: Frank Li
Cc: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Robin Gong, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, linux-kernel, devicetree,
imx, joy.zou, linux-arm-kernel
[-- Attachment #1: Type: text/plain, Size: 333 bytes --]
On Thu, Dec 05, 2024 at 11:51:11AM -0500, Frank Li wrote:
> From: Joy Zou <joy.zou@nxp.com>
>
> Add compatible string 'nxp,pca9452'. pca9452 add 'ldo3' compared with
> pca9451a.
>
> Signed-off-by: Joy Zou <joy.zou@nxp.com>
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* RE: [EXT] Re: [PATCH 5/5] arm64: dts: imx93: add pca9452 support
2024-12-05 16:58 ` Mark Brown
@ 2024-12-06 7:32 ` Joy Zou
0 siblings, 0 replies; 11+ messages in thread
From: Joy Zou @ 2024-12-06 7:32 UTC (permalink / raw)
To: Mark Brown, Frank Li
Cc: Liam Girdwood, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Robin Gong, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, linux-kernel@vger.kernel.org,
devicetree@vger.kernel.org, imx@lists.linux.dev,
linux-arm-kernel@lists.infradead.org
> -----Original Message-----
> From: Mark Brown <broonie@kernel.org>
> Sent: 2024年12月6日 0:59
> To: Frank Li <frank.li@nxp.com>
> Cc: Liam Girdwood <lgirdwood@gmail.com>; Rob Herring <robh@kernel.org>;
> Krzysztof Kozlowski <krzk+dt@kernel.org>; Conor Dooley
> <conor+dt@kernel.org>; Robin Gong <yibin.gong@nxp.com>; Shawn Guo
> <shawnguo@kernel.org>; Sascha Hauer <s.hauer@pengutronix.de>;
> Pengutronix Kernel Team <kernel@pengutronix.de>; Fabio Estevam
> <festevam@gmail.com>; linux-kernel@vger.kernel.org;
> devicetree@vger.kernel.org; imx@lists.linux.dev; Joy Zou <joy.zou@nxp.com>;
> linux-arm-kernel@lists.infradead.org
> Subject: [EXT] Re: [PATCH 5/5] arm64: dts: imx93: add pca9452 support
>
> On Thu, Dec 05, 2024 at 11:51:13AM -0500, Frank Li wrote:
>
> > + regulator-name = "BUCK1";
> > + regulator-min-microvolt = <610000>;
> > + regulator-max-microvolt = <950000>;
>
> > + regulator-name = "BUCK4";
> > + regulator-min-microvolt = <1620000>;
> > + regulator-max-microvolt = <3400000>;
>
> The regulators all have really wide ranges, especially with no obvious
> consumers specified. Are these actually valid for the board?
Please ignore the last mail because of including html.
Thanks for your comments!
Yes, the regulators all have really wide ranges from the pca9452 datasheet as follow:
BUCK1, BUCK2, BUCK3 : 0.6V to 2.1875V, 12.5mV step, 3000mA
BUCK4 : 0.6V to 3.4V, 25mV step, 3000mA
Refer to PMIC pca9452 datasheet 7.1 Features:
https://www.mouser.com/catalog/specsheets/Nxp_03-02-2024_PCA9452.pdf?srsltid=AfmBOooTrgZ1FrPfHYfztxGm5r7YYsBEFRLkx59dIZKMRlk2rsR6nBV6
The BUCK1 is used for VDD_SOC and the BUCK4 is used for NVCC_GPIO/VDD_USB_3P3 on imx93 14x14 board.
Refer to IMX93AEC datasheet 4.1.4 Operating ranges:
https://www.nxp.com/docs/en/data-sheet/IMX93AEC.pdf
BR
Joy Zou
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: (subset) [PATCH 0/5] regulator: pca9450: collect some improvement patches
2024-12-05 16:51 [PATCH 0/5] regulator: pca9450: collect some improvement patches Frank Li
` (4 preceding siblings ...)
2024-12-05 16:51 ` [PATCH 5/5] arm64: dts: imx93: add " Frank Li
@ 2024-12-10 13:02 ` Mark Brown
5 siblings, 0 replies; 11+ messages in thread
From: Mark Brown @ 2024-12-10 13:02 UTC (permalink / raw)
To: Liam Girdwood, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Robin Gong, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, Frank Li
Cc: linux-kernel, devicetree, imx, joy.zou, linux-arm-kernel
On Thu, 05 Dec 2024 11:51:08 -0500, Frank Li wrote:
> Add pca9452 support
> Use dev_err_probe() to simple code
> add pca9452 support in imx93-14x14 dts
>
>
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next
Thanks!
[1/5] regulator: pca9450: add enable_value for all bucks
commit: 229773f90b1f886e8fd542f98b495c66e43be5ba
[2/5] regulator: pca9450: Use dev_err_probe() to simplify code
commit: 0f5c601098bd3c9cdfea3e01aacdd9d0c4010ea7
[3/5] regulator: dt-bindings: pca9450: Add pca9452 support
commit: 17b531c162e5dbdce9a184ccd1c730ae3f31576b
[4/5] regulator: pca9450: Add PMIC pca9452 support
commit: 017b76fb8e5b6066f6791e7ad2387deb2c9c9a14
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 5/5] arm64: dts: imx93: add pca9452 support
2024-12-05 16:51 ` [PATCH 5/5] arm64: dts: imx93: add " Frank Li
2024-12-05 16:58 ` Mark Brown
@ 2024-12-30 4:34 ` Shawn Guo
1 sibling, 0 replies; 11+ messages in thread
From: Shawn Guo @ 2024-12-30 4:34 UTC (permalink / raw)
To: Frank Li
Cc: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Robin Gong, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, linux-kernel, devicetree,
imx, joy.zou, linux-arm-kernel
On Thu, Dec 05, 2024 at 11:51:13AM -0500, Frank Li wrote:
> From: Joy Zou <joy.zou@nxp.com>
>
> Support pca9452 on imx93-14x14-evk.
>
> Signed-off-by: Joy Zou <joy.zou@nxp.com>
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
Applied, thanks!
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2024-12-30 4:36 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-05 16:51 [PATCH 0/5] regulator: pca9450: collect some improvement patches Frank Li
2024-12-05 16:51 ` [PATCH 1/5] regulator: pca9450: add enable_value for all bucks Frank Li
2024-12-05 16:51 ` [PATCH 2/5] regulator: pca9450: Use dev_err_probe() to simplify code Frank Li
2024-12-05 16:51 ` [PATCH 3/5] regulator: dt-bindings: pca9450: Add pca9452 support Frank Li
2024-12-05 17:58 ` Conor Dooley
2024-12-05 16:51 ` [PATCH 4/5] regulator: pca9450: Add PMIC " Frank Li
2024-12-05 16:51 ` [PATCH 5/5] arm64: dts: imx93: add " Frank Li
2024-12-05 16:58 ` Mark Brown
2024-12-06 7:32 ` [EXT] " Joy Zou
2024-12-30 4:34 ` Shawn Guo
2024-12-10 13:02 ` (subset) [PATCH 0/5] regulator: pca9450: collect some improvement patches Mark Brown
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).