0039-MIPS-ath79-export-UART1-reference-clock.patch 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. --- a/arch/mips/ath79/clock.c
  2. +++ b/arch/mips/ath79/clock.c
  3. @@ -42,6 +42,7 @@ static const char * const clk_names[ATH7
  4. [ATH79_CLK_AHB] = "ahb",
  5. [ATH79_CLK_REF] = "ref",
  6. [ATH79_CLK_MDIO] = "mdio",
  7. + [ATH79_CLK_UART1] = "uart1",
  8. };
  9. static const char * __init ath79_clk_name(int type)
  10. @@ -346,6 +347,9 @@ static void __init ar934x_clocks_init(vo
  11. if (clk_ctrl & AR934X_PLL_SWITCH_CLOCK_CONTROL_MDIO_CLK_SEL)
  12. ath79_set_clk(ATH79_CLK_MDIO, 100 * 1000 * 1000);
  13. + if (clk_ctrl & AR934X_PLL_SWITCH_CLOCK_CONTROL_UART1_CLK_SEL)
  14. + ath79_set_clk(ATH79_CLK_UART1, 100 * 1000 * 1000);
  15. +
  16. iounmap(dpll_base);
  17. }
  18. @@ -651,6 +655,9 @@ static void __init ath79_clocks_init_dt(
  19. if (!clks[ATH79_CLK_MDIO])
  20. clks[ATH79_CLK_MDIO] = clks[ATH79_CLK_REF];
  21. + if (!clks[ATH79_CLK_UART1])
  22. + clks[ATH79_CLK_UART1] = clks[ATH79_CLK_REF];
  23. +
  24. if (of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data)) {
  25. pr_err("%pOF: could not register clk provider\n", np);
  26. goto err_iounmap;
  27. --- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
  28. +++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
  29. @@ -351,6 +351,7 @@
  30. #define AR934X_PLL_CPU_DDR_CLK_CTRL_AHBCLK_FROM_DDRPLL BIT(24)
  31. #define AR934X_PLL_SWITCH_CLOCK_CONTROL_MDIO_CLK_SEL BIT(6)
  32. +#define AR934X_PLL_SWITCH_CLOCK_CONTROL_UART1_CLK_SEL BIT(7)
  33. #define QCA953X_PLL_CPU_CONFIG_REG 0x00
  34. #define QCA953X_PLL_DDR_CONFIG_REG 0x04
  35. --- a/include/dt-bindings/clock/ath79-clk.h
  36. +++ b/include/dt-bindings/clock/ath79-clk.h
  37. @@ -15,7 +15,8 @@
  38. #define ATH79_CLK_AHB 2
  39. #define ATH79_CLK_REF 3
  40. #define ATH79_CLK_MDIO 4
  41. +#define ATH79_CLK_UART1 5
  42. -#define ATH79_CLK_END 5
  43. +#define ATH79_CLK_END 6
  44. #endif /* __DT_BINDINGS_ATH79_CLK_H */