clock.h 1012 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. * Freescale i.MX23/i.MX28 Clock
  3. *
  4. * Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
  5. * on behalf of DENX Software Engineering GmbH
  6. *
  7. * SPDX-License-Identifier: GPL-2.0+
  8. */
  9. #ifndef __CLOCK_H__
  10. #define __CLOCK_H__
  11. enum mxc_clock {
  12. MXC_ARM_CLK = 0,
  13. MXC_AHB_CLK,
  14. MXC_IPG_CLK,
  15. MXC_EMI_CLK,
  16. MXC_GPMI_CLK,
  17. MXC_IO0_CLK,
  18. MXC_IO1_CLK,
  19. MXC_XTAL_CLK,
  20. MXC_SSP0_CLK,
  21. #ifdef CONFIG_MX28
  22. MXC_SSP1_CLK,
  23. MXC_SSP2_CLK,
  24. MXC_SSP3_CLK,
  25. #endif
  26. };
  27. enum mxs_ioclock {
  28. MXC_IOCLK0 = 0,
  29. MXC_IOCLK1,
  30. };
  31. enum mxs_sspclock {
  32. MXC_SSPCLK0 = 0,
  33. #ifdef CONFIG_MX28
  34. MXC_SSPCLK1,
  35. MXC_SSPCLK2,
  36. MXC_SSPCLK3,
  37. #endif
  38. };
  39. uint32_t mxc_get_clock(enum mxc_clock clk);
  40. void mxs_set_ioclk(enum mxs_ioclock io, uint32_t freq);
  41. void mxs_set_sspclk(enum mxs_sspclock ssp, uint32_t freq, int xtal);
  42. void mxs_set_ssp_busclock(unsigned int bus, uint32_t freq);
  43. void mxs_set_lcdclk(uint32_t freq);
  44. /* Compatibility with the FEC Ethernet driver */
  45. #define imx_get_fecclk() mxc_get_clock(MXC_AHB_CLK)
  46. #endif /* __CLOCK_H__ */