linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] regulator: pca9450: Add SD_VSEL GPIO for LDO5
@ 2020-10-01 12:34 Schrempf Frieder
  2020-10-01 12:34 ` [PATCH 2/2] arm64: dts: imx8mm-kontron: Add support for ultra high speed modes on SD card Schrempf Frieder
  2020-10-01 12:53 ` [PATCH 1/2] regulator: pca9450: Add SD_VSEL GPIO for LDO5 Mark Brown
  0 siblings, 2 replies; 6+ messages in thread
From: Schrempf Frieder @ 2020-10-01 12:34 UTC (permalink / raw)
  To: Robin Gong, Fabio Estevam, Frieder Schrempf, Liam Girdwood,
	Mark Brown, NXP Linux Team, Pengutronix Kernel Team,
	Sascha Hauer, Shawn Guo
  Cc: devicetree, linux-arm-kernel, linux-kernel

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

LDO5 has two separate control registers. LDO5CTRL_L is used if the
input signal SD_VSEL is low and LDO5CTRL_H if it is high.
The current driver implementation only uses LDO5CTRL_H. To make this
work on boards that have SD_VSEL connected to a GPIO, we add support
for specifying an optional GPIO and setting it to high at probe time.

In the future we might also want to add support for boards that have
SD_VSEL set to a fixed low level. In this case we need to change the
driver to be able to use the LDO5CTRL_L register.

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

diff --git a/drivers/regulator/pca9450-regulator.c b/drivers/regulator/pca9450-regulator.c
index eb5822bf53e0..fec7acc606f4 100644
--- a/drivers/regulator/pca9450-regulator.c
+++ b/drivers/regulator/pca9450-regulator.c
@@ -5,6 +5,7 @@
  */
 
 #include <linux/err.h>
+#include <linux/gpio/consumer.h>
 #include <linux/i2c.h>
 #include <linux/interrupt.h>
 #include <linux/kernel.h>
@@ -32,6 +33,7 @@ struct pca9450_regulator_desc {
 struct pca9450 {
 	struct device *dev;
 	struct regmap *regmap;
+	struct gpio_desc *sd_vsel_gpio;
 	enum pca9450_chip_type type;
 	unsigned int rcnt;
 	int irq;
@@ -795,6 +797,18 @@ static int pca9450_i2c_probe(struct i2c_client *i2c,
 		return ret;
 	}
 
+	/*
+	 * The driver uses the LDO5CTRL_H register to control the LDO5 regulator.
+	 * This is only valid if the SD_VSEL input of the PMIC is high. Let's
+	 * check if the pin is available as GPIO and set it to high.
+	 */
+	pca9450->sd_vsel_gpio = gpiod_get_optional(pca9450->dev, "sd-vsel", GPIOD_OUT_HIGH);
+
+	if (IS_ERR(pca9450->sd_vsel_gpio)) {
+		dev_err(&i2c->dev, "Failed to get SD_VSEL GPIO\n");
+		return ret;
+	}
+
 	dev_info(&i2c->dev, "%s probed.\n",
 		type == PCA9450_TYPE_PCA9450A ? "pca9450a" : "pca9450bc");
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-10-01 13:15 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-01 12:34 [PATCH 1/2] regulator: pca9450: Add SD_VSEL GPIO for LDO5 Schrempf Frieder
2020-10-01 12:34 ` [PATCH 2/2] arm64: dts: imx8mm-kontron: Add support for ultra high speed modes on SD card Schrempf Frieder
2020-10-01 12:38   ` Frieder Schrempf
2020-10-01 13:15   ` Frieder Schrempf
2020-10-01 12:53 ` [PATCH 1/2] regulator: pca9450: Add SD_VSEL GPIO for LDO5 Mark Brown
2020-10-01 13:00   ` Frieder Schrempf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).