* [U-Boot] [PATCH v2 0/9] arm: exynos: Fix reboot on Odroid HC1
@ 2019-02-13 16:46 Krzysztof Kozlowski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 1/9] adc: exynos-adc: Fix wrong bit operation used to stop the ADC Krzysztof Kozlowski
` (8 more replies)
0 siblings, 9 replies; 23+ messages in thread
From: Krzysztof Kozlowski @ 2019-02-13 16:46 UTC (permalink / raw)
To: u-boot
Hi,
Changes since v1
================
1. Move fixes to beginning of patchset.
2. Patch 3: Rework the idea - split revision detection to be executed later.
3. Patch 4: New patch.
4. Patch 6: Apply Simon's comments.
5. Patch 6: Do not delay when changing voltage if regulator is disabled.
6. Patch 6: Do not delay when disabling the regulator.
Description
===========
Odroid HC1 does not reboot properly (at least from SD card but
I do not expect difference on eMMC), if LDO4/VDD_ADC was turned
off by Linux kernel. This condition happens so far always, because
Linux kernel did not enable ADC on Odroid HC1, therefore the
VDD_ADC regulator was turned off as unused.
The issue is in detection of revision which later is used to load
proper DTB.
The revision is obtained by ADC read of a voltage depending on VDD_ADC.
Therefore:
1. VDD_ADC has to be turned on (but board detection happens before
power is initialized),
2. Turning VDD_ADC should wait with ramp delay,
3. Reading the value from ADC should wait for it to stabilize.
Tested on Odroid XU3-Lite and Odroid HC1.
Commends and testing are welcomed.
Best regards,
Krzysztof
Krzysztof Kozlowski (9):
adc: exynos-adc: Fix wrong bit operation used to stop the ADC
power: regulator: s2mps11: Fix step for LDO27 and LDO35
arm: exynos: Detect revision later, when all resources are ready
arm: exynos: odroid-xu3: Display info late to have proper type
arm: exynos: Wait till ADC stabilizes before checking Odroid HC1
revision
regulator: Add support for ramp delay
power: regulator: s2mps11: Add enable delay
arm: dts: exynos: Add supply for ADC block to Odroid XU3 family
arm: dts: exynos: Add ramp delay property to LDO regulators to Odroid
XU3 family
arch/arm/dts/exynos5422-odroidxu3.dts | 20 +++++++
board/samsung/common/board.c | 15 ++++-
board/samsung/common/exynos5-dt-types.c | 58 +++++++++++++++++--
board/samsung/odroid/odroid.c | 8 +++
configs/odroid-xu3_defconfig | 2 +
.../regulator/regulator.txt | 2 +
drivers/adc/exynos-adc.c | 2 +-
drivers/power/regulator/regulator-uclass.c | 47 ++++++++++++++-
drivers/power/regulator/s2mps11_regulator.c | 13 ++++-
include/power/regulator.h | 2 +
include/samsung/misc.h | 1 +
11 files changed, 160 insertions(+), 10 deletions(-)
--
2.17.1
^ permalink raw reply [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 1/9] adc: exynos-adc: Fix wrong bit operation used to stop the ADC
2019-02-13 16:46 [U-Boot] [PATCH v2 0/9] arm: exynos: Fix reboot on Odroid HC1 Krzysztof Kozlowski
@ 2019-02-13 16:46 ` Krzysztof Kozlowski
2019-02-15 6:54 ` Lukasz Majewski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 2/9] power: regulator: s2mps11: Fix step for LDO27 and LDO35 Krzysztof Kozlowski
` (7 subsequent siblings)
8 siblings, 1 reply; 23+ messages in thread
From: Krzysztof Kozlowski @ 2019-02-13 16:46 UTC (permalink / raw)
To: u-boot
When stopping the ADC_V2_CON1_STC_EN should be cleared.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
---
drivers/adc/exynos-adc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/adc/exynos-adc.c b/drivers/adc/exynos-adc.c
index d33e3d632afc..12c49fc8cefb 100644
--- a/drivers/adc/exynos-adc.c
+++ b/drivers/adc/exynos-adc.c
@@ -62,7 +62,7 @@ int exynos_adc_stop(struct udevice *dev)
/* Stop conversion */
cfg = readl(®s->con1);
- cfg |= ~ADC_V2_CON1_STC_EN;
+ cfg &= ~ADC_V2_CON1_STC_EN;
writel(cfg, ®s->con1);
--
2.17.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 2/9] power: regulator: s2mps11: Fix step for LDO27 and LDO35
2019-02-13 16:46 [U-Boot] [PATCH v2 0/9] arm: exynos: Fix reboot on Odroid HC1 Krzysztof Kozlowski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 1/9] adc: exynos-adc: Fix wrong bit operation used to stop the ADC Krzysztof Kozlowski
@ 2019-02-13 16:46 ` Krzysztof Kozlowski
2019-02-15 6:55 ` Lukasz Majewski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 3/9] arm: exynos: Detect revision later, when all resources are ready Krzysztof Kozlowski
` (6 subsequent siblings)
8 siblings, 1 reply; 23+ messages in thread
From: Krzysztof Kozlowski @ 2019-02-13 16:46 UTC (permalink / raw)
To: u-boot
LDO27 and LDO35 have 25 mV step, not 50 mV.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
---
drivers/power/regulator/s2mps11_regulator.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/power/regulator/s2mps11_regulator.c b/drivers/power/regulator/s2mps11_regulator.c
index ced504eb1476..723d27f67c9a 100644
--- a/drivers/power/regulator/s2mps11_regulator.c
+++ b/drivers/power/regulator/s2mps11_regulator.c
@@ -346,6 +346,8 @@ static int s2mps11_ldo_hex2volt(int ldo, int hex)
case 11:
case 22:
case 23:
+ case 27:
+ case 35:
uV = hex * S2MPS11_LDO_STEP + S2MPS11_LDO_UV_MIN;
break;
default:
@@ -366,6 +368,8 @@ static int s2mps11_ldo_volt2hex(int ldo, int uV)
case 11:
case 22:
case 23:
+ case 27:
+ case 35:
hex = (uV - S2MPS11_LDO_UV_MIN) / S2MPS11_LDO_STEP;
break;
default:
--
2.17.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 3/9] arm: exynos: Detect revision later, when all resources are ready
2019-02-13 16:46 [U-Boot] [PATCH v2 0/9] arm: exynos: Fix reboot on Odroid HC1 Krzysztof Kozlowski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 1/9] adc: exynos-adc: Fix wrong bit operation used to stop the ADC Krzysztof Kozlowski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 2/9] power: regulator: s2mps11: Fix step for LDO27 and LDO35 Krzysztof Kozlowski
@ 2019-02-13 16:46 ` Krzysztof Kozlowski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 4/9] arm: exynos: odroid-xu3: Display info late to have proper type Krzysztof Kozlowski
` (5 subsequent siblings)
8 siblings, 0 replies; 23+ messages in thread
From: Krzysztof Kozlowski @ 2019-02-13 16:46 UTC (permalink / raw)
To: u-boot
Detection of board revision is done early - before power setup. In case of
Odroid XU3/XU4/HC1 family, the detection is done using ADC which
is supplied by LDO4/VDD_ADC regulator. This regulator could be turned
off (e.g. by kernel before reboot). If ADC is used early, the
regulators are not yet available and the detection won't work.
Split the revision detection out of set_board_type() into separate
function called later - either when displaying board info or during
misc_init_r (whatever succeeds first). The idea is that
set_board_type() will be called early so its method of detection are
limited to flattened device tree (exynos5-dt-types.c for Exynos5) or
GPIO (odroid.c for Exynos4412). The newly added set_board_revision()
can be called only later, when resources like regulator are available.
This is necessary to fix the detection of Odroid HC1 after reboot, if
kernel turned off the LDO4 regulator.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
---
board/samsung/common/board.c | 13 ++++++++++++-
board/samsung/common/exynos5-dt-types.c | 20 +++++++++++++++++---
board/samsung/odroid/odroid.c | 8 ++++++++
include/samsung/misc.h | 1 +
4 files changed, 38 insertions(+), 4 deletions(-)
diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c
index 96228a86a117..52a2764a1919 100644
--- a/board/samsung/common/board.c
+++ b/board/samsung/common/board.c
@@ -253,7 +253,12 @@ int board_eth_init(bd_t *bis)
int checkboard(void)
{
if (IS_ENABLED(CONFIG_BOARD_TYPES)) {
- const char *board_info = get_board_type();
+ const char *board_info;
+
+ /* Printing type requires having revision */
+ set_board_revision();
+
+ board_info = get_board_type();
if (board_info)
printf("Type: %s\n", board_info);
@@ -287,6 +292,12 @@ int board_late_init(void)
#ifdef CONFIG_MISC_INIT_R
int misc_init_r(void)
{
+ /*
+ * At this point regulators should be available so do full
+ * revision detection
+ */
+ set_board_revision();
+
#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
set_board_info();
#endif
diff --git a/board/samsung/common/exynos5-dt-types.c b/board/samsung/common/exynos5-dt-types.c
index 7a86e9187768..af711e727a78 100644
--- a/board/samsung/common/exynos5-dt-types.c
+++ b/board/samsung/common/exynos5-dt-types.c
@@ -192,8 +192,11 @@ const char *get_board_type(void)
/**
* set_board_type() - set board type in gd->board_type.
- * As default type set EXYNOS5_BOARD_GENERIC, if detect Odroid,
- * then set its proper type.
+ * As default type set EXYNOS5_BOARD_GENERIC. If Odroid is detected,
+ * set its proper type based on device tree.
+ *
+ * This might be called early when some more specific ways to detect revision
+ * are not yet available.
*/
void set_board_type(void)
{
@@ -211,8 +214,19 @@ void set_board_type(void)
gd->board_type = of_match->data;
break;
}
+}
+
+/**
+ * set_board_revision() - set detailed board type in gd->board_type.
+ * Should be called when resources (e.g. regulators) are available
+ * so ADC can be used to detect the specific revision of a board.
+ */
+void set_board_revision(void)
+{
+ /* Do not detect revision twice */
+ if (gd->board_type == EXYNOS5_BOARD_GENERIC)
+ return;
- /* If Odroid, then check its revision */
if (board_is_odroidxu3())
gd->board_type = odroid_get_board_type();
}
diff --git a/board/samsung/odroid/odroid.c b/board/samsung/odroid/odroid.c
index 552333fe869d..4be8cc9826c3 100644
--- a/board/samsung/odroid/odroid.c
+++ b/board/samsung/odroid/odroid.c
@@ -54,6 +54,14 @@ void set_board_type(void)
gd->board_type = ODROID_TYPE_U3;
}
+void set_board_revision(void)
+{
+ /*
+ * Revision already set by set_board_type() because it can be
+ * executed early.
+ */
+}
+
const char *get_board_type(void)
{
const char *board_type[] = {"u3", "x2"};
diff --git a/include/samsung/misc.h b/include/samsung/misc.h
index 017560c25662..4ff28a1df0e8 100644
--- a/include/samsung/misc.h
+++ b/include/samsung/misc.h
@@ -33,6 +33,7 @@ char *get_dfu_alt_system(char *interface, char *devstr);
char *get_dfu_alt_boot(char *interface, char *devstr);
#endif
void set_board_type(void);
+void set_board_revision(void);
const char *get_board_type(void);
#endif /* __SAMSUNG_MISC_COMMON_H__ */
--
2.17.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 4/9] arm: exynos: odroid-xu3: Display info late to have proper type
2019-02-13 16:46 [U-Boot] [PATCH v2 0/9] arm: exynos: Fix reboot on Odroid HC1 Krzysztof Kozlowski
` (2 preceding siblings ...)
2019-02-13 16:46 ` [U-Boot] [PATCH v2 3/9] arm: exynos: Detect revision later, when all resources are ready Krzysztof Kozlowski
@ 2019-02-13 16:46 ` Krzysztof Kozlowski
2019-02-14 7:37 ` Krzysztof Kozlowski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 5/9] arm: exynos: Wait till ADC stabilizes before checking Odroid HC1 revision Krzysztof Kozlowski
` (4 subsequent siblings)
8 siblings, 1 reply; 23+ messages in thread
From: Krzysztof Kozlowski @ 2019-02-13 16:46 UTC (permalink / raw)
To: u-boot
From: Krzysztof Kozlowski <krzysztof.kozlowski@proceq.com>
Printing the "Type" of board requires proper detection of revision which
can happen only late because regulators are needed.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@proceq.com>
---
board/samsung/common/board.c | 2 +-
configs/odroid-xu3_defconfig | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c
index 52a2764a1919..632732288e73 100644
--- a/board/samsung/common/board.c
+++ b/board/samsung/common/board.c
@@ -249,7 +249,7 @@ int board_eth_init(bd_t *bis)
return 0;
}
-#ifdef CONFIG_DISPLAY_BOARDINFO
+#if defined(CONFIG_DISPLAY_BOARDINFO) || defined(CONFIG_DISPLAY_BOARDINFO_LATE)
int checkboard(void)
{
if (IS_ENABLED(CONFIG_BOARD_TYPES)) {
diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig
index f6f05b294833..57aca5e015fc 100644
--- a/configs/odroid-xu3_defconfig
+++ b/configs/odroid-xu3_defconfig
@@ -11,6 +11,8 @@ CONFIG_FIT=y
CONFIG_FIT_BEST_MATCH=y
CONFIG_SILENT_CONSOLE=y
CONFIG_CONSOLE_MUX=y
+# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_DISPLAY_BOARDINFO_LATE=y
CONFIG_MISC_INIT_R=y
CONFIG_SYS_PROMPT="ODROID-XU3 # "
CONFIG_CMD_THOR_DOWNLOAD=y
--
2.17.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 5/9] arm: exynos: Wait till ADC stabilizes before checking Odroid HC1 revision
2019-02-13 16:46 [U-Boot] [PATCH v2 0/9] arm: exynos: Fix reboot on Odroid HC1 Krzysztof Kozlowski
` (3 preceding siblings ...)
2019-02-13 16:46 ` [U-Boot] [PATCH v2 4/9] arm: exynos: odroid-xu3: Display info late to have proper type Krzysztof Kozlowski
@ 2019-02-13 16:46 ` Krzysztof Kozlowski
2019-02-15 7:15 ` Lukasz Majewski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 6/9] regulator: Add support for ramp delay Krzysztof Kozlowski
` (3 subsequent siblings)
8 siblings, 1 reply; 23+ messages in thread
From: Krzysztof Kozlowski @ 2019-02-13 16:46 UTC (permalink / raw)
To: u-boot
Fix detection of Odroid HC1 (Exynos5422) after reboot if kernel disabled
the LDO4/VDD_ADC regulator.
The LDO4 supplies both ADC block and the ADC input AIN9. Voltage on
AIN9 will rise slowly, so be patient and wait for it to stabilize.
First reads on Odroid HC1 return 305, 1207, 1297 and finally 1308
(reference value is 1309).
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
---
board/samsung/common/exynos5-dt-types.c | 38 ++++++++++++++++++++++++-
1 file changed, 37 insertions(+), 1 deletion(-)
diff --git a/board/samsung/common/exynos5-dt-types.c b/board/samsung/common/exynos5-dt-types.c
index af711e727a78..8aed64183837 100644
--- a/board/samsung/common/exynos5-dt-types.c
+++ b/board/samsung/common/exynos5-dt-types.c
@@ -57,12 +57,48 @@ static unsigned int odroid_get_rev(void)
return 0;
}
+/*
+ * Read ADC at least twice and check the resuls. If regulator providing voltage
+ * on to measured point was just turned on, first reads might require time
+ * to stabilize.
+ */
+static int odroid_get_adc_val(unsigned int *adcval)
+{
+ unsigned int adcval_prev = 0;
+ int ret, retries = 20;
+
+ ret = adc_channel_single_shot("adc", CONFIG_ODROID_REV_AIN,
+ &adcval_prev);
+ if (ret)
+ return ret;
+
+ while (retries--) {
+ mdelay(5);
+
+ ret = adc_channel_single_shot("adc", CONFIG_ODROID_REV_AIN,
+ adcval);
+ if (ret)
+ return ret;
+
+ /*
+ * If difference between ADC reads is less than 3%,
+ * accept the result
+ */
+ if ((100 * abs(*adcval - adcval_prev) / adcval_prev) < 3)
+ return ret;
+
+ adcval_prev = *adcval;
+ }
+
+ return ret;
+}
+
static int odroid_get_board_type(void)
{
unsigned int adcval;
int ret, i;
- ret = adc_channel_single_shot("adc", CONFIG_ODROID_REV_AIN, &adcval);
+ ret = odroid_get_adc_val(&adcval);
if (ret)
goto rev_default;
--
2.17.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 6/9] regulator: Add support for ramp delay
2019-02-13 16:46 [U-Boot] [PATCH v2 0/9] arm: exynos: Fix reboot on Odroid HC1 Krzysztof Kozlowski
` (4 preceding siblings ...)
2019-02-13 16:46 ` [U-Boot] [PATCH v2 5/9] arm: exynos: Wait till ADC stabilizes before checking Odroid HC1 revision Krzysztof Kozlowski
@ 2019-02-13 16:46 ` Krzysztof Kozlowski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 7/9] power: regulator: s2mps11: Add enable delay Krzysztof Kozlowski
` (2 subsequent siblings)
8 siblings, 0 replies; 23+ messages in thread
From: Krzysztof Kozlowski @ 2019-02-13 16:46 UTC (permalink / raw)
To: u-boot
Changing voltage and enabling regulator might require delays so the
regulator stabilizes at expected level.
Add support for "regulator-ramp-delay" binding which can introduce
required time to both enabling the regulator and to changing the
voltage.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
---
.../regulator/regulator.txt | 2 +
drivers/power/regulator/regulator-uclass.c | 47 ++++++++++++++++++-
include/power/regulator.h | 2 +
3 files changed, 49 insertions(+), 2 deletions(-)
diff --git a/doc/device-tree-bindings/regulator/regulator.txt b/doc/device-tree-bindings/regulator/regulator.txt
index 65b69c427899..4ba642b7c77f 100644
--- a/doc/device-tree-bindings/regulator/regulator.txt
+++ b/doc/device-tree-bindings/regulator/regulator.txt
@@ -35,6 +35,7 @@ Optional properties:
- regulator-max-microamp: a maximum allowed Current value
- regulator-always-on: regulator should never be disabled
- regulator-boot-on: enabled by bootloader/firmware
+- regulator-ramp-delay: ramp delay for regulator (in uV/us)
Note
The "regulator-name" constraint is used for setting the device's uclass
@@ -60,4 +61,5 @@ ldo0 {
regulator-max-microamp = <100000>;
regulator-always-on;
regulator-boot-on;
+ regulator-ramp-delay = <12000>;
};
diff --git a/drivers/power/regulator/regulator-uclass.c b/drivers/power/regulator/regulator-uclass.c
index 6f355b969a6d..363c6e6441fa 100644
--- a/drivers/power/regulator/regulator-uclass.c
+++ b/drivers/power/regulator/regulator-uclass.c
@@ -35,10 +35,22 @@ int regulator_get_value(struct udevice *dev)
return ops->get_value(dev);
}
+static void regulator_set_value_delay(struct udevice *dev, int old_uV,
+ int new_uV, unsigned int ramp_delay)
+{
+ int delay = DIV_ROUND_UP(abs(new_uV - old_uV), ramp_delay);
+
+ debug("regulator %s: delay %u us (%d uV -> %d uV)\n", dev->name, delay,
+ old_uV, new_uV);
+
+ udelay(delay);
+}
+
int regulator_set_value(struct udevice *dev, int uV)
{
const struct dm_regulator_ops *ops = dev_get_driver_ops(dev);
struct dm_regulator_uclass_platdata *uc_pdata;
+ int ret, old_uV = uV, is_enabled = 0;
uc_pdata = dev_get_uclass_platdata(dev);
if (uc_pdata->min_uV != -ENODATA && uV < uc_pdata->min_uV)
@@ -49,7 +61,20 @@ int regulator_set_value(struct udevice *dev, int uV)
if (!ops || !ops->set_value)
return -ENOSYS;
- return ops->set_value(dev, uV);
+ if (uc_pdata->ramp_delay) {
+ is_enabled = regulator_get_enable(dev);
+ old_uV = regulator_get_value(dev);
+ }
+
+ ret = ops->set_value(dev, uV);
+
+ if (!ret) {
+ if (uc_pdata->ramp_delay && old_uV > 0 && is_enabled)
+ regulator_set_value_delay(dev, old_uV, uV,
+ uc_pdata->ramp_delay);
+ }
+
+ return ret;
}
/*
@@ -107,6 +132,7 @@ int regulator_set_enable(struct udevice *dev, bool enable)
{
const struct dm_regulator_ops *ops = dev_get_driver_ops(dev);
struct dm_regulator_uclass_platdata *uc_pdata;
+ int ret, old_enable = 0;
if (!ops || !ops->set_enable)
return -ENOSYS;
@@ -115,7 +141,22 @@ int regulator_set_enable(struct udevice *dev, bool enable)
if (!enable && uc_pdata->always_on)
return -EACCES;
- return ops->set_enable(dev, enable);
+ if (uc_pdata->ramp_delay)
+ old_enable = regulator_get_enable(dev);
+
+ ret = ops->set_enable(dev, enable);
+ if (!ret) {
+ if (uc_pdata->ramp_delay && !old_enable && enable) {
+ int uV = regulator_get_value(dev);
+
+ if (uV > 0) {
+ regulator_set_value_delay(dev, 0, uV,
+ uc_pdata->ramp_delay);
+ }
+ }
+ }
+
+ return ret;
}
int regulator_set_enable_if_allowed(struct udevice *dev, bool enable)
@@ -335,6 +376,8 @@ static int regulator_pre_probe(struct udevice *dev)
-ENODATA);
uc_pdata->always_on = dev_read_bool(dev, "regulator-always-on");
uc_pdata->boot_on = dev_read_bool(dev, "regulator-boot-on");
+ uc_pdata->ramp_delay = dev_read_u32_default(dev, "regulator-ramp-delay",
+ 0);
/* Those values are optional (-ENODATA if unset) */
if ((uc_pdata->min_uV != -ENODATA) &&
diff --git a/include/power/regulator.h b/include/power/regulator.h
index 314160a894b7..6c6e2cd4f996 100644
--- a/include/power/regulator.h
+++ b/include/power/regulator.h
@@ -150,6 +150,7 @@ enum regulator_flag {
* @always_on* - bool type, true or false
* @boot_on* - bool type, true or false
* TODO(sjg at chromium.org): Consider putting the above two into @flags
+ * @ramp_delay - Time to settle down after voltage change (unit: uV/us)
* @flags: - flags value (see REGULATOR_FLAG_...)
* @name** - fdt regulator name - should be taken from the device tree
* ctrl_reg: - Control register offset used to enable/disable regulator
@@ -169,6 +170,7 @@ struct dm_regulator_uclass_platdata {
int max_uV;
int min_uA;
int max_uA;
+ unsigned int ramp_delay;
bool always_on;
bool boot_on;
const char *name;
--
2.17.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 7/9] power: regulator: s2mps11: Add enable delay
2019-02-13 16:46 [U-Boot] [PATCH v2 0/9] arm: exynos: Fix reboot on Odroid HC1 Krzysztof Kozlowski
` (5 preceding siblings ...)
2019-02-13 16:46 ` [U-Boot] [PATCH v2 6/9] regulator: Add support for ramp delay Krzysztof Kozlowski
@ 2019-02-13 16:46 ` Krzysztof Kozlowski
2019-02-15 7:03 ` Lukasz Majewski
2019-02-15 17:11 ` Simon Glass
2019-02-13 16:46 ` [U-Boot] [PATCH v2 8/9] arm: dts: exynos: Add supply for ADC block to Odroid XU3 family Krzysztof Kozlowski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 9/9] arm: dts: exynos: Add ramp delay property to LDO regulators " Krzysztof Kozlowski
8 siblings, 2 replies; 23+ messages in thread
From: Krzysztof Kozlowski @ 2019-02-13 16:46 UTC (permalink / raw)
To: u-boot
According to datasheet, the output on LDO regulators will start
appearing after 10-15 us.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
---
drivers/power/regulator/s2mps11_regulator.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/power/regulator/s2mps11_regulator.c b/drivers/power/regulator/s2mps11_regulator.c
index 723d27f67c9a..1f1581852ee2 100644
--- a/drivers/power/regulator/s2mps11_regulator.c
+++ b/drivers/power/regulator/s2mps11_regulator.c
@@ -551,7 +551,14 @@ static int ldo_get_enable(struct udevice *dev)
static int ldo_set_enable(struct udevice *dev, bool enable)
{
- return s2mps11_ldo_enable(dev, PMIC_OP_SET, &enable);
+ int ret;
+
+ ret = s2mps11_ldo_enable(dev, PMIC_OP_SET, &enable);
+
+ /* Wait the "enable delay" for voltage to start to rise */
+ udelay(15);
+
+ return ret;
}
static int ldo_get_mode(struct udevice *dev)
--
2.17.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 8/9] arm: dts: exynos: Add supply for ADC block to Odroid XU3 family
2019-02-13 16:46 [U-Boot] [PATCH v2 0/9] arm: exynos: Fix reboot on Odroid HC1 Krzysztof Kozlowski
` (6 preceding siblings ...)
2019-02-13 16:46 ` [U-Boot] [PATCH v2 7/9] power: regulator: s2mps11: Add enable delay Krzysztof Kozlowski
@ 2019-02-13 16:46 ` Krzysztof Kozlowski
2019-02-15 7:01 ` Lukasz Majewski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 9/9] arm: dts: exynos: Add ramp delay property to LDO regulators " Krzysztof Kozlowski
8 siblings, 1 reply; 23+ messages in thread
From: Krzysztof Kozlowski @ 2019-02-13 16:46 UTC (permalink / raw)
To: u-boot
The ADC block requires VDD supply to be on so provide one.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
---
arch/arm/dts/exynos5422-odroidxu3.dts | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/dts/exynos5422-odroidxu3.dts b/arch/arm/dts/exynos5422-odroidxu3.dts
index e859dd1b981a..9dfae90667cf 100644
--- a/arch/arm/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/dts/exynos5422-odroidxu3.dts
@@ -32,6 +32,7 @@
adc at 12D10000 {
u-boot,dm-pre-reloc;
+ vdd-supply = <&ldo4_reg>;
status = "okay";
};
--
2.17.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 9/9] arm: dts: exynos: Add ramp delay property to LDO regulators to Odroid XU3 family
2019-02-13 16:46 [U-Boot] [PATCH v2 0/9] arm: exynos: Fix reboot on Odroid HC1 Krzysztof Kozlowski
` (7 preceding siblings ...)
2019-02-13 16:46 ` [U-Boot] [PATCH v2 8/9] arm: dts: exynos: Add supply for ADC block to Odroid XU3 family Krzysztof Kozlowski
@ 2019-02-13 16:46 ` Krzysztof Kozlowski
8 siblings, 0 replies; 23+ messages in thread
From: Krzysztof Kozlowski @ 2019-02-13 16:46 UTC (permalink / raw)
To: u-boot
Add startup time to LDO regulators of S2MPS11 PMIC on Odroid XU3/XU4/HC1
family of boards to be sure the voltage is proper before relying on the
regulator.
The datasheet for all the S2MPS1x family is inconsistent here and does
not specify unambiguously the value of ramp delay for LDO. It mentions
30 mV/us in one timing diagram but then omits it completely in LDO
regulator characteristics table (it is specified for bucks).
However the vendor kernels for Galaxy S5 and Odroid XU3 use values of 12
mV/us or 24 mV/us.
Without the ramp delay value the consumers do not wait for voltage
settle after changing it. Although the proper value of ramp delay for
LDOs is unknown, it seems safer to use at least some value from
reference kernel than to leave it unset.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
---
arch/arm/dts/exynos5422-odroidxu3.dts | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/arch/arm/dts/exynos5422-odroidxu3.dts b/arch/arm/dts/exynos5422-odroidxu3.dts
index 9dfae90667cf..04ecc404f907 100644
--- a/arch/arm/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/dts/exynos5422-odroidxu3.dts
@@ -45,6 +45,7 @@
regulator-name = "vdd_ldo1";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
+ regulator-ramp-delay = <12000>;
regulator-always-on;
};
@@ -52,18 +53,21 @@
regulator-name = "vddq_mmc0";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ regulator-ramp-delay = <12000>;
};
ldo4_reg: LDO4 {
regulator-name = "vdd_adc";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ regulator-ramp-delay = <12000>;
};
ldo5_reg: LDO5 {
regulator-name = "vdd_ldo5";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ regulator-ramp-delay = <12000>;
regulator-always-on;
};
@@ -71,6 +75,7 @@
regulator-name = "vdd_ldo6";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
+ regulator-ramp-delay = <12000>;
regulator-always-on;
};
@@ -78,6 +83,7 @@
regulator-name = "vdd_ldo7";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ regulator-ramp-delay = <12000>;
regulator-always-on;
};
@@ -85,6 +91,7 @@
regulator-name = "vdd_ldo8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ regulator-ramp-delay = <12000>;
regulator-always-on;
};
@@ -92,6 +99,7 @@
regulator-name = "vdd_ldo9";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
+ regulator-ramp-delay = <12000>;
regulator-always-on;
};
@@ -99,6 +107,7 @@
regulator-name = "vdd_ldo10";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ regulator-ramp-delay = <12000>;
regulator-always-on;
};
@@ -106,6 +115,7 @@
regulator-name = "vdd_ldo11";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1000000>;
+ regulator-ramp-delay = <12000>;
regulator-always-on;
};
@@ -113,6 +123,7 @@
regulator-name = "vdd_ldo12";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ regulator-ramp-delay = <12000>;
regulator-always-on;
};
@@ -120,12 +131,14 @@
regulator-name = "vddq_mmc2";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
+ regulator-ramp-delay = <12000>;
};
ldo15_reg: LDO15 {
regulator-name = "vdd_ldo15";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
+ regulator-ramp-delay = <12000>;
regulator-always-on;
};
@@ -133,6 +146,7 @@
regulator-name = "vdd_ldo16";
regulator-min-microvolt = <2200000>;
regulator-max-microvolt = <2200000>;
+ regulator-ramp-delay = <12000>;
regulator-always-on;
};
@@ -140,6 +154,7 @@
regulator-name = "vdd_ldo17";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
+ regulator-ramp-delay = <12000>;
regulator-always-on;
};
@@ -147,18 +162,21 @@
regulator-name = "vdd_emmc_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ regulator-ramp-delay = <12000>;
};
ldo19_reg: LDO19 {
regulator-name = "vdd_sd";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
+ regulator-ramp-delay = <12000>;
};
ldo24_reg: LDO24 {
regulator-name = "tsp_io";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
+ regulator-ramp-delay = <12000>;
regulator-always-on;
};
@@ -166,6 +184,7 @@
regulator-name = "vdd_ldo26";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
+ regulator-ramp-delay = <12000>;
regulator-always-on;
};
--
2.17.1
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 4/9] arm: exynos: odroid-xu3: Display info late to have proper type
2019-02-13 16:46 ` [U-Boot] [PATCH v2 4/9] arm: exynos: odroid-xu3: Display info late to have proper type Krzysztof Kozlowski
@ 2019-02-14 7:37 ` Krzysztof Kozlowski
0 siblings, 0 replies; 23+ messages in thread
From: Krzysztof Kozlowski @ 2019-02-14 7:37 UTC (permalink / raw)
To: u-boot
On Wed, 13 Feb 2019 at 17:49, Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> From: Krzysztof Kozlowski <krzysztof.kozlowski@proceq.com>
>
> Printing the "Type" of board requires proper detection of revision which
> can happen only late because regulators are needed.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@proceq.com>
I should sent it from my @kernel.org account. I'll fix it in v3 but
let me wait for some more comments/review.
Best regards,
Krzysztof
> ---
> board/samsung/common/board.c | 2 +-
> configs/odroid-xu3_defconfig | 2 ++
> 2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c
> index 52a2764a1919..632732288e73 100644
> --- a/board/samsung/common/board.c
> +++ b/board/samsung/common/board.c
> @@ -249,7 +249,7 @@ int board_eth_init(bd_t *bis)
> return 0;
> }
>
> -#ifdef CONFIG_DISPLAY_BOARDINFO
> +#if defined(CONFIG_DISPLAY_BOARDINFO) || defined(CONFIG_DISPLAY_BOARDINFO_LATE)
> int checkboard(void)
> {
> if (IS_ENABLED(CONFIG_BOARD_TYPES)) {
> diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig
> index f6f05b294833..57aca5e015fc 100644
> --- a/configs/odroid-xu3_defconfig
> +++ b/configs/odroid-xu3_defconfig
> @@ -11,6 +11,8 @@ CONFIG_FIT=y
> CONFIG_FIT_BEST_MATCH=y
> CONFIG_SILENT_CONSOLE=y
> CONFIG_CONSOLE_MUX=y
> +# CONFIG_DISPLAY_BOARDINFO is not set
> +CONFIG_DISPLAY_BOARDINFO_LATE=y
> CONFIG_MISC_INIT_R=y
> CONFIG_SYS_PROMPT="ODROID-XU3 # "
> CONFIG_CMD_THOR_DOWNLOAD=y
> --
> 2.17.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
^ permalink raw reply [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 1/9] adc: exynos-adc: Fix wrong bit operation used to stop the ADC
2019-02-13 16:46 ` [U-Boot] [PATCH v2 1/9] adc: exynos-adc: Fix wrong bit operation used to stop the ADC Krzysztof Kozlowski
@ 2019-02-15 6:54 ` Lukasz Majewski
0 siblings, 0 replies; 23+ messages in thread
From: Lukasz Majewski @ 2019-02-15 6:54 UTC (permalink / raw)
To: u-boot
On Wed, 13 Feb 2019 17:46:40 +0100
Krzysztof Kozlowski <krzk@kernel.org> wrote:
> When stopping the ADC_V2_CON1_STC_EN should be cleared.
>
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> ---
> drivers/adc/exynos-adc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/adc/exynos-adc.c b/drivers/adc/exynos-adc.c
> index d33e3d632afc..12c49fc8cefb 100644
> --- a/drivers/adc/exynos-adc.c
> +++ b/drivers/adc/exynos-adc.c
> @@ -62,7 +62,7 @@ int exynos_adc_stop(struct udevice *dev)
>
> /* Stop conversion */
> cfg = readl(®s->con1);
> - cfg |= ~ADC_V2_CON1_STC_EN;
> + cfg &= ~ADC_V2_CON1_STC_EN;
>
> writel(cfg, ®s->con1);
>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190215/8afc7bde/attachment.sig>
^ permalink raw reply [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 2/9] power: regulator: s2mps11: Fix step for LDO27 and LDO35
2019-02-13 16:46 ` [U-Boot] [PATCH v2 2/9] power: regulator: s2mps11: Fix step for LDO27 and LDO35 Krzysztof Kozlowski
@ 2019-02-15 6:55 ` Lukasz Majewski
0 siblings, 0 replies; 23+ messages in thread
From: Lukasz Majewski @ 2019-02-15 6:55 UTC (permalink / raw)
To: u-boot
On Wed, 13 Feb 2019 17:46:41 +0100
Krzysztof Kozlowski <krzk@kernel.org> wrote:
> LDO27 and LDO35 have 25 mV step, not 50 mV.
>
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> ---
> drivers/power/regulator/s2mps11_regulator.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/power/regulator/s2mps11_regulator.c
> b/drivers/power/regulator/s2mps11_regulator.c index
> ced504eb1476..723d27f67c9a 100644 ---
> a/drivers/power/regulator/s2mps11_regulator.c +++
> b/drivers/power/regulator/s2mps11_regulator.c @@ -346,6 +346,8 @@
> static int s2mps11_ldo_hex2volt(int ldo, int hex) case 11:
> case 22:
> case 23:
> + case 27:
> + case 35:
> uV = hex * S2MPS11_LDO_STEP + S2MPS11_LDO_UV_MIN;
> break;
> default:
> @@ -366,6 +368,8 @@ static int s2mps11_ldo_volt2hex(int ldo, int uV)
> case 11:
> case 22:
> case 23:
> + case 27:
> + case 35:
> hex = (uV - S2MPS11_LDO_UV_MIN) / S2MPS11_LDO_STEP;
> break;
> default:
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190215/f93ebed3/attachment.sig>
^ permalink raw reply [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 8/9] arm: dts: exynos: Add supply for ADC block to Odroid XU3 family
2019-02-13 16:46 ` [U-Boot] [PATCH v2 8/9] arm: dts: exynos: Add supply for ADC block to Odroid XU3 family Krzysztof Kozlowski
@ 2019-02-15 7:01 ` Lukasz Majewski
0 siblings, 0 replies; 23+ messages in thread
From: Lukasz Majewski @ 2019-02-15 7:01 UTC (permalink / raw)
To: u-boot
On Wed, 13 Feb 2019 17:46:47 +0100
Krzysztof Kozlowski <krzk@kernel.org> wrote:
> The ADC block requires VDD supply to be on so provide one.
>
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> ---
> arch/arm/dts/exynos5422-odroidxu3.dts | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/dts/exynos5422-odroidxu3.dts
> b/arch/arm/dts/exynos5422-odroidxu3.dts index
> e859dd1b981a..9dfae90667cf 100644 ---
> a/arch/arm/dts/exynos5422-odroidxu3.dts +++
> b/arch/arm/dts/exynos5422-odroidxu3.dts @@ -32,6 +32,7 @@
>
> adc at 12D10000 {
> u-boot,dm-pre-reloc;
> + vdd-supply = <&ldo4_reg>;
> status = "okay";
> };
>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190215/5b2c6c32/attachment.sig>
^ permalink raw reply [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 7/9] power: regulator: s2mps11: Add enable delay
2019-02-13 16:46 ` [U-Boot] [PATCH v2 7/9] power: regulator: s2mps11: Add enable delay Krzysztof Kozlowski
@ 2019-02-15 7:03 ` Lukasz Majewski
2019-02-15 10:11 ` Krzysztof Kozlowski
2019-02-15 17:11 ` Simon Glass
1 sibling, 1 reply; 23+ messages in thread
From: Lukasz Majewski @ 2019-02-15 7:03 UTC (permalink / raw)
To: u-boot
On Wed, 13 Feb 2019 17:46:46 +0100
Krzysztof Kozlowski <krzk@kernel.org> wrote:
> According to datasheet, the output on LDO regulators will start
> appearing after 10-15 us.
>
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> ---
> drivers/power/regulator/s2mps11_regulator.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/power/regulator/s2mps11_regulator.c
> b/drivers/power/regulator/s2mps11_regulator.c index
> 723d27f67c9a..1f1581852ee2 100644 ---
> a/drivers/power/regulator/s2mps11_regulator.c +++
> b/drivers/power/regulator/s2mps11_regulator.c @@ -551,7 +551,14 @@
> static int ldo_get_enable(struct udevice *dev)
> static int ldo_set_enable(struct udevice *dev, bool enable)
> {
> - return s2mps11_ldo_enable(dev, PMIC_OP_SET, &enable);
> + int ret;
> +
> + ret = s2mps11_ldo_enable(dev, PMIC_OP_SET, &enable);
> +
> + /* Wait the "enable delay" for voltage to start to rise */
> + udelay(15);
Isn't the enable delay provided/read from dts?
Or is it too early to have dtb parsed?
The udelay(15) seems a bit "magic" value (or is it specified in the
PMIC manual?).
> +
> + return ret;
> }
>
> static int ldo_get_mode(struct udevice *dev)
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190215/03795187/attachment.sig>
^ permalink raw reply [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 5/9] arm: exynos: Wait till ADC stabilizes before checking Odroid HC1 revision
2019-02-13 16:46 ` [U-Boot] [PATCH v2 5/9] arm: exynos: Wait till ADC stabilizes before checking Odroid HC1 revision Krzysztof Kozlowski
@ 2019-02-15 7:15 ` Lukasz Majewski
2019-02-15 10:06 ` Krzysztof Kozlowski
2019-02-16 9:28 ` Krzysztof Kozlowski
0 siblings, 2 replies; 23+ messages in thread
From: Lukasz Majewski @ 2019-02-15 7:15 UTC (permalink / raw)
To: u-boot
On Wed, 13 Feb 2019 17:46:44 +0100
Krzysztof Kozlowski <krzk@kernel.org> wrote:
> Fix detection of Odroid HC1 (Exynos5422) after reboot if kernel
> disabled the LDO4/VDD_ADC regulator.
>
> The LDO4 supplies both ADC block and the ADC input AIN9. Voltage on
> AIN9 will rise slowly, so be patient and wait for it to stabilize.
>
> First reads on Odroid HC1 return 305, 1207, 1297 and finally 1308
> (reference value is 1309).
>
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> ---
> board/samsung/common/exynos5-dt-types.c | 38
> ++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1
> deletion(-)
>
> diff --git a/board/samsung/common/exynos5-dt-types.c
> b/board/samsung/common/exynos5-dt-types.c index
> af711e727a78..8aed64183837 100644 ---
> a/board/samsung/common/exynos5-dt-types.c +++
> b/board/samsung/common/exynos5-dt-types.c @@ -57,12 +57,48 @@ static
> unsigned int odroid_get_rev(void) return 0;
> }
>
> +/*
> + * Read ADC at least twice and check the resuls. If regulator
> providing voltage
> + * on to measured point was just turned on, first reads might
> require time
> + * to stabilize.
> + */
> +static int odroid_get_adc_val(unsigned int *adcval)
> +{
> + unsigned int adcval_prev = 0;
> + int ret, retries = 20;
> +
> + ret = adc_channel_single_shot("adc", CONFIG_ODROID_REV_AIN,
> + &adcval_prev);
> + if (ret)
> + return ret;
> +
> + while (retries--) {
> + mdelay(5);
> +
> + ret = adc_channel_single_shot("adc",
> CONFIG_ODROID_REV_AIN,
> + adcval);
> + if (ret)
> + return ret;
> +
> + /*
> + * If difference between ADC reads is less than 3%,
> + * accept the result
> + */
> + if ((100 * abs(*adcval - adcval_prev) / adcval_prev)
> < 3)
> + return ret;
> +
> + adcval_prev = *adcval;
> + }
Is there in the documentation any required time to wait before reading
the ADC value?
If yes then maybe get_timer() based approach shall be used (if
get_timer() is available in this context)?
Please see for example drivers/net/fec_mxc.c for how timeouts are
handled there.
I will test this patch series on XU3 during the weekend. Thanks for
this fix :-)
> +
> + return ret;
> +}
> +
> static int odroid_get_board_type(void)
> {
> unsigned int adcval;
> int ret, i;
>
> - ret = adc_channel_single_shot("adc", CONFIG_ODROID_REV_AIN,
> &adcval);
> + ret = odroid_get_adc_val(&adcval);
> if (ret)
> goto rev_default;
>
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190215/892d52ac/attachment.sig>
^ permalink raw reply [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 5/9] arm: exynos: Wait till ADC stabilizes before checking Odroid HC1 revision
2019-02-15 7:15 ` Lukasz Majewski
@ 2019-02-15 10:06 ` Krzysztof Kozlowski
2019-02-16 9:28 ` Krzysztof Kozlowski
1 sibling, 0 replies; 23+ messages in thread
From: Krzysztof Kozlowski @ 2019-02-15 10:06 UTC (permalink / raw)
To: u-boot
On Fri, 15 Feb 2019 at 08:16, Lukasz Majewski <lukma@denx.de> wrote:
>
> On Wed, 13 Feb 2019 17:46:44 +0100
> Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> > Fix detection of Odroid HC1 (Exynos5422) after reboot if kernel
> > disabled the LDO4/VDD_ADC regulator.
> >
> > The LDO4 supplies both ADC block and the ADC input AIN9. Voltage on
> > AIN9 will rise slowly, so be patient and wait for it to stabilize.
> >
> > First reads on Odroid HC1 return 305, 1207, 1297 and finally 1308
> > (reference value is 1309).
> >
> > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> > ---
> > board/samsung/common/exynos5-dt-types.c | 38
> > ++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1
> > deletion(-)
> >
> > diff --git a/board/samsung/common/exynos5-dt-types.c
> > b/board/samsung/common/exynos5-dt-types.c index
> > af711e727a78..8aed64183837 100644 ---
> > a/board/samsung/common/exynos5-dt-types.c +++
> > b/board/samsung/common/exynos5-dt-types.c @@ -57,12 +57,48 @@ static
> > unsigned int odroid_get_rev(void) return 0;
> > }
> >
> > +/*
> > + * Read ADC at least twice and check the resuls. If regulator
> > providing voltage
> > + * on to measured point was just turned on, first reads might
> > require time
> > + * to stabilize.
> > + */
> > +static int odroid_get_adc_val(unsigned int *adcval)
> > +{
> > + unsigned int adcval_prev = 0;
> > + int ret, retries = 20;
> > +
> > + ret = adc_channel_single_shot("adc", CONFIG_ODROID_REV_AIN,
> > + &adcval_prev);
> > + if (ret)
> > + return ret;
> > +
> > + while (retries--) {
> > + mdelay(5);
> > +
> > + ret = adc_channel_single_shot("adc",
> > CONFIG_ODROID_REV_AIN,
> > + adcval);
> > + if (ret)
> > + return ret;
> > +
> > + /*
> > + * If difference between ADC reads is less than 3%,
> > + * accept the result
> > + */
> > + if ((100 * abs(*adcval - adcval_prev) / adcval_prev)
> > < 3)
> > + return ret;
> > +
> > + adcval_prev = *adcval;
> > + }
>
> Is there in the documentation any required time to wait before reading
> the ADC value?
No, I think this delay is not SoC specific. The ADC already has proper
delay/conversion rounds. The only thing it misses is to wait for 25
cycles of ADC PCLK after SWRESET but I found that adding it does not
affect anything. To my understanding this is delay is purely some
charging or slow ramp rate (although measuring point is on simple
voltage divider...).
> If yes then maybe get_timer() based approach shall be used (if
> get_timer() is available in this context)?
>
> Please see for example drivers/net/fec_mxc.c for how timeouts are
> handled there.
I can take a look. First read of ADC might be very early so maybe
before times... but I will check if these could be used.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 7/9] power: regulator: s2mps11: Add enable delay
2019-02-15 7:03 ` Lukasz Majewski
@ 2019-02-15 10:11 ` Krzysztof Kozlowski
2019-02-15 10:55 ` Lukasz Majewski
0 siblings, 1 reply; 23+ messages in thread
From: Krzysztof Kozlowski @ 2019-02-15 10:11 UTC (permalink / raw)
To: u-boot
On Fri, 15 Feb 2019 at 08:04, Lukasz Majewski <lukma@denx.de> wrote:
>
> On Wed, 13 Feb 2019 17:46:46 +0100
> Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> > According to datasheet, the output on LDO regulators will start
> > appearing after 10-15 us.
> >
> > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> > ---
> > drivers/power/regulator/s2mps11_regulator.c | 9 ++++++++-
> > 1 file changed, 8 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/power/regulator/s2mps11_regulator.c
> > b/drivers/power/regulator/s2mps11_regulator.c index
> > 723d27f67c9a..1f1581852ee2 100644 ---
> > a/drivers/power/regulator/s2mps11_regulator.c +++
> > b/drivers/power/regulator/s2mps11_regulator.c @@ -551,7 +551,14 @@
> > static int ldo_get_enable(struct udevice *dev)
> > static int ldo_set_enable(struct udevice *dev, bool enable)
> > {
> > - return s2mps11_ldo_enable(dev, PMIC_OP_SET, &enable);
> > + int ret;
> > +
> > + ret = s2mps11_ldo_enable(dev, PMIC_OP_SET, &enable);
> > +
> > + /* Wait the "enable delay" for voltage to start to rise */
> > + udelay(15);
>
> Isn't the enable delay provided/read from dts?
> Or is it too early to have dtb parsed?
We could read it from DTB... but I would need to add new property just
for that. I can... just more commits for simple stuff :)
> The udelay(15) seems a bit "magic" value (or is it specified in the
> PMIC manual?).
Yeah, it is magic value mentioned in PMIC manual (actually - 10-15
us). It is the same as ramp delay - PMIC specific value.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 7/9] power: regulator: s2mps11: Add enable delay
2019-02-15 10:11 ` Krzysztof Kozlowski
@ 2019-02-15 10:55 ` Lukasz Majewski
0 siblings, 0 replies; 23+ messages in thread
From: Lukasz Majewski @ 2019-02-15 10:55 UTC (permalink / raw)
To: u-boot
Hi Krzysztof,
> On Fri, 15 Feb 2019 at 08:04, Lukasz Majewski <lukma@denx.de> wrote:
> >
> > On Wed, 13 Feb 2019 17:46:46 +0100
> > Krzysztof Kozlowski <krzk@kernel.org> wrote:
> >
> > > According to datasheet, the output on LDO regulators will start
> > > appearing after 10-15 us.
> > >
> > > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> > > ---
> > > drivers/power/regulator/s2mps11_regulator.c | 9 ++++++++-
> > > 1 file changed, 8 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/power/regulator/s2mps11_regulator.c
> > > b/drivers/power/regulator/s2mps11_regulator.c index
> > > 723d27f67c9a..1f1581852ee2 100644 ---
> > > a/drivers/power/regulator/s2mps11_regulator.c +++
> > > b/drivers/power/regulator/s2mps11_regulator.c @@ -551,7 +551,14 @@
> > > static int ldo_get_enable(struct udevice *dev)
> > > static int ldo_set_enable(struct udevice *dev, bool enable)
> > > {
> > > - return s2mps11_ldo_enable(dev, PMIC_OP_SET, &enable);
> > > + int ret;
> > > +
> > > + ret = s2mps11_ldo_enable(dev, PMIC_OP_SET, &enable);
> > > +
> > > + /* Wait the "enable delay" for voltage to start to rise */
> > > + udelay(15);
> >
> > Isn't the enable delay provided/read from dts?
> > Or is it too early to have dtb parsed?
>
> We could read it from DTB... but I would need to add new property just
> for that. I can... just more commits for simple stuff :)
No, lets keep simple things simple :-). No need for extra DTB property.
>
> > The udelay(15) seems a bit "magic" value (or is it specified in the
> > PMIC manual?).
>
> Yeah, it is magic value mentioned in PMIC manual (actually - 10-15
> us). It is the same as ramp delay - PMIC specific value.
Ok, If it is in the manual then we shall stick to it (and vendor just
stated - delay for 15ms).
>
> Best regards,
> Krzysztof
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190215/dbe847a0/attachment.sig>
^ permalink raw reply [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 7/9] power: regulator: s2mps11: Add enable delay
2019-02-13 16:46 ` [U-Boot] [PATCH v2 7/9] power: regulator: s2mps11: Add enable delay Krzysztof Kozlowski
2019-02-15 7:03 ` Lukasz Majewski
@ 2019-02-15 17:11 ` Simon Glass
2019-02-16 8:37 ` Krzysztof Kozlowski
1 sibling, 1 reply; 23+ messages in thread
From: Simon Glass @ 2019-02-15 17:11 UTC (permalink / raw)
To: u-boot
Hi Krzysztof,
On Wed, 13 Feb 2019 at 17:47, Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> According to datasheet, the output on LDO regulators will start
> appearing after 10-15 us.
>
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> ---
> drivers/power/regulator/s2mps11_regulator.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/power/regulator/s2mps11_regulator.c b/drivers/power/regulator/s2mps11_regulator.c
> index 723d27f67c9a..1f1581852ee2 100644
> --- a/drivers/power/regulator/s2mps11_regulator.c
> +++ b/drivers/power/regulator/s2mps11_regulator.c
> @@ -551,7 +551,14 @@ static int ldo_get_enable(struct udevice *dev)
>
> static int ldo_set_enable(struct udevice *dev, bool enable)
> {
> - return s2mps11_ldo_enable(dev, PMIC_OP_SET, &enable);
> + int ret;
> +
> + ret = s2mps11_ldo_enable(dev, PMIC_OP_SET, &enable);
How about:
if (ret)
return ret;
> +
> + /* Wait the "enable delay" for voltage to start to rise */
> + udelay(15);
> +
> + return ret;
return 0;
> }
>
> static int ldo_get_mode(struct udevice *dev)
> --
> 2.17.1
>
Regards,
Simon
^ permalink raw reply [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 7/9] power: regulator: s2mps11: Add enable delay
2019-02-15 17:11 ` Simon Glass
@ 2019-02-16 8:37 ` Krzysztof Kozlowski
0 siblings, 0 replies; 23+ messages in thread
From: Krzysztof Kozlowski @ 2019-02-16 8:37 UTC (permalink / raw)
To: u-boot
On Fri, Feb 15, 2019 at 06:11:34PM +0100, Simon Glass wrote:
> Hi Krzysztof,
>
> On Wed, 13 Feb 2019 at 17:47, Krzysztof Kozlowski <krzk@kernel.org> wrote:
> >
> > According to datasheet, the output on LDO regulators will start
> > appearing after 10-15 us.
> >
> > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> > ---
> > drivers/power/regulator/s2mps11_regulator.c | 9 ++++++++-
> > 1 file changed, 8 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/power/regulator/s2mps11_regulator.c b/drivers/power/regulator/s2mps11_regulator.c
> > index 723d27f67c9a..1f1581852ee2 100644
> > --- a/drivers/power/regulator/s2mps11_regulator.c
> > +++ b/drivers/power/regulator/s2mps11_regulator.c
> > @@ -551,7 +551,14 @@ static int ldo_get_enable(struct udevice *dev)
> >
> > static int ldo_set_enable(struct udevice *dev, bool enable)
> > {
> > - return s2mps11_ldo_enable(dev, PMIC_OP_SET, &enable);
> > + int ret;
> > +
> > + ret = s2mps11_ldo_enable(dev, PMIC_OP_SET, &enable);
>
> How about:
>
> if (ret)
> return ret;
>
Sure, good idea, thanks!
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 5/9] arm: exynos: Wait till ADC stabilizes before checking Odroid HC1 revision
2019-02-15 7:15 ` Lukasz Majewski
2019-02-15 10:06 ` Krzysztof Kozlowski
@ 2019-02-16 9:28 ` Krzysztof Kozlowski
2019-02-17 22:31 ` Lukasz Majewski
1 sibling, 1 reply; 23+ messages in thread
From: Krzysztof Kozlowski @ 2019-02-16 9:28 UTC (permalink / raw)
To: u-boot
On Fri, Feb 15, 2019 at 08:15:45AM +0100, Lukasz Majewski wrote:
> On Wed, 13 Feb 2019 17:46:44 +0100
> Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> > Fix detection of Odroid HC1 (Exynos5422) after reboot if kernel
> > disabled the LDO4/VDD_ADC regulator.
> >
> > The LDO4 supplies both ADC block and the ADC input AIN9. Voltage on
> > AIN9 will rise slowly, so be patient and wait for it to stabilize.
> >
> > First reads on Odroid HC1 return 305, 1207, 1297 and finally 1308
> > (reference value is 1309).
> >
> > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> > ---
> > board/samsung/common/exynos5-dt-types.c | 38
> > ++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1
> > deletion(-)
> >
> > diff --git a/board/samsung/common/exynos5-dt-types.c
> > b/board/samsung/common/exynos5-dt-types.c index
> > af711e727a78..8aed64183837 100644 ---
> > a/board/samsung/common/exynos5-dt-types.c +++
> > b/board/samsung/common/exynos5-dt-types.c @@ -57,12 +57,48 @@ static
> > unsigned int odroid_get_rev(void) return 0;
> > }
> >
> > +/*
> > + * Read ADC at least twice and check the resuls. If regulator
> > providing voltage
> > + * on to measured point was just turned on, first reads might
> > require time
> > + * to stabilize.
> > + */
> > +static int odroid_get_adc_val(unsigned int *adcval)
> > +{
> > + unsigned int adcval_prev = 0;
> > + int ret, retries = 20;
> > +
> > + ret = adc_channel_single_shot("adc", CONFIG_ODROID_REV_AIN,
> > + &adcval_prev);
> > + if (ret)
> > + return ret;
> > +
> > + while (retries--) {
> > + mdelay(5);
> > +
> > + ret = adc_channel_single_shot("adc",
> > CONFIG_ODROID_REV_AIN,
> > + adcval);
> > + if (ret)
> > + return ret;
> > +
> > + /*
> > + * If difference between ADC reads is less than 3%,
> > + * accept the result
> > + */
> > + if ((100 * abs(*adcval - adcval_prev) / adcval_prev)
> > < 3)
> > + return ret;
> > +
> > + adcval_prev = *adcval;
> > + }
>
> Is there in the documentation any required time to wait before reading
> the ADC value?
>
> If yes then maybe get_timer() based approach shall be used (if
> get_timer() is available in this context)?
>
> Please see for example drivers/net/fec_mxc.c for how timeouts are
> handled there.
I must admit that I do not see benefit of timers...
1. Make code slightly more complicated (instead of simple retries and
mdelay()).
2. Introduce no delay by itself so the ADC reads happen one after
another. Probing ADC value fast does not work with my approach
of waiting till the values get closer to each other...
With timer-based approach, without delay I got:
ADC = 660
ADC = 887
ADC = 1031
ADC = 1125
ADC = 1186
ADC = 1226
ADC = 1253
return - because the difference is too small (<3 %).
I could narrow my threshold to 1%... but then:
ADC = 651
ADC = 881
ADC = 1027
ADC = 1122
ADC = 1184
ADC = 1225
ADC = 1253
ADC = 1271
ADC = 1284
ADC = 1292
I prefer simpler method with delay.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 23+ messages in thread
* [U-Boot] [PATCH v2 5/9] arm: exynos: Wait till ADC stabilizes before checking Odroid HC1 revision
2019-02-16 9:28 ` Krzysztof Kozlowski
@ 2019-02-17 22:31 ` Lukasz Majewski
0 siblings, 0 replies; 23+ messages in thread
From: Lukasz Majewski @ 2019-02-17 22:31 UTC (permalink / raw)
To: u-boot
Hi Krzysztof,
> On Fri, Feb 15, 2019 at 08:15:45AM +0100, Lukasz Majewski wrote:
> > On Wed, 13 Feb 2019 17:46:44 +0100
> > Krzysztof Kozlowski <krzk@kernel.org> wrote:
> >
> > > Fix detection of Odroid HC1 (Exynos5422) after reboot if kernel
> > > disabled the LDO4/VDD_ADC regulator.
> > >
> > > The LDO4 supplies both ADC block and the ADC input AIN9. Voltage
> > > on AIN9 will rise slowly, so be patient and wait for it to
> > > stabilize.
> > >
> > > First reads on Odroid HC1 return 305, 1207, 1297 and finally 1308
> > > (reference value is 1309).
> > >
> > > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> > > ---
> > > board/samsung/common/exynos5-dt-types.c | 38
> > > ++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1
> > > deletion(-)
> > >
> > > diff --git a/board/samsung/common/exynos5-dt-types.c
> > > b/board/samsung/common/exynos5-dt-types.c index
> > > af711e727a78..8aed64183837 100644 ---
> > > a/board/samsung/common/exynos5-dt-types.c +++
> > > b/board/samsung/common/exynos5-dt-types.c @@ -57,12 +57,48 @@
> > > static unsigned int odroid_get_rev(void) return 0;
> > > }
> > >
> > > +/*
> > > + * Read ADC at least twice and check the resuls. If regulator
> > > providing voltage
> > > + * on to measured point was just turned on, first reads might
> > > require time
> > > + * to stabilize.
> > > + */
> > > +static int odroid_get_adc_val(unsigned int *adcval)
> > > +{
> > > + unsigned int adcval_prev = 0;
> > > + int ret, retries = 20;
> > > +
> > > + ret = adc_channel_single_shot("adc",
> > > CONFIG_ODROID_REV_AIN,
> > > + &adcval_prev);
> > > + if (ret)
> > > + return ret;
> > > +
> > > + while (retries--) {
> > > + mdelay(5);
> > > +
> > > + ret = adc_channel_single_shot("adc",
> > > CONFIG_ODROID_REV_AIN,
> > > + adcval);
> > > + if (ret)
> > > + return ret;
> > > +
> > > + /*
> > > + * If difference between ADC reads is less than
> > > 3%,
> > > + * accept the result
> > > + */
> > > + if ((100 * abs(*adcval - adcval_prev) /
> > > adcval_prev) < 3)
> > > + return ret;
> > > +
> > > + adcval_prev = *adcval;
> > > + }
> >
> > Is there in the documentation any required time to wait before
> > reading the ADC value?
> >
> > If yes then maybe get_timer() based approach shall be used (if
> > get_timer() is available in this context)?
> >
> > Please see for example drivers/net/fec_mxc.c for how timeouts are
> > handled there.
>
> I must admit that I do not see benefit of timers...
> 1. Make code slightly more complicated (instead of simple retries and
> mdelay()).
> 2. Introduce no delay by itself so the ADC reads happen one after
> another. Probing ADC value fast does not work with my approach
> of waiting till the values get closer to each other...
>
> With timer-based approach, without delay I got:
> ADC = 660
> ADC = 887
> ADC = 1031
> ADC = 1125
> ADC = 1186
> ADC = 1226
> ADC = 1253
> return - because the difference is too small (<3 %).
>
> I could narrow my threshold to 1%... but then:
> ADC = 651
> ADC = 881
> ADC = 1027
> ADC = 1122
> ADC = 1184
> ADC = 1225
> ADC = 1253
> ADC = 1271
> ADC = 1284
> ADC = 1292
>
> I prefer simpler method with delay.
Ok. I see.
Just please add proper comment /or patch description.
Thanks for your effort :-)
>
> Best regards,
> Krzysztof
>
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190217/75ba1805/attachment.sig>
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2019-02-17 22:31 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-13 16:46 [U-Boot] [PATCH v2 0/9] arm: exynos: Fix reboot on Odroid HC1 Krzysztof Kozlowski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 1/9] adc: exynos-adc: Fix wrong bit operation used to stop the ADC Krzysztof Kozlowski
2019-02-15 6:54 ` Lukasz Majewski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 2/9] power: regulator: s2mps11: Fix step for LDO27 and LDO35 Krzysztof Kozlowski
2019-02-15 6:55 ` Lukasz Majewski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 3/9] arm: exynos: Detect revision later, when all resources are ready Krzysztof Kozlowski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 4/9] arm: exynos: odroid-xu3: Display info late to have proper type Krzysztof Kozlowski
2019-02-14 7:37 ` Krzysztof Kozlowski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 5/9] arm: exynos: Wait till ADC stabilizes before checking Odroid HC1 revision Krzysztof Kozlowski
2019-02-15 7:15 ` Lukasz Majewski
2019-02-15 10:06 ` Krzysztof Kozlowski
2019-02-16 9:28 ` Krzysztof Kozlowski
2019-02-17 22:31 ` Lukasz Majewski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 6/9] regulator: Add support for ramp delay Krzysztof Kozlowski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 7/9] power: regulator: s2mps11: Add enable delay Krzysztof Kozlowski
2019-02-15 7:03 ` Lukasz Majewski
2019-02-15 10:11 ` Krzysztof Kozlowski
2019-02-15 10:55 ` Lukasz Majewski
2019-02-15 17:11 ` Simon Glass
2019-02-16 8:37 ` Krzysztof Kozlowski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 8/9] arm: dts: exynos: Add supply for ADC block to Odroid XU3 family Krzysztof Kozlowski
2019-02-15 7:01 ` Lukasz Majewski
2019-02-13 16:46 ` [U-Boot] [PATCH v2 9/9] arm: dts: exynos: Add ramp delay property to LDO regulators " Krzysztof Kozlowski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox