Skip to contentSkip to conversation

bmips: convert to use live-dt

PATCH New Álvaro Fernández Rojas 3 participants 41 messages Mar 22, 2018 – May 6, 2018

Subsystems (6)
lore
Share & tools
lore
#0 lore raw

v2 cover bmips: convert to use live-dt

Convert bmips drivers to use live device tree instead of flattened device tree.

v2: Introduce changes suggested by Daniel Schwierzeck and Simon Glass:
- Add generic dev_remap_addr/dev_remap_addr_index functions.
- Fix bcm63xx_spi conversion.
- Convert remaining bmips drivers (cpu, usbh-phy).

Álvaro Fernández Rojas (17):
dm: core: add functions to get memory-mapped I/O addreses
watchdog: bcm6345: convert to use live dt
serial: bcm6345: convert to use live dt
clk: bcm6345: convert to use live dt
reset: bcm6345: convert to use live dt
gpio: bcm6345: convert to use live dt
led: bcm6358: convert to use live dt
led: bcm6328: convert to use live dt
power: domain: bcm6328: convert to use live dt
spi: bcm63xx_spi: convert to use live dt
spi: bcm63xx_hsspi: convert to use live dt
ram: bmips: convert to use live dt
cpu: bmips: convert to use live dt
phy: bcm6348-usbh: convert to use live dt
phy: bcm6358-usbh: convert to use live dt
phy: bcm6368-usbh: convert to use live dt
phy: bcm6318-usbh: convert to use live dt

 drivers/clk/clk_bcm6345.c                   |  8 ++---
 drivers/core/fdtaddr.c                      | 12 +++++++
 drivers/core/read.c                         | 12 +++++++
 drivers/cpu/bmips_cpu.c                     | 12 ++-----
 drivers/gpio/bcm6345_gpio.c                 | 18 +++-------
 drivers/led/led_bcm6328.c                   | 52 ++++++++++-------------------
 drivers/led/led_bcm6358.c                   | 44 +++++++++---------------
 drivers/phy/bcm6318-usbh-phy.c              | 10 ++----
 drivers/phy/bcm6348-usbh-phy.c              | 10 ++----
 drivers/phy/bcm6358-usbh-phy.c              | 10 ++----
 drivers/phy/bcm6368-usbh-phy.c              |  9 ++---
 drivers/power/domain/bcm6328-power-domain.c |  8 ++---
 drivers/ram/bmips_ram.c                     |  7 ++--
 drivers/reset/reset-bcm6345.c               |  8 ++---
 drivers/serial/serial_bcm6345.c             |  8 ++---
 drivers/spi/bcm63xx_hsspi.c                 | 12 ++-----
 drivers/spi/bcm63xx_spi.c                   | 12 ++-----
 drivers/watchdog/bcm6345_wdt.c              |  8 ++---
 include/dm/fdtaddr.h                        | 22 ++++++++++++
 include/dm/read.h                           | 32 ++++++++++++++++++
 20 files changed, 148 insertions(+), 166 deletions(-)
Signature · 1 line
2.11.0
#1 lore raw

PATCH v2 1/17 dm: core: add functions to get memory-mapped I/O addreses

---
 drivers/core/fdtaddr.c | 12 ++++++++++++
 drivers/core/read.c    | 12 ++++++++++++
 include/dm/fdtaddr.h   | 22 ++++++++++++++++++++++
 include/dm/read.h      | 32 ++++++++++++++++++++++++++++++++
 4 files changed, 78 insertions(+)
drivers/core/fdtaddr.c +12 -0
index 3847dd836e..8a80000332 100644
@@ -132,6 +132,18 @@ void *devfdt_get_addr_ptr(struct udevice *dev)
 	return (void *)(uintptr_t)devfdt_get_addr_index(dev, 0);
 }
 
+void *devfdt_remap_addr_index(struct udevice *dev, int index)
+{
+	fdt_addr_t addr = devfdt_get_addr_index(dev, index);
+
+	return (addr == FDT_ADDR_T_NONE) ? NULL : ioremap(addr, 0);
+}
+
+void *devfdt_remap_addr(struct udevice *dev)
+{
+	return devfdt_remap_addr_index(dev, 0);
+}
+
 void *devfdt_map_physmem(struct udevice *dev, unsigned long size)
 {
 	fdt_addr_t addr = devfdt_get_addr(dev);
drivers/core/read.c +12 -0
index 601d1322d6..0d338563ad 100644
@@ -58,6 +58,13 @@ fdt_addr_t dev_read_addr_index(struct udevice *dev, int index)
 		return devfdt_get_addr_index(dev, index);
 }
 
+void *dev_remap_addr_index(struct udevice *dev, int index)
+{
+	fdt_addr_t addr = dev_read_addr_index(dev, index);
+
+	return (addr == FDT_ADDR_T_NONE) ? NULL : ioremap(addr, 0);
+}
+
 fdt_addr_t dev_read_addr(struct udevice *dev)
 {
 	return dev_read_addr_index(dev, 0);
@@ -70,6 +77,11 @@ void *dev_read_addr_ptr(struct udevice *dev)
 	return (addr == FDT_ADDR_T_NONE) ? NULL : map_sysmem(addr, 0);
 }
 
+void * dev_remap_addr(struct udevice *dev)
+{
+	return dev_remap_addr_index(dev, 0);
+}
+
 fdt_addr_t dev_read_addr_size(struct udevice *dev, const char *property,
 			      fdt_size_t *sizep)
 {
include/dm/fdtaddr.h +22 -0
index c46f0e91d0..82fc5f931d 100644
@@ -35,6 +35,28 @@ fdt_addr_t devfdt_get_addr(struct udevice *dev);
 void *devfdt_get_addr_ptr(struct udevice *dev);
 
 /**
+ * devfdt_remap_addr() - Return pointer to the memory-mapped I/O address
+ *                           of the reg property of a device
+ *
+ * @dev: Pointer to a device
+ *
+ * @return Pointer to addr, or NULL if there is no such property
+ */
+void *devfdt_remap_addr(struct udevice *dev);
+
+/**
+ * devfdt_remap_addr_index() - Return indexed pointer to the memory-mapped
+ *                                 I/O address of the reg property of a device
+ * @index: the 'reg' property can hold a list of <addr, size> pairs
+ *	   and @index is used to select which one is required
+ *
+ * @dev: Pointer to a device
+ *
+ * @return Pointer to addr, or NULL if there is no such property
+ */
+void *devfdt_remap_addr_index(struct udevice *dev, int index);
+
+/**
  * devfdt_map_physmem() - Read device address from reg property of the
  *                     device node and map the address into CPU address
  *                     space.
include/dm/read.h +32 -0
index f14c7a7ba8..42eb585137 100644
@@ -114,6 +114,18 @@ int dev_read_size(struct udevice *dev, const char *propname);
 fdt_addr_t dev_read_addr_index(struct udevice *dev, int index);
 
 /**
+ * dev_remap_addr_index() - Get the indexed reg property of a device
+ *                               as a memory-mapped I/O pointer
+ *
+ * @dev: Device to read from
+ * @index: the 'reg' property can hold a list of <addr, size> pairs
+ *	   and @index is used to select which one is required
+ *
+ * @return pointer or NULL if not found
+ */
+void * dev_remap_addr_index(struct udevice *dev, int index);
+
+/**
  * dev_read_addr() - Get the reg property of a device
  *
  * @dev: Device to read from
@@ -133,6 +145,16 @@ fdt_addr_t dev_read_addr(struct udevice *dev);
 void *dev_read_addr_ptr(struct udevice *dev);
 
 /**
+ * dev_remap_addr() - Get the reg property of a device as a
+ *                         memory-mapped I/O pointer
+ *
+ * @dev: Device to read from
+ *
+ * @return pointer or NULL if not found
+ */
+void * dev_remap_addr(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
@@ -483,6 +505,16 @@ static inline void *dev_read_addr_ptr(struct udevice *dev)
 	return devfdt_get_addr_ptr(dev);
 }
 
+static inline void *dev_remap_addr(struct udevice *dev)
+{
+	return devfdt_remap_addr(dev);
+}
+
+static inline void *dev_remap_addr_index(struct udevice *dev, int index)
+{
+	return devfdt_remap_addr_index(dev, index);
+}
+
 static inline fdt_addr_t dev_read_addr_size(struct udevice *dev,
 					    const char *propname,
 					    fdt_size_t *sizep)
Signature · 1 line
2.11.0
#2 lore raw

PATCH v2 1/17 dm: core: add functions to get memory-mapped I/O addreses

Quoted 13 lines · Álvaro Fernández Rojas
---
 drivers/core/fdtaddr.c | 12 ++++++++++++
 drivers/core/read.c    | 12 ++++++++++++
 include/dm/fdtaddr.h   | 22 ++++++++++++++++++++++
 include/dm/read.h      | 32 ++++++++++++++++++++++++++++++++
 4 files changed, 78 insertions(+)
drivers/core/fdtaddr.c +0 -0
index 3847dd836e..8a80000332 100644

drivers/core/fdtaddr.c void *devfdt_get_addr_ptr(struct udevice *dev) · line 139

Quoted 8 lines
drivers/core/fdtaddr.c +5 -0
@@ -132,6 +132,18 @@ void *devfdt_get_addr_ptr(struct udevice *dev)
 	return (void *)(uintptr_t)devfdt_get_addr_index(dev, 0);
 }
 
+void *devfdt_remap_addr_index(struct udevice *dev, int index)
+{
+	fdt_addr_t addr = devfdt_get_addr_index(dev, index);
+
+	return (addr == FDT_ADDR_T_NONE) ? NULL : ioremap(addr, 0);

hm, grepping through all arch's include directories it seems that ioremap() is not available on all archs but map_physmem() is. Maybe you should switch to map_physmem().

Quoted 131 lines
drivers/core/fdtaddr.c +7 -0
+}
+
+void *devfdt_remap_addr(struct udevice *dev)
+{
+	return devfdt_remap_addr_index(dev, 0);
+}
+
 void *devfdt_map_physmem(struct udevice *dev, unsigned long size)
 {
 	fdt_addr_t addr = devfdt_get_addr(dev);
drivers/core/read.c +12 -0
index 601d1322d6..0d338563ad 100644
@@ -58,6 +58,13 @@ fdt_addr_t dev_read_addr_index(struct udevice *dev, int index)
 		return devfdt_get_addr_index(dev, index);
 }
 
+void *dev_remap_addr_index(struct udevice *dev, int index)
+{
+	fdt_addr_t addr = dev_read_addr_index(dev, index);
+
+	return (addr == FDT_ADDR_T_NONE) ? NULL : ioremap(addr, 0);
+}
+
 fdt_addr_t dev_read_addr(struct udevice *dev)
 {
 	return dev_read_addr_index(dev, 0);
@@ -70,6 +77,11 @@ void *dev_read_addr_ptr(struct udevice *dev)
 	return (addr == FDT_ADDR_T_NONE) ? NULL : map_sysmem(addr, 0);
 }
 
+void * dev_remap_addr(struct udevice *dev)
+{
+	return dev_remap_addr_index(dev, 0);
+}
+
 fdt_addr_t dev_read_addr_size(struct udevice *dev, const char *property,
 			      fdt_size_t *sizep)
 {
include/dm/fdtaddr.h +22 -0
index c46f0e91d0..82fc5f931d 100644
@@ -35,6 +35,28 @@ fdt_addr_t devfdt_get_addr(struct udevice *dev);
 void *devfdt_get_addr_ptr(struct udevice *dev);
 
 /**
+ * devfdt_remap_addr() - Return pointer to the memory-mapped I/O address
+ *                           of the reg property of a device
+ *
+ * @dev: Pointer to a device
+ *
+ * @return Pointer to addr, or NULL if there is no such property
+ */
+void *devfdt_remap_addr(struct udevice *dev);
+
+/**
+ * devfdt_remap_addr_index() - Return indexed pointer to the memory-mapped
+ *                                 I/O address of the reg property of a device
+ * @index: the 'reg' property can hold a list of <addr, size> pairs
+ *	   and @index is used to select which one is required
+ *
+ * @dev: Pointer to a device
+ *
+ * @return Pointer to addr, or NULL if there is no such property
+ */
+void *devfdt_remap_addr_index(struct udevice *dev, int index);
+
+/**
  * devfdt_map_physmem() - Read device address from reg property of the
  *                     device node and map the address into CPU address
  *                     space.
include/dm/read.h +32 -0
index f14c7a7ba8..42eb585137 100644
@@ -114,6 +114,18 @@ int dev_read_size(struct udevice *dev, const char *propname);
 fdt_addr_t dev_read_addr_index(struct udevice *dev, int index);
 
 /**
+ * dev_remap_addr_index() - Get the indexed reg property of a device
+ *                               as a memory-mapped I/O pointer
+ *
+ * @dev: Device to read from
+ * @index: the 'reg' property can hold a list of <addr, size> pairs
+ *	   and @index is used to select which one is required
+ *
+ * @return pointer or NULL if not found
+ */
+void * dev_remap_addr_index(struct udevice *dev, int index);
+
+/**
  * dev_read_addr() - Get the reg property of a device
  *
  * @dev: Device to read from
@@ -133,6 +145,16 @@ fdt_addr_t dev_read_addr(struct udevice *dev);
 void *dev_read_addr_ptr(struct udevice *dev);
 
 /**
+ * dev_remap_addr() - Get the reg property of a device as a
+ *                         memory-mapped I/O pointer
+ *
+ * @dev: Device to read from
+ *
+ * @return pointer or NULL if not found
+ */
+void * dev_remap_addr(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
@@ -483,6 +505,16 @@ static inline void *dev_read_addr_ptr(struct udevice *dev)
 	return devfdt_get_addr_ptr(dev);
 }
 
+static inline void *dev_remap_addr(struct udevice *dev)
+{
+	return devfdt_remap_addr(dev);
+}
+
+static inline void *dev_remap_addr_index(struct udevice *dev, int index)
+{
+	return devfdt_remap_addr_index(dev, index);
+}
+
 static inline fdt_addr_t dev_read_addr_size(struct udevice *dev,
 					    const char *propname,
 					    fdt_size_t *sizep)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/2ffa705d/attachment.sig>
#3 lore raw

PATCH v2 1/17 dm: core: add functions to get memory-mapped I/O addreses

Hi Daniel,

Quoted 18 lines · Daniel Schwierzeck
Quoted 16 lines · Álvaro Fernández Rojas
---
  drivers/core/fdtaddr.c | 12 ++++++++++++
  drivers/core/read.c    | 12 ++++++++++++
  include/dm/fdtaddr.h   | 22 ++++++++++++++++++++++
  include/dm/read.h      | 32 ++++++++++++++++++++++++++++++++
  4 files changed, 78 insertions(+)
drivers/core/fdtaddr.c +0 -0
index 3847dd836e..8a80000332 100644
@@ -132,6 +132,18 @@ void *devfdt_get_addr_ptr(struct udevice *dev)
  	return (void *)(uintptr_t)devfdt_get_addr_index(dev, 0);
  }
 
Quoted 8 lines

drivers/core/fdtaddr.c void *devfdt_get_addr_ptr(struct udevice *dev) · line 139

Quoted 5 lines
drivers/core/fdtaddr.c +5 -0
+void *devfdt_remap_addr_index(struct udevice *dev, int index)
+{
+	fdt_addr_t addr = devfdt_get_addr_index(dev, index);
+
+	return (addr == FDT_ADDR_T_NONE) ? NULL : ioremap(addr, 0);

hm, grepping through all arch's include directories it seems that ioremap() is not available on all archs but map_physmem() is. Maybe you should switch to map_physmem().

According to this it should be safe to use ioremap:
https://github.com/Noltari/u-boot/commit/9a387128e341debb6d7e32df8e0f72669a3a079b

Quoted 132 lines
Quoted 132 lines
drivers/core/fdtaddr.c +7 -0
+}
+
+void *devfdt_remap_addr(struct udevice *dev)
+{
+	return devfdt_remap_addr_index(dev, 0);
+}
+
  void *devfdt_map_physmem(struct udevice *dev, unsigned long size)
  {
  	fdt_addr_t addr = devfdt_get_addr(dev);
drivers/core/read.c +12 -0
index 601d1322d6..0d338563ad 100644
@@ -58,6 +58,13 @@ fdt_addr_t dev_read_addr_index(struct udevice *dev, int index)
  		return devfdt_get_addr_index(dev, index);
  }
 
+void *dev_remap_addr_index(struct udevice *dev, int index)
+{
+	fdt_addr_t addr = dev_read_addr_index(dev, index);
+
+	return (addr == FDT_ADDR_T_NONE) ? NULL : ioremap(addr, 0);
+}
+
  fdt_addr_t dev_read_addr(struct udevice *dev)
  {
  	return dev_read_addr_index(dev, 0);
@@ -70,6 +77,11 @@ void *dev_read_addr_ptr(struct udevice *dev)
  	return (addr == FDT_ADDR_T_NONE) ? NULL : map_sysmem(addr, 0);
  }
 
+void * dev_remap_addr(struct udevice *dev)
+{
+	return dev_remap_addr_index(dev, 0);
+}
+
  fdt_addr_t dev_read_addr_size(struct udevice *dev, const char *property,
  			      fdt_size_t *sizep)
  {
include/dm/fdtaddr.h +22 -0
index c46f0e91d0..82fc5f931d 100644
@@ -35,6 +35,28 @@ fdt_addr_t devfdt_get_addr(struct udevice *dev);
  void *devfdt_get_addr_ptr(struct udevice *dev);
 
  /**
+ * devfdt_remap_addr() - Return pointer to the memory-mapped I/O address
+ *                           of the reg property of a device
+ *
+ * @dev: Pointer to a device
+ *
+ * @return Pointer to addr, or NULL if there is no such property
+ */
+void *devfdt_remap_addr(struct udevice *dev);
+
+/**
+ * devfdt_remap_addr_index() - Return indexed pointer to the memory-mapped
+ *                                 I/O address of the reg property of a device
+ * @index: the 'reg' property can hold a list of <addr, size> pairs
+ *	   and @index is used to select which one is required
+ *
+ * @dev: Pointer to a device
+ *
+ * @return Pointer to addr, or NULL if there is no such property
+ */
+void *devfdt_remap_addr_index(struct udevice *dev, int index);
+
+/**
   * devfdt_map_physmem() - Read device address from reg property of the
   *                     device node and map the address into CPU address
   *                     space.
include/dm/read.h +32 -0
index f14c7a7ba8..42eb585137 100644
@@ -114,6 +114,18 @@ int dev_read_size(struct udevice *dev, const char *propname);
  fdt_addr_t dev_read_addr_index(struct udevice *dev, int index);
 
  /**
+ * dev_remap_addr_index() - Get the indexed reg property of a device
+ *                               as a memory-mapped I/O pointer
+ *
+ * @dev: Device to read from
+ * @index: the 'reg' property can hold a list of <addr, size> pairs
+ *	   and @index is used to select which one is required
+ *
+ * @return pointer or NULL if not found
+ */
+void * dev_remap_addr_index(struct udevice *dev, int index);
+
+/**
   * dev_read_addr() - Get the reg property of a device
   *
   * @dev: Device to read from
@@ -133,6 +145,16 @@ fdt_addr_t dev_read_addr(struct udevice *dev);
  void *dev_read_addr_ptr(struct udevice *dev);
 
  /**
+ * dev_remap_addr() - Get the reg property of a device as a
+ *                         memory-mapped I/O pointer
+ *
+ * @dev: Device to read from
+ *
+ * @return pointer or NULL if not found
+ */
+void * dev_remap_addr(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
@@ -483,6 +505,16 @@ static inline void *dev_read_addr_ptr(struct udevice *dev)
  	return devfdt_get_addr_ptr(dev);
  }
 
+static inline void *dev_remap_addr(struct udevice *dev)
+{
+	return devfdt_remap_addr(dev);
+}
+
+static inline void *dev_remap_addr_index(struct udevice *dev, int index)
+{
+	return devfdt_remap_addr_index(dev, index);
+}
+
  static inline fdt_addr_t dev_read_addr_size(struct udevice *dev,
  					    const char *propname,
  					    fdt_size_t *sizep)
#4 lore raw

PATCH v2 1/17 dm: core: add functions to get memory-mapped I/O addreses

Quoted 29 lines · Álvaro Fernández Rojas

Hi Daniel,

Quoted 10 lines · Daniel Schwierzeck
Quoted 8 lines · Álvaro Fernández Rojas

---
  drivers/core/fdtaddr.c | 12 ++++++++++++ drivers/core/read.c    | 12 ++++++++++++ include/dm/fdtaddr.h   | 22 ++++++++++++++++++++++ include/dm/read.h      | 32 ++++++++++++++++++++++++++++++++

  4 files changed, 78 insertions(+)
Quoted 15 lines

drivers/core/fdtaddr.c void *devfdt_get_addr_ptr(struct udevice *dev) · line 138

Quoted 12 lines
drivers/core/fdtaddr.c +4 -0
index 3847dd836e..8a80000332 100644
@@ -132,6 +132,18 @@ void *devfdt_get_addr_ptr(struct udevice *dev)
       return (void *)(uintptr_t)devfdt_get_addr_index(dev, 0);
   }
   +void *devfdt_remap_addr_index(struct udevice *dev, int index)
+{
+    fdt_addr_t addr = devfdt_get_addr_index(dev, index);
+
+    return (addr == FDT_ADDR_T_NONE) ? NULL : ioremap(addr, 0);

hm, grepping through all arch's include directories it seems that ioremap() is not available on all archs but map_physmem() is. Maybe you should switch to map_physmem().

Quoted 2 lines

According to this it should be safe to use ioremap:
https://github.com/Noltari/u-boot/commit/9a387128e341debb6d7e32df8e0f72669a3a079b

ah ok, I forgot this one ;)

Quoted 139 lines
Quoted 138 lines
Quoted 138 lines
drivers/core/fdtaddr.c +7 -0
+}
+
+void *devfdt_remap_addr(struct udevice *dev)
+{
+    return devfdt_remap_addr_index(dev, 0);
+}
+
   void *devfdt_map_physmem(struct udevice *dev, unsigned long size)
   {
       fdt_addr_t addr = devfdt_get_addr(dev);
drivers/core/read.c +6 -0
index 601d1322d6..0d338563ad 100644
@@ -58,6 +58,13 @@ fdt_addr_t dev_read_addr_index(struct udevice
 *dev, int index)
           return devfdt_get_addr_index(dev, index);
   }
   +void *dev_remap_addr_index(struct udevice *dev, int index)
+{
+    fdt_addr_t addr = dev_read_addr_index(dev, index);
+
+    return (addr == FDT_ADDR_T_NONE) ? NULL : ioremap(addr, 0);
+}
+
   fdt_addr_t dev_read_addr(struct udevice *dev)
   {

      return dev_read_addr_index(dev, 0);

drivers/core/read.c +4 -0
@@ -70,6 +77,11 @@ void *dev_read_addr_ptr(struct udevice *dev)
       return (addr == FDT_ADDR_T_NONE) ? NULL : map_sysmem(addr, 0);
   }
   +void * dev_remap_addr(struct udevice *dev)
+{
+    return dev_remap_addr_index(dev, 0);
+}
+

  fdt_addr_t dev_read_addr_size(struct udevice *dev, const char *property,
                    fdt_size_t *sizep)
  {

include/dm/fdtaddr.h +1 -0
index c46f0e91d0..82fc5f931d 100644
@@ -35,6 +35,28 @@ fdt_addr_t devfdt_get_addr(struct udevice *dev);
   void *devfdt_get_addr_ptr(struct udevice *dev);
     /**
+ * devfdt_remap_addr() - Return pointer to the memory-mapped I/O

address
+ *                           of the reg property of a device
+ *
+ * @dev: Pointer to a device
+ *
+ * @return Pointer to addr, or NULL if there is no such property
+ */

include/dm/fdtaddr.h +4 -0
+void *devfdt_remap_addr(struct udevice *dev);
+
+/**
+ * devfdt_remap_addr_index() - Return indexed pointer to the

memory-mapped
+ *                                 I/O address of the reg property of a device
+ * @index: the 'reg' property can hold a list of <addr, size> pairs
+ *       and @index is used to select which one is required
+ *
+ * @dev: Pointer to a device
+ *
+ * @return Pointer to addr, or NULL if there is no such property
+ */

include/dm/fdtaddr.h +3 -0
+void *devfdt_remap_addr_index(struct udevice *dev, int index);
+
+/**

   * devfdt_map_physmem() - Read device address from reg property of the *                     device node and map the address into CPU address
   *                     space.

include/dm/read.h +22 -0
index f14c7a7ba8..42eb585137 100644
@@ -114,6 +114,18 @@ int dev_read_size(struct udevice *dev, const
 char *propname);
   fdt_addr_t dev_read_addr_index(struct udevice *dev, int index);
     /**
+ * dev_remap_addr_index() - Get the indexed reg property of a device
+ *                               as a memory-mapped I/O pointer
+ *
+ * @dev: Device to read from
+ * @index: the 'reg' property can hold a list of <addr, size> pairs
+ *       and @index is used to select which one is required
+ *
+ * @return pointer or NULL if not found
+ */
+void * dev_remap_addr_index(struct udevice *dev, int index);
+
+/**
    * dev_read_addr() - Get the reg property of a device
    *
    * @dev: Device to read from
@@ -133,6 +145,16 @@ fdt_addr_t dev_read_addr(struct udevice *dev);
   void *dev_read_addr_ptr(struct udevice *dev);
     /**
+ * dev_remap_addr() - Get the reg property of a device as a
+ *                         memory-mapped I/O pointer
+ *
+ * @dev: Device to read from
+ *
+ * @return pointer or NULL if not found
+ */
+void * dev_remap_addr(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

include/dm/read.h +9 -0
@@ -483,6 +505,16 @@ static inline void *dev_read_addr_ptr(struct
 udevice *dev)
       return devfdt_get_addr_ptr(dev);
   }
   +static inline void *dev_remap_addr(struct udevice *dev)
+{
+    return devfdt_remap_addr(dev);
+}
+
+static inline void *dev_remap_addr_index(struct udevice *dev, int
 index)
+{
+    return devfdt_remap_addr_index(dev, index);
+}
+
   static inline fdt_addr_t dev_read_addr_size(struct udevice *dev,

                          const char *propname,
                          fdt_size_t *sizep)

Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/1ae03e9f/attachment.sig>
#5 lore raw

PATCH v2 1/17 dm: core: add functions to get memory-mapped I/O addreses

In reply to Álvaro Fernández Rojas
Quoted 8 lines · Álvaro Fernández Rojas
---
 drivers/core/fdtaddr.c | 12 ++++++++++++
 drivers/core/read.c    | 12 ++++++++++++
 include/dm/fdtaddr.h   | 22 ++++++++++++++++++++++
 include/dm/read.h      | 32 ++++++++++++++++++++++++++++++++
 4 files changed, 78 insertions(+)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/abe19e64/attachment.sig>
#6 lore raw

PATCH v2 1/17 dm: core: add functions to get memory-mapped I/O addreses

In reply to Álvaro Fernández Rojas

Hi Simon,

Quoted 7 lines · Álvaro Fernández Rojas
---
 drivers/core/fdtaddr.c | 12 ++++++++++++
 drivers/core/read.c    | 12 ++++++++++++
 include/dm/fdtaddr.h   | 22 ++++++++++++++++++++++
 include/dm/read.h      | 32 ++++++++++++++++++++++++++++++++
 4 files changed, 78 insertions(+)

are you okay with these changes? I'd like to have your ACK for this patch before applying. Thanks.

Quoted 145 lines
drivers/core/fdtaddr.c +12 -0
index 3847dd836e..8a80000332 100644
@@ -132,6 +132,18 @@ void *devfdt_get_addr_ptr(struct udevice *dev)
 	return (void *)(uintptr_t)devfdt_get_addr_index(dev, 0);
 }
 
+void *devfdt_remap_addr_index(struct udevice *dev, int index)
+{
+	fdt_addr_t addr = devfdt_get_addr_index(dev, index);
+
+	return (addr == FDT_ADDR_T_NONE) ? NULL : ioremap(addr, 0);
+}
+
+void *devfdt_remap_addr(struct udevice *dev)
+{
+	return devfdt_remap_addr_index(dev, 0);
+}
+
 void *devfdt_map_physmem(struct udevice *dev, unsigned long size)
 {
 	fdt_addr_t addr = devfdt_get_addr(dev);
drivers/core/read.c +12 -0
index 601d1322d6..0d338563ad 100644
@@ -58,6 +58,13 @@ fdt_addr_t dev_read_addr_index(struct udevice *dev, int index)
 		return devfdt_get_addr_index(dev, index);
 }
 
+void *dev_remap_addr_index(struct udevice *dev, int index)
+{
+	fdt_addr_t addr = dev_read_addr_index(dev, index);
+
+	return (addr == FDT_ADDR_T_NONE) ? NULL : ioremap(addr, 0);
+}
+
 fdt_addr_t dev_read_addr(struct udevice *dev)
 {
 	return dev_read_addr_index(dev, 0);
@@ -70,6 +77,11 @@ void *dev_read_addr_ptr(struct udevice *dev)
 	return (addr == FDT_ADDR_T_NONE) ? NULL : map_sysmem(addr, 0);
 }
 
+void * dev_remap_addr(struct udevice *dev)
+{
+	return dev_remap_addr_index(dev, 0);
+}
+
 fdt_addr_t dev_read_addr_size(struct udevice *dev, const char *property,
 			      fdt_size_t *sizep)
 {
include/dm/fdtaddr.h +22 -0
index c46f0e91d0..82fc5f931d 100644
@@ -35,6 +35,28 @@ fdt_addr_t devfdt_get_addr(struct udevice *dev);
 void *devfdt_get_addr_ptr(struct udevice *dev);
 
 /**
+ * devfdt_remap_addr() - Return pointer to the memory-mapped I/O address
+ *                           of the reg property of a device
+ *
+ * @dev: Pointer to a device
+ *
+ * @return Pointer to addr, or NULL if there is no such property
+ */
+void *devfdt_remap_addr(struct udevice *dev);
+
+/**
+ * devfdt_remap_addr_index() - Return indexed pointer to the memory-mapped
+ *                                 I/O address of the reg property of a device
+ * @index: the 'reg' property can hold a list of <addr, size> pairs
+ *	   and @index is used to select which one is required
+ *
+ * @dev: Pointer to a device
+ *
+ * @return Pointer to addr, or NULL if there is no such property
+ */
+void *devfdt_remap_addr_index(struct udevice *dev, int index);
+
+/**
  * devfdt_map_physmem() - Read device address from reg property of the
  *                     device node and map the address into CPU address
  *                     space.
include/dm/read.h +32 -0
index f14c7a7ba8..42eb585137 100644
@@ -114,6 +114,18 @@ int dev_read_size(struct udevice *dev, const char *propname);
 fdt_addr_t dev_read_addr_index(struct udevice *dev, int index);
 
 /**
+ * dev_remap_addr_index() - Get the indexed reg property of a device
+ *                               as a memory-mapped I/O pointer
+ *
+ * @dev: Device to read from
+ * @index: the 'reg' property can hold a list of <addr, size> pairs
+ *	   and @index is used to select which one is required
+ *
+ * @return pointer or NULL if not found
+ */
+void * dev_remap_addr_index(struct udevice *dev, int index);
+
+/**
  * dev_read_addr() - Get the reg property of a device
  *
  * @dev: Device to read from
@@ -133,6 +145,16 @@ fdt_addr_t dev_read_addr(struct udevice *dev);
 void *dev_read_addr_ptr(struct udevice *dev);
 
 /**
+ * dev_remap_addr() - Get the reg property of a device as a
+ *                         memory-mapped I/O pointer
+ *
+ * @dev: Device to read from
+ *
+ * @return pointer or NULL if not found
+ */
+void * dev_remap_addr(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
@@ -483,6 +505,16 @@ static inline void *dev_read_addr_ptr(struct udevice *dev)
 	return devfdt_get_addr_ptr(dev);
 }
 
+static inline void *dev_remap_addr(struct udevice *dev)
+{
+	return devfdt_remap_addr(dev);
+}
+
+static inline void *dev_remap_addr_index(struct udevice *dev, int index)
+{
+	return devfdt_remap_addr_index(dev, index);
+}
+
 static inline fdt_addr_t dev_read_addr_size(struct udevice *dev,
 					    const char *propname,
 					    fdt_size_t *sizep)
Signature · 1 line
- Daniel
#7 lore raw

PATCH v2 1/17 dm: core: add functions to get memory-mapped I/O addreses

Hi Daniel,

Quoted 11 lines · Daniel Schwierzeck

Hi Simon,

Quoted 7 lines · Álvaro Fernández Rojas
---
 drivers/core/fdtaddr.c | 12 ++++++++++++
 drivers/core/read.c    | 12 ++++++++++++
 include/dm/fdtaddr.h   | 22 ++++++++++++++++++++++
 include/dm/read.h      | 32 ++++++++++++++++++++++++++++++++
 4 files changed, 78 insertions(+)
Quoted 2 lines

are you okay with these changes? I'd like to have your ACK for this patch before applying. Thanks.

It looks fine to me. I'd like to see these functions called from a sandbox test though - e.g. test/dm/test-fdt.c

Regards,
Simon

#8 lore raw

PATCH v2 2/17 watchdog: bcm6345: convert to use live dt

In reply to Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/watchdog/bcm6345_wdt.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
drivers/watchdog/bcm6345_wdt.c +2 -6
index 3ef7d438a6..2e33b24331 100644
@@ -86,15 +86,11 @@ static const struct udevice_id bcm6345_wdt_ids[] = {
 static int bcm6345_wdt_probe(struct udevice *dev)
 {
 	struct bcm6345_wdt_priv *priv = dev_get_priv(dev);
-	fdt_addr_t addr;
-	fdt_size_t size;
 
-	addr = devfdt_get_addr_size_index(dev, 0, &size);
-	if (addr == FDT_ADDR_T_NONE)
+	priv->regs = dev_remap_addr(dev);
+	if (!priv->regs)
 		return -EINVAL;
 
-	priv->regs = ioremap(addr, size);
-
 	bcm6345_wdt_stop(dev);
 
 	return 0;
Signature · 1 line
2.11.0
#9 lore raw

PATCH v2 2/17 watchdog: bcm6345: convert to use live dt

Quoted 8 lines · Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/watchdog/bcm6345_wdt.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/b6642ded/attachment.sig>
#10 lore raw

PATCH v2 3/17 serial: bcm6345: convert to use live dt

In reply to Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/serial/serial_bcm6345.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
drivers/serial/serial_bcm6345.c +2 -6
index 20f67f4b7e..4b8d09d241 100644
@@ -228,17 +228,13 @@ static int bcm6345_serial_probe(struct udevice *dev)
 {
 	struct bcm6345_serial_priv *priv = dev_get_priv(dev);
 	struct clk clk;
-	fdt_addr_t addr;
-	fdt_size_t size;
 	int ret;
 
 	/* get address */
-	addr = devfdt_get_addr_size_index(dev, 0, &size);
-	if (addr == FDT_ADDR_T_NONE)
+	priv->base = dev_remap_addr(dev);
+	if (!priv->base)
 		return -EINVAL;
 
-	priv->base = ioremap(addr, size);
-
 	/* get clock rate */
 	ret = clk_get_by_index(dev, 0, &clk);
 	if (ret < 0)
Signature · 1 line
2.11.0
#11 lore raw

PATCH v2 3/17 serial: bcm6345: convert to use live dt

Quoted 9 lines · Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/serial/serial_bcm6345.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/1a5b81b5/attachment.sig>
#12 lore raw

PATCH v2 4/17 clk: bcm6345: convert to use live dt

In reply to Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/clk/clk_bcm6345.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
drivers/clk/clk_bcm6345.c +2 -6
index 93603fa825..7c31ca325e 100644
@@ -56,15 +56,11 @@ static const struct udevice_id bcm6345_clk_ids[] = {
 static int bcm63xx_clk_probe(struct udevice *dev)
 {
 	struct bcm6345_clk_priv *priv = dev_get_priv(dev);
-	fdt_addr_t addr;
-	fdt_size_t size;
 
-	addr = devfdt_get_addr_size_index(dev, 0, &size);
-	if (addr == FDT_ADDR_T_NONE)
+	priv->regs = dev_remap_addr(dev);
+	if (!priv->regs)
 		return -EINVAL;
 
-	priv->regs = ioremap(addr, size);
-
 	return 0;
 }
 
Signature · 1 line
2.11.0
#13 lore raw

PATCH v2 4/17 clk: bcm6345: convert to use live dt

Quoted 9 lines · Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/clk/clk_bcm6345.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/65979f07/attachment.sig>
#14 lore raw

PATCH v2 5/17 reset: bcm6345: convert to use live dt

In reply to Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/reset/reset-bcm6345.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
drivers/reset/reset-bcm6345.c +2 -6
index ebf6bee9e6..fb9978a116 100644
@@ -67,15 +67,11 @@ static const struct udevice_id bcm6345_reset_ids[] = {
 static int bcm6345_reset_probe(struct udevice *dev)
 {
 	struct bcm6345_reset_priv *priv = dev_get_priv(dev);
-	fdt_addr_t addr;
-	fdt_size_t size;
 
-	addr = devfdt_get_addr_size_index(dev, 0, &size);
-	if (addr == FDT_ADDR_T_NONE)
+	priv->regs = dev_remap_addr(dev);
+	if (!priv->regs)
 		return -EINVAL;
 
-	priv->regs = ioremap(addr, size);
-
 	return 0;
 }
 
Signature · 1 line
2.11.0
#15 lore raw

PATCH v2 5/17 reset: bcm6345: convert to use live dt

Quoted 9 lines · Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/reset/reset-bcm6345.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/6f55a74f/attachment.sig>
#16 lore raw

PATCH v2 6/17 gpio: bcm6345: convert to use live dt

In reply to Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr_index function.

 drivers/gpio/bcm6345_gpio.c | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)
drivers/gpio/bcm6345_gpio.c +5 -13
index b9100cdc58..847b6ca076 100644
@@ -14,8 +14,6 @@
 #include <asm/gpio.h>
 #include <asm/io.h>
 
-DECLARE_GLOBAL_DATA_PTR;
-
 struct bcm6345_gpio_priv {
 	void __iomem *reg_dirout;
 	void __iomem *reg_data;
@@ -91,22 +89,16 @@ static int bcm6345_gpio_probe(struct udevice *dev)
 {
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct bcm6345_gpio_priv *priv = dev_get_priv(dev);
-	fdt_addr_t data_addr, dirout_addr;
-	fdt_size_t data_size, dirout_size;
 
-	dirout_addr = devfdt_get_addr_size_index(dev, 0, &dirout_size);
-	if (dirout_addr == FDT_ADDR_T_NONE)
+	priv->reg_dirout = dev_remap_addr_index(dev, 0);
+	if (!priv->reg_dirout)
 		return -EINVAL;
 
-	data_addr = devfdt_get_addr_size_index(dev, 1, &data_size);
-	if (data_addr == FDT_ADDR_T_NONE)
+	priv->reg_data = dev_remap_addr_index(dev, 1);
+	if (!priv->reg_data)
 		return -EINVAL;
 
-	priv->reg_data = ioremap(data_addr, data_size);
-	priv->reg_dirout = ioremap(dirout_addr, dirout_size);
-
-	uc_priv->gpio_count = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
-					      "ngpios", 32);
+	uc_priv->gpio_count = dev_read_u32_default(dev, "ngpios", 32);
 	uc_priv->bank_name = dev->name;
 
 	return 0;
Signature · 1 line
2.11.0
#17 lore raw

PATCH v2 6/17 gpio: bcm6345: convert to use live dt

Quoted 9 lines · Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr_index function.

 drivers/gpio/bcm6345_gpio.c | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/737be225/attachment.sig>
#18 lore raw

PATCH v2 7/17 led: bcm6358: convert to use live dt

In reply to Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/led/led_bcm6358.c | 44 +++++++++++++++-----------------------------
 1 file changed, 15 insertions(+), 29 deletions(-)
drivers/led/led_bcm6358.c +15 -29
index e8a3b64e68..86ec7aba75 100644
@@ -32,8 +32,6 @@
 #define LED_CTRL_BUSY_SHIFT	3
 #define LED_CTRL_BUSY_MASK	(1 << LED_CTRL_BUSY_SHIFT)
 
-DECLARE_GLOBAL_DATA_PTR;
-
 struct bcm6358_led_priv {
 	void __iomem *regs;
 	uint8_t pin;
@@ -115,8 +113,6 @@ static const struct led_ops bcm6358_led_ops = {
 static int bcm6358_led_probe(struct udevice *dev)
 {
 	struct led_uc_plat *uc_plat = dev_get_uclass_platdata(dev);
-	fdt_addr_t addr;
-	fdt_size_t size;
 
 	/* Top-level LED node */
 	if (!uc_plat->label) {
@@ -124,17 +120,14 @@ static int bcm6358_led_probe(struct udevice *dev)
 		unsigned int clk_div;
 		u32 set_bits = 0;
 
-		addr = devfdt_get_addr_size_index(dev, 0, &size);
-		if (addr == FDT_ADDR_T_NONE)
+		regs = dev_remap_addr(dev);
+		if (!regs)
 			return -EINVAL;
 
-		regs = ioremap(addr, size);
-
-		if (fdtdec_get_bool(gd->fdt_blob, dev_of_offset(dev),
-				    "brcm,clk-dat-low"))
+		if (dev_read_bool(dev, "brcm,clk-dat-low"))
 			set_bits |= LED_CTRL_POL_MASK;
-		clk_div = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
-					  "brcm,clk-div", LED_CTRL_CLK_1);
+		clk_div = dev_read_u32_default(dev, "brcm,clk-div",
+					       LED_CTRL_CLK_1);
 		switch (clk_div) {
 		case 8:
 			set_bits |= LED_CTRL_CLK_8;
@@ -158,21 +151,17 @@ static int bcm6358_led_probe(struct udevice *dev)
 		struct bcm6358_led_priv *priv = dev_get_priv(dev);
 		unsigned int pin;
 
-		addr = devfdt_get_addr_size_index(dev_get_parent(dev), 0,
-						  &size);
-		if (addr == FDT_ADDR_T_NONE)
+		priv->regs = dev_remap_addr(dev);
+		if (!priv->regs)
 			return -EINVAL;
 
-		pin = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev), "reg",
-				      LEDS_MAX);
+		pin = dev_read_u32_default(dev, "reg", LEDS_MAX);
 		if (pin >= LEDS_MAX)
 			return -EINVAL;
 
-		priv->regs = ioremap(addr, size);
 		priv->pin = pin;
 
-		if (fdtdec_get_bool(gd->fdt_blob, dev_of_offset(dev),
-				    "active-low"))
+		if (dev_read_bool(dev, "active-low"))
 			priv->active_low = true;
 	}
 
@@ -181,27 +170,24 @@ static int bcm6358_led_probe(struct udevice *dev)
 
 static int bcm6358_led_bind(struct udevice *parent)
 {
-	const void *blob = gd->fdt_blob;
-	int node;
+	ofnode node;
 
-	for (node = fdt_first_subnode(blob, dev_of_offset(parent));
-	     node > 0;
-	     node = fdt_next_subnode(blob, node)) {
+	dev_for_each_subnode(node, parent) {
 		struct led_uc_plat *uc_plat;
 		struct udevice *dev;
 		const char *label;
 		int ret;
 
-		label = fdt_getprop(blob, node, "label", NULL);
+		label = ofnode_read_string(node, "label");
 		if (!label) {
 			debug("%s: node %s has no label\n", __func__,
-			      fdt_get_name(blob, node, NULL));
+			      ofnode_get_name(node));
 			return -EINVAL;
 		}
 
 		ret = device_bind_driver_to_node(parent, "bcm6358-led",
-						 fdt_get_name(blob, node, NULL),
-						 offset_to_ofnode(node), &dev);
+						 ofnode_get_name(node),
+						 node, &dev);
 		if (ret)
 			return ret;
 
Signature · 1 line
2.11.0
#19 lore raw

PATCH v2 7/17 led: bcm6358: convert to use live dt

Quoted 8 lines · Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/led/led_bcm6358.c | 44 +++++++++++++++-----------------------------
 1 file changed, 15 insertions(+), 29 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/a964e0d2/attachment.sig>
#20 lore raw

PATCH v2 8/17 led: bcm6328: convert to use live dt

In reply to Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/led/led_bcm6328.c | 52 ++++++++++++++++-------------------------------
 1 file changed, 17 insertions(+), 35 deletions(-)
drivers/led/led_bcm6328.c +17 -35
index 5d545c5096..a8cc5c5167 100644
@@ -38,8 +38,6 @@
 #define LED_MODE_OFF			3
 #define LED_MODE_MASK			0x3
 
-DECLARE_GLOBAL_DATA_PTR;
-
 struct bcm6328_led_priv {
 	void __iomem *regs;
 	void __iomem *mode;
@@ -150,34 +148,25 @@ static const struct led_ops bcm6328_led_ops = {
 static int bcm6328_led_probe(struct udevice *dev)
 {
 	struct led_uc_plat *uc_plat = dev_get_uclass_platdata(dev);
-	fdt_addr_t addr;
-	fdt_size_t size;
 
 	/* Top-level LED node */
 	if (!uc_plat->label) {
 		void __iomem *regs;
 		u32 set_bits = 0;
 
-		addr = devfdt_get_addr_size_index(dev, 0, &size);
-		if (addr == FDT_ADDR_T_NONE)
+		regs = dev_remap_addr(dev);
+		if (!regs)
 			return -EINVAL;
 
-		regs = ioremap(addr, size);
-
-		if (fdtdec_get_bool(gd->fdt_blob, dev_of_offset(dev),
-				    "brcm,serial-leds"))
+		if (dev_read_bool(dev, "brcm,serial-leds"))
 			set_bits |= LED_INIT_SLEDEN_MASK;
-		if (fdtdec_get_bool(gd->fdt_blob, dev_of_offset(dev),
-				    "brcm,serial-mux"))
+		if (dev_read_bool(dev, "brcm,serial-mux"))
 			set_bits |= LED_INIT_SLEDMUX_MASK;
-		if (fdtdec_get_bool(gd->fdt_blob, dev_of_offset(dev),
-				    "brcm,serial-clk-low"))
+		if (dev_read_bool(dev, "brcm,serial-clk-low"))
 			set_bits |= LED_INIT_SLEDCLKNPOL_MASK;
-		if (!fdtdec_get_bool(gd->fdt_blob, dev_of_offset(dev),
-				     "brcm,serial-dat-low"))
+		if (!dev_read_bool(dev, "brcm,serial-dat-low"))
 			set_bits |= LED_INIT_SLEDDATANPOL_MASK;
-		if (!fdtdec_get_bool(gd->fdt_blob, dev_of_offset(dev),
-				     "brcm,serial-shift-inv"))
+		if (!dev_read_bool(dev, "brcm,serial-shift-inv"))
 			set_bits |= LED_INIT_SLEDSHIFTDIR_MASK;
 
 		clrsetbits_be32(regs + LED_INIT_REG, ~0, set_bits);
@@ -185,17 +174,14 @@ static int bcm6328_led_probe(struct udevice *dev)
 		struct bcm6328_led_priv *priv = dev_get_priv(dev);
 		unsigned int pin;
 
-		addr = devfdt_get_addr_size_index(dev_get_parent(dev), 0,
-						  &size);
-		if (addr == FDT_ADDR_T_NONE)
+		priv->regs = dev_remap_addr(dev);
+		if (!priv->regs)
 			return -EINVAL;
 
-		pin = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev), "reg",
-				      LEDS_MAX);
+		pin = dev_read_u32_default(dev, "reg", LEDS_MAX);
 		if (pin >= LEDS_MAX)
 			return -EINVAL;
 
-		priv->regs = ioremap(addr, size);
 		if (pin < 8) {
 			/* LEDs 0-7 (bits 47:32) */
 			priv->mode = priv->regs + LED_MODE_REG_HI;
@@ -206,8 +192,7 @@ static int bcm6328_led_probe(struct udevice *dev)
 			priv->shift = ((pin - 8) << 1);
 		}
 
-		if (fdtdec_get_bool(gd->fdt_blob, dev_of_offset(dev),
-				    "active-low"))
+		if (dev_read_bool(dev, "active-low"))
 			priv->active_low = true;
 	}
 
@@ -216,27 +201,24 @@ static int bcm6328_led_probe(struct udevice *dev)
 
 static int bcm6328_led_bind(struct udevice *parent)
 {
-	const void *blob = gd->fdt_blob;
-	int node;
+	ofnode node;
 
-	for (node = fdt_first_subnode(blob, dev_of_offset(parent));
-	     node > 0;
-	     node = fdt_next_subnode(blob, node)) {
+	dev_for_each_subnode(node, parent) {
 		struct led_uc_plat *uc_plat;
 		struct udevice *dev;
 		const char *label;
 		int ret;
 
-		label = fdt_getprop(blob, node, "label", NULL);
+		label = ofnode_read_string(node, "label");
 		if (!label) {
 			debug("%s: node %s has no label\n", __func__,
-			      fdt_get_name(blob, node, NULL));
+			      ofnode_get_name(node));
 			return -EINVAL;
 		}
 
 		ret = device_bind_driver_to_node(parent, "bcm6328-led",
-						 fdt_get_name(blob, node, NULL),
-						 offset_to_ofnode(node), &dev);
+						 ofnode_get_name(node),
+						 node, &dev);
 		if (ret)
 			return ret;
 
Signature · 1 line
2.11.0
#21 lore raw

PATCH v2 8/17 led: bcm6328: convert to use live dt

Quoted 9 lines · Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/led/led_bcm6328.c | 52 ++++++++++++++++-------------------------------
 1 file changed, 17 insertions(+), 35 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/a68c36df/attachment.sig>
#22 lore raw

PATCH v2 9/17 power: domain: bcm6328: convert to use live dt

In reply to Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/power/domain/bcm6328-power-domain.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
drivers/power/domain/bcm6328-power-domain.c +2 -6
index 776afa3d43..6a64f6bb2c 100644
@@ -49,15 +49,11 @@ static int bcm6328_power_domain_off(struct power_domain *power_domain)
 static int bcm6328_power_domain_probe(struct udevice *dev)
 {
 	struct bcm6328_power_domain *priv = dev_get_priv(dev);
-	fdt_addr_t addr;
-	fdt_size_t size;
 
-	addr = devfdt_get_addr_size_index(dev, 0, &size);
-	if (addr == FDT_ADDR_T_NONE)
+	priv->regs = dev_remap_addr(dev);
+	if (!priv->regs)
 		return -EINVAL;
 
-	priv->regs = ioremap(addr, size);
-
 	return 0;
 }
 
Signature · 1 line
2.11.0
#23 lore raw

PATCH v2 9/17 power: domain: bcm6328: convert to use live dt

Quoted 9 lines · Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/power/domain/bcm6328-power-domain.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/d0ff44e5/attachment.sig>
#24 lore raw

PATCH v2 10/17 spi: bcm63xx_spi: convert to use live dt

In reply to Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck and Simon Glass:
- Use generic dev_remap_addr function.
- Fix bcm63xx_spi conversion.

 drivers/spi/bcm63xx_spi.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)
drivers/spi/bcm63xx_spi.c +3 -9
index f0df6871d8..c61c5d49b4 100644
@@ -16,8 +16,6 @@
 #include <wait_bit.h>
 #include <asm/io.h>
 
-DECLARE_GLOBAL_DATA_PTR;
-
 /* BCM6348 SPI core */
 #define SPI_6348_CLK			0x06
 #define SPI_6348_CMD			0x00
@@ -374,18 +372,14 @@ static int bcm63xx_spi_probe(struct udevice *dev)
 		(const unsigned long *)dev_get_driver_data(dev);
 	struct reset_ctl rst_ctl;
 	struct clk clk;
-	fdt_addr_t addr;
-	fdt_size_t size;
 	int ret;
 
-	addr = devfdt_get_addr_size_index(dev, 0, &size);
-	if (addr == FDT_ADDR_T_NONE)
+	priv->base = dev_remap_addr(dev);
+	if (!priv->base)
 		return -EINVAL;
 
 	priv->regs = regs;
-	priv->base = ioremap(addr, size);
-	priv->num_cs = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
-				       "num-cs", 8);
+	priv->num_cs = dev_read_u32_default(dev, "num-cs", 8);
 
 	/* enable clock */
 	ret = clk_get_by_index(dev, 0, &clk);
Signature · 1 line
2.11.0
#25 lore raw

PATCH v2 10/17 spi: bcm63xx_spi: convert to use live dt

Quoted 10 lines · Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck and Simon Glass:
- Use generic dev_remap_addr function.
- Fix bcm63xx_spi conversion.

 drivers/spi/bcm63xx_spi.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/43cbdc6e/attachment.sig>
#26 lore raw

PATCH v2 11/17 spi: bcm63xx_hsspi: convert to use live dt

In reply to Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/spi/bcm63xx_hsspi.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)
drivers/spi/bcm63xx_hsspi.c +3 -9
index 3393166a1e..a4eecc9b19 100644
@@ -16,8 +16,6 @@
 #include <wait_bit.h>
 #include <asm/io.h>
 
-DECLARE_GLOBAL_DATA_PTR;
-
 #define HSSPI_PP			0
 
 #define SPI_MAX_SYNC_CLOCK		30000000
@@ -338,17 +336,13 @@ static int bcm63xx_hsspi_probe(struct udevice *dev)
 	struct bcm63xx_hsspi_priv *priv = dev_get_priv(dev);
 	struct reset_ctl rst_ctl;
 	struct clk clk;
-	fdt_addr_t addr;
-	fdt_size_t size;
 	int ret;
 
-	addr = devfdt_get_addr_size_index(dev, 0, &size);
-	if (addr == FDT_ADDR_T_NONE)
+	priv->regs = dev_remap_addr(dev);
+	if (!priv->regs)
 		return -EINVAL;
 
-	priv->regs = ioremap(addr, size);
-	priv->num_cs = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
-				       "num-cs", 8);
+	priv->num_cs = dev_read_u32_default(dev, "num-cs", 8);
 
 	/* enable clock */
 	ret = clk_get_by_name(dev, "hsspi", &clk);
Signature · 1 line
2.11.0
#27 lore raw

PATCH v2 11/17 spi: bcm63xx_hsspi: convert to use live dt

Quoted 9 lines · Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/spi/bcm63xx_hsspi.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/fb8efd3f/attachment.sig>
#28 lore raw

PATCH v2 12/17 ram: bmips: convert to use live dt

In reply to Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/ram/bmips_ram.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)
drivers/ram/bmips_ram.c +2 -5
index 7a5dfac4ab..22b08715a5 100644
@@ -151,14 +151,11 @@ static int bmips_ram_probe(struct udevice *dev)
 	struct bmips_ram_priv *priv = dev_get_priv(dev);
 	const struct bmips_ram_hw *hw =
 		(const struct bmips_ram_hw *)dev_get_driver_data(dev);
-	fdt_addr_t addr;
-	fdt_size_t size;
 
-	addr = devfdt_get_addr_size_index(dev, 0, &size);
-	if (addr == FDT_ADDR_T_NONE)
+	priv->regs = dev_remap_addr(dev);
+	if (!priv->regs)
 		return -EINVAL;
 
-	priv->regs = ioremap(addr, size);
 	priv->hw = hw;
 
 	return 0;
Signature · 1 line
2.11.0
#29 lore raw

PATCH v2 12/17 ram: bmips: convert to use live dt

Quoted 9 lines · Álvaro Fernández Rojas

---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use generic dev_remap_addr function.

 drivers/ram/bmips_ram.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/0647b9c3/attachment.sig>
#30 lore raw

PATCH v2 13/17 cpu: bmips: convert to use live dt

In reply to Álvaro Fernández Rojas
---
 drivers/cpu/bmips_cpu.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)
drivers/cpu/bmips_cpu.c +3 -9
index 6c612bacdc..f766be22e6 100644
@@ -14,8 +14,6 @@
 #include <errno.h>
 #include <asm/io.h>
 
-DECLARE_GLOBAL_DATA_PTR;
-
 #define REV_CHIPID_SHIFT		16
 #define REV_CHIPID_MASK			(0xffff << REV_CHIPID_SHIFT)
 #define REV_LONG_CHIPID_SHIFT		12
@@ -398,8 +396,7 @@ int bmips_cpu_bind(struct udevice *dev)
 {
 	struct cpu_platdata *plat = dev_get_parent_platdata(dev);
 
-	plat->cpu_id = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
-		"reg", -1);
+	plat->cpu_id = dev_read_u32_default(dev, "reg", -1);
 	plat->device_id = read_c0_prid();
 
 	return 0;
@@ -410,14 +407,11 @@ int bmips_cpu_probe(struct udevice *dev)
 	struct bmips_cpu_priv *priv = dev_get_priv(dev);
 	const struct bmips_cpu_hw *hw =
 		(const struct bmips_cpu_hw *)dev_get_driver_data(dev);
-	fdt_addr_t addr;
-	fdt_size_t size;
 
-	addr = devfdt_get_addr_size_index(dev_get_parent(dev), 0, &size);
-	if (addr == FDT_ADDR_T_NONE)
+	priv->regs = dev_remap_addr(dev);
+	if (!priv->regs)
 		return -EINVAL;
 
-	priv->regs = ioremap(addr, size);
 	priv->hw = hw;
 
 	return 0;
Signature · 1 line
2.11.0
#31 lore raw

PATCH v2 13/17 cpu: bmips: convert to use live dt

Quoted 5 lines · Álvaro Fernández Rojas
---
 drivers/cpu/bmips_cpu.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/39ba06ad/attachment.sig>
#32 lore raw

PATCH v2 14/17 phy: bcm6348-usbh: convert to use live dt

In reply to Álvaro Fernández Rojas

Also fix bad accents in my name.

---
 drivers/phy/bcm6348-usbh-phy.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)
drivers/phy/bcm6348-usbh-phy.c +3 -7
index 169ee0ecec..a0134c3e43 100644
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 Álvaro Fernández Rojas <[email protected]>
+ * Copyright (C) 2018 Álvaro Fernández Rojas <[email protected]>
  *
  * Derived from linux/arch/mips/bcm63xx/usb-common.c:
  *	Copyright 2008 Maxime Bizon <[email protected]>
@@ -45,16 +45,12 @@ static int bcm6348_usbh_probe(struct udevice *dev)
 	struct bcm6348_usbh_priv *priv = dev_get_priv(dev);
 	struct reset_ctl rst_ctl;
 	struct clk clk;
-	fdt_addr_t addr;
-	fdt_size_t size;
 	int ret;
 
-	addr = devfdt_get_addr_size_index(dev, 0, &size);
-	if (addr == FDT_ADDR_T_NONE)
+	priv->regs = dev_remap_addr(dev);
+	if (!priv->regs)
 		return -EINVAL;
 
-	priv->regs = ioremap(addr, size);
-
 	/* enable usbh clock */
 	ret = clk_get_by_name(dev, "usbh", &clk);
 	if (ret < 0)
Signature · 1 line
2.11.0
#33 lore raw

PATCH v2 14/17 phy: bcm6348-usbh: convert to use live dt

Quoted 1 line · Álvaro Fernández Rojas

Also fix bad accents in my name.

not sure why but some of the downloaded patches from Patchwork seemed to be messed up. I also had to fix the author field in the commit message when I applied your patches.

Quoted 6 lines
---
 drivers/phy/bcm6348-usbh-phy.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/7e4dd0fd/attachment.sig>
#34 lore raw

PATCH v2 15/17 phy: bcm6358-usbh: convert to use live dt

In reply to Álvaro Fernández Rojas

Also fix bad accents in my name.

---
 drivers/phy/bcm6358-usbh-phy.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)
drivers/phy/bcm6358-usbh-phy.c +3 -7
index e000316a93..00637ece51 100644
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 Álvaro Fernández Rojas <[email protected]>
+ * Copyright (C) 2018 Álvaro Fernández Rojas <[email protected]>
  *
  * Derived from linux/arch/mips/bcm63xx/usb-common.c:
  *	Copyright 2008 Maxime Bizon <[email protected]>
@@ -58,16 +58,12 @@ static int bcm6358_usbh_probe(struct udevice *dev)
 {
 	struct bcm6358_usbh_priv *priv = dev_get_priv(dev);
 	struct reset_ctl rst_ctl;
-	fdt_addr_t addr;
-	fdt_size_t size;
 	int ret;
 
-	addr = devfdt_get_addr_size_index(dev, 0, &size);
-	if (addr == FDT_ADDR_T_NONE)
+	priv->regs = dev_remap_addr(dev);
+	if (!priv->regs)
 		return -EINVAL;
 
-	priv->regs = ioremap(addr, size);
-
 	/* perform reset */
 	ret = reset_get_by_index(dev, 0, &rst_ctl);
 	if (ret < 0)
Signature · 1 line
2.11.0
#35 lore raw

PATCH v2 15/17 phy: bcm6358-usbh: convert to use live dt

Quoted 7 lines · Álvaro Fernández Rojas

Also fix bad accents in my name.

---
 drivers/phy/bcm6358-usbh-phy.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/691075b3/attachment.sig>
#36 lore raw

PATCH v2 16/17 phy: bcm6368-usbh: convert to use live dt

In reply to Álvaro Fernández Rojas

Also fix bad accents in my name.

---
 drivers/phy/bcm6368-usbh-phy.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
drivers/phy/bcm6368-usbh-phy.c +3 -6
index 71abc0fcc4..2c4288c9b8 100644
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 Álvaro Fernández Rojas <[email protected]>
+ * Copyright (C) 2018 Álvaro Fernández Rojas <[email protected]>
  *
  * Derived from linux/arch/mips/bcm63xx/usb-common.c:
  *	Copyright 2008 Maxime Bizon <[email protected]>
@@ -117,15 +117,12 @@ static int bcm6368_usbh_probe(struct udevice *dev)
 #endif
 	struct reset_ctl rst_ctl;
 	struct clk clk;
-	fdt_addr_t addr;
-	fdt_size_t size;
 	int ret;
 
-	addr = devfdt_get_addr_size_index(dev, 0, &size);
-	if (addr == FDT_ADDR_T_NONE)
+	priv->regs = dev_remap_addr(dev);
+	if (!priv->regs)
 		return -EINVAL;
 
-	priv->regs = ioremap(addr, size);
 	priv->hw = hw;
 
 	/* enable usbh clock */
Signature · 1 line
2.11.0
#37 lore raw

PATCH v2 16/17 phy: bcm6368-usbh: convert to use live dt

Quoted 7 lines · Álvaro Fernández Rojas

Also fix bad accents in my name.

---
 drivers/phy/bcm6368-usbh-phy.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/a4efba97/attachment.sig>
#38 lore raw

PATCH v2 17/17 phy: bcm6318-usbh: convert to use live dt

In reply to Álvaro Fernández Rojas

Also fix bad accents in my name.

---
 drivers/phy/bcm6318-usbh-phy.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)
drivers/phy/bcm6318-usbh-phy.c +3 -7
index 6d54214581..043d8ff842 100644
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 Álvaro Fernández Rojas <[email protected]>
+ * Copyright (C) 2018 Álvaro Fernández Rojas <[email protected]>
  *
  * Derived from linux/arch/mips/bcm63xx/usb-common.c:
  *	Copyright 2008 Maxime Bizon <[email protected]>
@@ -80,16 +80,12 @@ static int bcm6318_usbh_probe(struct udevice *dev)
 	struct power_domain pwr_dom;
 	struct reset_ctl rst_ctl;
 	struct clk clk;
-	fdt_addr_t addr;
-	fdt_size_t size;
 	int ret;
 
-	addr = devfdt_get_addr_size_index(dev, 0, &size);
-	if (addr == FDT_ADDR_T_NONE)
+	priv->regs = dev_remap_addr(dev);
+	if (!priv->regs)
 		return -EINVAL;
 
-	priv->regs = ioremap(addr, size);
-
 	/* enable usbh clock */
 	ret = clk_get_by_name(dev, "usbh", &clk);
 	if (ret < 0)
Signature · 1 line
2.11.0
#39 lore raw

PATCH v2 17/17 phy: bcm6318-usbh: convert to use live dt

Quoted 7 lines · Álvaro Fernández Rojas

Also fix bad accents in my name.

---
 drivers/phy/bcm6318-usbh-phy.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)
Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180323/78f2128a/attachment.sig>
#40 lore raw

v2 cover bmips: convert to use live-dt

In reply to Álvaro Fernández Rojas
Quoted 39 lines · Álvaro Fernández Rojas

Convert bmips drivers to use live device tree instead of flattened device tree.

v2: Introduce changes suggested by Daniel Schwierzeck and Simon Glass:
- Add generic dev_remap_addr/dev_remap_addr_index functions.
- Fix bcm63xx_spi conversion.
- Convert remaining bmips drivers (cpu, usbh-phy).

Álvaro Fernández Rojas (17):
dm: core: add functions to get memory-mapped I/O addreses
watchdog: bcm6345: convert to use live dt
serial: bcm6345: convert to use live dt
clk: bcm6345: convert to use live dt
reset: bcm6345: convert to use live dt
gpio: bcm6345: convert to use live dt
led: bcm6358: convert to use live dt
led: bcm6328: convert to use live dt
power: domain: bcm6328: convert to use live dt
spi: bcm63xx_spi: convert to use live dt
spi: bcm63xx_hsspi: convert to use live dt
ram: bmips: convert to use live dt
cpu: bmips: convert to use live dt
phy: bcm6348-usbh: convert to use live dt
phy: bcm6358-usbh: convert to use live dt
phy: bcm6368-usbh: convert to use live dt
phy: bcm6318-usbh: convert to use live dt

 drivers/clk/clk_bcm6345.c                   |  8 ++---
 drivers/core/fdtaddr.c                      | 12 +++++++
 drivers/core/read.c                         | 12 +++++++
 drivers/cpu/bmips_cpu.c                     | 12 ++-----
 drivers/gpio/bcm6345_gpio.c                 | 18 +++-------
 drivers/led/led_bcm6328.c                   | 52 ++++++++++-------------------
 drivers/led/led_bcm6358.c                   | 44 +++++++++---------------
 drivers/phy/bcm6318-usbh-phy.c              | 10 ++----
 drivers/phy/bcm6348-usbh-phy.c              | 10 ++----
 drivers/phy/bcm6358-usbh-phy.c              | 10 ++----
 drivers/phy/bcm6368-usbh-phy.c              |  9 ++---
 drivers/power/domain/bcm6328-power-domain.c |  8 ++---
 drivers/ram/bmips_ram.c                     |  7 ++--
Quoted 9 lines
 drivers/reset/reset-bcm6345.c               |  8 ++---
 drivers/serial/serial_bcm6345.c             |  8 ++---
 drivers/spi/bcm63xx_hsspi.c                 | 12 ++-----
 drivers/spi/bcm63xx_spi.c                   | 12 ++-----
 drivers/watchdog/bcm6345_wdt.c              |  8 ++---
 include/dm/fdtaddr.h                        | 22 ++++++++++++
 include/dm/read.h                           | 32 ++++++++++++++++++
 20 files changed, 148 insertions(+), 166 deletions(-)

applied to u-boot-mips/next and scheduled for 2018.07-rc1

Patch 01/17 has been replaced with
https://patchwork.ozlabs.org/patch/906412/

Signature · 9 lines
- Daniel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180506/0ca690ba/attachment.sig>