mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-23 13:56:20 +00:00
serial: mxc: Support bulk enabling clocks
Depending on the platform, there may be multiple clock sources required to enable a UART. Use the bulk functions to get and enable the clocks when the UART probes. This can facilitate the removal of functions to manually enable the clock. This is made dependent on CLK_CCF which is used on imx6q, imx8m[mnqp], several imxrt, imx9. If/when the UART clock registration is done for older boards, this limitation could be updated. Signed-off-by: Adam Ford <aford173@gmail.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
parent
8999b76f23
commit
dda454e933
2 changed files with 14 additions and 0 deletions
|
@ -3,6 +3,7 @@
|
||||||
* (c) 2007 Sascha Hauer <s.hauer@pengutronix.de>
|
* (c) 2007 Sascha Hauer <s.hauer@pengutronix.de>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <clk.h>
|
||||||
#include <dm.h>
|
#include <dm.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <watchdog.h>
|
#include <watchdog.h>
|
||||||
|
@ -312,7 +313,17 @@ int mxc_serial_setbrg(struct udevice *dev, int baudrate)
|
||||||
static int mxc_serial_probe(struct udevice *dev)
|
static int mxc_serial_probe(struct udevice *dev)
|
||||||
{
|
{
|
||||||
struct mxc_serial_plat *plat = dev_get_plat(dev);
|
struct mxc_serial_plat *plat = dev_get_plat(dev);
|
||||||
|
#if CONFIG_IS_ENABLED(CLK_CCF)
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = clk_get_bulk(dev, &plat->clks);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
ret = clk_enable_bulk(&plat->clks);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
#endif
|
||||||
_mxc_serial_init(plat->reg, plat->use_dte);
|
_mxc_serial_init(plat->reg, plat->use_dte);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -9,6 +9,9 @@
|
||||||
/* Information about a serial port */
|
/* Information about a serial port */
|
||||||
struct mxc_serial_plat {
|
struct mxc_serial_plat {
|
||||||
struct mxc_uart *reg; /* address of registers in physical memory */
|
struct mxc_uart *reg; /* address of registers in physical memory */
|
||||||
|
#if CONFIG_IS_ENABLED(CLK_CCF)
|
||||||
|
struct clk_bulk clks;
|
||||||
|
#endif
|
||||||
bool use_dte;
|
bool use_dte;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue