From: Chen-Yu Tsai <wenst@chromium.org> To: Lee Jones <lee@kernel.org>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Matthias Brugger <matthias.bgg@gmail.com>, AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>, Mark Brown <broonie@kernel.org> Cc: Chen-Yu Tsai <wenst@chromium.org>, Zhiyong Tao <zhiyong.tao@mediatek.com>, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: [PATCH v2 08/11] regulator: mt6358: Make MT6366 vcn18 LDO configurable Date: Tue, 22 Aug 2023 16:45:16 +0800 [thread overview] Message-ID: <20230822084520.564937-9-wenst@chromium.org> (raw) In-Reply-To: <20230822084520.564937-1-wenst@chromium.org> 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> --- drivers/regulator/mt6358-regulator.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/drivers/regulator/mt6358-regulator.c b/drivers/regulator/mt6358-regulator.c index bc7fe2ff189d..587ee852c053 100644 --- a/drivers/regulator/mt6358-regulator.c +++ b/drivers/regulator/mt6358-regulator.c @@ -326,6 +326,27 @@ static const struct linear_range vldo28_ranges[] = { REGULATOR_LINEAR_RANGE(3000000, 11, 21, 10000), }; +static const unsigned int mt6366_vcn18_vm18_selectors[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; +static const struct linear_range mt6366_vcn18_vm18_ranges[] = { + REGULATOR_LINEAR_RANGE(600000, 0, 10, 10000), + REGULATOR_LINEAR_RANGE(700000, 11, 21, 10000), + REGULATOR_LINEAR_RANGE(800000, 22, 32, 10000), + REGULATOR_LINEAR_RANGE(900000, 33, 43, 10000), + REGULATOR_LINEAR_RANGE(1000000, 44, 54, 10000), + REGULATOR_LINEAR_RANGE(1100000, 55, 65, 10000), + REGULATOR_LINEAR_RANGE(1200000, 66, 76, 10000), + REGULATOR_LINEAR_RANGE(1300000, 77, 87, 10000), + REGULATOR_LINEAR_RANGE(1400000, 88, 98, 10000), + REGULATOR_LINEAR_RANGE(1500000, 99, 109, 10000), + REGULATOR_LINEAR_RANGE(1600000, 110, 120, 10000), + REGULATOR_LINEAR_RANGE(1700000, 121, 131, 10000), + REGULATOR_LINEAR_RANGE(1800000, 132, 142, 10000), + REGULATOR_LINEAR_RANGE(1900000, 143, 153, 10000), + REGULATOR_LINEAR_RANGE(2000000, 154, 164, 10000), + REGULATOR_LINEAR_RANGE(2100000, 165, 175, 10000), +}; + static unsigned int mt6358_map_mode(unsigned int mode) { return mode == MT6358_BUCK_MODE_AUTO ? @@ -554,7 +575,6 @@ static const struct mt6358_regulator_info mt6366_regulators[] = { MT6358_LDO_VRF12_CON0, 0, 1200000), MT6366_REG_FIXED("vio18", VIO18, MT6358_LDO_VIO18_CON0, 0, 1800000), - MT6366_REG_FIXED("vcn18", VCN18, MT6358_LDO_VCN18_CON0, 0, 1800000), MT6366_REG_FIXED("vfe28", VFE28, MT6358_LDO_VFE28_CON0, 0, 2800000), MT6366_REG_FIXED("vcn28", VCN28, MT6358_LDO_VCN28_CON0, 0, 2800000), MT6366_REG_FIXED("vxo22", VXO22, MT6358_LDO_VXO22_CON0, 0, 2200000), @@ -587,6 +607,8 @@ static const struct mt6358_regulator_info mt6366_regulators[] = { MT6358_LDO_VMC_CON0, 0, MT6358_VMC_ANA_CON0, 0xf00), MT6366_LDO("vsim2", VSIM2, vsim, MT6358_LDO_VSIM2_CON0, 0, MT6358_VSIM2_ANA_CON0, 0xf00), + MT6366_LDO("vcn18", VCN18, mt6366_vcn18_vm18, + MT6358_LDO_VCN18_CON0, 0, MT6358_VCN18_ANA_CON0, 0xf00), MT6366_LDO1("vsram-proc11", VSRAM_PROC11, 500000, 1293750, 6250, MT6358_LDO_VSRAM_PROC11_DBG0, 0x7f00, MT6358_LDO_VSRAM_CON0, 0x7f), MT6366_LDO1("vsram-others", VSRAM_OTHERS, 500000, 1293750, 6250, -- 2.42.0.rc1.204.g551eb34607-goog
WARNING: multiple messages have this Message-ID (diff)
From: Chen-Yu Tsai <wenst@chromium.org> To: Lee Jones <lee@kernel.org>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Matthias Brugger <matthias.bgg@gmail.com>, AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>, Mark Brown <broonie@kernel.org> Cc: Chen-Yu Tsai <wenst@chromium.org>, Zhiyong Tao <zhiyong.tao@mediatek.com>, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: [PATCH v2 08/11] regulator: mt6358: Make MT6366 vcn18 LDO configurable Date: Tue, 22 Aug 2023 16:45:16 +0800 [thread overview] Message-ID: <20230822084520.564937-9-wenst@chromium.org> (raw) In-Reply-To: <20230822084520.564937-1-wenst@chromium.org> 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> --- drivers/regulator/mt6358-regulator.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/drivers/regulator/mt6358-regulator.c b/drivers/regulator/mt6358-regulator.c index bc7fe2ff189d..587ee852c053 100644 --- a/drivers/regulator/mt6358-regulator.c +++ b/drivers/regulator/mt6358-regulator.c @@ -326,6 +326,27 @@ static const struct linear_range vldo28_ranges[] = { REGULATOR_LINEAR_RANGE(3000000, 11, 21, 10000), }; +static const unsigned int mt6366_vcn18_vm18_selectors[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; +static const struct linear_range mt6366_vcn18_vm18_ranges[] = { + REGULATOR_LINEAR_RANGE(600000, 0, 10, 10000), + REGULATOR_LINEAR_RANGE(700000, 11, 21, 10000), + REGULATOR_LINEAR_RANGE(800000, 22, 32, 10000), + REGULATOR_LINEAR_RANGE(900000, 33, 43, 10000), + REGULATOR_LINEAR_RANGE(1000000, 44, 54, 10000), + REGULATOR_LINEAR_RANGE(1100000, 55, 65, 10000), + REGULATOR_LINEAR_RANGE(1200000, 66, 76, 10000), + REGULATOR_LINEAR_RANGE(1300000, 77, 87, 10000), + REGULATOR_LINEAR_RANGE(1400000, 88, 98, 10000), + REGULATOR_LINEAR_RANGE(1500000, 99, 109, 10000), + REGULATOR_LINEAR_RANGE(1600000, 110, 120, 10000), + REGULATOR_LINEAR_RANGE(1700000, 121, 131, 10000), + REGULATOR_LINEAR_RANGE(1800000, 132, 142, 10000), + REGULATOR_LINEAR_RANGE(1900000, 143, 153, 10000), + REGULATOR_LINEAR_RANGE(2000000, 154, 164, 10000), + REGULATOR_LINEAR_RANGE(2100000, 165, 175, 10000), +}; + static unsigned int mt6358_map_mode(unsigned int mode) { return mode == MT6358_BUCK_MODE_AUTO ? @@ -554,7 +575,6 @@ static const struct mt6358_regulator_info mt6366_regulators[] = { MT6358_LDO_VRF12_CON0, 0, 1200000), MT6366_REG_FIXED("vio18", VIO18, MT6358_LDO_VIO18_CON0, 0, 1800000), - MT6366_REG_FIXED("vcn18", VCN18, MT6358_LDO_VCN18_CON0, 0, 1800000), MT6366_REG_FIXED("vfe28", VFE28, MT6358_LDO_VFE28_CON0, 0, 2800000), MT6366_REG_FIXED("vcn28", VCN28, MT6358_LDO_VCN28_CON0, 0, 2800000), MT6366_REG_FIXED("vxo22", VXO22, MT6358_LDO_VXO22_CON0, 0, 2200000), @@ -587,6 +607,8 @@ static const struct mt6358_regulator_info mt6366_regulators[] = { MT6358_LDO_VMC_CON0, 0, MT6358_VMC_ANA_CON0, 0xf00), MT6366_LDO("vsim2", VSIM2, vsim, MT6358_LDO_VSIM2_CON0, 0, MT6358_VSIM2_ANA_CON0, 0xf00), + MT6366_LDO("vcn18", VCN18, mt6366_vcn18_vm18, + MT6358_LDO_VCN18_CON0, 0, MT6358_VCN18_ANA_CON0, 0xf00), MT6366_LDO1("vsram-proc11", VSRAM_PROC11, 500000, 1293750, 6250, MT6358_LDO_VSRAM_PROC11_DBG0, 0x7f00, MT6358_LDO_VSRAM_CON0, 0x7f), MT6366_LDO1("vsram-others", VSRAM_OTHERS, 500000, 1293750, 6250, -- 2.42.0.rc1.204.g551eb34607-goog _______________________________________________ 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-08-22 8:46 UTC|newest] Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-08-22 8:45 [PATCH v2 00/11] regulator: mt6366: Split out of MT6358 and cleanup Chen-Yu Tsai 2023-08-22 8:45 ` Chen-Yu Tsai 2023-08-22 8:45 ` [PATCH v2 01/11] dt-bindings: mfd: mt6397: Split out compatible for MediaTek MT6366 PMIC Chen-Yu Tsai 2023-08-22 8:45 ` Chen-Yu Tsai 2023-08-22 19:35 ` Krzysztof Kozlowski 2023-08-22 19:35 ` Krzysztof Kozlowski 2023-08-22 8:45 ` [PATCH v2 02/11] mfd: mt6358: Add registers for MT6366 specific regulators Chen-Yu Tsai 2023-08-22 8:45 ` Chen-Yu Tsai 2023-08-22 19:37 ` Krzysztof Kozlowski 2023-08-22 19:37 ` Krzysztof Kozlowski 2023-09-15 8:55 ` AngeloGioacchino Del Regno 2023-09-15 8:55 ` AngeloGioacchino Del Regno 2023-09-18 10:22 ` Chen-Yu Tsai 2023-09-18 10:22 ` Chen-Yu Tsai 2023-09-21 10:41 ` Lee Jones 2023-09-21 10:41 ` Lee Jones 2023-08-22 8:45 ` [PATCH v2 03/11] regulator: dt-bindings: mt6358: Convert to DT schema Chen-Yu Tsai 2023-08-22 8:45 ` Chen-Yu Tsai 2023-08-22 19:47 ` Krzysztof Kozlowski 2023-08-22 19:47 ` Krzysztof Kozlowski 2023-08-23 3:54 ` Chen-Yu Tsai 2023-08-23 3:54 ` Chen-Yu Tsai 2023-08-23 5:48 ` Krzysztof Kozlowski 2023-08-23 5:48 ` Krzysztof Kozlowski 2023-08-23 8:13 ` Chen-Yu Tsai 2023-08-23 8:13 ` Chen-Yu Tsai 2023-08-22 8:45 ` [PATCH v2 04/11] regulator: dt-bindings: mt6358: Add regulator supplies Chen-Yu Tsai 2023-08-22 8:45 ` Chen-Yu Tsai 2023-08-22 8:45 ` [PATCH v2 05/11] regulator: dt-bindings: mediatek: Add MT6366 PMIC Chen-Yu Tsai 2023-08-22 8:45 ` Chen-Yu Tsai 2023-08-22 19:39 ` Krzysztof Kozlowski 2023-08-22 19:39 ` Krzysztof Kozlowski 2023-08-22 19:40 ` Krzysztof Kozlowski 2023-08-22 19:40 ` Krzysztof Kozlowski 2023-08-23 4:20 ` Chen-Yu Tsai 2023-08-23 4:20 ` Chen-Yu Tsai 2023-08-23 5:45 ` Krzysztof Kozlowski 2023-08-23 5:45 ` Krzysztof Kozlowski 2023-08-23 8:07 ` Chen-Yu Tsai 2023-08-23 8:07 ` Chen-Yu Tsai 2023-09-15 8:44 ` AngeloGioacchino Del Regno 2023-09-15 8:44 ` AngeloGioacchino Del Regno 2023-08-22 8:45 ` [PATCH v2 06/11] regulator: mt6358: Add supply names for MT6358 regulators Chen-Yu Tsai 2023-08-22 8:45 ` Chen-Yu Tsai 2023-08-22 8:45 ` [PATCH v2 07/11] regulator: mt6358: fix and drop type prefix in MT6366 regulator node names Chen-Yu Tsai 2023-08-22 8:45 ` Chen-Yu Tsai 2023-08-22 8:45 ` Chen-Yu Tsai [this message] 2023-08-22 8:45 ` [PATCH v2 08/11] regulator: mt6358: Make MT6366 vcn18 LDO configurable Chen-Yu Tsai 2023-08-22 8:45 ` [PATCH v2 09/11] regulator: mt6358: Add missing regulators for MT6366 Chen-Yu Tsai 2023-08-22 8:45 ` Chen-Yu Tsai 2023-08-22 8:45 ` [PATCH v2 10/11] regulator: mt6358: Add supply names for MT6366 regulators Chen-Yu Tsai 2023-08-22 8:45 ` Chen-Yu Tsai 2023-08-22 8:45 ` [PATCH v2 11/11] arm64: dts: mediatek: mt8183-kukui: Add PMIC regulator supplies Chen-Yu Tsai 2023-08-22 8:45 ` Chen-Yu Tsai
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=20230822084520.564937-9-wenst@chromium.org \ --to=wenst@chromium.org \ --cc=angelogioacchino.delregno@collabora.com \ --cc=broonie@kernel.org \ --cc=conor+dt@kernel.org \ --cc=devicetree@vger.kernel.org \ --cc=krzysztof.kozlowski+dt@linaro.org \ --cc=lee@kernel.org \ --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=zhiyong.tao@mediatek.com \ /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.