ucc.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * Copyright (C) 2006 Freescale Semiconductor, Inc. All rights reserved.
  4. *
  5. * Authors: Shlomi Gridish <[email protected]>
  6. * Li Yang <[email protected]>
  7. *
  8. * Description:
  9. * Internal header file for UCC unit routines.
  10. */
  11. #ifndef __UCC_H__
  12. #define __UCC_H__
  13. #include <soc/fsl/qe/immap_qe.h>
  14. #include <soc/fsl/qe/qe.h>
  15. #define STATISTICS
  16. #define UCC_MAX_NUM 8
  17. /* Slow or fast type for UCCs.
  18. */
  19. enum ucc_speed_type {
  20. UCC_SPEED_TYPE_FAST = UCC_GUEMR_MODE_FAST_RX | UCC_GUEMR_MODE_FAST_TX,
  21. UCC_SPEED_TYPE_SLOW = UCC_GUEMR_MODE_SLOW_RX | UCC_GUEMR_MODE_SLOW_TX
  22. };
  23. /* ucc_set_type
  24. * Sets UCC to slow or fast mode.
  25. *
  26. * ucc_num - (In) number of UCC (0-7).
  27. * speed - (In) slow or fast mode for UCC.
  28. */
  29. int ucc_set_type(unsigned int ucc_num, enum ucc_speed_type speed);
  30. int ucc_set_qe_mux_mii_mng(unsigned int ucc_num);
  31. int ucc_set_qe_mux_rxtx(unsigned int ucc_num, enum qe_clock clock,
  32. enum comm_dir mode);
  33. int ucc_set_tdm_rxtx_clk(unsigned int tdm_num, enum qe_clock clock,
  34. enum comm_dir mode);
  35. int ucc_set_tdm_rxtx_sync(unsigned int tdm_num, enum qe_clock clock,
  36. enum comm_dir mode);
  37. int ucc_mux_set_grant_tsa_bkpt(unsigned int ucc_num, int set, u32 mask);
  38. /* QE MUX clock routing for UCC
  39. */
  40. static inline int ucc_set_qe_mux_grant(unsigned int ucc_num, int set)
  41. {
  42. return ucc_mux_set_grant_tsa_bkpt(ucc_num, set, QE_CMXUCR_GRANT);
  43. }
  44. static inline int ucc_set_qe_mux_tsa(unsigned int ucc_num, int set)
  45. {
  46. return ucc_mux_set_grant_tsa_bkpt(ucc_num, set, QE_CMXUCR_TSA);
  47. }
  48. static inline int ucc_set_qe_mux_bkpt(unsigned int ucc_num, int set)
  49. {
  50. return ucc_mux_set_grant_tsa_bkpt(ucc_num, set, QE_CMXUCR_BKPT);
  51. }
  52. #endif /* __UCC_H__ */