@ -70,6 +70,7 @@ int regmap_init_mem(struct udevice *dev, struct regmap **mapp)
int addr_len , size_len , both_len ;
int addr_len , size_len , both_len ;
int parent ;
int parent ;
int len ;
int len ;
int index ;
parent = dev_of_offset ( dev - > parent ) ;
parent = dev_of_offset ( dev - > parent ) ;
addr_len = fdt_address_cells ( blob , parent ) ;
addr_len = fdt_address_cells ( blob , parent ) ;
@ -86,13 +87,14 @@ int regmap_init_mem(struct udevice *dev, struct regmap **mapp)
if ( ! map )
if ( ! map )
return - ENOMEM ;
return - ENOMEM ;
map - > base = fdtdec_get_number ( cell , addr_len ) ;
for ( range = map - > range , index = 0 ; count > 0 ;
count - - , cell + = both_len , range + + , index + + ) {
for ( range = map - > range ; count > 0 ;
fdt_size_t sz ;
count - - , cell + = both_len , range + + ) {
range - > start = fdtdec_get_addr_size_fixed ( blob , dev - > of_offset ,
range - > start = fdtdec_get_number ( cell , addr_len ) ;
" reg " , index , addr_len , size_len , & sz , true ) ;
range - > size = fdtdec_get_number ( cell + addr_len , si ze_len ) ;
range - > size = s z;
}
}
map - > base = map - > range [ 0 ] . start ;
* mapp = map ;
* mapp = map ;