All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frieder Schrempf <frieder@fris.de>
To: u-boot@lists.denx.de, Jaehoon Chung <jh80.chung@samsung.com>,
	Tom Rini <trini@konsulko.com>
Cc: Frieder Schrempf <frieder.schrempf@kontron.de>,
	Joy Zou <joy.zou@nxp.com>, Peng Fan <peng.fan@nxp.com>,
	Ye Li <ye.li@nxp.com>
Subject: [PATCH 4/6] pmic: pca9450: Handle hardware with fixed SD_VSEL for LDO5
Date: Mon, 11 Aug 2025 15:12:00 +0200	[thread overview]
Message-ID: <20250811131213.211124-5-frieder@fris.de> (raw)
In-Reply-To: <20250811131213.211124-1-frieder@fris.de>

From: Frieder Schrempf <frieder.schrempf@kontron.de>

There are two ways to set the output voltage of the LD05
regulator. First by writing to the voltage selection registers
and second by toggling the SD_VSEL signal.

Usually board designers connect SD_VSEL to the VSELECT signal
controlled by the USDHC controller, but in some cases the
signal is hardwired to a fixed low level (therefore selecting
3.3V as initial value for allowing to boot from the SD card).

In these cases, the voltage is only determined by the value
of the LDO5CTRL_L register. Introduce a property
nxp,sd-vsel-fixed-low to let the driver know that SD_VSEL
is low and there is no GPIO to actually get that
information from dynamically.

This is equivalent to the following change in Linux:

c8c1ab2c5cb7 ("regulator: pca9450: Handle hardware with fixed SD_VSEL for LDO5")

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
---
 drivers/power/regulator/pca9450.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/power/regulator/pca9450.c b/drivers/power/regulator/pca9450.c
index 9d8d142b464..3bb0c71dde7 100644
--- a/drivers/power/regulator/pca9450.c
+++ b/drivers/power/regulator/pca9450.c
@@ -56,6 +56,7 @@ struct pca9450_plat {
 	struct pca9450_vrange	*ranges;
 	unsigned int		numranges;
 	struct gpio_desc	*sd_vsel_gpio;
+	bool			sd_vsel_fixed_low;
 };
 
 #define PCA_RANGE(_min, _vstep, _sel_low, _sel_hi) \
@@ -229,7 +230,8 @@ static int pca9450_set_enable(struct udevice *dev, bool enable)
 static u8 pca9450_get_vsel_reg(struct pca9450_plat *plat)
 {
 	if (!strcmp(plat->name, "LDO5") &&
-	    (plat->sd_vsel_gpio && !dm_gpio_get_value(plat->sd_vsel_gpio)) {
+	    ((plat->sd_vsel_gpio && !dm_gpio_get_value(plat->sd_vsel_gpio)) ||
+	     plat->sd_vsel_fixed_low)) {
 		return PCA9450_LDO5CTRL_L;
 	}
 
@@ -360,6 +362,8 @@ static int pca9450_regulator_probe(struct udevice *dev)
 						return ret;
 				}
 			}
+
+			plat->sd_vsel_fixed_low = dev_read_bool(dev, "nxp,sd-vsel-fixed-low");
 		}
 
 		return 0;
-- 
2.50.1


  parent reply	other threads:[~2025-08-11 13:13 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-11 13:11 [PATCH 0/6] Use correct LDO5 control registers for PCA9450 Frieder Schrempf
2025-08-11 13:11 ` [PATCH 1/6] Revert "pmic: pca9450: Add optional SD_VSEL GPIO for LDO5" Frieder Schrempf
2025-08-11 13:11 ` [PATCH 2/6] pmic: pca9450: Fix enable register for LDO5 Frieder Schrempf
2025-08-11 13:11 ` [PATCH 3/6] pmic: pca9450: Fix control " Frieder Schrempf
2025-08-11 13:12 ` Frieder Schrempf [this message]
2025-08-11 13:12 ` [PATCH 5/6] arm: dts: imx8mp-data-modul-edm-sbc: Remove deprecated sd-vsel-gpios Frieder Schrempf
2025-08-11 14:22   ` Marek Vasut
2025-08-11 13:12 ` [PATCH 6/6] arm: dts: imx8mp-dhcom-som: " Frieder Schrempf
2025-08-11 14:21   ` Marek Vasut
2025-08-25  8:40 ` [PATCH 0/6] Use correct LDO5 control registers for PCA9450 Frieder Schrempf
2025-08-27  5:46   ` Peng Fan
2025-08-27  7:37     ` Frieder Schrempf
2025-08-27 14:32       ` Tom Rini
2025-09-01  7:44 ` Peng Fan (OSS)

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=20250811131213.211124-5-frieder@fris.de \
    --to=frieder@fris.de \
    --cc=frieder.schrempf@kontron.de \
    --cc=jh80.chung@samsung.com \
    --cc=joy.zou@nxp.com \
    --cc=peng.fan@nxp.com \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=ye.li@nxp.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: link
Be 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.