clock.h 1.0 KB

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