mbox series

[v3,00/12] regulator: mt6366: Split out of MT6358 and cleanup

Message ID 20230919104357.3971512-1-wenst@chromium.org
Headers show
Series regulator: mt6366: Split out of MT6358 and cleanup | expand

Message

Chen-Yu Tsai Sept. 19, 2023, 10:43 a.m. UTC
Hi everyone,

This is v3 of my MT6366 PMIC split-out-of-MT6358 cleanup series. The two
PMICs are mostly identical, except for the regulator bits. The MT6366 is
missing the VCAM* (camera related) LDOs, but in their place has a few
other ones. This thus requires a separate compatible to handle the
differences.

Changes since v2:
- Merged "mfd: mt6358: Add registers for MT6366 specific regulators"
  into "regulator: mt6358: Add missing regulators for MT6366", as
  suggested by Krzysztof.
- Reworked the bindings so that all the regulators are commonly defined,
  then filtered out by compatible, like every other binding does.
- Added some missing end-of-string matches to the LDO patterns
- Added patches to reuse the MT6397 regulator binding macros
  - regulator: dt-bindings: mt6358: Add regulator-allowed-modes property
  - regulator: mt6358: Use mt6397-regulator.h binding header for buck mode macros
- Dropped "regulator-coupled-with" and "regulator-coupled-max-spread"
  properties from the DT binding example. They don't make much sense
  without the coupled regulator.
- Fixed up selector values in pickable linear ranges

Changes since v1:
- Switched to using MT6358 compatible as fallback compatible
  Differences are detected through chip ID register
- MT6366 regulator binding merged with MT6358 one instead of having two
  separate ones
- Added patches
  - regulator: dt-bindings: mt6358: Convert to DT schema     
  - regulator: dt-bindings: mt6358: Add regulator supplies   
  - regulator: mt6358: Add supply names for MT6358 regulators
  - arm64: dts: mediatek: mt8183-kukui: Add PMIC regulator supplies
  These bring MT6358 regulators to the same completeness level as MT6366
- Dropped patch "mfd: mt6397: Split MediaTek MT6366 PMIC out of MT6358"
- Dropped patch "soc: mediatek: pwrap: add support for MT6366 PMIC"

This depends on my previous "regulator: mt6358: Remove bogus regulators
and improvements" series [1] and patch "regulator: mt6358: return error
for get/set mode op on linear range LDO" [2] patch. These are still in
flight, but I think posting this earlier would help get reviews underway.

Patch 1 add a compatible string for the MT6366 PMIC, with a fallback to
the MT6358 one. This should go through the MFD tree. There are no build
time dependencies.

Patch 2 converts the existing MT6358 regulator DT binding to DT schema.

Patch 3 adds the "regulator-allowed-mode" property to the MT6358
regulator binding.

Patch 4 adds regulator supply properties to the MT6358 regulator
binding.

Patch 5 adds MT6366 regulators to the MT6358 regulator binding. This was
previously done by Zhiyong Tao [3] from MediaTek as a separate binding
file. I cleaned up the patch based on previous review comments, simplified
the regulator names, and added regulator supplies. Bogus regulators were
also dropped, like what was done for the MT6358 [1]. In v2 this was
merged with the MT6358 binding, now converted to DT schema.

Patch 6 makes the MT6358 regulator driver use the mt6397-regulator.h
binding header for the operating mode macros.

Patch 7 adds support for the regulator supplies to the MT6358 regulator
driver.

Patch 8 simplifies the MT6366 regulator names to match the new names
specified in the binding.

Patch 9 makes the MT6366 VCN18 LDO regulator configurable. This is one
of the differences between the MT6358 and MT6366.

Patch 10 adds regulators that were missing from the originally proposed
binding and driver. This includes MFD header changes and needs an ack
from Lee.

Patch 11 adds regulator supply names to the MT6366 regulators

Patch 12 adds regulator supplies to MT8183 Kukui boards.

Patch 1 should go through the mfd tree. Patches 3 through 11 should go
through the regulator tree after Lee acks patch 10. Patch 12 should go
through the MediaTek tree.

[1] https://lore.kernel.org/linux-arm-kernel/20230913082919.1631287-1-wenst@chromium.org/
[2] https://lore.kernel.org/linux-arm-kernel/20230919083647.3909889-1-wenst@chromium.org/
[3] https://lore.kernel.org/linux-arm-kernel/20220823123745.14061-1-zhiyong.tao@mediatek.com/

Chen-Yu Tsai (11):
  dt-bindings: mfd: mt6397: Split out compatible for MediaTek MT6366
    PMIC
  regulator: dt-bindings: mt6358: Convert to DT schema
  regulator: dt-bindings: mt6358: Add regulator-allowed-modes property
  regulator: dt-bindings: mt6358: Add regulator supplies
  regulator: mt6358: Use mt6397-regulator.h binding header for buck mode
    macros
  regulator: mt6358: Add supply names for MT6358 regulators
  regulator: mt6358: fix and drop type prefix in MT6366 regulator node
    names
  regulator: mt6358: Make MT6366 vcn18 LDO configurable
  regulator: mt6358: Add missing regulators for MT6366
  regulator: mt6358: Add supply names for MT6366 regulators
  arm64: dts: mediatek: mt8183-kukui: Add PMIC regulator supplies

Zhiyong Tao (1):
  regulator: dt-bindings: mt6358: Add MT6366 PMIC

 .../devicetree/bindings/mfd/mt6397.txt        |   4 +-
 .../regulator/mediatek,mt6358-regulator.yaml  | 247 ++++++++++++
 .../bindings/regulator/mt6358-regulator.txt   | 350 ------------------
 .../arm64/boot/dts/mediatek/mt8183-kukui.dtsi |  28 ++
 drivers/regulator/mt6358-regulator.c          | 250 +++++++------
 include/linux/mfd/mt6358/registers.h          |  17 +
 include/linux/regulator/mt6358-regulator.h    |   3 +
 7 files changed, 440 insertions(+), 459 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/regulator/mediatek,mt6358-regulator.yaml
 delete mode 100644 Documentation/devicetree/bindings/regulator/mt6358-regulator.txt

Comments

Lee Jones Sept. 19, 2023, 1:55 p.m. UTC | #1
On Tue, 19 Sep 2023, Chen-Yu Tsai wrote:

> When support for the MT6366 PMIC regulators was added, it was assumed
> that it had the same functionality as MT6358. In reality there are
> differences. A few regulators have different ranges, or were renamed
> and repurposed, or removed altogether.
> 
> Add the 3 regulators that were missing from the original submission.
> These are added for completeness. VSRAM_CORE is not used in existing
> projects. VM18 and VMDDR feed DRAM related consumers, and are not used
> in-kernel.
> 
> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
> ---
> Changes since v2:
> - Linear range selector values fixed
> 
> Angelo's reviewed-by was dropped.
> 
>  drivers/regulator/mt6358-regulator.c       | 20 ++++++++++++++++++++

>  include/linux/mfd/mt6358/registers.h       | 17 +++++++++++++++++

Acked-by: Lee Jones <lee@kernel.org>

>  include/linux/regulator/mt6358-regulator.h |  3 +++
>  3 files changed, 40 insertions(+)

[...]
AngeloGioacchino Del Regno Sept. 20, 2023, 10:44 a.m. UTC | #2
Il 19/09/23 12:43, Chen-Yu Tsai ha scritto:
> The DT bindings for MT6358 regulator now defines the supply names for the
> PMIC.
> 
> Add support for them by adding .supply_name field settings for each
> regulator.
> 
> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>

> ---
>   drivers/regulator/mt6358-regulator.c | 106 +++++++++++++--------------
>   1 file changed, 51 insertions(+), 55 deletions(-)
> 
> diff --git a/drivers/regulator/mt6358-regulator.c b/drivers/regulator/mt6358-regulator.c
> index c312e79a0a39..cdb776d30a6d 100644
> --- a/drivers/regulator/mt6358-regulator.c
> +++ b/drivers/regulator/mt6358-regulator.c
> @@ -33,12 +33,13 @@ struct mt6358_regulator_info {
>   
>   #define to_regulator_info(x) container_of((x), struct mt6358_regulator_info, desc)
>   
> -#define MT6358_BUCK(match, vreg, min, max, step,		\
> -	vosel_mask, _da_vsel_reg, _da_vsel_mask,	\
> -	_modeset_reg, _modeset_shift)		\
> +#define MT6358_BUCK(match, vreg, supply, min, max, step,	\
> +		    vosel_mask, _da_vsel_reg, _da_vsel_mask,	\
> +		    _modeset_reg, _modeset_shift)		\
>   [MT6358_ID_##vreg] = {	\
>   	.desc = {	\
>   		.name = #vreg,	\
> +		.supply_name = supply,		\
>   		.of_match = of_match_ptr(match),	\
>   		.ops = &mt6358_volt_range_ops,	\
>   		.type = REGULATOR_VOLTAGE,	\
> @@ -61,10 +62,11 @@ struct mt6358_regulator_info {
>   	.modeset_mask = BIT(_modeset_shift),	\
>   }
>   
> -#define MT6358_LDO(match, vreg, volt_ranges, enreg, enbit, vosel, vosel_mask) \
> +#define MT6358_LDO(match, vreg, supply, volt_ranges, enreg, enbit, vosel, vosel_mask) \
>   [MT6358_ID_##vreg] = {	\
>   	.desc = {	\
>   		.name = #vreg,	\
> +		.supply_name = supply,		\
>   		.of_match = of_match_ptr(match),	\
>   		.ops = &mt6358_volt_table_ops,	\
>   		.type = REGULATOR_VOLTAGE,	\
> @@ -85,12 +87,12 @@ struct mt6358_regulator_info {
>   	.qi = BIT(15),	\
>   }
>   
> -#define MT6358_LDO1(match, vreg, min, max, step,	\
> -	_da_vsel_reg, _da_vsel_mask,	\
> -	vosel, vosel_mask)	\
> +#define MT6358_LDO1(match, vreg, supply, min, max, step,	\
> +		    _da_vsel_reg, _da_vsel_mask, vosel, vosel_mask)	\
>   [MT6358_ID_##vreg] = {	\
>   	.desc = {	\
>   		.name = #vreg,	\
> +		.supply_name = supply,		\
>   		.of_match = of_match_ptr(match),	\
>   		.ops = &mt6358_volt_range_ops,	\
>   		.type = REGULATOR_VOLTAGE,	\
> @@ -110,11 +112,11 @@ struct mt6358_regulator_info {
>   	.qi = BIT(0),	\
>   }
>   
> -#define MT6358_REG_FIXED(match, vreg,	\
> -	enreg, enbit, volt)	\
> +#define MT6358_REG_FIXED(match, vreg, supply, enreg, enbit, volt)	\
>   [MT6358_ID_##vreg] = {	\
>   	.desc = {	\
>   		.name = #vreg,	\
> +		.supply_name = supply,		\
>   		.of_match = of_match_ptr(match),	\
>   		.ops = &mt6358_volt_fixed_ops,	\
>   		.type = REGULATOR_VOLTAGE,	\
> @@ -457,79 +459,73 @@ static const struct regulator_ops mt6358_volt_fixed_ops = {
>   
>   /* The array is indexed by id(MT6358_ID_XXX) */
>   static const struct mt6358_regulator_info mt6358_regulators[] = {
> -	MT6358_BUCK("buck_vdram1", VDRAM1, 500000, 2087500, 12500,
> +	MT6358_BUCK("buck_vdram1", VDRAM1, "vsys-vdram1", 500000, 2087500, 12500,
>   		    0x7f, MT6358_BUCK_VDRAM1_DBG0, 0x7f, MT6358_VDRAM1_ANA_CON0, 8),
> -	MT6358_BUCK("buck_vcore", VCORE, 500000, 1293750, 6250,
> +	MT6358_BUCK("buck_vcore", VCORE, "vsys-vcore", 500000, 1293750, 6250,
>   		    0x7f, MT6358_BUCK_VCORE_DBG0, 0x7f, MT6358_VCORE_VGPU_ANA_CON0, 1),
> -	MT6358_BUCK("buck_vpa", VPA, 500000, 3650000, 50000,
> +	MT6358_BUCK("buck_vpa", VPA, "vsys-vpa", 500000, 3650000, 50000,
>   		    0x3f, MT6358_BUCK_VPA_DBG0, 0x3f, MT6358_VPA_ANA_CON0, 3),
> -	MT6358_BUCK("buck_vproc11", VPROC11, 500000, 1293750, 6250,
> +	MT6358_BUCK("buck_vproc11", VPROC11, "vsys-vproc11", 500000, 1293750, 6250,
>   		    0x7f, MT6358_BUCK_VPROC11_DBG0, 0x7f, MT6358_VPROC_ANA_CON0, 1),
> -	MT6358_BUCK("buck_vproc12", VPROC12, 500000, 1293750, 6250,
> +	MT6358_BUCK("buck_vproc12", VPROC12, "vsys-vproc12", 500000, 1293750, 6250,
>   		    0x7f, MT6358_BUCK_VPROC12_DBG0, 0x7f, MT6358_VPROC_ANA_CON0, 2),
> -	MT6358_BUCK("buck_vgpu", VGPU, 500000, 1293750, 6250,
> +	MT6358_BUCK("buck_vgpu", VGPU, "vsys-vgpu", 500000, 1293750, 6250,
>   		    0x7f, MT6358_BUCK_VGPU_ELR0, 0x7f, MT6358_VCORE_VGPU_ANA_CON0, 2),
> -	MT6358_BUCK("buck_vs2", VS2, 500000, 2087500, 12500,
> +	MT6358_BUCK("buck_vs2", VS2, "vsys-vs2", 500000, 2087500, 12500,
>   		    0x7f, MT6358_BUCK_VS2_DBG0, 0x7f, MT6358_VS2_ANA_CON0, 8),
> -	MT6358_BUCK("buck_vmodem", VMODEM, 500000, 1293750, 6250,
> +	MT6358_BUCK("buck_vmodem", VMODEM, "vsys-vmodem", 500000, 1293750, 6250,
>   		    0x7f, MT6358_BUCK_VMODEM_DBG0, 0x7f, MT6358_VMODEM_ANA_CON0, 8),
> -	MT6358_BUCK("buck_vs1", VS1, 1000000, 2587500, 12500,
> +	MT6358_BUCK("buck_vs1", VS1, "vsys-vs1", 1000000, 2587500, 12500,
>   		    0x7f, MT6358_BUCK_VS1_DBG0, 0x7f, MT6358_VS1_ANA_CON0, 8),
> -	MT6358_REG_FIXED("ldo_vrf12", VRF12,
> -			 MT6358_LDO_VRF12_CON0, 0, 1200000),
> -	MT6358_REG_FIXED("ldo_vio18", VIO18,
> -			 MT6358_LDO_VIO18_CON0, 0, 1800000),
> -	MT6358_REG_FIXED("ldo_vcamio", VCAMIO,
> -			 MT6358_LDO_VCAMIO_CON0, 0, 1800000),
> -	MT6358_REG_FIXED("ldo_vcn18", VCN18, MT6358_LDO_VCN18_CON0, 0, 1800000),
> -	MT6358_REG_FIXED("ldo_vfe28", VFE28, MT6358_LDO_VFE28_CON0, 0, 2800000),
> -	MT6358_REG_FIXED("ldo_vcn28", VCN28, MT6358_LDO_VCN28_CON0, 0, 2800000),
> -	MT6358_REG_FIXED("ldo_vxo22", VXO22, MT6358_LDO_VXO22_CON0, 0, 2200000),
> -	MT6358_REG_FIXED("ldo_vaux18", VAUX18,
> -			 MT6358_LDO_VAUX18_CON0, 0, 1800000),
> -	MT6358_REG_FIXED("ldo_vbif28", VBIF28,
> -			 MT6358_LDO_VBIF28_CON0, 0, 2800000),
> -	MT6358_REG_FIXED("ldo_vio28", VIO28, MT6358_LDO_VIO28_CON0, 0, 2800000),
> -	MT6358_REG_FIXED("ldo_va12", VA12, MT6358_LDO_VA12_CON0, 0, 1200000),
> -	MT6358_REG_FIXED("ldo_vrf18", VRF18, MT6358_LDO_VRF18_CON0, 0, 1800000),
> -	MT6358_REG_FIXED("ldo_vaud28", VAUD28,
> -			 MT6358_LDO_VAUD28_CON0, 0, 2800000),
> -	MT6358_LDO("ldo_vdram2", VDRAM2, vdram2,
> +	MT6358_REG_FIXED("ldo_vrf12", VRF12, "vs2-ldo2", MT6358_LDO_VRF12_CON0, 0, 1200000),
> +	MT6358_REG_FIXED("ldo_vio18", VIO18, "vs1-ldo1", MT6358_LDO_VIO18_CON0, 0, 1800000),
> +	MT6358_REG_FIXED("ldo_vcamio", VCAMIO, "vs1-ldo1", MT6358_LDO_VCAMIO_CON0, 0, 1800000),
> +	MT6358_REG_FIXED("ldo_vcn18", VCN18, "vs1-ldo1", MT6358_LDO_VCN18_CON0, 0, 1800000),
> +	MT6358_REG_FIXED("ldo_vfe28", VFE28, "vsys-ldo1", MT6358_LDO_VFE28_CON0, 0, 2800000),
> +	MT6358_REG_FIXED("ldo_vcn28", VCN28, "vsys-ldo1", MT6358_LDO_VCN28_CON0, 0, 2800000),
> +	MT6358_REG_FIXED("ldo_vxo22", VXO22, "vsys-ldo1", MT6358_LDO_VXO22_CON0, 0, 2200000),
> +	MT6358_REG_FIXED("ldo_vaux18", VAUX18, "vsys-ldo1", MT6358_LDO_VAUX18_CON0, 0, 1800000),
> +	MT6358_REG_FIXED("ldo_vbif28", VBIF28, "vsys-ldo1", MT6358_LDO_VBIF28_CON0, 0, 2800000),
> +	MT6358_REG_FIXED("ldo_vio28", VIO28, "vsys-ldo2", MT6358_LDO_VIO28_CON0, 0, 2800000),
> +	MT6358_REG_FIXED("ldo_va12", VA12, "vs2-ldo2", MT6358_LDO_VA12_CON0, 0, 1200000),
> +	MT6358_REG_FIXED("ldo_vrf18", VRF18, "vs1-ldo1", MT6358_LDO_VRF18_CON0, 0, 1800000),
> +	MT6358_REG_FIXED("ldo_vaud28", VAUD28, "vsys-ldo1", MT6358_LDO_VAUD28_CON0, 0, 2800000),
> +	MT6358_LDO("ldo_vdram2", VDRAM2, "vs2-ldo1", vdram2,
>   		   MT6358_LDO_VDRAM2_CON0, 0, MT6358_LDO_VDRAM2_ELR0, 0xf),
> -	MT6358_LDO("ldo_vsim1", VSIM1, vsim,
> +	MT6358_LDO("ldo_vsim1", VSIM1, "vsys-ldo1", vsim,
>   		   MT6358_LDO_VSIM1_CON0, 0, MT6358_VSIM1_ANA_CON0, 0xf00),
> -	MT6358_LDO("ldo_vibr", VIBR, vibr,
> +	MT6358_LDO("ldo_vibr", VIBR, "vsys-ldo3", vibr,
>   		   MT6358_LDO_VIBR_CON0, 0, MT6358_VIBR_ANA_CON0, 0xf00),
> -	MT6358_LDO("ldo_vusb", VUSB, vusb,
> +	MT6358_LDO("ldo_vusb", VUSB, "vsys-ldo1", vusb,
>   		   MT6358_LDO_VUSB_CON0_0, 0, MT6358_VUSB_ANA_CON0, 0x700),
> -	MT6358_LDO("ldo_vcamd", VCAMD, vcamd,
> +	MT6358_LDO("ldo_vcamd", VCAMD, "vs2-ldo4", vcamd,
>   		   MT6358_LDO_VCAMD_CON0, 0, MT6358_VCAMD_ANA_CON0, 0xf00),
> -	MT6358_LDO("ldo_vefuse", VEFUSE, vefuse,
> +	MT6358_LDO("ldo_vefuse", VEFUSE, "vs1-ldo1", vefuse,
>   		   MT6358_LDO_VEFUSE_CON0, 0, MT6358_VEFUSE_ANA_CON0, 0xf00),
> -	MT6358_LDO("ldo_vmch", VMCH, vmch_vemc,
> +	MT6358_LDO("ldo_vmch", VMCH, "vsys-ldo2", vmch_vemc,
>   		   MT6358_LDO_VMCH_CON0, 0, MT6358_VMCH_ANA_CON0, 0x700),
> -	MT6358_LDO("ldo_vcama1", VCAMA1, vcama,
> +	MT6358_LDO("ldo_vcama1", VCAMA1, "vsys-ldo3", vcama,
>   		   MT6358_LDO_VCAMA1_CON0, 0, MT6358_VCAMA1_ANA_CON0, 0xf00),
> -	MT6358_LDO("ldo_vemc", VEMC, vmch_vemc,
> +	MT6358_LDO("ldo_vemc", VEMC, "vsys-ldo2", vmch_vemc,
>   		   MT6358_LDO_VEMC_CON0, 0, MT6358_VEMC_ANA_CON0, 0x700),
> -	MT6358_LDO("ldo_vcn33", VCN33, vcn33,
> +	MT6358_LDO("ldo_vcn33", VCN33, "vsys-ldo3", vcn33,
>   		   MT6358_LDO_VCN33_CON0_0, 0, MT6358_VCN33_ANA_CON0, 0x300),
> -	MT6358_LDO("ldo_vcama2", VCAMA2, vcama,
> +	MT6358_LDO("ldo_vcama2", VCAMA2, "vsys-ldo3", vcama,
>   		   MT6358_LDO_VCAMA2_CON0, 0, MT6358_VCAMA2_ANA_CON0, 0xf00),
> -	MT6358_LDO("ldo_vmc", VMC, vmc,
> +	MT6358_LDO("ldo_vmc", VMC, "vsys-ldo2", vmc,
>   		   MT6358_LDO_VMC_CON0, 0, MT6358_VMC_ANA_CON0, 0xf00),
> -	MT6358_LDO("ldo_vldo28", VLDO28, vldo28,
> +	MT6358_LDO("ldo_vldo28", VLDO28, "vsys-ldo2", vldo28,
>   		   MT6358_LDO_VLDO28_CON0_0, 0,
>   		   MT6358_VLDO28_ANA_CON0, 0x300),
> -	MT6358_LDO("ldo_vsim2", VSIM2, vsim,
> +	MT6358_LDO("ldo_vsim2", VSIM2, "vsys-ldo2", vsim,
>   		   MT6358_LDO_VSIM2_CON0, 0, MT6358_VSIM2_ANA_CON0, 0xf00),
> -	MT6358_LDO1("ldo_vsram_proc11", VSRAM_PROC11, 500000, 1293750, 6250,
> +	MT6358_LDO1("ldo_vsram_proc11", VSRAM_PROC11, "vs2-ldo3", 500000, 1293750, 6250,
>   		    MT6358_LDO_VSRAM_PROC11_DBG0, 0x7f00, MT6358_LDO_VSRAM_CON0, 0x7f),
> -	MT6358_LDO1("ldo_vsram_others", VSRAM_OTHERS, 500000, 1293750, 6250,
> +	MT6358_LDO1("ldo_vsram_others", VSRAM_OTHERS, "vs2-ldo3", 500000, 1293750, 6250,
>   		    MT6358_LDO_VSRAM_OTHERS_DBG0, 0x7f00, MT6358_LDO_VSRAM_CON2, 0x7f),
> -	MT6358_LDO1("ldo_vsram_gpu", VSRAM_GPU, 500000, 1293750, 6250,
> +	MT6358_LDO1("ldo_vsram_gpu", VSRAM_GPU, "vs2-ldo3", 500000, 1293750, 6250,
>   		    MT6358_LDO_VSRAM_GPU_DBG0, 0x7f00, MT6358_LDO_VSRAM_CON3, 0x7f),
> -	MT6358_LDO1("ldo_vsram_proc12", VSRAM_PROC12, 500000, 1293750, 6250,
> +	MT6358_LDO1("ldo_vsram_proc12", VSRAM_PROC12, "vs2-ldo3", 500000, 1293750, 6250,
>   		    MT6358_LDO_VSRAM_PROC12_DBG0, 0x7f00, MT6358_LDO_VSRAM_CON1, 0x7f),
>   };
>
AngeloGioacchino Del Regno Sept. 20, 2023, 10:44 a.m. UTC | #3
Il 19/09/23 12:43, Chen-Yu Tsai ha scritto:
> The (undocumented) possible values for the buck operating modes on the
> MT6358 are the same as those on the MT6397, both for the device tree
> bindings and the actual hardware register values.
> 
> Reuse the macros for the MT6397 PMIC in the MT6358 regulator driver by
> including the mt6397-regulator.h binding header and replacing the
> existing macros. This aligns it with other PMIC.
> 
> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
AngeloGioacchino Del Regno Sept. 20, 2023, 10:44 a.m. UTC | #4
Il 19/09/23 12:43, Chen-Yu Tsai ha scritto:
> When support for the MT6366 PMIC regulators was added, it was assumed
> that it had the same functionality as MT6358. In reality there are
> differences. A few regulators have different ranges, or were renamed
> and repurposed, or removed altogether.
> 
> Add the 3 regulators that were missing from the original submission.
> These are added for completeness. VSRAM_CORE is not used in existing
> projects. VM18 and VMDDR feed DRAM related consumers, and are not used
> in-kernel.
> 
> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
AngeloGioacchino Del Regno Sept. 20, 2023, 10:44 a.m. UTC | #5
Il 19/09/23 12:43, Chen-Yu Tsai ha scritto:
> The VCN18 regulator on the MT6366 (only) actually has a wide
> configurable range of voltages, even though its name suggests a fixed
> output voltage.
> 
> Convert it from a fixed LDO to a configurable LDO. Its range of settings
> is the same as the VM18 regulator, which is missing and will be added in
> a subsequent patch.
> 
> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Chen-Yu Tsai Sept. 21, 2023, 9:09 a.m. UTC | #6
On Tue, Sep 19, 2023 at 9:55 PM Lee Jones <lee@kernel.org> wrote:
>
> On Tue, 19 Sep 2023, Chen-Yu Tsai wrote:
>
> > When support for the MT6366 PMIC regulators was added, it was assumed
> > that it had the same functionality as MT6358. In reality there are
> > differences. A few regulators have different ranges, or were renamed
> > and repurposed, or removed altogether.
> >
> > Add the 3 regulators that were missing from the original submission.
> > These are added for completeness. VSRAM_CORE is not used in existing
> > projects. VM18 and VMDDR feed DRAM related consumers, and are not used
> > in-kernel.
> >
> > Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
> > ---
> > Changes since v2:
> > - Linear range selector values fixed
> >
> > Angelo's reviewed-by was dropped.
> >
> >  drivers/regulator/mt6358-regulator.c       | 20 ++++++++++++++++++++
>
> >  include/linux/mfd/mt6358/registers.h       | 17 +++++++++++++++++
>
> Acked-by: Lee Jones <lee@kernel.org>

Thanks! Could you also take a look at another patch this series is
based on and ack that one?

It's "regulator: mt6358: Add output voltage fine tuning to fixed regulators",
with message ID "20230913082919.1631287-3-wenst@chromium.org" [1].


ChenYu

[1] https://lore.kernel.org/linux-arm-kernel/20230913082919.1631287-4-wenst@chromium.org/

>
> >  include/linux/regulator/mt6358-regulator.h |  3 +++
> >  3 files changed, 40 insertions(+)
>
> [...]
>
> --
> Lee Jones [李琼斯]
Mark Brown Sept. 25, 2023, 12:18 p.m. UTC | #7
On Tue, Sep 19, 2023 at 06:43:50PM +0800, Chen-Yu Tsai wrote:
> The DT bindings for MT6358 regulator now defines the supply names for the
> PMIC.
> 
> Add support for them by adding .supply_name field settings for each
> regulator.

This doesn't apply against current code, please check and resend (I was
using -rc3).
Chen-Yu Tsai Sept. 26, 2023, 3:58 a.m. UTC | #8
On Mon, Sep 25, 2023 at 8:18 PM Mark Brown <broonie@kernel.org> wrote:
>
> On Tue, Sep 19, 2023 at 06:43:50PM +0800, Chen-Yu Tsai wrote:
> > The DT bindings for MT6358 regulator now defines the supply names for the
> > PMIC.
> >
> > Add support for them by adding .supply_name field settings for each
> > regulator.
>
> This doesn't apply against current code, please check and resend (I was
> using -rc3).

Which parts were you planning to merge? I believe we're still blocked on
the DT bindings. And I need to update the patches to fix a warning reported
by Rob's bot.

ChenYu
Mark Brown Sept. 26, 2023, 3:29 p.m. UTC | #9
On Tue, Sep 26, 2023 at 11:58:43AM +0800, Chen-Yu Tsai wrote:
> On Mon, Sep 25, 2023 at 8:18 PM Mark Brown <broonie@kernel.org> wrote:

> > This doesn't apply against current code, please check and resend (I was
> > using -rc3).

> Which parts were you planning to merge? I believe we're still blocked on
> the DT bindings. And I need to update the patches to fix a warning reported
> by Rob's bot.

IIRC everything except the first and last patches.