[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250715115718.176495-1-angelogioacchino.delregno@collabora.com>
Date: Tue, 15 Jul 2025 13:57:10 +0200
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>
To: linux-mediatek@...ts.infradead.org
Cc: lee@...nel.org,
robh@...nel.org,
krzk+dt@...nel.org,
conor+dt@...nel.org,
matthias.bgg@...il.com,
angelogioacchino.delregno@...labora.com,
lgirdwood@...il.com,
broonie@...nel.org,
devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
kernel@...labora.com,
wenst@...omium.org
Subject: [PATCH v4 0/8] Add support MT6316/6363/MT6373 PMICs regulators and MFD
Changes in v4:
- Rewritten all register definitions for both MT6363 and MT6373
regulators to be register offsets instead
- Added the appropriate supply_name to all vregs in 6363 and 6373
- Simplified the macro parameters for all vregs in 6363 and 6373
- Added common definitions pattern in macros to avoid plain writing
register definitions in every macro call
- Added registration of SPMI sub-device in MT6363/73 and setup of
regmap reg_base based on `reg` parsed from devicetree
- Removed interrupts parsing from devicetree
- Moved (pmic-internal) IRQs to macros
- mtk-spmi-pmic: Added parsing if irqspec with param_count=2 for
easier irqs registration from regulator drivers
Changes in v3:
- Added buck and ldo supplies to mt6363 and mt6373 drivers and bindings;
- Removed interrupts from mt6363 and mt6373 bindings;
- Added registering interrupts in mt6363/73 drivers instead:
this avoids big arrays in the mfd driver, which will grow
uncontrollably (as it already happened in multiple MediaTek
drivers) and with each new(future) supported PMIC;
- Removed "ldo-" and "buck-" prefixes from mt6363 regulators
- Renamed "vbX" to "vbuckX", reflecting datasheet name
- Changed all LDOs in MT6363 and MT6373 to add VOCAL usage, both
increasing the number of voltage steps (2.5 or 10mV increments
depending on the LDO) and the accuracy of the reported voltages
- Tested again on MT8196 board
Changes in v2:
- Merged MFD and regulator in one series
- Split mediatek,mt6316-regulator.yaml in three files as
suggested by krzk
- Added interrupt-names list in MT6363/MT6373 bindings as
suggested by krzk
- Documented regulator modes in MT6363/73 as suggested by krzk
- Fixed interrupt and interrupt-names maxItems in both 6363/73
because, well... I miscounted them in v1 :-)
- Removed keys from mt6363 binding: the compatible was not yet
added to the keys binding and doing that will take quite a
while, as I have to find a way to test the code before that
as unfortunately my HW does not provide any way to test the
PMIC keys (thought it did, but then turns out it doesn't...)
- Completed the mt6363 MFD example with ADC as suggested by Rob
- Avoided applying regulator schemas multiple times as pointed
out by Rob (in mfd binding)
- Fixed MT6363/73 issues pointed out by lkp (eh, sorry, that
happened during a last minute cleanup... ugh!).
- Brewed some more coffee :-)
This series adds support for three new MediaTek PMICs: MT6316, MT6363
and MT6373 and their variants - used in board designs featuring the
MediaTek MT8196 Chromebook SoC, or the MT6991 Dimensity 9400 Smartphone
SoC.
In particular, MT6316 is a regulator, but the MT6363 and MT6373 PMICs
are multi-function devices, as they have and expose multiple sub-devices;
moreover, some of those also contain an interrupt controller, managing
internal IPs interrupts: for those, a chained interrupt handler is
registered, which parent is the SPMI controller itself.
This series adds support for all of the MT6316 regulator variants and
for MT6363, MT6373 SPMI PMICs and their interrupt controller.
AngeloGioacchino Del Regno (8):
dt-bindings: regulator: Document MediaTek MT6316 PMIC Regulators
regulator: Add support for MediaTek MT6316 SPMI PMIC Regulators
dt-bindings: regulator: Document MediaTek MT6363 PMIC Regulators
regulator: Add support for MediaTek MT6363 SPMI PMIC Regulators
dt-bindings: regulator: Document MediaTek MT6373 PMIC Regulators
regulator: Add support for MediaTek MT6373 SPMI PMIC Regulators
dt-bindings: mfd: Add binding for MediaTek MT6363 series SPMI PMIC
drivers: mfd: Add support for MediaTek SPMI PMICs and MT6363/73
.../bindings/mfd/mediatek,mt6363.yaml | 110 +++
.../regulator/mediatek,mt6316b-regulator.yaml | 46 +
.../regulator/mediatek,mt6316c-regulator.yaml | 46 +
.../regulator/mediatek,mt6316d-regulator.yaml | 41 +
.../regulator/mediatek,mt6363-regulator.yaml | 175 ++++
.../regulator/mediatek,mt6373-regulator.yaml | 175 ++++
drivers/mfd/Kconfig | 17 +
drivers/mfd/Makefile | 1 +
drivers/mfd/mtk-spmi-pmic.c | 410 ++++++++
drivers/regulator/Kconfig | 27 +
drivers/regulator/Makefile | 3 +
drivers/regulator/mt6316-regulator.c | 345 +++++++
drivers/regulator/mt6363-regulator.c | 934 ++++++++++++++++++
drivers/regulator/mt6373-regulator.c | 762 ++++++++++++++
include/linux/mfd/mt6363.h | 26 +
include/linux/mfd/mt6373.h | 21 +
include/linux/regulator/mt6363-regulator.h | 331 +++++++
include/linux/regulator/mt6373-regulator.h | 162 +++
18 files changed, 3632 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mfd/mediatek,mt6363.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/mediatek,mt6316b-regulator.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/mediatek,mt6316c-regulator.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/mediatek,mt6316d-regulator.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/mediatek,mt6363-regulator.yaml
create mode 100644 Documentation/devicetree/bindings/regulator/mediatek,mt6373-regulator.yaml
create mode 100644 drivers/mfd/mtk-spmi-pmic.c
create mode 100644 drivers/regulator/mt6316-regulator.c
create mode 100644 drivers/regulator/mt6363-regulator.c
create mode 100644 drivers/regulator/mt6373-regulator.c
create mode 100644 include/linux/mfd/mt6363.h
create mode 100644 include/linux/mfd/mt6373.h
create mode 100644 include/linux/regulator/mt6363-regulator.h
create mode 100644 include/linux/regulator/mt6373-regulator.h
--
2.50.1
Powered by blists - more mailing lists