ath79.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Atheros AR71XX/AR724X/AR913X common definitions
  4. *
  5. * Copyright (C) 2015-2016 Wills Wang <wills.wang@live.com>
  6. * Copyright (C) 2008-2011 Gabor Juhos <juhosg@openwrt.org>
  7. * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
  8. */
  9. #ifndef __ASM_MACH_ATH79_H
  10. #define __ASM_MACH_ATH79_H
  11. #include <linux/types.h>
  12. DECLARE_GLOBAL_DATA_PTR;
  13. enum ath79_soc_type {
  14. ATH79_SOC_UNKNOWN,
  15. ATH79_SOC_AR7130,
  16. ATH79_SOC_AR7141,
  17. ATH79_SOC_AR7161,
  18. ATH79_SOC_AR7240,
  19. ATH79_SOC_AR7241,
  20. ATH79_SOC_AR7242,
  21. ATH79_SOC_AR9130,
  22. ATH79_SOC_AR9132,
  23. ATH79_SOC_AR9330,
  24. ATH79_SOC_AR9331,
  25. ATH79_SOC_AR9341,
  26. ATH79_SOC_AR9342,
  27. ATH79_SOC_AR9344,
  28. ATH79_SOC_QCA9533,
  29. ATH79_SOC_QCA9556,
  30. ATH79_SOC_QCA9558,
  31. ATH79_SOC_TP9343,
  32. ATH79_SOC_QCA9561,
  33. };
  34. static inline int soc_is_ar71xx(void)
  35. {
  36. return gd->arch.soc == ATH79_SOC_AR7130 ||
  37. gd->arch.soc == ATH79_SOC_AR7141 ||
  38. gd->arch.soc == ATH79_SOC_AR7161;
  39. }
  40. static inline int soc_is_ar724x(void)
  41. {
  42. return gd->arch.soc == ATH79_SOC_AR7240 ||
  43. gd->arch.soc == ATH79_SOC_AR7241 ||
  44. gd->arch.soc == ATH79_SOC_AR7242;
  45. }
  46. static inline int soc_is_ar7240(void)
  47. {
  48. return gd->arch.soc == ATH79_SOC_AR7240;
  49. }
  50. static inline int soc_is_ar7241(void)
  51. {
  52. return gd->arch.soc == ATH79_SOC_AR7241;
  53. }
  54. static inline int soc_is_ar7242(void)
  55. {
  56. return gd->arch.soc == ATH79_SOC_AR7242;
  57. }
  58. static inline int soc_is_ar913x(void)
  59. {
  60. return gd->arch.soc == ATH79_SOC_AR9130 ||
  61. gd->arch.soc == ATH79_SOC_AR9132;
  62. }
  63. static inline int soc_is_ar933x(void)
  64. {
  65. return gd->arch.soc == ATH79_SOC_AR9330 ||
  66. gd->arch.soc == ATH79_SOC_AR9331;
  67. }
  68. static inline int soc_is_ar9341(void)
  69. {
  70. return gd->arch.soc == ATH79_SOC_AR9341;
  71. }
  72. static inline int soc_is_ar9342(void)
  73. {
  74. return gd->arch.soc == ATH79_SOC_AR9342;
  75. }
  76. static inline int soc_is_ar9344(void)
  77. {
  78. return gd->arch.soc == ATH79_SOC_AR9344;
  79. }
  80. static inline int soc_is_ar934x(void)
  81. {
  82. return soc_is_ar9341() ||
  83. soc_is_ar9342() ||
  84. soc_is_ar9344();
  85. }
  86. static inline int soc_is_qca9533(void)
  87. {
  88. return gd->arch.soc == ATH79_SOC_QCA9533;
  89. }
  90. static inline int soc_is_qca953x(void)
  91. {
  92. return soc_is_qca9533();
  93. }
  94. static inline int soc_is_qca9556(void)
  95. {
  96. return gd->arch.soc == ATH79_SOC_QCA9556;
  97. }
  98. static inline int soc_is_qca9558(void)
  99. {
  100. return gd->arch.soc == ATH79_SOC_QCA9558;
  101. }
  102. static inline int soc_is_qca955x(void)
  103. {
  104. return soc_is_qca9556() || soc_is_qca9558();
  105. }
  106. static inline int soc_is_tp9343(void)
  107. {
  108. return gd->arch.soc == ATH79_SOC_TP9343;
  109. }
  110. static inline int soc_is_qca9561(void)
  111. {
  112. return gd->arch.soc == ATH79_SOC_QCA9561;
  113. }
  114. static inline int soc_is_qca956x(void)
  115. {
  116. return soc_is_tp9343() || soc_is_qca9561();
  117. }
  118. u32 ath79_get_bootstrap(void);
  119. int ath79_eth_reset(void);
  120. int ath79_usb_reset(void);
  121. void ar934x_pll_init(const u16 cpu_mhz, const u16 ddr_mhz, const u16 ahb_mhz);
  122. void ar934x_ddr_init(const u16 cpu_mhz, const u16 ddr_mhz, const u16 ahb_mhz);
  123. #endif /* __ASM_MACH_ATH79_H */