bmips: convert to use live-dt
Subsystems (6)
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
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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH v2 1/17 dm: core: add functions to get memory-mapped I/O addreses
Quoted 13 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>--- 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
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@@ -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@@ -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@@ -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>
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
Signed-off-by Álvaro Fernández Rojas <[email protected]>--- 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@@ -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 butmap_physmem()is. Maybe you should switch tomap_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@@ -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@@ -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@@ -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)
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
Signed-off-by Álvaro Fernández Rojas <[email protected]>---
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@@ -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 butmap_physmem()is. Maybe you should switch tomap_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@@ -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_tdev_read_addr_size(struct udevice *dev, const char *property,
fdt_size_t*sizep)
{include/dm/fdtaddr.h +1
-0@@ -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@@ -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>
PATCH v2 1/17 dm: core: add functions to get memory-mapped I/O addreses
In reply to Álvaro Fernández RojasQuoted 8 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>--- 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>
PATCH v2 1/17 dm: core: add functions to get memory-mapped I/O addreses
In reply to Álvaro Fernández RojasHi Simon,
Quoted 7 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>--- 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@@ -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@@ -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@@ -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@@ -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
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
Signed-off-by Álvaro Fernández Rojas <[email protected]>--- 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
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
@@ -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
PATCH v2 2/17 watchdog: bcm6345: convert to use live dt
Quoted 8 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use genericdev_remap_addrfunction.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>
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
@@ -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
PATCH v2 3/17 serial: bcm6345: convert to use live dt
Quoted 9 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>Reviewed-by Simon Glass <[email protected]>---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use genericdev_remap_addrfunction.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>
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
@@ -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
PATCH v2 4/17 clk: bcm6345: convert to use live dt
Quoted 9 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>Reviewed-by Simon Glass <[email protected]>---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use genericdev_remap_addrfunction.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>
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
@@ -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
PATCH v2 5/17 reset: bcm6345: convert to use live dt
Quoted 9 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>Reviewed-by Simon Glass <[email protected]>---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use genericdev_remap_addrfunction.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>
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
@@ -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
PATCH v2 6/17 gpio: bcm6345: convert to use live dt
Quoted 9 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>Reviewed-by Simon Glass <[email protected]>---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use genericdev_remap_addr_indexfunction.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>
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
@@ -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
PATCH v2 7/17 led: bcm6358: convert to use live dt
Quoted 8 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use genericdev_remap_addrfunction.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>
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
@@ -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
PATCH v2 8/17 led: bcm6328: convert to use live dt
Quoted 9 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>Reviewed-by Simon Glass <[email protected]>---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use genericdev_remap_addrfunction.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>
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
@@ -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
PATCH v2 9/17 power: domain: bcm6328: convert to use live dt
Quoted 9 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>Reviewed-by Simon Glass <[email protected]>---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use genericdev_remap_addrfunction.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>
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
@@ -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
PATCH v2 10/17 spi: bcm63xx_spi: convert to use live dt
Quoted 10 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>Reviewed-by Simon Glass <[email protected]>---
v2: Introduce changes suggested by Daniel Schwierzeck and Simon Glass:
- Use genericdev_remap_addrfunction.
- Fixbcm63xx_spiconversion.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>
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
@@ -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
PATCH v2 11/17 spi: bcm63xx_hsspi: convert to use live dt
Quoted 9 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>Reviewed-by Simon Glass <[email protected]>---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use genericdev_remap_addrfunction.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>
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
@@ -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
PATCH v2 12/17 ram: bmips: convert to use live dt
Quoted 9 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>Reviewed-by Simon Glass <[email protected]>---
v2: Introduce changes suggested by Daniel Schwierzeck:
- Use genericdev_remap_addrfunction.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>
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
@@ -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
PATCH v2 13/17 cpu: bmips: convert to use live dt
Quoted 5 lines · Álvaro Fernández Rojas
Signed-off-by Álvaro Fernández Rojas <[email protected]>--- 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>
PATCH v2 14/17 phy: bcm6348-usbh: convert to use live dt
In reply to Álvaro Fernández RojasAlso 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
@@ -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
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
Signed-off-by Álvaro Fernández Rojas <[email protected]>--- 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>
PATCH v2 15/17 phy: bcm6358-usbh: convert to use live dt
In reply to Álvaro Fernández RojasAlso 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
@@ -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
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.
Signed-off-by Álvaro Fernández Rojas <[email protected]>--- 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>
PATCH v2 16/17 phy: bcm6368-usbh: convert to use live dt
In reply to Álvaro Fernández RojasAlso 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
@@ -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
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.
Signed-off-by Álvaro Fernández Rojas <[email protected]>--- 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>
PATCH v2 17/17 phy: bcm6318-usbh: convert to use live dt
In reply to Álvaro Fernández RojasAlso 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
@@ -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
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.
Signed-off-by Álvaro Fernández Rojas <[email protected]>--- 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>
v2 cover bmips: convert to use live-dt
In reply to Álvaro Fernández RojasQuoted 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.
- Fixbcm63xx_spiconversion.
- 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 dtdrivers/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>