Commit f3e87ac7e40055c51d0808d4048aab438fb1ec7b

Authored by Ye Li
1 parent 1f3aebcd52

MLK-24192-1 lpuart: Enable IPG clock

Current codes only ennable the PER clock. However on iMX8 the LPUART
also needs IPG clock which is an LPCG. Should not depend on the default
LPCG setting.

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
(cherry picked from commit aa984f5f4029b743842ea7928d0af8da06b1b25d)

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

drivers/serial/serial_lpuart.c
... ... @@ -489,17 +489,29 @@
489 489 {
490 490 #if CONFIG_IS_ENABLED(CLK)
491 491 struct clk per_clk;
  492 + struct clk ipg_clk;
492 493 int ret;
493 494  
494 495 ret = clk_get_by_name(dev, "per", &per_clk);
495 496 if (!ret) {
496 497 ret = clk_enable(&per_clk);
497 498 if (ret) {
498   - dev_err(dev, "Failed to get per clk: %d\n", ret);
  499 + dev_err(dev, "Failed to enable per clk: %d\n", ret);
499 500 return ret;
500 501 }
501 502 } else {
502 503 debug("%s: Failed to get per clk: %d\n", __func__, ret);
  504 + }
  505 +
  506 + ret = clk_get_by_name(dev, "ipg", &ipg_clk);
  507 + if (!ret) {
  508 + ret = clk_enable(&ipg_clk);
  509 + if (ret) {
  510 + dev_err(dev, "Failed to enable ipg clk: %d\n", ret);
  511 + return ret;
  512 + }
  513 + } else {
  514 + debug("%s: Failed to get ipg clk: %d\n", __func__, ret);
503 515 }
504 516 #endif
505 517