* [U-Boot] [PATCH v2 01/19] bootstage: adjust Makefile to allow including bootstage in SPL, but not in TPL
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 02/19] dm: timer: Convert to livetree Philipp Tomsich
` (17 subsequent siblings)
18 siblings, 0 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
For timing our bootstages on the RK3368, which has a minimal TPL
(and where we consequently don't want to time the bootstages) and a
full-featured SPL (where we can bootstage recording), we need to
adjust the Makefile.
Use the $(SPL_TPL_) macro in the Makefile for bootstage.o
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---
Changes in v2: None
common/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/common/Makefile b/common/Makefile
index 1b56cf9..801ea31 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -63,7 +63,7 @@ obj-$(CONFIG_CMDLINE) += cli_readline.o cli_simple.o
endif # !CONFIG_SPL_BUILD
-obj-$(CONFIG_$(SPL_)BOOTSTAGE) += bootstage.o
+obj-$(CONFIG_$(SPL_TPL_)BOOTSTAGE) += bootstage.o
ifdef CONFIG_SPL_BUILD
obj-$(CONFIG_SPL_DFU_SUPPORT) += dfu.o
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 02/19] dm: timer: Convert to livetree
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 01/19] bootstage: adjust Makefile to allow including bootstage in SPL, but not in TPL Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 03/19] dm: timer: handle being called before dm_root is ready Philipp Tomsich
` (16 subsequent siblings)
18 siblings, 0 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
This updates dm_timer_init to support a live tree and deals with
some fallout (i.e. the need to restructure the code such, that we
don't need multiple discontinuous #if CONFIG_IS_ENABLED blocks).
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---
Changes in v2: None
drivers/timer/timer-uclass.c | 45 ++++++++++++++++++++++----------------------
1 file changed, 23 insertions(+), 22 deletions(-)
diff --git a/drivers/timer/timer-uclass.c b/drivers/timer/timer-uclass.c
index a84755f..62d6f0b 100644
--- a/drivers/timer/timer-uclass.c
+++ b/drivers/timer/timer-uclass.c
@@ -8,6 +8,7 @@
#include <dm.h>
#include <dm/lists.h>
#include <dm/device-internal.h>
+#include <dm/root.h>
#include <clk.h>
#include <errno.h>
#include <timer.h>
@@ -54,9 +55,10 @@ static int timer_pre_probe(struct udevice *dev)
if (IS_ERR_VALUE(ret))
return ret;
uc_priv->clock_rate = ret;
- } else
- uc_priv->clock_rate = fdtdec_get_int(gd->fdt_blob,
- dev_of_offset(dev), "clock-frequency", 0);
+ } else {
+ uc_priv->clock_rate =
+ dev_read_u32_default(dev, "clock-frequency", 0);
+ }
#endif
return 0;
@@ -83,9 +85,8 @@ u64 timer_conv_64(u32 count)
int notrace dm_timer_init(void)
{
- __maybe_unused const void *blob = gd->fdt_blob;
struct udevice *dev = NULL;
- int node = -ENOENT;
+ __maybe_unused ofnode node;
int ret;
if (gd->timer)
@@ -93,27 +94,27 @@ int notrace dm_timer_init(void)
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
/* Check for a chosen timer to be used for tick */
- node = fdtdec_get_chosen_node(blob, "tick-timer");
+ node = ofnode_get_chosen_node("tick-timer");
+
+ if (ofnode_valid(node) &&
+ uclass_get_device_by_ofnode(UCLASS_TIMER, node, &dev)) {
+ /*
+ * If the timer is not marked to be bound before
+ * relocation, bind it anyway.
+ */
+ if (!lists_bind_fdt(dm_root(), node, &dev)) {
+ ret = device_probe(dev);
+ if (ret)
+ return ret;
+ }
+ }
#endif
- if (node < 0) {
- /* No chosen timer, trying first available timer */
+
+ if (!dev) {
+ /* Fall back to the first available timer */
ret = uclass_first_device_err(UCLASS_TIMER, &dev);
if (ret)
return ret;
- } else {
- if (uclass_get_device_by_of_offset(UCLASS_TIMER, node, &dev)) {
- /*
- * If the timer is not marked to be bound before
- * relocation, bind it anyway.
- */
- if (node > 0 &&
- !lists_bind_fdt(gd->dm_root, offset_to_ofnode(node),
- &dev)) {
- ret = device_probe(dev);
- if (ret)
- return ret;
- }
- }
}
if (dev) {
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 03/19] dm: timer: handle being called before dm_root is ready
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 01/19] bootstage: adjust Makefile to allow including bootstage in SPL, but not in TPL Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 02/19] dm: timer: Convert to livetree Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 04/19] dm: core: add dev_read_addr_ptr() Philipp Tomsich
` (15 subsequent siblings)
18 siblings, 0 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
When used with bootstage recording, dm_timer_init may be called
surprisingly early: i.e. before dm_root is ready. To deal with
this case, we explicitly check for this condition and return
-EAGAIN to the caller (refer to drivers/timer/rockchip_timer.c
for a case where this is needed/used).
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---
Changes in v2: None
drivers/timer/timer-uclass.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/timer/timer-uclass.c b/drivers/timer/timer-uclass.c
index 62d6f0b..45397b2 100644
--- a/drivers/timer/timer-uclass.c
+++ b/drivers/timer/timer-uclass.c
@@ -92,6 +92,13 @@ int notrace dm_timer_init(void)
if (gd->timer)
return 0;
+ /*
+ * Directly access gd->dm_root to suppress error messages, if the
+ * virtual root driver does not yet exist.
+ */
+ if (gd->dm_root == NULL)
+ return -EAGAIN;
+
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
/* Check for a chosen timer to be used for tick */
node = ofnode_get_chosen_node("tick-timer");
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 04/19] dm: core: add dev_read_addr_ptr()
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (2 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 03/19] dm: timer: handle being called before dm_root is ready Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-12 2:44 ` Simon Glass
2017-09-11 9:18 ` [U-Boot] [PATCH v2 05/19] net: designware: Convert to livetree Philipp Tomsich
` (14 subsequent siblings)
18 siblings, 1 reply; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
The dev_read_addr_ptr() mimics the behaviour of the devfdt_get_addr_ptr(),
retrieving the first address of the node's reg-property and returning
it as a pointer (or NULL on failure).
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---
Changes in v2:
- implements the dev_read_addr_ptr() function
drivers/core/read.c | 7 +++++++
include/dm/read.h | 15 +++++++++++++++
2 files changed, 22 insertions(+)
diff --git a/drivers/core/read.c b/drivers/core/read.c
index 6acb333..065589a 100644
--- a/drivers/core/read.c
+++ b/drivers/core/read.c
@@ -57,6 +57,13 @@ fdt_addr_t dev_read_addr(struct udevice *dev)
return dev_read_addr_index(dev, 0);
}
+void *dev_read_addr_ptr(struct udevice *dev)
+{
+ fdt_addr_t addr = dev_read_addr(dev);
+
+ return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr;
+}
+
fdt_addr_t dev_read_addr_size(struct udevice *dev, const char *property,
fdt_size_t *sizep)
{
diff --git a/include/dm/read.h b/include/dm/read.h
index 49d69c9..e7f7125 100644
--- a/include/dm/read.h
+++ b/include/dm/read.h
@@ -113,6 +113,16 @@ fdt_addr_t dev_read_addr_index(struct udevice *dev, int index);
fdt_addr_t dev_read_addr(struct udevice *dev);
/**
+ * dev_read_addr_ptr() - Get the reg property of a device
+ * as a pointer
+ *
+ * @dev: Device to read from
+ *
+ * @return pointer or NULL if not found
+ */
+void *dev_read_addr_ptr(struct udevice *dev);
+
+/**
* dev_read_addr_size() - get address and size from a device property
*
* This does no address translation. It simply reads an property that contains
@@ -417,6 +427,11 @@ static inline fdt_addr_t dev_read_addr(struct udevice *dev)
return devfdt_get_addr(dev);
}
+static inline void *dev_read_addr_ptr(struct udevice *dev)
+{
+ return devfdt_get_addr_ptr(dev);
+}
+
static inline fdt_addr_t dev_read_addr_size(struct udevice *dev,
const char *propname,
fdt_size_t *sizep)
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 04/19] dm: core: add dev_read_addr_ptr()
2017-09-11 9:18 ` [U-Boot] [PATCH v2 04/19] dm: core: add dev_read_addr_ptr() Philipp Tomsich
@ 2017-09-12 2:44 ` Simon Glass
0 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2017-09-12 2:44 UTC (permalink / raw)
To: u-boot
On 11 September 2017 at 03:18, Philipp Tomsich
<philipp.tomsich@theobroma-systems.com> wrote:
> The dev_read_addr_ptr() mimics the behaviour of the devfdt_get_addr_ptr(),
> retrieving the first address of the node's reg-property and returning
> it as a pointer (or NULL on failure).
>
> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
>
> ---
>
> Changes in v2:
> - implements the dev_read_addr_ptr() function
>
> drivers/core/read.c | 7 +++++++
> include/dm/read.h | 15 +++++++++++++++
> 2 files changed, 22 insertions(+)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 05/19] net: designware: Convert to livetree
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (3 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 04/19] dm: core: add dev_read_addr_ptr() Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 06/19] net: phy: micrel: " Philipp Tomsich
` (13 subsequent siblings)
18 siblings, 0 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
Update the Designware Ethernet MAC driver to support a live device
tree.
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---
Changes in v2: None
drivers/net/designware.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index 521e4dd..036d231 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -737,16 +737,14 @@ int designware_eth_ofdata_to_platdata(struct udevice *dev)
#endif
struct eth_pdata *pdata = &dw_pdata->eth_pdata;
const char *phy_mode;
- const fdt32_t *cell;
#ifdef CONFIG_DM_GPIO
int reset_flags = GPIOD_IS_OUT;
#endif
int ret = 0;
- pdata->iobase = devfdt_get_addr(dev);
+ pdata->iobase = dev_read_addr(dev);
pdata->phy_interface = -1;
- phy_mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "phy-mode",
- NULL);
+ phy_mode = dev_read_string(dev, "phy-mode");
if (phy_mode)
pdata->phy_interface = phy_get_interface_by_name(phy_mode);
if (pdata->phy_interface == -1) {
@@ -754,10 +752,7 @@ int designware_eth_ofdata_to_platdata(struct udevice *dev)
return -EINVAL;
}
- pdata->max_speed = 0;
- cell = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "max-speed", NULL);
- if (cell)
- pdata->max_speed = fdt32_to_cpu(*cell);
+ pdata->max_speed = dev_read_u32_default(dev, "max-speed", 0);
#ifdef CONFIG_DM_GPIO
if (dev_read_bool(dev, "snps,reset-active-low"))
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 06/19] net: phy: micrel: Convert to livetree
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (4 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 05/19] net: designware: Convert to livetree Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 19:34 ` Joe Hershberger
2017-09-11 9:18 ` [U-Boot] [PATCH v2 07/19] rockchip: mmc: convert " Philipp Tomsich
` (12 subsequent siblings)
18 siblings, 1 reply; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
Update the Micrel KSZ90x1 driver for a live tree.
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---
Changes in v2: None
drivers/net/phy/micrel_ksz90x1.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/net/phy/micrel_ksz90x1.c b/drivers/net/phy/micrel_ksz90x1.c
index 0bb99e6..b350a61 100644
--- a/drivers/net/phy/micrel_ksz90x1.c
+++ b/drivers/net/phy/micrel_ksz90x1.c
@@ -9,11 +9,11 @@
* (C) Copyright 2017 Adaptrum, Inc.
* Written by Alexandru Gagniuc <alex.g@adaptrum.com> for Adaptrum, Inc.
*/
+
#include <config.h>
#include <common.h>
#include <dm.h>
#include <errno.h>
-#include <fdtdec.h>
#include <micrel.h>
#include <phy.h>
@@ -120,8 +120,7 @@ static int ksz90x1_of_config_group(struct phy_device *phydev,
return -EOPNOTSUPP;
for (i = 0; i < ofcfg->grpsz; i++) {
- val[i] = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
- ofcfg->grp[i].name, -1);
+ val[i] = dev_read_u32_default(dev, ofcfg->grp[i].name, ~0);
offset = ofcfg->grp[i].off;
if (val[i] == -1) {
/* Default register value for KSZ9021 */
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 06/19] net: phy: micrel: Convert to livetree
2017-09-11 9:18 ` [U-Boot] [PATCH v2 06/19] net: phy: micrel: " Philipp Tomsich
@ 2017-09-11 19:34 ` Joe Hershberger
2017-09-11 19:54 ` Dr. Philipp Tomsich
0 siblings, 1 reply; 26+ messages in thread
From: Joe Hershberger @ 2017-09-11 19:34 UTC (permalink / raw)
To: u-boot
On Mon, Sep 11, 2017 at 4:18 AM, Philipp Tomsich
<philipp.tomsich@theobroma-systems.com> wrote:
> Update the Micrel KSZ90x1 driver for a live tree.
>
> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
You seem to not have included my Acked-by tags in the new version.
-Joe
> ---
>
> Changes in v2: None
>
> drivers/net/phy/micrel_ksz90x1.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/phy/micrel_ksz90x1.c b/drivers/net/phy/micrel_ksz90x1.c
> index 0bb99e6..b350a61 100644
> --- a/drivers/net/phy/micrel_ksz90x1.c
> +++ b/drivers/net/phy/micrel_ksz90x1.c
> @@ -9,11 +9,11 @@
> * (C) Copyright 2017 Adaptrum, Inc.
> * Written by Alexandru Gagniuc <alex.g@adaptrum.com> for Adaptrum, Inc.
> */
> +
> #include <config.h>
> #include <common.h>
> #include <dm.h>
> #include <errno.h>
> -#include <fdtdec.h>
> #include <micrel.h>
> #include <phy.h>
>
> @@ -120,8 +120,7 @@ static int ksz90x1_of_config_group(struct phy_device *phydev,
> return -EOPNOTSUPP;
>
> for (i = 0; i < ofcfg->grpsz; i++) {
> - val[i] = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
> - ofcfg->grp[i].name, -1);
> + val[i] = dev_read_u32_default(dev, ofcfg->grp[i].name, ~0);
> offset = ofcfg->grp[i].off;
> if (val[i] == -1) {
> /* Default register value for KSZ9021 */
> --
> 2.1.4
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
^ permalink raw reply [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 06/19] net: phy: micrel: Convert to livetree
2017-09-11 19:34 ` Joe Hershberger
@ 2017-09-11 19:54 ` Dr. Philipp Tomsich
0 siblings, 0 replies; 26+ messages in thread
From: Dr. Philipp Tomsich @ 2017-09-11 19:54 UTC (permalink / raw)
To: u-boot
> On 11 Sep 2017, at 21:34, Joe Hershberger <joe.hershberger@ni.com> wrote:
>
> On Mon, Sep 11, 2017 at 4:18 AM, Philipp Tomsich
> <philipp.tomsich at theobroma-systems.com <mailto:philipp.tomsich@theobroma-systems.com>> wrote:
>> Update the Micrel KSZ90x1 driver for a live tree.
>>
>> Signed-off-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com <mailto:philipp.tomsich@theobroma-systems.com>>
>
> You seem to not have included my Acked-by tags in the new version.
Oops. Seems like those got lost those somewhere along the line.
Thanks for pointing this out.
Phil.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 07/19] rockchip: mmc: convert to livetree
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (5 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 06/19] net: phy: micrel: " Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 08/19] rockchip: timer: implement timer_get_boot_us Philipp Tomsich
` (11 subsequent siblings)
18 siblings, 0 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
Update the Rockchip-specific wrapper for the Designware driver to
support a live device tree.
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Version-changes: 2
- use the dev_read_addr_ptr function in rockchip_dw_mmc.c
---
Changes in v2: None
drivers/mmc/rockchip_dw_mmc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/rockchip_dw_mmc.c b/drivers/mmc/rockchip_dw_mmc.c
index e7fcf89..807dc9e 100644
--- a/drivers/mmc/rockchip_dw_mmc.c
+++ b/drivers/mmc/rockchip_dw_mmc.c
@@ -58,7 +58,7 @@ static int rockchip_dwmmc_ofdata_to_platdata(struct udevice *dev)
struct dwmci_host *host = &priv->host;
host->name = dev->name;
- host->ioaddr = (void *)devfdt_get_addr(dev);
+ host->ioaddr = dev_read_addr_ptr(dev);
host->buswidth = dev_read_u32_default(dev, "bus-width", 4);
host->get_mmc_clk = rockchip_dwmmc_get_mmc_clk;
host->priv = dev;
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 08/19] rockchip: timer: implement timer_get_boot_us
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (6 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 07/19] rockchip: mmc: convert " Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 09/19] rockchip: timer: Convert to livetree Philipp Tomsich
` (10 subsequent siblings)
18 siblings, 0 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
To make the Rockchip DM timer driver useful for the timing of
bootstages, we need a few enhancements:
- This implements timer_get_boot_us.
- This avoids reinitialising the timer, if it has already been
set up (e.g. by our TPL and SPL stages). Now, we have a single
timebase ticking from TPL through the full U-Boot.
- This adds support for reading the timer even before the
device-model is ready: we find the timer via /chosen/tick-timer,
then read its address and clock-frequency, and finally read the
timeval directly).
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---
Changes in v2: None
drivers/timer/rockchip_timer.c | 72 +++++++++++++++++++++++++++++++++++++++---
1 file changed, 67 insertions(+), 5 deletions(-)
diff --git a/drivers/timer/rockchip_timer.c b/drivers/timer/rockchip_timer.c
index cd349ca..b19aaed 100644
--- a/drivers/timer/rockchip_timer.c
+++ b/drivers/timer/rockchip_timer.c
@@ -6,6 +6,7 @@
#include <common.h>
#include <dm.h>
+#include <dm/ofnode.h>
#include <mapmem.h>
#include <asm/arch/timer.h>
#include <dt-structs.h>
@@ -25,17 +26,72 @@ struct rockchip_timer_priv {
struct rk_timer *timer;
};
-static int rockchip_timer_get_count(struct udevice *dev, u64 *count)
+static inline int64_t rockchip_timer_get_curr_value(struct rk_timer *timer)
{
- struct rockchip_timer_priv *priv = dev_get_priv(dev);
uint64_t timebase_h, timebase_l;
uint64_t cntr;
- timebase_l = readl(&priv->timer->timer_curr_value0);
- timebase_h = readl(&priv->timer->timer_curr_value1);
+ timebase_l = readl(&timer->timer_curr_value0);
+ timebase_h = readl(&timer->timer_curr_value1);
- /* timers are down-counting */
cntr = timebase_h << 32 | timebase_l;
+ return cntr;
+}
+
+#if CONFIG_IS_ENABLED(BOOTSTAGE)
+ulong timer_get_boot_us(void)
+{
+ uint64_t ticks = 0;
+ uint32_t rate;
+ uint64_t us;
+ int ret;
+
+ ret = dm_timer_init();
+
+ if (!ret) {
+ /* The timer is available */
+ rate = timer_get_rate(gd->timer);
+ timer_get_count(gd->timer, &ticks);
+#if !CONFIG_IS_ENABLED(OF_PLATDATA)
+ } else if (ret == -EAGAIN) {
+ /* We have been called so early that the DM is not ready,... */
+ ofnode node = offset_to_ofnode(-1);
+ struct rk_timer *timer = NULL;
+
+ /*
+ * ... so we try to access the raw timer, if it is specified
+ * via the tick-timer property in /chosen.
+ */
+ node = ofnode_get_chosen_node("tick-timer");
+ if (!ofnode_valid(node)) {
+ debug("%s: no /chosen/tick-timer\n", __func__);
+ return 0;
+ }
+
+ timer = (struct rk_timer *)ofnode_get_addr(node);
+
+ /* This timer is down-counting */
+ ticks = ~0uLL - rockchip_timer_get_curr_value(timer);
+ if (ofnode_read_u32(node, "clock-frequency", &rate)) {
+ debug("%s: could not read clock-frequency\n", __func__);
+ return 0;
+ }
+#endif
+ } else {
+ return 0;
+ }
+
+ us = (ticks * 1000) / rate;
+ return us;
+}
+#endif
+
+static int rockchip_timer_get_count(struct udevice *dev, u64 *count)
+{
+ struct rockchip_timer_priv *priv = dev_get_priv(dev);
+ uint64_t cntr = rockchip_timer_get_curr_value(priv->timer);
+
+ /* timers are down-counting */
*count = ~0ull - cntr;
return 0;
}
@@ -58,6 +114,12 @@ static int rockchip_timer_start(struct udevice *dev)
const uint32_t reload_val_l = reload_val & 0xffffffff;
const uint32_t reload_val_h = reload_val >> 32;
+ /* don't reinit, if the timer is already running and set up */
+ if ((readl(&priv->timer->timer_ctrl_reg) & 1) == 1 &&
+ (readl(&priv->timer->timer_load_count0) == reload_val_l) &&
+ (readl(&priv->timer->timer_load_count1) == reload_val_h))
+ return 0;
+
/* disable timer and reset all control */
writel(0, &priv->timer->timer_ctrl_reg);
/* write reload value */
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 09/19] rockchip: timer: Convert to livetree
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (7 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 08/19] rockchip: timer: implement timer_get_boot_us Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 10/19] rockchip: clk: rk3368: " Philipp Tomsich
` (9 subsequent siblings)
18 siblings, 0 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
Update the Rockchip timer driver to support a live device tree.
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---
Changes in v2:
- use the new dev_read_addr_ptr() function
- improve error handling, in case dev_read_addr_ptr returns NULL
drivers/timer/rockchip_timer.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/timer/rockchip_timer.c b/drivers/timer/rockchip_timer.c
index b19aaed..07d1448 100644
--- a/drivers/timer/rockchip_timer.c
+++ b/drivers/timer/rockchip_timer.c
@@ -101,7 +101,9 @@ static int rockchip_clk_ofdata_to_platdata(struct udevice *dev)
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
struct rockchip_timer_priv *priv = dev_get_priv(dev);
- priv->timer = (struct rk_timer *)devfdt_get_addr(dev);
+ priv->timer = dev_read_addr_ptr(dev);
+ if (!priv->timer)
+ return -ENOENT;
#endif
return 0;
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 10/19] rockchip: clk: rk3368: Convert to livetree
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (8 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 09/19] rockchip: timer: Convert to livetree Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 11/19] rockchip: pinctrl: " Philipp Tomsich
` (8 subsequent siblings)
18 siblings, 0 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
Update the clock driver for the RK3368 to support a live device tree.
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Version-changes: 2
- use the dev_read_addr_ptr function in clk_rk3368.c
---
Changes in v2: None
drivers/clk/rockchip/clk_rk3368.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/clk/rockchip/clk_rk3368.c b/drivers/clk/rockchip/clk_rk3368.c
index 0160d50..e274781 100644
--- a/drivers/clk/rockchip/clk_rk3368.c
+++ b/drivers/clk/rockchip/clk_rk3368.c
@@ -485,7 +485,7 @@ static int rk3368_clk_ofdata_to_platdata(struct udevice *dev)
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
struct rk3368_clk_priv *priv = dev_get_priv(dev);
- priv->cru = (struct rk3368_cru *)devfdt_get_addr(dev);
+ priv->cru = dev_read_addr_ptr(dev);
#endif
return 0;
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 11/19] rockchip: pinctrl: rk3368: Convert to livetree
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (9 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 10/19] rockchip: clk: rk3368: " Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 12/19] rockchip: spi: " Philipp Tomsich
` (7 subsequent siblings)
18 siblings, 0 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
Update the pinctrl driver for the RK3368 to support a live device tree.
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---
Changes in v2: None
drivers/pinctrl/rockchip/pinctrl_rk3368.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/pinctrl/rockchip/pinctrl_rk3368.c b/drivers/pinctrl/rockchip/pinctrl_rk3368.c
index 81ce2e3..b1f5704 100644
--- a/drivers/pinctrl/rockchip/pinctrl_rk3368.c
+++ b/drivers/pinctrl/rockchip/pinctrl_rk3368.c
@@ -632,8 +632,7 @@ static int rk3368_pinctrl_get_periph_id(struct udevice *dev,
u32 cell[3];
int ret;
- ret = fdtdec_get_int_array(gd->fdt_blob, dev_of_offset(periph),
- "interrupts", cell, ARRAY_SIZE(cell));
+ ret = dev_read_u32_array(periph, "interrupts", cell, ARRAY_SIZE(cell));
if (ret < 0)
return -EINVAL;
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 12/19] rockchip: spi: Convert to livetree
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (10 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 11/19] rockchip: pinctrl: " Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 9:32 ` Jagan Teki
2017-09-11 9:18 ` [U-Boot] [PATCH v2 13/19] rockchip: sdhci: " Philipp Tomsich
` (6 subsequent siblings)
18 siblings, 1 reply; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
Update the Rockchip SPI driver to support a live device tree.
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---
Changes in v2: None
drivers/spi/rk_spi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/spi/rk_spi.c b/drivers/spi/rk_spi.c
index c70d636..b18db74 100644
--- a/drivers/spi/rk_spi.c
+++ b/drivers/spi/rk_spi.c
@@ -184,7 +184,7 @@ static int rockchip_spi_ofdata_to_platdata(struct udevice *bus)
struct rockchip_spi_priv *priv = dev_get_priv(bus);
int ret;
- plat->base = devfdt_get_addr(bus);
+ plat->base = dev_read_addr(bus);
ret = clk_get_by_index(bus, 0, &priv->clk);
if (ret < 0) {
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 12/19] rockchip: spi: Convert to livetree
2017-09-11 9:18 ` [U-Boot] [PATCH v2 12/19] rockchip: spi: " Philipp Tomsich
@ 2017-09-11 9:32 ` Jagan Teki
0 siblings, 0 replies; 26+ messages in thread
From: Jagan Teki @ 2017-09-11 9:32 UTC (permalink / raw)
To: u-boot
On Mon, Sep 11, 2017 at 2:48 PM, Philipp Tomsich
<philipp.tomsich@theobroma-systems.com> wrote:
> Update the Rockchip SPI driver to support a live device tree.
>
> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Jagan Teki <jagan@openedev.com>
thanks!
--
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 13/19] rockchip: sdhci: Convert to livetree
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (11 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 12/19] rockchip: spi: " Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 14/19] rockchip: rk8xx: remove unused header includes Philipp Tomsich
` (5 subsequent siblings)
18 siblings, 0 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
Update the Rockchip SDHCI wrapper to support a live device tree.
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Version-changes: 2
- use the dev_read_addr_ptr function in rockchip_sdhci.c
---
Changes in v2: None
drivers/mmc/rockchip_sdhci.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/mmc/rockchip_sdhci.c b/drivers/mmc/rockchip_sdhci.c
index f31d329..346a42c 100644
--- a/drivers/mmc/rockchip_sdhci.c
+++ b/drivers/mmc/rockchip_sdhci.c
@@ -9,7 +9,6 @@
#include <common.h>
#include <dm.h>
#include <dt-structs.h>
-#include <fdtdec.h>
#include <libfdt.h>
#include <malloc.h>
#include <mapmem.h>
@@ -82,7 +81,7 @@ static int arasan_sdhci_ofdata_to_platdata(struct udevice *dev)
struct sdhci_host *host = dev_get_priv(dev);
host->name = dev->name;
- host->ioaddr = devfdt_get_addr_ptr(dev);
+ host->ioaddr = dev_read_addr_ptr(dev);
#endif
return 0;
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 14/19] rockchip: rk8xx: remove unused header includes
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (12 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 13/19] rockchip: sdhci: " Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 15/19] rockchip: i2c: Convert to livetree Philipp Tomsich
` (4 subsequent siblings)
18 siblings, 0 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
Remove header file includes that have been left over after the
conversion to livetree-support.
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---
Changes in v2: None
drivers/power/pmic/rk8xx.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/power/pmic/rk8xx.c b/drivers/power/pmic/rk8xx.c
index eb3ec0f..735046d 100644
--- a/drivers/power/pmic/rk8xx.c
+++ b/drivers/power/pmic/rk8xx.c
@@ -8,8 +8,6 @@
#include <common.h>
#include <dm.h>
#include <errno.h>
-#include <fdtdec.h>
-#include <libfdt.h>
#include <power/rk8xx_pmic.h>
#include <power/pmic.h>
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 15/19] rockchip: i2c: Convert to livetree
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (13 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 14/19] rockchip: rk8xx: remove unused header includes Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 11:29 ` Heiko Schocher
2017-09-13 2:31 ` Simon Glass
2017-09-11 9:18 ` [U-Boot] [PATCH v2 16/19] rockchip: gpio: convert " Philipp Tomsich
` (3 subsequent siblings)
18 siblings, 2 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
Update the Rockchip I2C driver to support livetree.
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Version-changes: 2
- use the dev_read_addr_ptr function in rk_i2c.c
---
Changes in v2: None
drivers/i2c/rk_i2c.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/i2c/rk_i2c.c b/drivers/i2c/rk_i2c.c
index 68e6653..840b3f6 100644
--- a/drivers/i2c/rk_i2c.c
+++ b/drivers/i2c/rk_i2c.c
@@ -382,7 +382,7 @@ static int rockchip_i2c_probe(struct udevice *bus)
{
struct rk_i2c *priv = dev_get_priv(bus);
- priv->regs = (void *)devfdt_get_addr(bus);
+ priv->regs = dev_read_addr_ptr(bus);
return 0;
}
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 15/19] rockchip: i2c: Convert to livetree
2017-09-11 9:18 ` [U-Boot] [PATCH v2 15/19] rockchip: i2c: Convert to livetree Philipp Tomsich
@ 2017-09-11 11:29 ` Heiko Schocher
2017-09-13 2:31 ` Simon Glass
1 sibling, 0 replies; 26+ messages in thread
From: Heiko Schocher @ 2017-09-11 11:29 UTC (permalink / raw)
To: u-boot
Hello Philipp,
Am 11.09.2017 um 11:18 schrieb Philipp Tomsich:
> Update the Rockchip I2C driver to support livetree.
>
> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
>
> Version-changes: 2
> - use the dev_read_addr_ptr function in rk_i2c.c
>
> ---
>
> Changes in v2: None
>
> drivers/i2c/rk_i2c.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Acked-by: Heiko Schocher <hs@denx.de>
bye,
Heiko
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52 Fax: +49-8142-66989-80 Email: hs at denx.de
^ permalink raw reply [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 15/19] rockchip: i2c: Convert to livetree
2017-09-11 9:18 ` [U-Boot] [PATCH v2 15/19] rockchip: i2c: Convert to livetree Philipp Tomsich
2017-09-11 11:29 ` Heiko Schocher
@ 2017-09-13 2:31 ` Simon Glass
1 sibling, 0 replies; 26+ messages in thread
From: Simon Glass @ 2017-09-13 2:31 UTC (permalink / raw)
To: u-boot
On 11 September 2017 at 03:18, Philipp Tomsich
<philipp.tomsich@theobroma-systems.com> wrote:
> Update the Rockchip I2C driver to support livetree.
>
> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
>
> Version-changes: 2
> - use the dev_read_addr_ptr function in rk_i2c.c
>
> ---
>
> Changes in v2: None
>
> drivers/i2c/rk_i2c.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 16/19] rockchip: gpio: convert to livetree
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (14 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 15/19] rockchip: i2c: Convert to livetree Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 17/19] rockchip: gpio: remove outdated/misleading comment Philipp Tomsich
` (2 subsequent siblings)
18 siblings, 0 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
Update the Rockchip GPIO-bank driver to support a live tree.
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Version-changes: 2
- use the dev_read_addr_ptr function in rk_gpio.c
---
Changes in v2: None
drivers/gpio/rk_gpio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpio/rk_gpio.c b/drivers/gpio/rk_gpio.c
index 6f7366a..a6b83b2 100644
--- a/drivers/gpio/rk_gpio.c
+++ b/drivers/gpio/rk_gpio.c
@@ -104,7 +104,7 @@ static int rockchip_gpio_probe(struct udevice *dev)
int ret;
/* This only supports RK3288 at present */
- priv->regs = (struct rockchip_gpio_regs *)devfdt_get_addr(dev);
+ priv->regs = dev_read_addr_ptr(dev);
ret = uclass_first_device_err(UCLASS_PINCTRL, &priv->pinctrl);
if (ret)
return ret;
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 17/19] rockchip: gpio: remove outdated/misleading comment
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (15 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 16/19] rockchip: gpio: convert " Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 18/19] rockchip: dts: rk3368-lion: add /chosen/tick-timer Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 19/19] rockchip: lion-rk3368: defconfig: resync w/ OF_LIVE and BOOTSTAGE enabled Philipp Tomsich
18 siblings, 0 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
Remove a comment claiming that this driver only supports the RK3288,
as we also use it on the RK3368, RK3399 and (most likely) on other
variants.
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Version-changes: 2
- use the dev_read_addr_ptr function in rk_gpio.c
---
Changes in v2: None
drivers/gpio/rk_gpio.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/gpio/rk_gpio.c b/drivers/gpio/rk_gpio.c
index a6b83b2..11fc3e2 100644
--- a/drivers/gpio/rk_gpio.c
+++ b/drivers/gpio/rk_gpio.c
@@ -103,7 +103,6 @@ static int rockchip_gpio_probe(struct udevice *dev)
char *end;
int ret;
- /* This only supports RK3288 at present */
priv->regs = dev_read_addr_ptr(dev);
ret = uclass_first_device_err(UCLASS_PINCTRL, &priv->pinctrl);
if (ret)
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 18/19] rockchip: dts: rk3368-lion: add /chosen/tick-timer
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (16 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 17/19] rockchip: gpio: remove outdated/misleading comment Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
2017-09-11 9:18 ` [U-Boot] [PATCH v2 19/19] rockchip: lion-rk3368: defconfig: resync w/ OF_LIVE and BOOTSTAGE enabled Philipp Tomsich
18 siblings, 0 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
To support bootstage recording, we want to mark our DM timer as the
tick-timer; this triggers the support for 'trying harder' to read the
timer in the Rockchip DM timer driver, even if the device model isn't
ready yet.
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---
Changes in v2: None
arch/arm/dts/rk3368-lion-u-boot.dtsi | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm/dts/rk3368-lion-u-boot.dtsi b/arch/arm/dts/rk3368-lion-u-boot.dtsi
index dbf614c..a9b7f81 100644
--- a/arch/arm/dts/rk3368-lion-u-boot.dtsi
+++ b/arch/arm/dts/rk3368-lion-u-boot.dtsi
@@ -13,6 +13,7 @@
chosen {
stdout-path = "serial0:115200n8";
u-boot,spl-boot-order = &emmc, &sdmmc;
+ tick-timer = "/timer at ff810000";
};
};
@@ -88,6 +89,7 @@
&timer0 {
u-boot,dm-pre-reloc;
clock-frequency = <24000000>;
+ status = "okay";
};
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [U-Boot] [PATCH v2 19/19] rockchip: lion-rk3368: defconfig: resync w/ OF_LIVE and BOOTSTAGE enabled
2017-09-11 9:18 [U-Boot] [PATCH v2 00/19] rockchip: convert the RK3368 to OF_LIVE and validate on the RK3368-uQ7 Philipp Tomsich
` (17 preceding siblings ...)
2017-09-11 9:18 ` [U-Boot] [PATCH v2 18/19] rockchip: dts: rk3368-lion: add /chosen/tick-timer Philipp Tomsich
@ 2017-09-11 9:18 ` Philipp Tomsich
18 siblings, 0 replies; 26+ messages in thread
From: Philipp Tomsich @ 2017-09-11 9:18 UTC (permalink / raw)
To: u-boot
This adds OF_LIVE and BOOTSTAGE support for the RK3368-uQ7 and
regenerates the defconfig (picking up a few changes/reorderings) from
upstream Kconfig changes.
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---
Changes in v2: None
configs/lion-rk3368_defconfig | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/configs/lion-rk3368_defconfig b/configs/lion-rk3368_defconfig
index 45a12a8..c7ee7b3 100644
--- a/configs/lion-rk3368_defconfig
+++ b/configs/lion-rk3368_defconfig
@@ -19,6 +19,11 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_SPL_LOAD_FIT=y
CONFIG_SPL_FIT_SOURCE="board/theobroma-systems/lion_rk3368/fit_spl_atf.its"
+CONFIG_BOOTSTAGE=y
+CONFIG_SPL_BOOTSTAGE=y
+CONFIG_BOOTSTAGE_REPORT=y
+CONFIG_BOOTSTAGE_FDT=y
+CONFIG_ENV_IS_IN_MMC=y
# CONFIG_DISPLAY_CPUINFO is not set
CONFIG_ARCH_EARLY_INIT_R=y
CONFIG_SPL=y
@@ -37,10 +42,12 @@ CONFIG_TPL_DRIVERS_MISC_SUPPORT=y
CONFIG_CMD_GPIO=y
CONFIG_CMD_MMC=y
CONFIG_CMD_SF=y
+CONFIG_CMD_BOOTSTAGE=y
CONFIG_CMD_REGULATOR=y
CONFIG_CMD_MTDPARTS=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_TPL_OF_CONTROL=y
+CONFIG_OF_LIVE=y
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names interrupt-parent"
CONFIG_TPL_OF_PLATDATA=y
CONFIG_ENV_IS_IN_MMC=y
--
2.1.4
^ permalink raw reply related [flat|nested] 26+ messages in thread