diff options
| author | Tom Rini <[email protected]> | 2020-03-05 07:51:12 -0500 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2020-03-05 07:51:12 -0500 |
| commit | 9f976bac2b4a81a13de8124a896a198cbeabb634 (patch) | |
| tree | 30d0db0155174797c61f57d8125988dd8725dd4f /drivers | |
| parent | d16e18ca6c4d81ac142acd529b1acb55b0c96dfc (diff) | |
| parent | 2c64d11e3239b5b3cf29c911fd9cdb6ebb3880d6 (diff) | |
Merge https://gitlab.denx.de/u-boot/custodians/u-boot-x86
- Revert "x86: use invd instead of wbinvd in real mode start code"
- Convert toradex boards README to reST
- serial: ns16550: Move PCI access from ofdata_to_platdata() to probe()
- x86: apl: Use cpu_x86_get_count() for cpu_ops.get_count
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/clk/intel/clk_intel.c | 4 | ||||
| -rw-r--r-- | drivers/serial/ns16550.c | 40 |
2 files changed, 28 insertions, 16 deletions
diff --git a/drivers/clk/intel/clk_intel.c b/drivers/clk/intel/clk_intel.c index d2e15491a3d..b633934d90a 100644 --- a/drivers/clk/intel/clk_intel.c +++ b/drivers/clk/intel/clk_intel.c @@ -11,8 +11,6 @@ static ulong intel_clk_get_rate(struct clk *clk) { - ulong rate; - switch (clk->id) { case CLK_I2C: /* Hard-coded to 133MHz on current platforms */ @@ -20,8 +18,6 @@ static ulong intel_clk_get_rate(struct clk *clk) default: return -ENODEV; } - - return rate; } static struct clk_ops intel_clk_ops = { diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c index 1fcbc350154..c1b303ffcba 100644 --- a/drivers/serial/ns16550.c +++ b/drivers/serial/ns16550.c @@ -479,12 +479,40 @@ static int ns16550_serial_getinfo(struct udevice *dev, return 0; } +#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) +static int ns1655_serial_set_base_addr(struct udevice *dev) +{ + fdt_addr_t addr; + struct ns16550_platdata *plat; + + plat = dev_get_platdata(dev); + + addr = dev_read_addr_pci(dev); + if (addr == FDT_ADDR_T_NONE) + return -EINVAL; + +#ifdef CONFIG_SYS_NS16550_PORT_MAPPED + plat->base = addr; +#else + plat->base = (unsigned long)map_physmem(addr, 0, MAP_NOCACHE); +#endif + + return 0; +} +#endif + int ns16550_serial_probe(struct udevice *dev) { struct NS16550 *const com_port = dev_get_priv(dev); struct reset_ctl_bulk reset_bulk; int ret; +#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) + ret = ns1655_serial_set_base_addr(dev); + if (ret) + return ret; +#endif + ret = reset_get_bulk(dev, &reset_bulk); if (!ret) reset_deassert_bulk(&reset_bulk); @@ -507,21 +535,9 @@ int ns16550_serial_ofdata_to_platdata(struct udevice *dev) { struct ns16550_platdata *plat = dev->platdata; const u32 port_type = dev_get_driver_data(dev); - fdt_addr_t addr; struct clk clk; int err; - /* try Processor Local Bus device first */ - addr = dev_read_addr_pci(dev); - if (addr == FDT_ADDR_T_NONE) - return -EINVAL; - -#ifdef CONFIG_SYS_NS16550_PORT_MAPPED - plat->base = addr; -#else - plat->base = (unsigned long)map_physmem(addr, 0, MAP_NOCACHE); -#endif - plat->reg_offset = dev_read_u32_default(dev, "reg-offset", 0); plat->reg_shift = dev_read_u32_default(dev, "reg-shift", 0); plat->reg_width = dev_read_u32_default(dev, "reg-io-width", 1); |
