]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
regulator: mcp16502: Add supplier for regulators
authorAndrei Simion <andrei.simion@microchip.com>
Mon, 12 Aug 2024 13:52:25 +0000 (16:52 +0300)
committerMark Brown <broonie@kernel.org>
Tue, 13 Aug 2024 11:41:44 +0000 (12:41 +0100)
Based on the datasheet [1] (Block Diagram) PVIN[1-4] and LVIN
represent the input voltage supply for each BUCKs respective LDOs.
Update the driver to align with the datasheet [1].

[1]: https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP16502-Data-Sheet-DS20006275.pdf

Co-developed-by: Mihai Sain <mihai.sain@microchip.com>
Signed-off-by: Mihai Sain <mihai.sain@microchip.com>
Signed-off-by: Andrei Simion <andrei.simion@microchip.com>
Link: https://patch.msgid.link/20240812135231.43744-2-andrei.simion@microchip.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/mcp16502.c

index 5de9d4fa5113f5f039c46979c54854c36834ba54..b34ae0bbba6f74657c8cae7a21cf3d35c954cfed 100644 (file)
@@ -107,9 +107,10 @@ static unsigned int mcp16502_of_map_mode(unsigned int mode)
        return REGULATOR_MODE_INVALID;
 }
 
-#define MCP16502_REGULATOR(_name, _id, _ranges, _ops, _ramp_table)     \
+#define MCP16502_REGULATOR(_name, _id, _sn, _ranges, _ops, _ramp_table)        \
        [_id] = {                                                       \
                .name                   = _name,                        \
+               .supply_name            = #_sn,                         \
                .regulators_node        = "regulators",                 \
                .id                     = _id,                          \
                .ops                    = &(_ops),                      \
@@ -467,18 +468,18 @@ static const struct linear_range b234_ranges[] = {
 };
 
 static const struct regulator_desc mcp16502_desc[] = {
-       /* MCP16502_REGULATOR(_name, _id, ranges, regulator_ops, ramp_table) */
-       MCP16502_REGULATOR("VDD_IO", BUCK1, b1l12_ranges, mcp16502_buck_ops,
+       /* MCP16502_REGULATOR(_name, _id, _sn, _ranges, _ops, _ramp_table) */
+       MCP16502_REGULATOR("VDD_IO", BUCK1, pvin1, b1l12_ranges, mcp16502_buck_ops,
                           mcp16502_ramp_b1l12),
-       MCP16502_REGULATOR("VDD_DDR", BUCK2, b234_ranges, mcp16502_buck_ops,
+       MCP16502_REGULATOR("VDD_DDR", BUCK2, pvin2, b234_ranges, mcp16502_buck_ops,
                           mcp16502_ramp_b234),
-       MCP16502_REGULATOR("VDD_CORE", BUCK3, b234_ranges, mcp16502_buck_ops,
+       MCP16502_REGULATOR("VDD_CORE", BUCK3, pvin3, b234_ranges, mcp16502_buck_ops,
                           mcp16502_ramp_b234),
-       MCP16502_REGULATOR("VDD_OTHER", BUCK4, b234_ranges, mcp16502_buck_ops,
+       MCP16502_REGULATOR("VDD_OTHER", BUCK4, pvin4, b234_ranges, mcp16502_buck_ops,
                           mcp16502_ramp_b234),
-       MCP16502_REGULATOR("LDO1", LDO1, b1l12_ranges, mcp16502_ldo_ops,
+       MCP16502_REGULATOR("LDO1", LDO1, lvin, b1l12_ranges, mcp16502_ldo_ops,
                           mcp16502_ramp_b1l12),
-       MCP16502_REGULATOR("LDO2", LDO2, b1l12_ranges, mcp16502_ldo_ops,
+       MCP16502_REGULATOR("LDO2", LDO2, lvin, b1l12_ranges, mcp16502_ldo_ops,
                           mcp16502_ramp_b1l12)
 };