X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Fserial%2Fserial_sh.c;h=c07ddc70dc81ba198989140dca92d271fd6521c1;hb=af2f44267fdc006e47166187632f63d396822bed;hp=087785f9a249ef7151456ae46b9d09d53db70d54;hpb=8171499df99884e770430346698d7045c777a46b;p=u-boot diff --git a/drivers/serial/serial_sh.c b/drivers/serial/serial_sh.c index 087785f9a2..c07ddc70dc 100644 --- a/drivers/serial/serial_sh.c +++ b/drivers/serial/serial_sh.c @@ -219,18 +219,21 @@ static int sh_serial_ofdata_to_platdata(struct udevice *dev) fdt_addr_t addr; int ret; - addr = fdtdec_get_addr(gd->fdt_blob, dev_of_offset(dev), "reg"); - if (addr == FDT_ADDR_T_NONE) + addr = devfdt_get_addr(dev); + if (!addr) return -EINVAL; plat->base = addr; ret = clk_get_by_name(dev, "fck", &sh_serial_clk); - if (!ret) - plat->clk = clk_get_rate(&sh_serial_clk); - else + if (!ret) { + ret = clk_enable(&sh_serial_clk); + if (!ret) + plat->clk = clk_get_rate(&sh_serial_clk); + } else { plat->clk = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev), "clock", 1); + } plat->type = dev_get_driver_data(dev); return 0;