clock_config.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * Copyright (C) 2020-2021 Alibaba Group Holding Limited
  3. *
  4. * SPDX-License-Identifier: GPL-2.0+
  5. */
  6. #ifndef _CLOCK_CONFIG_H
  7. #define _CLOCK_CONFIG_H
  8. enum clk_device_type {
  9. CLK_DEV_ROOT,
  10. CLK_DEV_FIXED,
  11. CLK_DEV_MUX,
  12. CLK_DEV_DIV,
  13. CLK_DEV_PLL,
  14. CLK_DEV_FACTOR,
  15. CLK_DEV_GATE,
  16. };
  17. enum light_pll_clktype {
  18. LIGHT_AUDIO_PLL,
  19. LIGHT_SYS_PLL,
  20. LIGHT_CPU_PLL0,
  21. LIGHT_CPU_PLL1,
  22. LIGHT_GMAC_PLL,
  23. LIGHT_VIDEO_PLL,
  24. LIGHT_DDR_PLL,
  25. LIGHT_DPU0_PLL,
  26. LIGHT_DPU1_PLL,
  27. };
  28. struct clk_info {
  29. const char *clk_name;
  30. enum clk_device_type clk_dev_type;
  31. };
  32. int clk_config(void);
  33. int clk_light_set_rate(const char *clk_name, enum clk_device_type clk_dev_type, unsigned long rate);
  34. unsigned long clk_light_get_rate(const char *clk_name, enum clk_device_type clk_dev_type);
  35. int clk_light_set_parent(const char *clk_name, const char *parent);
  36. const struct clk_info *clk_light_get_parent(const char *clk_name);
  37. void ap_dpu_clk_endisable(bool en);
  38. void ap_hdmi_clk_endisable(bool en);
  39. void ap_mipi_dsi0_clk_endisable(bool en);
  40. void ap_mipi_dsi1_clk_endisable(bool en);
  41. void ap_peri_clk_disable(void);
  42. #endif