All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 0/2] power: Add a driver to handle the PBIAS cell of the TI SOCs
@ 2017-09-21 15:03 ` Jean-Jacques Hiblot
  2017-09-21 15:03   ` [U-Boot] [PATCH v3 1/2] dm: core: Add functions to get strings and the string count from a stringlist Jean-Jacques Hiblot
                     ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Jean-Jacques Hiblot @ 2017-09-21 15:03 UTC (permalink / raw)
  To: u-boot

In the TI SOCs a PBIAS cell exists to provide a bias voltage to the MMC1
IO cells. Without this bias voltage these I/O cells can not function
properly. This bias voltage is either 1.8v or 3.0v.

The first patch adds 2 functions to the DM core: to count strings in a
stringlist and get a string from a stringlist based on its position in the
list.
The second patch implements the support for this PBIAS cell as a regulator
driver.

Jean-Jacques


changes since v2:
 * rebased on u-boot/master
 * automatically select REGMAP and SYSCON if PBIAS is selected.

changes since v1:
 - add new functions to get strings from a stringlist in DM core
 - use the dev_read_*() API to access the DT
 - automatically select the PBIAS driver if DM_REGULATOR, DM_MMC and
   MMC_OMAP_HS are set.
 - removed the patch touching the DRA7 and AM57 config files.
 

Jean-Jacques Hiblot (2):
  dm: core: Add functions to get strings and the string count from a
    stringlist
  regulator: pbias: Add PBIAS regulator for proper voltage switching on
    MMC1

 drivers/core/read.c                       |  11 ++
 drivers/mmc/Kconfig                       |   1 +
 drivers/power/regulator/Kconfig           |  13 ++
 drivers/power/regulator/Makefile          |   1 +
 drivers/power/regulator/pbias_regulator.c | 301 ++++++++++++++++++++++++++++++
 include/dm/read.h                         |  36 ++++
 6 files changed, 363 insertions(+)
 create mode 100644 drivers/power/regulator/pbias_regulator.c

-- 
1.9.1

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

* [U-Boot] [PATCH v3 1/2] dm: core: Add functions to get strings and the string count from a stringlist
  2017-09-21 15:03 ` [U-Boot] [PATCH v3 0/2] power: Add a driver to handle the PBIAS cell of the TI SOCs Jean-Jacques Hiblot
@ 2017-09-21 15:03   ` Jean-Jacques Hiblot
  2017-09-25  2:14     ` Simon Glass
  2017-09-21 15:03   ` [U-Boot] [PATCH v3 2/2] regulator: pbias: Add PBIAS regulator for proper voltage switching on MMC1 Jean-Jacques Hiblot
  2017-09-22 14:15   ` [U-Boot] [PATCH v3 0/2] power: Add a driver to handle the PBIAS cell of the TI SOCs Jaehoon Chung
  2 siblings, 1 reply; 5+ messages in thread
From: Jean-Jacques Hiblot @ 2017-09-21 15:03 UTC (permalink / raw)
  To: u-boot

dev_read_string_count() is used to get the number of strings in a
stringlist.
dev_read_string_index() is used to get a string in the stringlist based on
its position in the list.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
---
 drivers/core/read.c | 11 +++++++++++
 include/dm/read.h   | 36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+)

diff --git a/drivers/core/read.c b/drivers/core/read.c
index 065589a..eacf171 100644
--- a/drivers/core/read.c
+++ b/drivers/core/read.c
@@ -81,6 +81,17 @@ int dev_read_stringlist_search(struct udevice *dev, const char *property,
 	return ofnode_stringlist_search(dev_ofnode(dev), property, string);
 }
 
+int dev_read_string_index(struct udevice *dev, const char *propname, int index,
+			  const char **outp)
+{
+	return ofnode_read_string_index(dev_ofnode(dev), propname, index, outp);
+}
+
+int dev_read_string_count(struct udevice *dev, const char *propname)
+{
+	return ofnode_read_string_count(dev_ofnode(dev), propname);
+}
+
 int dev_read_phandle_with_args(struct udevice *dev, const char *list_name,
 				const char *cells_name, int cell_count,
 				int index,
diff --git a/include/dm/read.h b/include/dm/read.h
index e7f7125..8114037 100644
--- a/include/dm/read.h
+++ b/include/dm/read.h
@@ -166,6 +166,29 @@ int dev_read_stringlist_search(struct udevice *dev, const char *property,
 			  const char *string);
 
 /**
+ * dev_read_string_index() - obtain an indexed string from a string list
+ *
+ * @dev: device to examine
+ * @propname: name of the property containing the string list
+ * @index: index of the string to return
+ * @out: return location for the string
+ *
+ * @return:
+ *   length of string, if found or -ve error value if not found
+ */
+int dev_read_string_index(struct udevice *dev, const char *propname, int index,
+			  const char **outp);
+
+/**
+ * dev_read_string_count() - find the number of strings in a string list
+ *
+ * @dev: device to examine
+ * @propname: name of the property containing the string list
+ * @return:
+ *   number of strings in the list, or -ve error value if not found
+ */
+int dev_read_string_count(struct udevice *dev, const char *propname);
+/**
  * dev_read_phandle_with_args() - Find a node pointed by phandle in a list
  *
  * This function is useful to parse lists of phandles and their arguments.
@@ -451,6 +474,19 @@ static inline int dev_read_stringlist_search(struct udevice *dev,
 	return ofnode_stringlist_search(dev_ofnode(dev), propname, string);
 }
 
+static inline int dev_read_string_index(struct udevice *dev,
+					const char *propname, int index,
+					const char **outp)
+{
+	return ofnode_read_string_index(dev_ofnode(dev), propname, index, outp);
+}
+
+static inline int dev_read_string_count(struct udevice *dev,
+					const char *propname)
+{
+	return ofnode_read_string_count(dev_ofnode(dev), propname);
+}
+
 static inline int dev_read_phandle_with_args(struct udevice *dev,
 		const char *list_name, const char *cells_name, int cell_count,
 		int index, struct ofnode_phandle_args *out_args)
-- 
1.9.1

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

* [U-Boot] [PATCH v3 2/2] regulator: pbias: Add PBIAS regulator for proper voltage switching on MMC1
  2017-09-21 15:03 ` [U-Boot] [PATCH v3 0/2] power: Add a driver to handle the PBIAS cell of the TI SOCs Jean-Jacques Hiblot
  2017-09-21 15:03   ` [U-Boot] [PATCH v3 1/2] dm: core: Add functions to get strings and the string count from a stringlist Jean-Jacques Hiblot
@ 2017-09-21 15:03   ` Jean-Jacques Hiblot
  2017-09-22 14:15   ` [U-Boot] [PATCH v3 0/2] power: Add a driver to handle the PBIAS cell of the TI SOCs Jaehoon Chung
  2 siblings, 0 replies; 5+ messages in thread
From: Jean-Jacques Hiblot @ 2017-09-21 15:03 UTC (permalink / raw)
  To: u-boot

In the TI SOCs a PBIAS cell exists to provide a bias voltage to the MMC1
IO cells. Without this bias voltage these I/O cells can not function
properly. The PBIAS cell is controlled by software.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
 drivers/mmc/Kconfig                       |   1 +
 drivers/power/regulator/Kconfig           |  13 ++
 drivers/power/regulator/Makefile          |   1 +
 drivers/power/regulator/pbias_regulator.c | 301 ++++++++++++++++++++++++++++++
 4 files changed, 316 insertions(+)
 create mode 100644 drivers/power/regulator/pbias_regulator.c

diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
index 78e58d4..4b9bee0 100644
--- a/drivers/mmc/Kconfig
+++ b/drivers/mmc/Kconfig
@@ -159,6 +159,7 @@ config MMC_PCI
 config MMC_OMAP_HS
 	bool "TI OMAP High Speed Multimedia Card Interface support"
 	select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
+	select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
 	help
 	  This selects the TI OMAP High Speed Multimedia card Interface.
 	  If you have an omap2plus board with a Multimedia Card slot,
diff --git a/drivers/power/regulator/Kconfig b/drivers/power/regulator/Kconfig
index c82a936..2cfade1 100644
--- a/drivers/power/regulator/Kconfig
+++ b/drivers/power/regulator/Kconfig
@@ -151,6 +151,19 @@ config DM_REGULATOR_PALMAS
 	features for REGULATOR PALMAS and the family of PALMAS PMICs.
 	The driver implements get/set api for: value and enable.
 
+config DM_REGULATOR_PBIAS
+	bool "Enable driver for PBIAS regulator"
+	depends on DM_REGULATOR
+	select REGMAP
+	select SYSCON
+	---help---
+	This enables implementation of driver-model regulator uclass
+	features for pseudo-regulator PBIAS found in the OMAP SOCs.
+	This pseudo-regulator is used to provide a BIAS voltage to MMC1
+	signal pads and must be configured properly during a voltage switch.
+	Voltage switching is required by some operating modes of SDcards and
+	eMMC.
+
 config DM_REGULATOR_LP873X
 	bool "Enable driver for LP873X PMIC regulators"
         depends on PMIC_LP873X
diff --git a/drivers/power/regulator/Makefile b/drivers/power/regulator/Makefile
index 18fb870..6c149a9 100644
--- a/drivers/power/regulator/Makefile
+++ b/drivers/power/regulator/Makefile
@@ -18,5 +18,6 @@ obj-$(CONFIG_REGULATOR_S5M8767) += s5m8767.o
 obj-$(CONFIG_DM_REGULATOR_SANDBOX) += sandbox.o
 obj-$(CONFIG_REGULATOR_TPS65090) += tps65090_regulator.o
 obj-$(CONFIG_$(SPL_)DM_REGULATOR_PALMAS) += palmas_regulator.o
+obj-$(CONFIG_$(SPL_)DM_REGULATOR_PBIAS) += pbias_regulator.o
 obj-$(CONFIG_$(SPL_)DM_REGULATOR_LP873X) += lp873x_regulator.o
 obj-$(CONFIG_$(SPL_)DM_REGULATOR_LP87565) += lp87565_regulator.o
diff --git a/drivers/power/regulator/pbias_regulator.c b/drivers/power/regulator/pbias_regulator.c
new file mode 100644
index 0000000..914500b
--- /dev/null
+++ b/drivers/power/regulator/pbias_regulator.c
@@ -0,0 +1,301 @@
+/*
+ * (C) Copyright 2016 Texas Instruments Incorporated, <www.ti.com>
+ * Jean-Jacques Hiblot <jjhiblot@ti.com>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <errno.h>
+#include <dm.h>
+#include <power/pmic.h>
+#include <power/regulator.h>
+#include <regmap.h>
+#include <syscon.h>
+#include <linux/bitops.h>
+#include <linux/ioport.h>
+#include <dm/read.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+struct pbias_reg_info {
+	u32 enable;
+	u32 enable_mask;
+	u32 disable_val;
+	u32 vmode;
+	unsigned int enable_time;
+	char *name;
+};
+
+struct pbias_priv {
+	struct regmap *regmap;
+	int offset;
+};
+
+static const struct pmic_child_info pmic_children_info[] = {
+	{ .prefix = "pbias", .driver = "pbias_regulator"},
+	{ },
+};
+
+static int pbias_write(struct udevice *dev, uint reg, const uint8_t *buff,
+		       int len)
+{
+	struct pbias_priv *priv = dev_get_priv(dev);
+	u32 val = *(u32 *)buff;
+
+	if (len != 4)
+		return -EINVAL;
+
+	return regmap_write(priv->regmap, priv->offset, val);
+}
+
+static int pbias_read(struct udevice *dev, uint reg, uint8_t *buff, int len)
+{
+	struct pbias_priv *priv = dev_get_priv(dev);
+
+	if (len != 4)
+		return -EINVAL;
+
+	return regmap_read(priv->regmap, priv->offset, (u32 *)buff);
+}
+
+static int pbias_ofdata_to_platdata(struct udevice *dev)
+{
+	struct pbias_priv *priv = dev_get_priv(dev);
+	struct udevice *syscon;
+	struct regmap *regmap;
+	struct resource res;
+	int err;
+
+	err = uclass_get_device_by_phandle(UCLASS_SYSCON, dev,
+					   "syscon", &syscon);
+	if (err) {
+		error("%s: unable to find syscon device (%d)\n", __func__,
+		      err);
+		return err;
+	}
+
+	regmap = syscon_get_regmap(syscon);
+	if (IS_ERR(regmap)) {
+		error("%s: unable to find regmap (%ld)\n", __func__,
+		      PTR_ERR(regmap));
+		return PTR_ERR(regmap);
+	}
+	priv->regmap = regmap;
+
+	err = dev_read_resource(dev, 0, &res);
+	if (err) {
+		error("%s: unable to find offset (%d)\n", __func__, err);
+		return err;
+	}
+	priv->offset = res.start;
+
+	return 0;
+}
+
+static int pbias_bind(struct udevice *dev)
+{
+	int children;
+
+	children = pmic_bind_children(dev, dev->node, pmic_children_info);
+	if (!children)
+		debug("%s: %s - no child found\n", __func__, dev->name);
+
+	return 0;
+}
+
+static struct dm_pmic_ops pbias_ops = {
+	.read = pbias_read,
+	.write = pbias_write,
+};
+
+static const struct udevice_id pbias_ids[] = {
+	{ .compatible = "ti,pbias-dra7" },
+	{ }
+};
+
+U_BOOT_DRIVER(pbias_pmic) = {
+	.name = "pbias_pmic",
+	.id = UCLASS_PMIC,
+	.of_match = pbias_ids,
+	.bind = pbias_bind,
+	.ops = &pbias_ops,
+	.ofdata_to_platdata = pbias_ofdata_to_platdata,
+	.priv_auto_alloc_size = sizeof(struct pbias_priv),
+};
+
+static const struct pbias_reg_info pbias_mmc_omap2430 = {
+	.enable = BIT(1),
+	.enable_mask = BIT(1),
+	.vmode = BIT(0),
+	.disable_val = 0,
+	.enable_time = 100,
+	.name = "pbias_mmc_omap2430"
+};
+
+static const struct pbias_reg_info pbias_sim_omap3 = {
+	.enable = BIT(9),
+	.enable_mask = BIT(9),
+	.vmode = BIT(8),
+	.enable_time = 100,
+	.name = "pbias_sim_omap3"
+};
+
+static const struct pbias_reg_info pbias_mmc_omap4 = {
+	.enable = BIT(26) | BIT(22),
+	.enable_mask = BIT(26) | BIT(25) | BIT(22),
+	.disable_val = BIT(25),
+	.vmode = BIT(21),
+	.enable_time = 100,
+	.name = "pbias_mmc_omap4"
+};
+
+static const struct pbias_reg_info pbias_mmc_omap5 = {
+	.enable = BIT(27) | BIT(26),
+	.enable_mask = BIT(27) | BIT(25) | BIT(26),
+	.disable_val = BIT(25),
+	.vmode = BIT(21),
+	.enable_time = 100,
+	.name = "pbias_mmc_omap5"
+};
+
+static const struct pbias_reg_info *pbias_reg_infos[] = {
+	&pbias_mmc_omap5,
+	&pbias_mmc_omap4,
+	&pbias_sim_omap3,
+	&pbias_mmc_omap2430,
+	NULL
+};
+
+static int pbias_regulator_probe(struct udevice *dev)
+{
+	const struct pbias_reg_info **p = pbias_reg_infos;
+	struct dm_regulator_uclass_platdata *uc_pdata;
+
+	uc_pdata = dev_get_uclass_platdata(dev);
+
+	while (*p) {
+		int rc;
+
+		rc = dev_read_stringlist_search(dev, "regulator-name",
+						(*p)->name);
+		if (rc >= 0) {
+			debug("found regulator %s\n", (*p)->name);
+			break;
+		} else if (rc != -ENODATA) {
+			return rc;
+		}
+		p++;
+	}
+	if (!*p) {
+		int i = 0;
+		const char *s;
+
+		debug("regulator ");
+		while (dev_read_string_index(dev, "regulator-name", i++, &s) >= 0)
+			debug("%s'%s' ", (i > 1) ? ", " : "", s);
+		debug("%s not supported\n", (i > 2) ? "are" : "is");
+		return -EINVAL;
+	}
+
+	uc_pdata->type = REGULATOR_TYPE_OTHER;
+	dev->priv = (void *)*p;
+
+	return 0;
+}
+
+static int pbias_regulator_get_value(struct udevice *dev)
+{
+	const struct pbias_reg_info *p = dev_get_priv(dev);
+	int rc;
+	u32 reg;
+
+	rc = pmic_read(dev->parent, 0, (uint8_t *)&reg, sizeof(reg));
+	if (rc)
+		return rc;
+
+	debug("%s voltage id %s\n", p->name,
+	      (reg & p->vmode) ? "3.0v" : "1.8v");
+	return (reg & p->vmode) ? 3000000 : 1800000;
+}
+
+static int pbias_regulator_set_value(struct udevice *dev, int uV)
+{
+	const struct pbias_reg_info *p = dev_get_priv(dev);
+	int rc;
+	u32 reg;
+
+	debug("Setting %s voltage to %s\n", p->name,
+	      (reg & p->vmode) ? "3.0v" : "1.8v");
+
+	rc = pmic_read(dev->parent, 0, (uint8_t *)&reg, sizeof(reg));
+	if (rc)
+		return rc;
+
+	if (uV == 3000000)
+		reg |= p->vmode;
+	else if (uV == 1800000)
+		reg &= ~p->vmode;
+	else
+		return -EINVAL;
+
+	return pmic_write(dev->parent, 0, (uint8_t *)&reg, sizeof(reg));
+}
+
+static int pbias_regulator_get_enable(struct udevice *dev)
+{
+	const struct pbias_reg_info *p = dev_get_priv(dev);
+	int rc;
+	u32 reg;
+
+	rc = pmic_read(dev->parent, 0, (uint8_t *)&reg, sizeof(reg));
+	if (rc)
+		return rc;
+
+	debug("%s id %s\n", p->name,
+	      (reg & p->enable_mask) == (p->disable_val) ? "on" : "off");
+
+	return (reg & p->enable_mask) == (p->disable_val);
+}
+
+static int pbias_regulator_set_enable(struct udevice *dev, bool enable)
+{
+	const struct pbias_reg_info *p = dev_get_priv(dev);
+	int rc;
+	u32 reg;
+
+	debug("Turning %s %s\n", enable ? "on" : "off", p->name);
+
+	rc = pmic_read(dev->parent, 0, (uint8_t *)&reg, sizeof(reg));
+	if (rc)
+		return rc;
+
+	reg &= ~p->enable_mask;
+	if (enable)
+		reg |= p->enable;
+	else
+		reg |= p->disable_val;
+
+	rc = pmic_write(dev->parent, 0, (uint8_t *)&reg, sizeof(reg));
+	if (rc)
+		return rc;
+
+	if (enable)
+		udelay(p->enable_time);
+
+	return 0;
+}
+
+static const struct dm_regulator_ops pbias_regulator_ops = {
+	.get_value  = pbias_regulator_get_value,
+	.set_value  = pbias_regulator_set_value,
+	.get_enable = pbias_regulator_get_enable,
+	.set_enable = pbias_regulator_set_enable,
+};
+
+U_BOOT_DRIVER(pbias_regulator) = {
+	.name = "pbias_regulator",
+	.id = UCLASS_REGULATOR,
+	.ops = &pbias_regulator_ops,
+	.probe = pbias_regulator_probe,
+};
-- 
1.9.1

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

* [U-Boot] [PATCH v3 0/2] power: Add a driver to handle the PBIAS cell of the TI SOCs
  2017-09-21 15:03 ` [U-Boot] [PATCH v3 0/2] power: Add a driver to handle the PBIAS cell of the TI SOCs Jean-Jacques Hiblot
  2017-09-21 15:03   ` [U-Boot] [PATCH v3 1/2] dm: core: Add functions to get strings and the string count from a stringlist Jean-Jacques Hiblot
  2017-09-21 15:03   ` [U-Boot] [PATCH v3 2/2] regulator: pbias: Add PBIAS regulator for proper voltage switching on MMC1 Jean-Jacques Hiblot
@ 2017-09-22 14:15   ` Jaehoon Chung
  2 siblings, 0 replies; 5+ messages in thread
From: Jaehoon Chung @ 2017-09-22 14:15 UTC (permalink / raw)
  To: u-boot

On 09/22/2017 12:03 AM, Jean-Jacques Hiblot wrote:
> In the TI SOCs a PBIAS cell exists to provide a bias voltage to the MMC1
> IO cells. Without this bias voltage these I/O cells can not function
> properly. This bias voltage is either 1.8v or 3.0v.
> 
> The first patch adds 2 functions to the DM core: to count strings in a
> stringlist and get a string from a stringlist based on its position in the
> list.
> The second patch implements the support for this PBIAS cell as a regulator
> driver.

Applied to u-boot-mmc for pmic.

Best Regards,
Jaehoon Chung

> 
> Jean-Jacques
> 
> 
> changes since v2:
>  * rebased on u-boot/master
>  * automatically select REGMAP and SYSCON if PBIAS is selected.
> 
> changes since v1:
>  - add new functions to get strings from a stringlist in DM core
>  - use the dev_read_*() API to access the DT
>  - automatically select the PBIAS driver if DM_REGULATOR, DM_MMC and
>    MMC_OMAP_HS are set.
>  - removed the patch touching the DRA7 and AM57 config files.
>  
> 
> Jean-Jacques Hiblot (2):
>   dm: core: Add functions to get strings and the string count from a
>     stringlist
>   regulator: pbias: Add PBIAS regulator for proper voltage switching on
>     MMC1
> 
>  drivers/core/read.c                       |  11 ++
>  drivers/mmc/Kconfig                       |   1 +
>  drivers/power/regulator/Kconfig           |  13 ++
>  drivers/power/regulator/Makefile          |   1 +
>  drivers/power/regulator/pbias_regulator.c | 301 ++++++++++++++++++++++++++++++
>  include/dm/read.h                         |  36 ++++
>  6 files changed, 363 insertions(+)
>  create mode 100644 drivers/power/regulator/pbias_regulator.c
> 

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

* [U-Boot] [PATCH v3 1/2] dm: core: Add functions to get strings and the string count from a stringlist
  2017-09-21 15:03   ` [U-Boot] [PATCH v3 1/2] dm: core: Add functions to get strings and the string count from a stringlist Jean-Jacques Hiblot
@ 2017-09-25  2:14     ` Simon Glass
  0 siblings, 0 replies; 5+ messages in thread
From: Simon Glass @ 2017-09-25  2:14 UTC (permalink / raw)
  To: u-boot

Hi Jean-Jacques,

On 21 September 2017 at 09:03, Jean-Jacques Hiblot <jjhiblot@ti.com> wrote:
> dev_read_string_count() is used to get the number of strings in a
> stringlist.
> dev_read_string_index() is used to get a string in the stringlist based on
> its position in the list.
>
> Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
> ---
>  drivers/core/read.c | 11 +++++++++++
>  include/dm/read.h   | 36 ++++++++++++++++++++++++++++++++++++
>  2 files changed, 47 insertions(+)

This is marked v3 but I don't see a change log.

Regards,
Simon

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

end of thread, other threads:[~2017-09-25  2:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20170921150350epcas1p1a6d99417facd11de7b40031bf28a3612@epcas1p1.samsung.com>
2017-09-21 15:03 ` [U-Boot] [PATCH v3 0/2] power: Add a driver to handle the PBIAS cell of the TI SOCs Jean-Jacques Hiblot
2017-09-21 15:03   ` [U-Boot] [PATCH v3 1/2] dm: core: Add functions to get strings and the string count from a stringlist Jean-Jacques Hiblot
2017-09-25  2:14     ` Simon Glass
2017-09-21 15:03   ` [U-Boot] [PATCH v3 2/2] regulator: pbias: Add PBIAS regulator for proper voltage switching on MMC1 Jean-Jacques Hiblot
2017-09-22 14:15   ` [U-Boot] [PATCH v3 0/2] power: Add a driver to handle the PBIAS cell of the TI SOCs Jaehoon Chung

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.