From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> To: Chen-Yu Tsai <wenst@chromium.org> Cc: Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Mark Brown <broonie@kernel.org>, Liam Girdwood <lgirdwood@gmail.com>, Matthias Brugger <matthias.bgg@gmail.com>, Gene Chen <gene_chen@richtek.com>, Johnson Wang <johnson.wang@mediatek.com>, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 4/9] regulator: mt6358: Drop *_SSHUB regulators Date: Wed, 14 Jun 2023 09:39:04 +0200 [thread overview] Message-ID: <1d4ac52a-4cc8-a346-b005-f5cebc8d9eb8@collabora.com> (raw) In-Reply-To: <CAGXv+5FskpxjATk5aJA4CG0GyarO55XXYSYkvxWd-40d4ML8RQ@mail.gmail.com> Il 12/06/23 06:45, Chen-Yu Tsai ha scritto: > On Fri, Jun 9, 2023 at 5:03 PM AngeloGioacchino Del Regno > <angelogioacchino.delregno@collabora.com> wrote: >> >> Il 09/06/23 10:30, Chen-Yu Tsai ha scritto: >>> The *_SSHUB regulators are actually alternate configuration interfaces >>> for their non *_SSHUB counterparts. They are not separate regulator >>> outputs. These registers are intended for the companion processor to >>> use to configure the power rails while the main processor is sleeping. >>> They are not intended for the main operating system to use. >>> >>> Since they are not real outputs they shouldn't be modeled separately. >>> Remove them. Luckily no device tree actually uses them. >>> >> >> I'm not sure that MT6358/6366 are used only on Chromebook SoCs, and that this SSHUB >> mechanism (companion processor) is the same across all firmwares. > > AFAICT from Internet sources there's also the MT6771 and MT6781, which > are used on some phones. > > But what part are you concerned about? The upstream regulator driver does > not actually have any code to switch to/from normal operation and SSHUB > mode. > > In a downstream kernel I found that the SSHUB mode is only used if SCP is > doing DVFS [1]. In that same kernel, the regulator driver [2] doesn't even > list the *_SSHUB versions. So if SCP DVFS is used, the regulator driver > has no idea what's going on, and can't interfere either, which I think is > actually a good thing. Only one side should have complete control of one > output. > Ok, I'm sold! :-P Jokes apart, thanks for clarifying. At this point, I agree with you in that this is safe to do, so: Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> P.S.: Sorry for the late reply and thank you for the links to that old downstream kernel. Cheers, Angelo > ChenYu > > [1] https://github.com/nokia-dev/android_kernel_nokia_mt6771/blob/android-9.0/drivers/misc/mediatek/scp/mt6771/scp_dvfs.c > [2] https://github.com/nokia-dev/android_kernel_nokia_mt6771/blob/android-9.0/drivers/misc/mediatek/pmic/mt6358/v1/regulator_codegen.c > >> I'd like someone from MediaTek to confirm that this is valid for both Chromebook >> and Smartphone firmwares. >> >> Regards, >> Angelo >> >>> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org> >>> --- >>> drivers/regulator/mt6358-regulator.c | 14 -------------- >>> include/linux/regulator/mt6358-regulator.h | 4 ---- >>> 2 files changed, 18 deletions(-) >>> >>> diff --git a/drivers/regulator/mt6358-regulator.c b/drivers/regulator/mt6358-regulator.c >>> index faf6b0757019..946a251a8b3a 100644 >>> --- a/drivers/regulator/mt6358-regulator.c >>> +++ b/drivers/regulator/mt6358-regulator.c >>> @@ -505,9 +505,6 @@ static struct mt6358_regulator_info mt6358_regulators[] = { >>> MT6358_BUCK("buck_vcore", VCORE, 500000, 1293750, 6250, >>> buck_volt_range1, 0x7f, MT6358_BUCK_VCORE_DBG0, 0x7f, >>> MT6358_VCORE_VGPU_ANA_CON0, 1), >>> - MT6358_BUCK("buck_vcore_sshub", VCORE_SSHUB, 500000, 1293750, 6250, >>> - buck_volt_range1, 0x7f, MT6358_BUCK_VCORE_SSHUB_ELR0, 0x7f, >>> - MT6358_VCORE_VGPU_ANA_CON0, 1), >>> MT6358_BUCK("buck_vpa", VPA, 500000, 3650000, 50000, >>> buck_volt_range3, 0x3f, MT6358_BUCK_VPA_DBG0, 0x3f, >>> MT6358_VPA_ANA_CON0, 3), >>> @@ -583,10 +580,6 @@ static struct mt6358_regulator_info mt6358_regulators[] = { >>> MT6358_LDO1("ldo_vsram_others", VSRAM_OTHERS, 500000, 1293750, 6250, >>> buck_volt_range1, MT6358_LDO_VSRAM_OTHERS_DBG0, 0x7f00, >>> MT6358_LDO_VSRAM_CON2, 0x7f), >>> - MT6358_LDO1("ldo_vsram_others_sshub", VSRAM_OTHERS_SSHUB, 500000, >>> - 1293750, 6250, buck_volt_range1, >>> - MT6358_LDO_VSRAM_OTHERS_SSHUB_CON1, 0x7f, >>> - MT6358_LDO_VSRAM_OTHERS_SSHUB_CON1, 0x7f), >>> MT6358_LDO1("ldo_vsram_gpu", VSRAM_GPU, 500000, 1293750, 6250, >>> buck_volt_range1, MT6358_LDO_VSRAM_GPU_DBG0, 0x7f00, >>> MT6358_LDO_VSRAM_CON3, 0x7f), >>> @@ -603,9 +596,6 @@ static struct mt6358_regulator_info mt6366_regulators[] = { >>> MT6366_BUCK("buck_vcore", VCORE, 500000, 1293750, 6250, >>> buck_volt_range1, 0x7f, MT6358_BUCK_VCORE_DBG0, 0x7f, >>> MT6358_VCORE_VGPU_ANA_CON0, 1), >>> - MT6366_BUCK("buck_vcore_sshub", VCORE_SSHUB, 500000, 1293750, 6250, >>> - buck_volt_range1, 0x7f, MT6358_BUCK_VCORE_SSHUB_ELR0, 0x7f, >>> - MT6358_VCORE_VGPU_ANA_CON0, 1), >>> MT6366_BUCK("buck_vpa", VPA, 500000, 3650000, 50000, >>> buck_volt_range3, 0x3f, MT6358_BUCK_VPA_DBG0, 0x3f, >>> MT6358_VPA_ANA_CON0, 3), >>> @@ -670,10 +660,6 @@ static struct mt6358_regulator_info mt6366_regulators[] = { >>> MT6366_LDO1("ldo_vsram_others", VSRAM_OTHERS, 500000, 1293750, 6250, >>> buck_volt_range1, MT6358_LDO_VSRAM_OTHERS_DBG0, 0x7f00, >>> MT6358_LDO_VSRAM_CON2, 0x7f), >>> - MT6366_LDO1("ldo_vsram_others_sshub", VSRAM_OTHERS_SSHUB, 500000, >>> - 1293750, 6250, buck_volt_range1, >>> - MT6358_LDO_VSRAM_OTHERS_SSHUB_CON1, 0x7f, >>> - MT6358_LDO_VSRAM_OTHERS_SSHUB_CON1, 0x7f), >>> MT6366_LDO1("ldo_vsram_gpu", VSRAM_GPU, 500000, 1293750, 6250, >>> buck_volt_range1, MT6358_LDO_VSRAM_GPU_DBG0, 0x7f00, >>> MT6358_LDO_VSRAM_CON3, 0x7f), >>> diff --git a/include/linux/regulator/mt6358-regulator.h b/include/linux/regulator/mt6358-regulator.h >>> index a4307cd9edd6..c71a6a9fce7a 100644 >>> --- a/include/linux/regulator/mt6358-regulator.h >>> +++ b/include/linux/regulator/mt6358-regulator.h >>> @@ -47,8 +47,6 @@ enum { >>> MT6358_ID_VLDO28, >>> MT6358_ID_VAUD28, >>> MT6358_ID_VSIM2, >>> - MT6358_ID_VCORE_SSHUB, >>> - MT6358_ID_VSRAM_OTHERS_SSHUB, >>> MT6358_ID_RG_MAX, >>> }; >>> >>> @@ -88,8 +86,6 @@ enum { >>> MT6366_ID_VMC, >>> MT6366_ID_VAUD28, >>> MT6366_ID_VSIM2, >>> - MT6366_ID_VCORE_SSHUB, >>> - MT6366_ID_VSRAM_OTHERS_SSHUB, >>> MT6366_ID_RG_MAX, >>> }; >>> >>
WARNING: multiple messages have this Message-ID (diff)
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> To: Chen-Yu Tsai <wenst@chromium.org> Cc: Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Mark Brown <broonie@kernel.org>, Liam Girdwood <lgirdwood@gmail.com>, Matthias Brugger <matthias.bgg@gmail.com>, Gene Chen <gene_chen@richtek.com>, Johnson Wang <johnson.wang@mediatek.com>, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 4/9] regulator: mt6358: Drop *_SSHUB regulators Date: Wed, 14 Jun 2023 09:39:04 +0200 [thread overview] Message-ID: <1d4ac52a-4cc8-a346-b005-f5cebc8d9eb8@collabora.com> (raw) In-Reply-To: <CAGXv+5FskpxjATk5aJA4CG0GyarO55XXYSYkvxWd-40d4ML8RQ@mail.gmail.com> Il 12/06/23 06:45, Chen-Yu Tsai ha scritto: > On Fri, Jun 9, 2023 at 5:03 PM AngeloGioacchino Del Regno > <angelogioacchino.delregno@collabora.com> wrote: >> >> Il 09/06/23 10:30, Chen-Yu Tsai ha scritto: >>> The *_SSHUB regulators are actually alternate configuration interfaces >>> for their non *_SSHUB counterparts. They are not separate regulator >>> outputs. These registers are intended for the companion processor to >>> use to configure the power rails while the main processor is sleeping. >>> They are not intended for the main operating system to use. >>> >>> Since they are not real outputs they shouldn't be modeled separately. >>> Remove them. Luckily no device tree actually uses them. >>> >> >> I'm not sure that MT6358/6366 are used only on Chromebook SoCs, and that this SSHUB >> mechanism (companion processor) is the same across all firmwares. > > AFAICT from Internet sources there's also the MT6771 and MT6781, which > are used on some phones. > > But what part are you concerned about? The upstream regulator driver does > not actually have any code to switch to/from normal operation and SSHUB > mode. > > In a downstream kernel I found that the SSHUB mode is only used if SCP is > doing DVFS [1]. In that same kernel, the regulator driver [2] doesn't even > list the *_SSHUB versions. So if SCP DVFS is used, the regulator driver > has no idea what's going on, and can't interfere either, which I think is > actually a good thing. Only one side should have complete control of one > output. > Ok, I'm sold! :-P Jokes apart, thanks for clarifying. At this point, I agree with you in that this is safe to do, so: Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> P.S.: Sorry for the late reply and thank you for the links to that old downstream kernel. Cheers, Angelo > ChenYu > > [1] https://github.com/nokia-dev/android_kernel_nokia_mt6771/blob/android-9.0/drivers/misc/mediatek/scp/mt6771/scp_dvfs.c > [2] https://github.com/nokia-dev/android_kernel_nokia_mt6771/blob/android-9.0/drivers/misc/mediatek/pmic/mt6358/v1/regulator_codegen.c > >> I'd like someone from MediaTek to confirm that this is valid for both Chromebook >> and Smartphone firmwares. >> >> Regards, >> Angelo >> >>> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org> >>> --- >>> drivers/regulator/mt6358-regulator.c | 14 -------------- >>> include/linux/regulator/mt6358-regulator.h | 4 ---- >>> 2 files changed, 18 deletions(-) >>> >>> diff --git a/drivers/regulator/mt6358-regulator.c b/drivers/regulator/mt6358-regulator.c >>> index faf6b0757019..946a251a8b3a 100644 >>> --- a/drivers/regulator/mt6358-regulator.c >>> +++ b/drivers/regulator/mt6358-regulator.c >>> @@ -505,9 +505,6 @@ static struct mt6358_regulator_info mt6358_regulators[] = { >>> MT6358_BUCK("buck_vcore", VCORE, 500000, 1293750, 6250, >>> buck_volt_range1, 0x7f, MT6358_BUCK_VCORE_DBG0, 0x7f, >>> MT6358_VCORE_VGPU_ANA_CON0, 1), >>> - MT6358_BUCK("buck_vcore_sshub", VCORE_SSHUB, 500000, 1293750, 6250, >>> - buck_volt_range1, 0x7f, MT6358_BUCK_VCORE_SSHUB_ELR0, 0x7f, >>> - MT6358_VCORE_VGPU_ANA_CON0, 1), >>> MT6358_BUCK("buck_vpa", VPA, 500000, 3650000, 50000, >>> buck_volt_range3, 0x3f, MT6358_BUCK_VPA_DBG0, 0x3f, >>> MT6358_VPA_ANA_CON0, 3), >>> @@ -583,10 +580,6 @@ static struct mt6358_regulator_info mt6358_regulators[] = { >>> MT6358_LDO1("ldo_vsram_others", VSRAM_OTHERS, 500000, 1293750, 6250, >>> buck_volt_range1, MT6358_LDO_VSRAM_OTHERS_DBG0, 0x7f00, >>> MT6358_LDO_VSRAM_CON2, 0x7f), >>> - MT6358_LDO1("ldo_vsram_others_sshub", VSRAM_OTHERS_SSHUB, 500000, >>> - 1293750, 6250, buck_volt_range1, >>> - MT6358_LDO_VSRAM_OTHERS_SSHUB_CON1, 0x7f, >>> - MT6358_LDO_VSRAM_OTHERS_SSHUB_CON1, 0x7f), >>> MT6358_LDO1("ldo_vsram_gpu", VSRAM_GPU, 500000, 1293750, 6250, >>> buck_volt_range1, MT6358_LDO_VSRAM_GPU_DBG0, 0x7f00, >>> MT6358_LDO_VSRAM_CON3, 0x7f), >>> @@ -603,9 +596,6 @@ static struct mt6358_regulator_info mt6366_regulators[] = { >>> MT6366_BUCK("buck_vcore", VCORE, 500000, 1293750, 6250, >>> buck_volt_range1, 0x7f, MT6358_BUCK_VCORE_DBG0, 0x7f, >>> MT6358_VCORE_VGPU_ANA_CON0, 1), >>> - MT6366_BUCK("buck_vcore_sshub", VCORE_SSHUB, 500000, 1293750, 6250, >>> - buck_volt_range1, 0x7f, MT6358_BUCK_VCORE_SSHUB_ELR0, 0x7f, >>> - MT6358_VCORE_VGPU_ANA_CON0, 1), >>> MT6366_BUCK("buck_vpa", VPA, 500000, 3650000, 50000, >>> buck_volt_range3, 0x3f, MT6358_BUCK_VPA_DBG0, 0x3f, >>> MT6358_VPA_ANA_CON0, 3), >>> @@ -670,10 +660,6 @@ static struct mt6358_regulator_info mt6366_regulators[] = { >>> MT6366_LDO1("ldo_vsram_others", VSRAM_OTHERS, 500000, 1293750, 6250, >>> buck_volt_range1, MT6358_LDO_VSRAM_OTHERS_DBG0, 0x7f00, >>> MT6358_LDO_VSRAM_CON2, 0x7f), >>> - MT6366_LDO1("ldo_vsram_others_sshub", VSRAM_OTHERS_SSHUB, 500000, >>> - 1293750, 6250, buck_volt_range1, >>> - MT6358_LDO_VSRAM_OTHERS_SSHUB_CON1, 0x7f, >>> - MT6358_LDO_VSRAM_OTHERS_SSHUB_CON1, 0x7f), >>> MT6366_LDO1("ldo_vsram_gpu", VSRAM_GPU, 500000, 1293750, 6250, >>> buck_volt_range1, MT6358_LDO_VSRAM_GPU_DBG0, 0x7f00, >>> MT6358_LDO_VSRAM_CON3, 0x7f), >>> diff --git a/include/linux/regulator/mt6358-regulator.h b/include/linux/regulator/mt6358-regulator.h >>> index a4307cd9edd6..c71a6a9fce7a 100644 >>> --- a/include/linux/regulator/mt6358-regulator.h >>> +++ b/include/linux/regulator/mt6358-regulator.h >>> @@ -47,8 +47,6 @@ enum { >>> MT6358_ID_VLDO28, >>> MT6358_ID_VAUD28, >>> MT6358_ID_VSIM2, >>> - MT6358_ID_VCORE_SSHUB, >>> - MT6358_ID_VSRAM_OTHERS_SSHUB, >>> MT6358_ID_RG_MAX, >>> }; >>> >>> @@ -88,8 +86,6 @@ enum { >>> MT6366_ID_VMC, >>> MT6366_ID_VAUD28, >>> MT6366_ID_VSIM2, >>> - MT6366_ID_VCORE_SSHUB, >>> - MT6366_ID_VSRAM_OTHERS_SSHUB, >>> MT6366_ID_RG_MAX, >>> }; >>> >> _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-06-14 7:39 UTC|newest] Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-06-09 8:29 [PATCH 0/9] regulator: mt6358: Remove bogus regulators and improvements Chen-Yu Tsai 2023-06-09 8:29 ` Chen-Yu Tsai 2023-06-09 8:29 ` [PATCH 1/9] regulator: dt-bindings: mt6358: Merge ldo_vcn33_* regulators Chen-Yu Tsai 2023-06-09 8:29 ` Chen-Yu Tsai 2023-06-09 15:47 ` Matthias Brugger 2023-06-09 15:47 ` Matthias Brugger 2023-06-09 16:02 ` Krzysztof Kozlowski 2023-06-09 16:02 ` Krzysztof Kozlowski 2023-06-09 8:29 ` [PATCH 2/9] regulator: dt-bindings: mt6358: Drop *_sshub regulators Chen-Yu Tsai 2023-06-09 8:29 ` Chen-Yu Tsai 2023-06-09 15:47 ` Matthias Brugger 2023-06-09 15:47 ` Matthias Brugger 2023-06-09 16:02 ` Krzysztof Kozlowski 2023-06-09 16:02 ` Krzysztof Kozlowski 2023-06-09 8:30 ` [PATCH 3/9] regulator: mt6358: Merge VCN33_* regulators Chen-Yu Tsai 2023-06-09 8:30 ` Chen-Yu Tsai 2023-06-09 8:58 ` AngeloGioacchino Del Regno 2023-06-09 8:58 ` AngeloGioacchino Del Regno 2023-06-12 3:41 ` Chen-Yu Tsai 2023-06-09 15:56 ` Conor Dooley 2023-06-09 15:56 ` Conor Dooley 2023-06-10 15:28 ` Conor Dooley 2023-06-12 4:19 ` Chen-Yu Tsai 2023-06-12 17:34 ` Conor Dooley 2023-06-12 17:34 ` Conor Dooley 2023-06-12 10:56 ` Fei Shao 2023-06-15 7:37 ` Chen-Yu Tsai 2023-06-15 7:37 ` Chen-Yu Tsai 2023-06-09 8:30 ` [PATCH 4/9] regulator: mt6358: Drop *_SSHUB regulators Chen-Yu Tsai 2023-06-09 8:30 ` Chen-Yu Tsai 2023-06-09 9:03 ` AngeloGioacchino Del Regno 2023-06-09 9:03 ` AngeloGioacchino Del Regno 2023-06-12 4:45 ` Chen-Yu Tsai 2023-06-12 18:13 ` Mark Brown 2023-06-12 18:13 ` Mark Brown 2023-06-14 7:39 ` AngeloGioacchino Del Regno [this message] 2023-06-14 7:39 ` AngeloGioacchino Del Regno 2023-06-09 15:52 ` Matthias Brugger 2023-06-09 15:52 ` Matthias Brugger 2023-06-09 8:30 ` [PATCH 5/9] regulator: mt6358: Const-ify mt6358_regulator_info data structures Chen-Yu Tsai 2023-06-09 8:30 ` Chen-Yu Tsai 2023-06-09 8:30 ` [PATCH 6/9] regulator: mt6358: Use linear voltage helpers for single range regulators Chen-Yu Tsai 2023-06-09 8:30 ` Chen-Yu Tsai 2023-06-09 8:30 ` [PATCH 7/9] regulator: mt6358: Add output voltage fine tuning to fixed regulators Chen-Yu Tsai 2023-06-09 8:30 ` Chen-Yu Tsai 2023-06-09 10:03 ` AngeloGioacchino Del Regno 2023-06-09 10:03 ` AngeloGioacchino Del Regno 2023-06-14 16:14 ` Mark Brown 2023-06-14 16:14 ` Mark Brown 2023-06-15 3:24 ` Chen-Yu Tsai 2023-06-15 3:24 ` Chen-Yu Tsai 2023-06-09 8:30 ` [PATCH 8/9] regulator: mt6358: Add output voltage fine tuning to variable LDOs Chen-Yu Tsai 2023-06-09 8:30 ` Chen-Yu Tsai 2023-06-09 10:03 ` AngeloGioacchino Del Regno 2023-06-09 10:03 ` AngeloGioacchino Del Regno 2023-06-09 8:30 ` [PATCH 9/9] arm64: dts: mediatek: mt6358: Merge ldo_vcn33_* regulators Chen-Yu Tsai 2023-06-09 8:30 ` Chen-Yu Tsai 2023-06-14 18:58 ` (subset) [PATCH 0/9] regulator: mt6358: Remove bogus regulators and improvements Mark Brown 2023-06-14 18:58 ` Mark Brown
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1d4ac52a-4cc8-a346-b005-f5cebc8d9eb8@collabora.com \ --to=angelogioacchino.delregno@collabora.com \ --cc=broonie@kernel.org \ --cc=conor+dt@kernel.org \ --cc=devicetree@vger.kernel.org \ --cc=gene_chen@richtek.com \ --cc=johnson.wang@mediatek.com \ --cc=krzysztof.kozlowski+dt@linaro.org \ --cc=lgirdwood@gmail.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ --cc=matthias.bgg@gmail.com \ --cc=robh+dt@kernel.org \ --cc=wenst@chromium.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.