Commit f5ac4f2ea0b1107a82c309b416af8e55e13d33b1

Authored by Mario Six
Committed by Tom Rini
1 parent f9c7fde260

gpio: mpc8xxx: Make live-tree compatible

Make the MPC8xxx GPIO driver compatible with a live device tree.

Signed-off-by: Mario Six <mario.six@gdsys.cc>

Showing 1 changed file with 7 additions and 10 deletions Side-by-side Diff

drivers/gpio/mpc8xxx_gpio.c
... ... @@ -14,8 +14,6 @@
14 14 #include <mapmem.h>
15 15 #include <asm/gpio.h>
16 16  
17   -DECLARE_GLOBAL_DATA_PTR;
18   -
19 17 struct ccsr_gpio {
20 18 u32 gpdir;
21 19 u32 gpodr;
22 20  
23 21  
... ... @@ -181,15 +179,14 @@
181 179 {
182 180 struct mpc8xxx_gpio_plat *plat = dev_get_platdata(dev);
183 181 fdt_addr_t addr;
184   - fdt_size_t size;
  182 + u32 reg[2];
185 183  
186   - addr = fdtdec_get_addr_size_auto_noparent(gd->fdt_blob,
187   - dev_of_offset(dev),
188   - "reg", 0, &size, false);
  184 + dev_read_u32_array(dev, "reg", reg, 2);
  185 + addr = dev_translate_address(dev, reg);
  186 +
189 187 plat->addr = addr;
190   - plat->size = size;
191   - plat->ngpios = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
192   - "ngpios", 32);
  188 + plat->size = reg[1];
  189 + plat->ngpios = dev_read_u32_default(dev, "ngpios", 32);
193 190  
194 191 return 0;
195 192 }
... ... @@ -206,7 +203,7 @@
206 203 size = 0x100;
207 204  
208 205 priv->addr = plat->addr;
209   - priv->base = map_sysmem(CONFIG_SYS_IMMR + plat->addr, size);
  206 + priv->base = map_sysmem(plat->addr, size);
210 207  
211 208 if (!priv->base)
212 209 return -ENOMEM;