提交 27059c3e 编写于 作者: M mario.six@gdsys.cc 提交者: York Sun

i2c: fsl: Fix driver initialization

Due to a oversight in testing, the initialization of the recently
introduced Freescale I2C DM driver works only for 36 bit mode of e.g.
the MPC85XX SoCs (specifically, if the physical addresses are 64 bit
wide and the DT addresses 32 bit wide).

This patch corrects the initialization so that it will work in a more
general setting.
Signed-off-by: NMario Six <mario.six@gdsys.cc>
Reviewed-by: NYork Sun <york.sun@nxp.com>
上级 29d63a59
......@@ -583,12 +583,11 @@ static int fsl_i2c_set_bus_speed(struct udevice *bus, unsigned int speed)
static int fsl_i2c_ofdata_to_platdata(struct udevice *bus)
{
struct fsl_i2c_dev *dev = dev_get_priv(bus);
u64 reg;
u32 addr, size;
fdt_addr_t addr;
fdt_size_t size;
reg = fdtdec_get_addr(gd->fdt_blob, bus->of_offset, "reg");
addr = reg >> 32;
size = reg & 0xFFFFFFFF;
addr = fdtdec_get_addr_size_auto_noparent(gd->fdt_blob, bus->of_offset,
"reg", 0, &size);
dev->base = map_sysmem(CONFIG_SYS_IMMR + addr, size);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册