/arch/mips/mach-ath79/include/mach/ar71xx_regs.h

https://gitlab.com/gmbnomis/u-boot · C Header · 1265 lines · 1062 code · 154 blank · 49 comment · 0 complexity · b2fbab0f0e3bc08b252cbdd02b781d3b MD5 · raw file

  1. /*
  2. * Atheros AR71XX/AR724X/AR913X SoC register definitions
  3. *
  4. * Copyright (C) 2015-2016 Wills Wang <wills.wang@live.com>
  5. * Copyright (C) 2010-2011 Jaiganesh Narayanan <jnarayanan@atheros.com>
  6. * Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org>
  7. * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
  8. *
  9. * SPDX-License-Identifier: GPL-2.0+
  10. */
  11. #ifndef __ASM_MACH_AR71XX_REGS_H
  12. #define __ASM_MACH_AR71XX_REGS_H
  13. #ifndef __ASSEMBLY__
  14. #include <linux/bitops.h>
  15. #else
  16. #ifndef BIT
  17. #define BIT(nr) (1 << (nr))
  18. #endif
  19. #endif
  20. #define AR71XX_APB_BASE 0x18000000
  21. #define AR71XX_GE0_BASE 0x19000000
  22. #define AR71XX_GE0_SIZE 0x10000
  23. #define AR71XX_GE1_BASE 0x1a000000
  24. #define AR71XX_GE1_SIZE 0x10000
  25. #define AR71XX_EHCI_BASE 0x1b000000
  26. #define AR71XX_EHCI_SIZE 0x1000
  27. #define AR71XX_OHCI_BASE 0x1c000000
  28. #define AR71XX_OHCI_SIZE 0x1000
  29. #define AR71XX_SPI_BASE 0x1f000000
  30. #define AR71XX_SPI_SIZE 0x01000000
  31. #define AR71XX_DDR_CTRL_BASE \
  32. (AR71XX_APB_BASE + 0x00000000)
  33. #define AR71XX_DDR_CTRL_SIZE 0x100
  34. #define AR71XX_UART_BASE \
  35. (AR71XX_APB_BASE + 0x00020000)
  36. #define AR71XX_UART_SIZE 0x100
  37. #define AR71XX_USB_CTRL_BASE \
  38. (AR71XX_APB_BASE + 0x00030000)
  39. #define AR71XX_USB_CTRL_SIZE 0x100
  40. #define AR71XX_GPIO_BASE \
  41. (AR71XX_APB_BASE + 0x00040000)
  42. #define AR71XX_GPIO_SIZE 0x100
  43. #define AR71XX_PLL_BASE \
  44. (AR71XX_APB_BASE + 0x00050000)
  45. #define AR71XX_PLL_SIZE 0x100
  46. #define AR71XX_RESET_BASE \
  47. (AR71XX_APB_BASE + 0x00060000)
  48. #define AR71XX_RESET_SIZE 0x100
  49. #define AR71XX_MII_BASE \
  50. (AR71XX_APB_BASE + 0x00070000)
  51. #define AR71XX_MII_SIZE 0x100
  52. #define AR71XX_PCI_MEM_BASE 0x10000000
  53. #define AR71XX_PCI_MEM_SIZE 0x07000000
  54. #define AR71XX_PCI_WIN0_OFFS 0x10000000
  55. #define AR71XX_PCI_WIN1_OFFS 0x11000000
  56. #define AR71XX_PCI_WIN2_OFFS 0x12000000
  57. #define AR71XX_PCI_WIN3_OFFS 0x13000000
  58. #define AR71XX_PCI_WIN4_OFFS 0x14000000
  59. #define AR71XX_PCI_WIN5_OFFS 0x15000000
  60. #define AR71XX_PCI_WIN6_OFFS 0x16000000
  61. #define AR71XX_PCI_WIN7_OFFS 0x07000000
  62. #define AR71XX_PCI_CFG_BASE \
  63. (AR71XX_PCI_MEM_BASE + AR71XX_PCI_WIN7_OFFS + 0x10000)
  64. #define AR71XX_PCI_CFG_SIZE 0x100
  65. #define AR7240_USB_CTRL_BASE \
  66. (AR71XX_APB_BASE + 0x00030000)
  67. #define AR7240_USB_CTRL_SIZE 0x100
  68. #define AR7240_OHCI_BASE 0x1b000000
  69. #define AR7240_OHCI_SIZE 0x1000
  70. #define AR724X_PCI_MEM_BASE 0x10000000
  71. #define AR724X_PCI_MEM_SIZE 0x04000000
  72. #define AR724X_PCI_CFG_BASE 0x14000000
  73. #define AR724X_PCI_CFG_SIZE 0x1000
  74. #define AR724X_PCI_CRP_BASE \
  75. (AR71XX_APB_BASE + 0x000c0000)
  76. #define AR724X_PCI_CRP_SIZE 0x1000
  77. #define AR724X_PCI_CTRL_BASE \
  78. (AR71XX_APB_BASE + 0x000f0000)
  79. #define AR724X_PCI_CTRL_SIZE 0x100
  80. #define AR724X_EHCI_BASE 0x1b000000
  81. #define AR724X_EHCI_SIZE 0x1000
  82. #define AR913X_EHCI_BASE 0x1b000000
  83. #define AR913X_EHCI_SIZE 0x1000
  84. #define AR913X_WMAC_BASE \
  85. (AR71XX_APB_BASE + 0x000C0000)
  86. #define AR913X_WMAC_SIZE 0x30000
  87. #define AR933X_UART_BASE \
  88. (AR71XX_APB_BASE + 0x00020000)
  89. #define AR933X_UART_SIZE 0x14
  90. #define AR933X_GMAC_BASE \
  91. (AR71XX_APB_BASE + 0x00070000)
  92. #define AR933X_GMAC_SIZE 0x04
  93. #define AR933X_WMAC_BASE \
  94. (AR71XX_APB_BASE + 0x00100000)
  95. #define AR933X_WMAC_SIZE 0x20000
  96. #define AR933X_RTC_BASE \
  97. (AR71XX_APB_BASE + 0x00107000)
  98. #define AR933X_RTC_SIZE 0x1000
  99. #define AR933X_EHCI_BASE 0x1b000000
  100. #define AR933X_EHCI_SIZE 0x1000
  101. #define AR933X_SRIF_BASE \
  102. (AR71XX_APB_BASE + 0x00116000)
  103. #define AR933X_SRIF_SIZE 0x1000
  104. #define AR934X_GMAC_BASE \
  105. (AR71XX_APB_BASE + 0x00070000)
  106. #define AR934X_GMAC_SIZE 0x14
  107. #define AR934X_WMAC_BASE \
  108. (AR71XX_APB_BASE + 0x00100000)
  109. #define AR934X_WMAC_SIZE 0x20000
  110. #define AR934X_EHCI_BASE 0x1b000000
  111. #define AR934X_EHCI_SIZE 0x200
  112. #define AR934X_NFC_BASE 0x1b000200
  113. #define AR934X_NFC_SIZE 0xb8
  114. #define AR934X_SRIF_BASE \
  115. (AR71XX_APB_BASE + 0x00116000)
  116. #define AR934X_SRIF_SIZE 0x1000
  117. #define QCA953X_GMAC_BASE \
  118. (AR71XX_APB_BASE + 0x00070000)
  119. #define QCA953X_GMAC_SIZE 0x14
  120. #define QCA953X_WMAC_BASE \
  121. (AR71XX_APB_BASE + 0x00100000)
  122. #define QCA953X_WMAC_SIZE 0x20000
  123. #define QCA953X_RTC_BASE \
  124. (AR71XX_APB_BASE + 0x00107000)
  125. #define QCA953X_RTC_SIZE 0x1000
  126. #define QCA953X_EHCI_BASE 0x1b000000
  127. #define QCA953X_EHCI_SIZE 0x200
  128. #define QCA953X_SRIF_BASE \
  129. (AR71XX_APB_BASE + 0x00116000)
  130. #define QCA953X_SRIF_SIZE 0x1000
  131. #define QCA953X_PCI_CFG_BASE0 0x14000000
  132. #define QCA953X_PCI_CTRL_BASE0 \
  133. (AR71XX_APB_BASE + 0x000f0000)
  134. #define QCA953X_PCI_CRP_BASE0 \
  135. (AR71XX_APB_BASE + 0x000c0000)
  136. #define QCA953X_PCI_MEM_BASE0 0x10000000
  137. #define QCA953X_PCI_MEM_SIZE 0x02000000
  138. #define QCA955X_PCI_MEM_BASE0 0x10000000
  139. #define QCA955X_PCI_MEM_BASE1 0x12000000
  140. #define QCA955X_PCI_MEM_SIZE 0x02000000
  141. #define QCA955X_PCI_CFG_BASE0 0x14000000
  142. #define QCA955X_PCI_CFG_BASE1 0x16000000
  143. #define QCA955X_PCI_CFG_SIZE 0x1000
  144. #define QCA955X_PCI_CRP_BASE0 \
  145. (AR71XX_APB_BASE + 0x000c0000)
  146. #define QCA955X_PCI_CRP_BASE1 \
  147. (AR71XX_APB_BASE + 0x00250000)
  148. #define QCA955X_PCI_CRP_SIZE 0x1000
  149. #define QCA955X_PCI_CTRL_BASE0 \
  150. (AR71XX_APB_BASE + 0x000f0000)
  151. #define QCA955X_PCI_CTRL_BASE1 \
  152. (AR71XX_APB_BASE + 0x00280000)
  153. #define QCA955X_PCI_CTRL_SIZE 0x100
  154. #define QCA955X_GMAC_BASE \
  155. (AR71XX_APB_BASE + 0x00070000)
  156. #define QCA955X_GMAC_SIZE 0x40
  157. #define QCA955X_WMAC_BASE \
  158. (AR71XX_APB_BASE + 0x00100000)
  159. #define QCA955X_WMAC_SIZE 0x20000
  160. #define QCA955X_EHCI0_BASE 0x1b000000
  161. #define QCA955X_EHCI1_BASE 0x1b400000
  162. #define QCA955X_EHCI_SIZE 0x1000
  163. #define QCA955X_NFC_BASE 0x1b800200
  164. #define QCA955X_NFC_SIZE 0xb8
  165. #define QCA956X_PCI_MEM_BASE1 0x12000000
  166. #define QCA956X_PCI_MEM_SIZE 0x02000000
  167. #define QCA956X_PCI_CFG_BASE1 0x16000000
  168. #define QCA956X_PCI_CFG_SIZE 0x1000
  169. #define QCA956X_PCI_CRP_BASE1 \
  170. (AR71XX_APB_BASE + 0x00250000)
  171. #define QCA956X_PCI_CRP_SIZE 0x1000
  172. #define QCA956X_PCI_CTRL_BASE1 \
  173. (AR71XX_APB_BASE + 0x00280000)
  174. #define QCA956X_PCI_CTRL_SIZE 0x100
  175. #define QCA956X_WMAC_BASE \
  176. (AR71XX_APB_BASE + 0x00100000)
  177. #define QCA956X_WMAC_SIZE 0x20000
  178. #define QCA956X_EHCI0_BASE 0x1b000000
  179. #define QCA956X_EHCI1_BASE 0x1b400000
  180. #define QCA956X_EHCI_SIZE 0x200
  181. #define QCA956X_GMAC_BASE \
  182. (AR71XX_APB_BASE + 0x00070000)
  183. #define QCA956X_GMAC_SIZE 0x64
  184. /*
  185. * DDR_CTRL block
  186. */
  187. #define AR71XX_DDR_REG_CONFIG 0x00
  188. #define AR71XX_DDR_REG_CONFIG2 0x04
  189. #define AR71XX_DDR_REG_MODE 0x08
  190. #define AR71XX_DDR_REG_EMR 0x0c
  191. #define AR71XX_DDR_REG_CONTROL 0x10
  192. #define AR71XX_DDR_REG_REFRESH 0x14
  193. #define AR71XX_DDR_REG_RD_CYCLE 0x18
  194. #define AR71XX_DDR_REG_TAP_CTRL0 0x1c
  195. #define AR71XX_DDR_REG_TAP_CTRL1 0x20
  196. #define AR71XX_DDR_REG_PCI_WIN0 0x7c
  197. #define AR71XX_DDR_REG_PCI_WIN1 0x80
  198. #define AR71XX_DDR_REG_PCI_WIN2 0x84
  199. #define AR71XX_DDR_REG_PCI_WIN3 0x88
  200. #define AR71XX_DDR_REG_PCI_WIN4 0x8c
  201. #define AR71XX_DDR_REG_PCI_WIN5 0x90
  202. #define AR71XX_DDR_REG_PCI_WIN6 0x94
  203. #define AR71XX_DDR_REG_PCI_WIN7 0x98
  204. #define AR71XX_DDR_REG_FLUSH_GE0 0x9c
  205. #define AR71XX_DDR_REG_FLUSH_GE1 0xa0
  206. #define AR71XX_DDR_REG_FLUSH_USB 0xa4
  207. #define AR71XX_DDR_REG_FLUSH_PCI 0xa8
  208. #define AR724X_DDR_REG_FLUSH_GE0 0x7c
  209. #define AR724X_DDR_REG_FLUSH_GE1 0x80
  210. #define AR724X_DDR_REG_FLUSH_USB 0x84
  211. #define AR724X_DDR_REG_FLUSH_PCIE 0x88
  212. #define AR913X_DDR_REG_FLUSH_GE0 0x7c
  213. #define AR913X_DDR_REG_FLUSH_GE1 0x80
  214. #define AR913X_DDR_REG_FLUSH_USB 0x84
  215. #define AR913X_DDR_REG_FLUSH_WMAC 0x88
  216. #define AR933X_DDR_REG_FLUSH_GE0 0x7c
  217. #define AR933X_DDR_REG_FLUSH_GE1 0x80
  218. #define AR933X_DDR_REG_FLUSH_USB 0x84
  219. #define AR933X_DDR_REG_FLUSH_WMAC 0x88
  220. #define AR933X_DDR_REG_DDR2_CONFIG 0x8c
  221. #define AR933X_DDR_REG_EMR2 0x90
  222. #define AR933X_DDR_REG_EMR3 0x94
  223. #define AR933X_DDR_REG_BURST 0x98
  224. #define AR933X_DDR_REG_TIMEOUT_MAX 0x9c
  225. #define AR933X_DDR_REG_TIMEOUT_CNT 0x9c
  226. #define AR933X_DDR_REG_TIMEOUT_ADDR 0x9c
  227. #define AR934X_DDR_REG_TAP_CTRL2 0x24
  228. #define AR934X_DDR_REG_TAP_CTRL3 0x28
  229. #define AR934X_DDR_REG_FLUSH_GE0 0x9c
  230. #define AR934X_DDR_REG_FLUSH_GE1 0xa0
  231. #define AR934X_DDR_REG_FLUSH_USB 0xa4
  232. #define AR934X_DDR_REG_FLUSH_PCIE 0xa8
  233. #define AR934X_DDR_REG_FLUSH_WMAC 0xac
  234. #define AR934X_DDR_REG_FLUSH_SRC1 0xb0
  235. #define AR934X_DDR_REG_FLUSH_SRC2 0xb4
  236. #define AR934X_DDR_REG_DDR2_CONFIG 0xb8
  237. #define AR934X_DDR_REG_EMR2 0xbc
  238. #define AR934X_DDR_REG_EMR3 0xc0
  239. #define AR934X_DDR_REG_BURST 0xc4
  240. #define AR934X_DDR_REG_BURST2 0xc8
  241. #define AR934X_DDR_REG_TIMEOUT_MAX 0xcc
  242. #define AR934X_DDR_REG_CTL_CONF 0x108
  243. #define QCA953X_DDR_REG_FLUSH_GE0 0x9c
  244. #define QCA953X_DDR_REG_FLUSH_GE1 0xa0
  245. #define QCA953X_DDR_REG_FLUSH_USB 0xa4
  246. #define QCA953X_DDR_REG_FLUSH_PCIE 0xa8
  247. #define QCA953X_DDR_REG_FLUSH_WMAC 0xac
  248. #define QCA953X_DDR_REG_DDR2_CONFIG 0xb8
  249. #define QCA953X_DDR_REG_BURST 0xc4
  250. #define QCA953X_DDR_REG_BURST2 0xc8
  251. #define QCA953X_DDR_REG_TIMEOUT_MAX 0xcc
  252. #define QCA953X_DDR_REG_CTL_CONF 0x108
  253. #define QCA953X_DDR_REG_CONFIG3 0x15c
  254. /*
  255. * PLL block
  256. */
  257. #define AR71XX_PLL_REG_CPU_CONFIG 0x00
  258. #define AR71XX_PLL_REG_SEC_CONFIG 0x04
  259. #define AR71XX_PLL_REG_ETH0_INT_CLOCK 0x10
  260. #define AR71XX_PLL_REG_ETH1_INT_CLOCK 0x14
  261. #define AR71XX_PLL_DIV_SHIFT 3
  262. #define AR71XX_PLL_DIV_MASK 0x1f
  263. #define AR71XX_CPU_DIV_SHIFT 16
  264. #define AR71XX_CPU_DIV_MASK 0x3
  265. #define AR71XX_DDR_DIV_SHIFT 18
  266. #define AR71XX_DDR_DIV_MASK 0x3
  267. #define AR71XX_AHB_DIV_SHIFT 20
  268. #define AR71XX_AHB_DIV_MASK 0x7
  269. #define AR71XX_ETH0_PLL_SHIFT 17
  270. #define AR71XX_ETH1_PLL_SHIFT 19
  271. #define AR724X_PLL_REG_CPU_CONFIG 0x00
  272. #define AR724X_PLL_REG_PCIE_CONFIG 0x18
  273. #define AR724X_PLL_DIV_SHIFT 0
  274. #define AR724X_PLL_DIV_MASK 0x3ff
  275. #define AR724X_PLL_REF_DIV_SHIFT 10
  276. #define AR724X_PLL_REF_DIV_MASK 0xf
  277. #define AR724X_AHB_DIV_SHIFT 19
  278. #define AR724X_AHB_DIV_MASK 0x1
  279. #define AR724X_DDR_DIV_SHIFT 22
  280. #define AR724X_DDR_DIV_MASK 0x3
  281. #define AR7242_PLL_REG_ETH0_INT_CLOCK 0x2c
  282. #define AR913X_PLL_REG_CPU_CONFIG 0x00
  283. #define AR913X_PLL_REG_ETH_CONFIG 0x04
  284. #define AR913X_PLL_REG_ETH0_INT_CLOCK 0x14
  285. #define AR913X_PLL_REG_ETH1_INT_CLOCK 0x18
  286. #define AR913X_PLL_DIV_SHIFT 0
  287. #define AR913X_PLL_DIV_MASK 0x3ff
  288. #define AR913X_DDR_DIV_SHIFT 22
  289. #define AR913X_DDR_DIV_MASK 0x3
  290. #define AR913X_AHB_DIV_SHIFT 19
  291. #define AR913X_AHB_DIV_MASK 0x1
  292. #define AR913X_ETH0_PLL_SHIFT 20
  293. #define AR913X_ETH1_PLL_SHIFT 22
  294. #define AR933X_PLL_CPU_CONFIG_REG 0x00
  295. #define AR933X_PLL_CLK_CTRL_REG 0x08
  296. #define AR933X_PLL_DITHER_FRAC_REG 0x10
  297. #define AR933X_PLL_SWITCH_CLOCK_CONTROL_REG 0x24
  298. #define AR933X_PLL_CPU_CONFIG_NINT_SHIFT 10
  299. #define AR933X_PLL_CPU_CONFIG_NINT_MASK 0x3f
  300. #define AR933X_PLL_CPU_CONFIG_REFDIV_SHIFT 16
  301. #define AR933X_PLL_CPU_CONFIG_REFDIV_MASK 0x1f
  302. #define AR933X_PLL_CPU_CONFIG_OUTDIV_SHIFT 23
  303. #define AR933X_PLL_CPU_CONFIG_OUTDIV_MASK 0x7
  304. #define AR933X_PLL_CLK_CTRL_BYPASS BIT(2)
  305. #define AR933X_PLL_CLK_CTRL_CPU_POST_DIV_SHIFT 5
  306. #define AR933X_PLL_CLK_CTRL_CPU_POST_DIV_MASK 0x3
  307. #define AR933X_PLL_CLK_CTRL_DDR_POST_DIV_SHIFT 10
  308. #define AR933X_PLL_CLK_CTRL_DDR_POST_DIV_MASK 0x3
  309. #define AR933X_PLL_CLK_CTRL_AHB_POST_DIV_SHIFT 15
  310. #define AR933X_PLL_CLK_CTRL_AHB_POST_DIV_MASK 0x7
  311. #define AR934X_PLL_CPU_CONFIG_REG 0x00
  312. #define AR934X_PLL_DDR_CONFIG_REG 0x04
  313. #define AR934X_PLL_CPU_DDR_CLK_CTRL_REG 0x08
  314. #define AR934X_PLL_SWITCH_CLOCK_CONTROL_REG 0x24
  315. #define AR934X_PLL_ETH_XMII_CONTROL_REG 0x2c
  316. #define AR934X_PLL_DDR_DIT_FRAC_REG 0x44
  317. #define AR934X_PLL_CPU_DIT_FRAC_REG 0x48
  318. #define AR934X_PLL_CPU_CONFIG_NFRAC_SHIFT 0
  319. #define AR934X_PLL_CPU_CONFIG_NFRAC_MASK 0x3f
  320. #define AR934X_PLL_CPU_CONFIG_NINT_SHIFT 6
  321. #define AR934X_PLL_CPU_CONFIG_NINT_MASK 0x3f
  322. #define AR934X_PLL_CPU_CONFIG_REFDIV_SHIFT 12
  323. #define AR934X_PLL_CPU_CONFIG_REFDIV_MASK 0x1f
  324. #define AR934X_PLL_CPU_CONFIG_RANGE_SHIFT 17
  325. #define AR934X_PLL_CPU_CONFIG_RANGE_MASK 0x3
  326. #define AR934X_PLL_CPU_CONFIG_OUTDIV_SHIFT 19
  327. #define AR934X_PLL_CPU_CONFIG_OUTDIV_MASK 0x3
  328. #define AR934X_PLL_CPU_CONFIG_PLLPWD BIT(30)
  329. #define AR934X_PLL_CPU_CONFIG_UPDATING BIT(31)
  330. #define AR934X_PLL_DDR_CONFIG_NFRAC_SHIFT 0
  331. #define AR934X_PLL_DDR_CONFIG_NFRAC_MASK 0x3ff
  332. #define AR934X_PLL_DDR_CONFIG_NINT_SHIFT 10
  333. #define AR934X_PLL_DDR_CONFIG_NINT_MASK 0x3f
  334. #define AR934X_PLL_DDR_CONFIG_REFDIV_SHIFT 16
  335. #define AR934X_PLL_DDR_CONFIG_REFDIV_MASK 0x1f
  336. #define AR934X_PLL_DDR_CONFIG_RANGE_SHIFT 21
  337. #define AR934X_PLL_DDR_CONFIG_RANGE_MASK 0x3
  338. #define AR934X_PLL_DDR_CONFIG_OUTDIV_SHIFT 23
  339. #define AR934X_PLL_DDR_CONFIG_OUTDIV_MASK 0x7
  340. #define AR934X_PLL_DDR_CONFIG_PLLPWD BIT(30)
  341. #define AR934X_PLL_DDR_CONFIG_UPDATING BIT(31)
  342. #define AR934X_PLL_CLK_CTRL_CPU_PLL_BYPASS BIT(2)
  343. #define AR934X_PLL_CLK_CTRL_DDR_PLL_BYPASS BIT(3)
  344. #define AR934X_PLL_CLK_CTRL_AHB_PLL_BYPASS BIT(4)
  345. #define AR934X_PLL_CLK_CTRL_CPU_POST_DIV_SHIFT 5
  346. #define AR934X_PLL_CLK_CTRL_CPU_POST_DIV_MASK 0x1f
  347. #define AR934X_PLL_CLK_CTRL_DDR_POST_DIV_SHIFT 10
  348. #define AR934X_PLL_CLK_CTRL_DDR_POST_DIV_MASK 0x1f
  349. #define AR934X_PLL_CLK_CTRL_AHB_POST_DIV_SHIFT 15
  350. #define AR934X_PLL_CLK_CTRL_AHB_POST_DIV_MASK 0x1f
  351. #define AR934X_PLL_CLK_CTRL_CPUCLK_FROM_CPUPLL BIT(20)
  352. #define AR934X_PLL_CLK_CTRL_DDRCLK_FROM_DDRPLL BIT(21)
  353. #define AR934X_PLL_CLK_CTRL_AHBCLK_FROM_DDRPLL BIT(24)
  354. #define AR934X_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL BIT(6)
  355. #define AR934X_PLL_DDR_DIT_FRAC_MAX_SHIFT 0
  356. #define AR934X_PLL_DDR_DIT_FRAC_MAX_MASK 0x3ff
  357. #define AR934X_PLL_DDR_DIT_FRAC_MIN_SHIFT 10
  358. #define AR934X_PLL_DDR_DIT_FRAC_MIN_MASK 0x3ff
  359. #define AR934X_PLL_DDR_DIT_FRAC_STEP_SHIFT 20
  360. #define AR934X_PLL_DDR_DIT_FRAC_STEP_MASK 0x3f
  361. #define AR934X_PLL_DDR_DIT_UPD_CNT_SHIFT 27
  362. #define AR934X_PLL_DDR_DIT_UPD_CNT_MASK 0x3f
  363. #define AR934X_PLL_DDR_DIT_DITHER_EN BIT(31)
  364. #define AR934X_PLL_CPU_DIT_FRAC_MAX_SHIFT 0
  365. #define AR934X_PLL_CPU_DIT_FRAC_MAX_MASK 0x3f
  366. #define AR934X_PLL_CPU_DIT_FRAC_MIN_SHIFT 6
  367. #define AR934X_PLL_CPU_DIT_FRAC_MIN_MASK 0x3f
  368. #define AR934X_PLL_CPU_DIT_FRAC_STEP_SHIFT 12
  369. #define AR934X_PLL_CPU_DIT_FRAC_STEP_MASK 0x3f
  370. #define AR934X_PLL_CPU_DIT_UPD_CNT_SHIFT 18
  371. #define AR934X_PLL_CPU_DIT_UPD_CNT_MASK 0x3f
  372. #define AR934X_PLL_CPU_DIT_DITHER_EN BIT(31)
  373. #define QCA953X_PLL_CPU_CONFIG_REG 0x00
  374. #define QCA953X_PLL_DDR_CONFIG_REG 0x04
  375. #define QCA953X_PLL_CLK_CTRL_REG 0x08
  376. #define QCA953X_PLL_SWITCH_CLOCK_CONTROL_REG 0x24
  377. #define QCA953X_PLL_ETH_XMII_CONTROL_REG 0x2c
  378. #define QCA953X_PLL_DDR_DIT_FRAC_REG 0x44
  379. #define QCA953X_PLL_CPU_DIT_FRAC_REG 0x48
  380. #define QCA953X_PLL_CPU_CONFIG_NFRAC_SHIFT 0
  381. #define QCA953X_PLL_CPU_CONFIG_NFRAC_MASK 0x3f
  382. #define QCA953X_PLL_CPU_CONFIG_NINT_SHIFT 6
  383. #define QCA953X_PLL_CPU_CONFIG_NINT_MASK 0x3f
  384. #define QCA953X_PLL_CPU_CONFIG_REFDIV_SHIFT 12
  385. #define QCA953X_PLL_CPU_CONFIG_REFDIV_MASK 0x1f
  386. #define QCA953X_PLL_CPU_CONFIG_OUTDIV_SHIFT 19
  387. #define QCA953X_PLL_CPU_CONFIG_OUTDIV_MASK 0x7
  388. #define QCA953X_PLL_DDR_CONFIG_NFRAC_SHIFT 0
  389. #define QCA953X_PLL_DDR_CONFIG_NFRAC_MASK 0x3ff
  390. #define QCA953X_PLL_DDR_CONFIG_NINT_SHIFT 10
  391. #define QCA953X_PLL_DDR_CONFIG_NINT_MASK 0x3f
  392. #define QCA953X_PLL_DDR_CONFIG_REFDIV_SHIFT 16
  393. #define QCA953X_PLL_DDR_CONFIG_REFDIV_MASK 0x1f
  394. #define QCA953X_PLL_DDR_CONFIG_OUTDIV_SHIFT 23
  395. #define QCA953X_PLL_DDR_CONFIG_OUTDIV_MASK 0x7
  396. #define QCA953X_PLL_CONFIG_PWD BIT(30)
  397. #define QCA953X_PLL_CLK_CTRL_CPU_PLL_BYPASS BIT(2)
  398. #define QCA953X_PLL_CLK_CTRL_DDR_PLL_BYPASS BIT(3)
  399. #define QCA953X_PLL_CLK_CTRL_AHB_PLL_BYPASS BIT(4)
  400. #define QCA953X_PLL_CLK_CTRL_CPU_POST_DIV_SHIFT 5
  401. #define QCA953X_PLL_CLK_CTRL_CPU_POST_DIV_MASK 0x1f
  402. #define QCA953X_PLL_CLK_CTRL_DDR_POST_DIV_SHIFT 10
  403. #define QCA953X_PLL_CLK_CTRL_DDR_POST_DIV_MASK 0x1f
  404. #define QCA953X_PLL_CLK_CTRL_AHB_POST_DIV_SHIFT 15
  405. #define QCA953X_PLL_CLK_CTRL_AHB_POST_DIV_MASK 0x1f
  406. #define QCA953X_PLL_CLK_CTRL_CPUCLK_FROM_CPUPLL BIT(20)
  407. #define QCA953X_PLL_CLK_CTRL_DDRCLK_FROM_DDRPLL BIT(21)
  408. #define QCA953X_PLL_CLK_CTRL_AHBCLK_FROM_DDRPLL BIT(24)
  409. #define QCA953X_PLL_CPU_DIT_FRAC_MAX_SHIFT 0
  410. #define QCA953X_PLL_CPU_DIT_FRAC_MAX_MASK 0x3f
  411. #define QCA953X_PLL_CPU_DIT_FRAC_MIN_SHIFT 6
  412. #define QCA953X_PLL_CPU_DIT_FRAC_MIN_MASK 0x3f
  413. #define QCA953X_PLL_CPU_DIT_FRAC_STEP_SHIFT 12
  414. #define QCA953X_PLL_CPU_DIT_FRAC_STEP_MASK 0x3f
  415. #define QCA953X_PLL_CPU_DIT_UPD_CNT_SHIFT 18
  416. #define QCA953X_PLL_CPU_DIT_UPD_CNT_MASK 0x3f
  417. #define QCA953X_PLL_DDR_DIT_FRAC_MAX_SHIFT 0
  418. #define QCA953X_PLL_DDR_DIT_FRAC_MAX_MASK 0x3ff
  419. #define QCA953X_PLL_DDR_DIT_FRAC_MIN_SHIFT 9
  420. #define QCA953X_PLL_DDR_DIT_FRAC_MIN_MASK 0x3ff
  421. #define QCA953X_PLL_DDR_DIT_FRAC_STEP_SHIFT 20
  422. #define QCA953X_PLL_DDR_DIT_FRAC_STEP_MASK 0x3f
  423. #define QCA953X_PLL_DDR_DIT_UPD_CNT_SHIFT 27
  424. #define QCA953X_PLL_DDR_DIT_UPD_CNT_MASK 0x3f
  425. #define QCA953X_PLL_DIT_FRAC_EN BIT(31)
  426. #define QCA955X_PLL_CPU_CONFIG_REG 0x00
  427. #define QCA955X_PLL_DDR_CONFIG_REG 0x04
  428. #define QCA955X_PLL_CLK_CTRL_REG 0x08
  429. #define QCA955X_PLL_ETH_XMII_CONTROL_REG 0x28
  430. #define QCA955X_PLL_ETH_SGMII_CONTROL_REG 0x48
  431. #define QCA955X_PLL_CPU_CONFIG_NFRAC_SHIFT 0
  432. #define QCA955X_PLL_CPU_CONFIG_NFRAC_MASK 0x3f
  433. #define QCA955X_PLL_CPU_CONFIG_NINT_SHIFT 6
  434. #define QCA955X_PLL_CPU_CONFIG_NINT_MASK 0x3f
  435. #define QCA955X_PLL_CPU_CONFIG_REFDIV_SHIFT 12
  436. #define QCA955X_PLL_CPU_CONFIG_REFDIV_MASK 0x1f
  437. #define QCA955X_PLL_CPU_CONFIG_OUTDIV_SHIFT 19
  438. #define QCA955X_PLL_CPU_CONFIG_OUTDIV_MASK 0x3
  439. #define QCA955X_PLL_DDR_CONFIG_NFRAC_SHIFT 0
  440. #define QCA955X_PLL_DDR_CONFIG_NFRAC_MASK 0x3ff
  441. #define QCA955X_PLL_DDR_CONFIG_NINT_SHIFT 10
  442. #define QCA955X_PLL_DDR_CONFIG_NINT_MASK 0x3f
  443. #define QCA955X_PLL_DDR_CONFIG_REFDIV_SHIFT 16
  444. #define QCA955X_PLL_DDR_CONFIG_REFDIV_MASK 0x1f
  445. #define QCA955X_PLL_DDR_CONFIG_OUTDIV_SHIFT 23
  446. #define QCA955X_PLL_DDR_CONFIG_OUTDIV_MASK 0x7
  447. #define QCA955X_PLL_CLK_CTRL_CPU_PLL_BYPASS BIT(2)
  448. #define QCA955X_PLL_CLK_CTRL_DDR_PLL_BYPASS BIT(3)
  449. #define QCA955X_PLL_CLK_CTRL_AHB_PLL_BYPASS BIT(4)
  450. #define QCA955X_PLL_CLK_CTRL_CPU_POST_DIV_SHIFT 5
  451. #define QCA955X_PLL_CLK_CTRL_CPU_POST_DIV_MASK 0x1f
  452. #define QCA955X_PLL_CLK_CTRL_DDR_POST_DIV_SHIFT 10
  453. #define QCA955X_PLL_CLK_CTRL_DDR_POST_DIV_MASK 0x1f
  454. #define QCA955X_PLL_CLK_CTRL_AHB_POST_DIV_SHIFT 15
  455. #define QCA955X_PLL_CLK_CTRL_AHB_POST_DIV_MASK 0x1f
  456. #define QCA955X_PLL_CLK_CTRL_CPUCLK_FROM_CPUPLL BIT(20)
  457. #define QCA955X_PLL_CLK_CTRL_DDRCLK_FROM_DDRPLL BIT(21)
  458. #define QCA955X_PLL_CLK_CTRL_AHBCLK_FROM_DDRPLL BIT(24)
  459. #define QCA956X_PLL_CPU_CONFIG_REG 0x00
  460. #define QCA956X_PLL_CPU_CONFIG1_REG 0x04
  461. #define QCA956X_PLL_DDR_CONFIG_REG 0x08
  462. #define QCA956X_PLL_DDR_CONFIG1_REG 0x0c
  463. #define QCA956X_PLL_CLK_CTRL_REG 0x10
  464. #define QCA956X_PLL_CPU_CONFIG_REFDIV_SHIFT 12
  465. #define QCA956X_PLL_CPU_CONFIG_REFDIV_MASK 0x1f
  466. #define QCA956X_PLL_CPU_CONFIG_OUTDIV_SHIFT 19
  467. #define QCA956X_PLL_CPU_CONFIG_OUTDIV_MASK 0x7
  468. #define QCA956X_PLL_CPU_CONFIG1_NFRAC_L_SHIFT 0
  469. #define QCA956X_PLL_CPU_CONFIG1_NFRAC_L_MASK 0x1f
  470. #define QCA956X_PLL_CPU_CONFIG1_NFRAC_H_SHIFT 5
  471. #define QCA956X_PLL_CPU_CONFIG1_NFRAC_H_MASK 0x3fff
  472. #define QCA956X_PLL_CPU_CONFIG1_NINT_SHIFT 18
  473. #define QCA956X_PLL_CPU_CONFIG1_NINT_MASK 0x1ff
  474. #define QCA956X_PLL_DDR_CONFIG_REFDIV_SHIFT 16
  475. #define QCA956X_PLL_DDR_CONFIG_REFDIV_MASK 0x1f
  476. #define QCA956X_PLL_DDR_CONFIG_OUTDIV_SHIFT 23
  477. #define QCA956X_PLL_DDR_CONFIG_OUTDIV_MASK 0x7
  478. #define QCA956X_PLL_DDR_CONFIG1_NFRAC_L_SHIFT 0
  479. #define QCA956X_PLL_DDR_CONFIG1_NFRAC_L_MASK 0x1f
  480. #define QCA956X_PLL_DDR_CONFIG1_NFRAC_H_SHIFT 5
  481. #define QCA956X_PLL_DDR_CONFIG1_NFRAC_H_MASK 0x3fff
  482. #define QCA956X_PLL_DDR_CONFIG1_NINT_SHIFT 18
  483. #define QCA956X_PLL_DDR_CONFIG1_NINT_MASK 0x1ff
  484. #define QCA956X_PLL_CLK_CTRL_CPU_PLL_BYPASS BIT(2)
  485. #define QCA956X_PLL_CLK_CTRL_DDR_PLL_BYPASS BIT(3)
  486. #define QCA956X_PLL_CLK_CTRL_AHB_PLL_BYPASS BIT(4)
  487. #define QCA956X_PLL_CLK_CTRL_CPU_POST_DIV_SHIFT 5
  488. #define QCA956X_PLL_CLK_CTRL_CPU_POST_DIV_MASK 0x1f
  489. #define QCA956X_PLL_CLK_CTRL_DDR_POST_DIV_SHIFT 10
  490. #define QCA956X_PLL_CLK_CTRL_DDR_POST_DIV_MASK 0x1f
  491. #define QCA956X_PLL_CLK_CTRL_AHB_POST_DIV_SHIFT 15
  492. #define QCA956X_PLL_CLK_CTRL_AHB_POST_DIV_MASK 0x1f
  493. #define QCA956X_PLL_CLK_CTRL_CPU_DDRCLK_FROM_DDRPLL BIT(20)
  494. #define QCA956X_PLL_CLK_CTRL_CPU_DDRCLK_FROM_CPUPLL BIT(21)
  495. #define QCA956X_PLL_CLK_CTRL_AHBCLK_FROM_DDRPLL BIT(24)
  496. /*
  497. * USB_CONFIG block
  498. */
  499. #define AR71XX_USB_CTRL_REG_FLADJ 0x00
  500. #define AR71XX_USB_CTRL_REG_CONFIG 0x04
  501. /*
  502. * RESET block
  503. */
  504. #define AR71XX_RESET_REG_TIMER 0x00
  505. #define AR71XX_RESET_REG_TIMER_RELOAD 0x04
  506. #define AR71XX_RESET_REG_WDOG_CTRL 0x08
  507. #define AR71XX_RESET_REG_WDOG 0x0c
  508. #define AR71XX_RESET_REG_MISC_INT_STATUS 0x10
  509. #define AR71XX_RESET_REG_MISC_INT_ENABLE 0x14
  510. #define AR71XX_RESET_REG_PCI_INT_STATUS 0x18
  511. #define AR71XX_RESET_REG_PCI_INT_ENABLE 0x1c
  512. #define AR71XX_RESET_REG_GLOBAL_INT_STATUS 0x20
  513. #define AR71XX_RESET_REG_RESET_MODULE 0x24
  514. #define AR71XX_RESET_REG_PERFC_CTRL 0x2c
  515. #define AR71XX_RESET_REG_PERFC0 0x30
  516. #define AR71XX_RESET_REG_PERFC1 0x34
  517. #define AR71XX_RESET_REG_REV_ID 0x90
  518. #define AR913X_RESET_REG_GLOBAL_INT_STATUS 0x18
  519. #define AR913X_RESET_REG_RESET_MODULE 0x1c
  520. #define AR913X_RESET_REG_PERF_CTRL 0x20
  521. #define AR913X_RESET_REG_PERFC0 0x24
  522. #define AR913X_RESET_REG_PERFC1 0x28
  523. #define AR724X_RESET_REG_RESET_MODULE 0x1c
  524. #define AR933X_RESET_REG_RESET_MODULE 0x1c
  525. #define AR933X_RESET_REG_BOOTSTRAP 0xac
  526. #define AR934X_RESET_REG_RESET_MODULE 0x1c
  527. #define AR934X_RESET_REG_BOOTSTRAP 0xb0
  528. #define AR934X_RESET_REG_PCIE_WMAC_INT_STATUS 0xac
  529. #define QCA953X_RESET_REG_RESET_MODULE 0x1c
  530. #define QCA953X_RESET_REG_BOOTSTRAP 0xb0
  531. #define QCA953X_RESET_REG_PCIE_WMAC_INT_STATUS 0xac
  532. #define QCA955X_RESET_REG_RESET_MODULE 0x1c
  533. #define QCA955X_RESET_REG_BOOTSTRAP 0xb0
  534. #define QCA955X_RESET_REG_EXT_INT_STATUS 0xac
  535. #define QCA956X_RESET_REG_RESET_MODULE 0x1c
  536. #define QCA956X_RESET_REG_BOOTSTRAP 0xb0
  537. #define QCA956X_RESET_REG_EXT_INT_STATUS 0xac
  538. #define MISC_INT_MIPS_SI_TIMERINT_MASK BIT(28)
  539. #define MISC_INT_ETHSW BIT(12)
  540. #define MISC_INT_TIMER4 BIT(10)
  541. #define MISC_INT_TIMER3 BIT(9)
  542. #define MISC_INT_TIMER2 BIT(8)
  543. #define MISC_INT_DMA BIT(7)
  544. #define MISC_INT_OHCI BIT(6)
  545. #define MISC_INT_PERFC BIT(5)
  546. #define MISC_INT_WDOG BIT(4)
  547. #define MISC_INT_UART BIT(3)
  548. #define MISC_INT_GPIO BIT(2)
  549. #define MISC_INT_ERROR BIT(1)
  550. #define MISC_INT_TIMER BIT(0)
  551. #define AR71XX_RESET_EXTERNAL BIT(28)
  552. #define AR71XX_RESET_FULL_CHIP BIT(24)
  553. #define AR71XX_RESET_CPU_NMI BIT(21)
  554. #define AR71XX_RESET_CPU_COLD BIT(20)
  555. #define AR71XX_RESET_DMA BIT(19)
  556. #define AR71XX_RESET_SLIC BIT(18)
  557. #define AR71XX_RESET_STEREO BIT(17)
  558. #define AR71XX_RESET_DDR BIT(16)
  559. #define AR71XX_RESET_GE1_MAC BIT(13)
  560. #define AR71XX_RESET_GE1_PHY BIT(12)
  561. #define AR71XX_RESET_USBSUS_OVERRIDE BIT(10)
  562. #define AR71XX_RESET_GE0_MAC BIT(9)
  563. #define AR71XX_RESET_GE0_PHY BIT(8)
  564. #define AR71XX_RESET_USB_OHCI_DLL BIT(6)
  565. #define AR71XX_RESET_USB_HOST BIT(5)
  566. #define AR71XX_RESET_USB_PHY BIT(4)
  567. #define AR71XX_RESET_PCI_BUS BIT(1)
  568. #define AR71XX_RESET_PCI_CORE BIT(0)
  569. #define AR7240_RESET_USB_HOST BIT(5)
  570. #define AR7240_RESET_OHCI_DLL BIT(3)
  571. #define AR724X_RESET_GE1_MDIO BIT(23)
  572. #define AR724X_RESET_GE0_MDIO BIT(22)
  573. #define AR724X_RESET_PCIE_PHY_SERIAL BIT(10)
  574. #define AR724X_RESET_PCIE_PHY BIT(7)
  575. #define AR724X_RESET_PCIE BIT(6)
  576. #define AR724X_RESET_USB_HOST BIT(5)
  577. #define AR724X_RESET_USB_PHY BIT(4)
  578. #define AR724X_RESET_USBSUS_OVERRIDE BIT(3)
  579. #define AR913X_RESET_AMBA2WMAC BIT(22)
  580. #define AR913X_RESET_USBSUS_OVERRIDE BIT(10)
  581. #define AR913X_RESET_USB_HOST BIT(5)
  582. #define AR913X_RESET_USB_PHY BIT(4)
  583. #define AR933X_RESET_GE1_MDIO BIT(23)
  584. #define AR933X_RESET_GE0_MDIO BIT(22)
  585. #define AR933X_RESET_ETH_SWITCH_ANALOG BIT(14)
  586. #define AR933X_RESET_GE1_MAC BIT(13)
  587. #define AR933X_RESET_WMAC BIT(11)
  588. #define AR933X_RESET_GE0_MAC BIT(9)
  589. #define AR933X_RESET_ETH_SWITCH BIT(8)
  590. #define AR933X_RESET_USB_HOST BIT(5)
  591. #define AR933X_RESET_USB_PHY BIT(4)
  592. #define AR933X_RESET_USBSUS_OVERRIDE BIT(3)
  593. #define AR934X_RESET_HOST BIT(31)
  594. #define AR934X_RESET_SLIC BIT(30)
  595. #define AR934X_RESET_HDMA BIT(29)
  596. #define AR934X_RESET_EXTERNAL BIT(28)
  597. #define AR934X_RESET_RTC BIT(27)
  598. #define AR934X_RESET_PCIE_EP_INT BIT(26)
  599. #define AR934X_RESET_CHKSUM_ACC BIT(25)
  600. #define AR934X_RESET_FULL_CHIP BIT(24)
  601. #define AR934X_RESET_GE1_MDIO BIT(23)
  602. #define AR934X_RESET_GE0_MDIO BIT(22)
  603. #define AR934X_RESET_CPU_NMI BIT(21)
  604. #define AR934X_RESET_CPU_COLD BIT(20)
  605. #define AR934X_RESET_HOST_RESET_INT BIT(19)
  606. #define AR934X_RESET_PCIE_EP BIT(18)
  607. #define AR934X_RESET_UART1 BIT(17)
  608. #define AR934X_RESET_DDR BIT(16)
  609. #define AR934X_RESET_USB_PHY_PLL_PWD_EXT BIT(15)
  610. #define AR934X_RESET_NANDF BIT(14)
  611. #define AR934X_RESET_GE1_MAC BIT(13)
  612. #define AR934X_RESET_ETH_SWITCH_ANALOG BIT(12)
  613. #define AR934X_RESET_USB_PHY_ANALOG BIT(11)
  614. #define AR934X_RESET_HOST_DMA_INT BIT(10)
  615. #define AR934X_RESET_GE0_MAC BIT(9)
  616. #define AR934X_RESET_ETH_SWITCH BIT(8)
  617. #define AR934X_RESET_PCIE_PHY BIT(7)
  618. #define AR934X_RESET_PCIE BIT(6)
  619. #define AR934X_RESET_USB_HOST BIT(5)
  620. #define AR934X_RESET_USB_PHY BIT(4)
  621. #define AR934X_RESET_USBSUS_OVERRIDE BIT(3)
  622. #define AR934X_RESET_LUT BIT(2)
  623. #define AR934X_RESET_MBOX BIT(1)
  624. #define AR934X_RESET_I2S BIT(0)
  625. #define QCA953X_RESET_USB_EXT_PWR BIT(29)
  626. #define QCA953X_RESET_EXTERNAL BIT(28)
  627. #define QCA953X_RESET_RTC BIT(27)
  628. #define QCA953X_RESET_FULL_CHIP BIT(24)
  629. #define QCA953X_RESET_GE1_MDIO BIT(23)
  630. #define QCA953X_RESET_GE0_MDIO BIT(22)
  631. #define QCA953X_RESET_CPU_NMI BIT(21)
  632. #define QCA953X_RESET_CPU_COLD BIT(20)
  633. #define QCA953X_RESET_DDR BIT(16)
  634. #define QCA953X_RESET_USB_PHY_PLL_PWD_EXT BIT(15)
  635. #define QCA953X_RESET_GE1_MAC BIT(13)
  636. #define QCA953X_RESET_ETH_SWITCH_ANALOG BIT(12)
  637. #define QCA953X_RESET_USB_PHY_ANALOG BIT(11)
  638. #define QCA953X_RESET_GE0_MAC BIT(9)
  639. #define QCA953X_RESET_ETH_SWITCH BIT(8)
  640. #define QCA953X_RESET_PCIE_PHY BIT(7)
  641. #define QCA953X_RESET_PCIE BIT(6)
  642. #define QCA953X_RESET_USB_HOST BIT(5)
  643. #define QCA953X_RESET_USB_PHY BIT(4)
  644. #define QCA953X_RESET_USBSUS_OVERRIDE BIT(3)
  645. #define QCA955X_RESET_HOST BIT(31)
  646. #define QCA955X_RESET_SLIC BIT(30)
  647. #define QCA955X_RESET_HDMA BIT(29)
  648. #define QCA955X_RESET_EXTERNAL BIT(28)
  649. #define QCA955X_RESET_RTC BIT(27)
  650. #define QCA955X_RESET_PCIE_EP_INT BIT(26)
  651. #define QCA955X_RESET_CHKSUM_ACC BIT(25)
  652. #define QCA955X_RESET_FULL_CHIP BIT(24)
  653. #define QCA955X_RESET_GE1_MDIO BIT(23)
  654. #define QCA955X_RESET_GE0_MDIO BIT(22)
  655. #define QCA955X_RESET_CPU_NMI BIT(21)
  656. #define QCA955X_RESET_CPU_COLD BIT(20)
  657. #define QCA955X_RESET_HOST_RESET_INT BIT(19)
  658. #define QCA955X_RESET_PCIE_EP BIT(18)
  659. #define QCA955X_RESET_UART1 BIT(17)
  660. #define QCA955X_RESET_DDR BIT(16)
  661. #define QCA955X_RESET_USB_PHY_PLL_PWD_EXT BIT(15)
  662. #define QCA955X_RESET_NANDF BIT(14)
  663. #define QCA955X_RESET_GE1_MAC BIT(13)
  664. #define QCA955X_RESET_SGMII_ANALOG BIT(12)
  665. #define QCA955X_RESET_USB_PHY_ANALOG BIT(11)
  666. #define QCA955X_RESET_HOST_DMA_INT BIT(10)
  667. #define QCA955X_RESET_GE0_MAC BIT(9)
  668. #define QCA955X_RESET_SGMII BIT(8)
  669. #define QCA955X_RESET_PCIE_PHY BIT(7)
  670. #define QCA955X_RESET_PCIE BIT(6)
  671. #define QCA955X_RESET_USB_HOST BIT(5)
  672. #define QCA955X_RESET_USB_PHY BIT(4)
  673. #define QCA955X_RESET_USBSUS_OVERRIDE BIT(3)
  674. #define QCA955X_RESET_LUT BIT(2)
  675. #define QCA955X_RESET_MBOX BIT(1)
  676. #define QCA955X_RESET_I2S BIT(0)
  677. #define AR933X_BOOTSTRAP_MDIO_GPIO_EN BIT(18)
  678. #define AR933X_BOOTSTRAP_DDR2 BIT(13)
  679. #define AR933X_BOOTSTRAP_EEPBUSY BIT(4)
  680. #define AR933X_BOOTSTRAP_REF_CLK_40 BIT(0)
  681. #define AR934X_BOOTSTRAP_SW_OPTION8 BIT(23)
  682. #define AR934X_BOOTSTRAP_SW_OPTION7 BIT(22)
  683. #define AR934X_BOOTSTRAP_SW_OPTION6 BIT(21)
  684. #define AR934X_BOOTSTRAP_SW_OPTION5 BIT(20)
  685. #define AR934X_BOOTSTRAP_SW_OPTION4 BIT(19)
  686. #define AR934X_BOOTSTRAP_SW_OPTION3 BIT(18)
  687. #define AR934X_BOOTSTRAP_SW_OPTION2 BIT(17)
  688. #define AR934X_BOOTSTRAP_SW_OPTION1 BIT(16)
  689. #define AR934X_BOOTSTRAP_USB_MODE_DEVICE BIT(7)
  690. #define AR934X_BOOTSTRAP_PCIE_RC BIT(6)
  691. #define AR934X_BOOTSTRAP_EJTAG_MODE BIT(5)
  692. #define AR934X_BOOTSTRAP_REF_CLK_40 BIT(4)
  693. #define AR934X_BOOTSTRAP_BOOT_FROM_SPI BIT(2)
  694. #define AR934X_BOOTSTRAP_SDRAM_DISABLED BIT(1)
  695. #define AR934X_BOOTSTRAP_DDR1 BIT(0)
  696. #define QCA953X_BOOTSTRAP_SW_OPTION2 BIT(12)
  697. #define QCA953X_BOOTSTRAP_SW_OPTION1 BIT(11)
  698. #define QCA953X_BOOTSTRAP_EJTAG_MODE BIT(5)
  699. #define QCA953X_BOOTSTRAP_REF_CLK_40 BIT(4)
  700. #define QCA953X_BOOTSTRAP_SDRAM_DISABLED BIT(1)
  701. #define QCA953X_BOOTSTRAP_DDR1 BIT(0)
  702. #define QCA955X_BOOTSTRAP_REF_CLK_40 BIT(4)
  703. #define QCA956X_BOOTSTRAP_REF_CLK_40 BIT(2)
  704. #define AR934X_PCIE_WMAC_INT_WMAC_MISC BIT(0)
  705. #define AR934X_PCIE_WMAC_INT_WMAC_TX BIT(1)
  706. #define AR934X_PCIE_WMAC_INT_WMAC_RXLP BIT(2)
  707. #define AR934X_PCIE_WMAC_INT_WMAC_RXHP BIT(3)
  708. #define AR934X_PCIE_WMAC_INT_PCIE_RC BIT(4)
  709. #define AR934X_PCIE_WMAC_INT_PCIE_RC0 BIT(5)
  710. #define AR934X_PCIE_WMAC_INT_PCIE_RC1 BIT(6)
  711. #define AR934X_PCIE_WMAC_INT_PCIE_RC2 BIT(7)
  712. #define AR934X_PCIE_WMAC_INT_PCIE_RC3 BIT(8)
  713. #define AR934X_PCIE_WMAC_INT_WMAC_ALL \
  714. (AR934X_PCIE_WMAC_INT_WMAC_MISC | AR934X_PCIE_WMAC_INT_WMAC_TX | \
  715. AR934X_PCIE_WMAC_INT_WMAC_RXLP | AR934X_PCIE_WMAC_INT_WMAC_RXHP)
  716. #define AR934X_PCIE_WMAC_INT_PCIE_ALL \
  717. (AR934X_PCIE_WMAC_INT_PCIE_RC | AR934X_PCIE_WMAC_INT_PCIE_RC0 | \
  718. AR934X_PCIE_WMAC_INT_PCIE_RC1 | AR934X_PCIE_WMAC_INT_PCIE_RC2 | \
  719. AR934X_PCIE_WMAC_INT_PCIE_RC3)
  720. #define QCA953X_PCIE_WMAC_INT_WMAC_MISC BIT(0)
  721. #define QCA953X_PCIE_WMAC_INT_WMAC_TX BIT(1)
  722. #define QCA953X_PCIE_WMAC_INT_WMAC_RXLP BIT(2)
  723. #define QCA953X_PCIE_WMAC_INT_WMAC_RXHP BIT(3)
  724. #define QCA953X_PCIE_WMAC_INT_PCIE_RC BIT(4)
  725. #define QCA953X_PCIE_WMAC_INT_PCIE_RC0 BIT(5)
  726. #define QCA953X_PCIE_WMAC_INT_PCIE_RC1 BIT(6)
  727. #define QCA953X_PCIE_WMAC_INT_PCIE_RC2 BIT(7)
  728. #define QCA953X_PCIE_WMAC_INT_PCIE_RC3 BIT(8)
  729. #define QCA953X_PCIE_WMAC_INT_WMAC_ALL \
  730. (QCA953X_PCIE_WMAC_INT_WMAC_MISC | QCA953X_PCIE_WMAC_INT_WMAC_TX | \
  731. QCA953X_PCIE_WMAC_INT_WMAC_RXLP | QCA953X_PCIE_WMAC_INT_WMAC_RXHP)
  732. #define QCA953X_PCIE_WMAC_INT_PCIE_ALL \
  733. (QCA953X_PCIE_WMAC_INT_PCIE_RC | QCA953X_PCIE_WMAC_INT_PCIE_RC0 | \
  734. QCA953X_PCIE_WMAC_INT_PCIE_RC1 | QCA953X_PCIE_WMAC_INT_PCIE_RC2 | \
  735. QCA953X_PCIE_WMAC_INT_PCIE_RC3)
  736. #define QCA955X_EXT_INT_WMAC_MISC BIT(0)
  737. #define QCA955X_EXT_INT_WMAC_TX BIT(1)
  738. #define QCA955X_EXT_INT_WMAC_RXLP BIT(2)
  739. #define QCA955X_EXT_INT_WMAC_RXHP BIT(3)
  740. #define QCA955X_EXT_INT_PCIE_RC1 BIT(4)
  741. #define QCA955X_EXT_INT_PCIE_RC1_INT0 BIT(5)
  742. #define QCA955X_EXT_INT_PCIE_RC1_INT1 BIT(6)
  743. #define QCA955X_EXT_INT_PCIE_RC1_INT2 BIT(7)
  744. #define QCA955X_EXT_INT_PCIE_RC1_INT3 BIT(8)
  745. #define QCA955X_EXT_INT_PCIE_RC2 BIT(12)
  746. #define QCA955X_EXT_INT_PCIE_RC2_INT0 BIT(13)
  747. #define QCA955X_EXT_INT_PCIE_RC2_INT1 BIT(14)
  748. #define QCA955X_EXT_INT_PCIE_RC2_INT2 BIT(15)
  749. #define QCA955X_EXT_INT_PCIE_RC2_INT3 BIT(16)
  750. #define QCA955X_EXT_INT_USB1 BIT(24)
  751. #define QCA955X_EXT_INT_USB2 BIT(28)
  752. #define QCA955X_EXT_INT_WMAC_ALL \
  753. (QCA955X_EXT_INT_WMAC_MISC | QCA955X_EXT_INT_WMAC_TX | \
  754. QCA955X_EXT_INT_WMAC_RXLP | QCA955X_EXT_INT_WMAC_RXHP)
  755. #define QCA955X_EXT_INT_PCIE_RC1_ALL \
  756. (QCA955X_EXT_INT_PCIE_RC1 | QCA955X_EXT_INT_PCIE_RC1_INT0 | \
  757. QCA955X_EXT_INT_PCIE_RC1_INT1 | QCA955X_EXT_INT_PCIE_RC1_INT2 | \
  758. QCA955X_EXT_INT_PCIE_RC1_INT3)
  759. #define QCA955X_EXT_INT_PCIE_RC2_ALL \
  760. (QCA955X_EXT_INT_PCIE_RC2 | QCA955X_EXT_INT_PCIE_RC2_INT0 | \
  761. QCA955X_EXT_INT_PCIE_RC2_INT1 | QCA955X_EXT_INT_PCIE_RC2_INT2 | \
  762. QCA955X_EXT_INT_PCIE_RC2_INT3)
  763. #define QCA956X_EXT_INT_WMAC_MISC BIT(0)
  764. #define QCA956X_EXT_INT_WMAC_TX BIT(1)
  765. #define QCA956X_EXT_INT_WMAC_RXLP BIT(2)
  766. #define QCA956X_EXT_INT_WMAC_RXHP BIT(3)
  767. #define QCA956X_EXT_INT_PCIE_RC1 BIT(4)
  768. #define QCA956X_EXT_INT_PCIE_RC1_INT0 BIT(5)
  769. #define QCA956X_EXT_INT_PCIE_RC1_INT1 BIT(6)
  770. #define QCA956X_EXT_INT_PCIE_RC1_INT2 BIT(7)
  771. #define QCA956X_EXT_INT_PCIE_RC1_INT3 BIT(8)
  772. #define QCA956X_EXT_INT_PCIE_RC2 BIT(12)
  773. #define QCA956X_EXT_INT_PCIE_RC2_INT0 BIT(13)
  774. #define QCA956X_EXT_INT_PCIE_RC2_INT1 BIT(14)
  775. #define QCA956X_EXT_INT_PCIE_RC2_INT2 BIT(15)
  776. #define QCA956X_EXT_INT_PCIE_RC2_INT3 BIT(16)
  777. #define QCA956X_EXT_INT_USB1 BIT(24)
  778. #define QCA956X_EXT_INT_USB2 BIT(28)
  779. #define QCA956X_EXT_INT_WMAC_ALL \
  780. (QCA956X_EXT_INT_WMAC_MISC | QCA956X_EXT_INT_WMAC_TX | \
  781. QCA956X_EXT_INT_WMAC_RXLP | QCA956X_EXT_INT_WMAC_RXHP)
  782. #define QCA956X_EXT_INT_PCIE_RC1_ALL \
  783. (QCA956X_EXT_INT_PCIE_RC1 | QCA956X_EXT_INT_PCIE_RC1_INT0 | \
  784. QCA956X_EXT_INT_PCIE_RC1_INT1 | QCA956X_EXT_INT_PCIE_RC1_INT2 | \
  785. QCA956X_EXT_INT_PCIE_RC1_INT3)
  786. #define QCA956X_EXT_INT_PCIE_RC2_ALL \
  787. (QCA956X_EXT_INT_PCIE_RC2 | QCA956X_EXT_INT_PCIE_RC2_INT0 | \
  788. QCA956X_EXT_INT_PCIE_RC2_INT1 | QCA956X_EXT_INT_PCIE_RC2_INT2 | \
  789. QCA956X_EXT_INT_PCIE_RC2_INT3)
  790. #define REV_ID_MAJOR_MASK 0xfff0
  791. #define REV_ID_MAJOR_AR71XX 0x00a0
  792. #define REV_ID_MAJOR_AR913X 0x00b0
  793. #define REV_ID_MAJOR_AR7240 0x00c0
  794. #define REV_ID_MAJOR_AR7241 0x0100
  795. #define REV_ID_MAJOR_AR7242 0x1100
  796. #define REV_ID_MAJOR_AR9330 0x0110
  797. #define REV_ID_MAJOR_AR9331 0x1110
  798. #define REV_ID_MAJOR_AR9341 0x0120
  799. #define REV_ID_MAJOR_AR9342 0x1120
  800. #define REV_ID_MAJOR_AR9344 0x2120
  801. #define REV_ID_MAJOR_QCA9533 0x0140
  802. #define REV_ID_MAJOR_QCA9533_V2 0x0160
  803. #define REV_ID_MAJOR_QCA9556 0x0130
  804. #define REV_ID_MAJOR_QCA9558 0x1130
  805. #define REV_ID_MAJOR_TP9343 0x0150
  806. #define REV_ID_MAJOR_QCA9561 0x1150
  807. #define AR71XX_REV_ID_MINOR_MASK 0x3
  808. #define AR71XX_REV_ID_MINOR_AR7130 0x0
  809. #define AR71XX_REV_ID_MINOR_AR7141 0x1
  810. #define AR71XX_REV_ID_MINOR_AR7161 0x2
  811. #define AR913X_REV_ID_MINOR_AR9130 0x0
  812. #define AR913X_REV_ID_MINOR_AR9132 0x1
  813. #define AR71XX_REV_ID_REVISION_MASK 0x3
  814. #define AR71XX_REV_ID_REVISION_SHIFT 2
  815. #define AR71XX_REV_ID_REVISION2_MASK 0xf
  816. /*
  817. * RTC block
  818. */
  819. #define AR933X_RTC_REG_RESET 0x40
  820. #define AR933X_RTC_REG_STATUS 0x44
  821. #define AR933X_RTC_REG_DERIVED 0x48
  822. #define AR933X_RTC_REG_FORCE_WAKE 0x4c
  823. #define AR933X_RTC_REG_INT_CAUSE 0x50
  824. #define AR933X_RTC_REG_CAUSE_CLR 0x50
  825. #define AR933X_RTC_REG_INT_ENABLE 0x54
  826. #define AR933X_RTC_REG_INT_MASKE 0x58
  827. #define QCA953X_RTC_REG_SYNC_RESET 0x40
  828. #define QCA953X_RTC_REG_SYNC_STATUS 0x44
  829. /*
  830. * SPI block
  831. */
  832. #define AR71XX_SPI_REG_FS 0x00
  833. #define AR71XX_SPI_REG_CTRL 0x04
  834. #define AR71XX_SPI_REG_IOC 0x08
  835. #define AR71XX_SPI_REG_RDS 0x0c
  836. #define AR71XX_SPI_FS_GPIO BIT(0)
  837. #define AR71XX_SPI_CTRL_RD BIT(6)
  838. #define AR71XX_SPI_CTRL_DIV_MASK 0x3f
  839. #define AR71XX_SPI_IOC_DO BIT(0)
  840. #define AR71XX_SPI_IOC_CLK BIT(8)
  841. #define AR71XX_SPI_IOC_CS(n) BIT(16 + (n))
  842. #define AR71XX_SPI_IOC_CS0 AR71XX_SPI_IOC_CS(0)
  843. #define AR71XX_SPI_IOC_CS1 AR71XX_SPI_IOC_CS(1)
  844. #define AR71XX_SPI_IOC_CS2 AR71XX_SPI_IOC_CS(2)
  845. #define AR71XX_SPI_IOC_CS_ALL \
  846. (AR71XX_SPI_IOC_CS0 | AR71XX_SPI_IOC_CS1 | AR71XX_SPI_IOC_CS2)
  847. /*
  848. * GPIO block
  849. */
  850. #define AR71XX_GPIO_REG_OE 0x00
  851. #define AR71XX_GPIO_REG_IN 0x04
  852. #define AR71XX_GPIO_REG_OUT 0x08
  853. #define AR71XX_GPIO_REG_SET 0x0c
  854. #define AR71XX_GPIO_REG_CLEAR 0x10
  855. #define AR71XX_GPIO_REG_INT_MODE 0x14
  856. #define AR71XX_GPIO_REG_INT_TYPE 0x18
  857. #define AR71XX_GPIO_REG_INT_POLARITY 0x1c
  858. #define AR71XX_GPIO_REG_INT_PENDING 0x20
  859. #define AR71XX_GPIO_REG_INT_ENABLE 0x24
  860. #define AR71XX_GPIO_REG_FUNC 0x28
  861. #define AR933X_GPIO_REG_FUNC 0x30
  862. #define AR934X_GPIO_REG_OUT_FUNC0 0x2c
  863. #define AR934X_GPIO_REG_OUT_FUNC1 0x30
  864. #define AR934X_GPIO_REG_OUT_FUNC2 0x34
  865. #define AR934X_GPIO_REG_OUT_FUNC3 0x38
  866. #define AR934X_GPIO_REG_OUT_FUNC4 0x3c
  867. #define AR934X_GPIO_REG_OUT_FUNC5 0x40
  868. #define AR934X_GPIO_REG_FUNC 0x6c
  869. #define QCA953X_GPIO_REG_OUT_FUNC0 0x2c
  870. #define QCA953X_GPIO_REG_OUT_FUNC1 0x30
  871. #define QCA953X_GPIO_REG_OUT_FUNC2 0x34
  872. #define QCA953X_GPIO_REG_OUT_FUNC3 0x38
  873. #define QCA953X_GPIO_REG_OUT_FUNC4 0x3c
  874. #define QCA953X_GPIO_REG_IN_ENABLE0 0x44
  875. #define QCA953X_GPIO_REG_FUNC 0x6c
  876. #define QCA955X_GPIO_REG_OUT_FUNC0 0x2c
  877. #define QCA955X_GPIO_REG_OUT_FUNC1 0x30
  878. #define QCA955X_GPIO_REG_OUT_FUNC2 0x34
  879. #define QCA955X_GPIO_REG_OUT_FUNC3 0x38
  880. #define QCA955X_GPIO_REG_OUT_FUNC4 0x3c
  881. #define QCA955X_GPIO_REG_OUT_FUNC5 0x40
  882. #define QCA955X_GPIO_REG_FUNC 0x6c
  883. #define QCA956X_GPIO_REG_OUT_FUNC0 0x2c
  884. #define QCA956X_GPIO_REG_OUT_FUNC1 0x30
  885. #define QCA956X_GPIO_REG_OUT_FUNC2 0x34
  886. #define QCA956X_GPIO_REG_OUT_FUNC3 0x38
  887. #define QCA956X_GPIO_REG_OUT_FUNC4 0x3c
  888. #define QCA956X_GPIO_REG_OUT_FUNC5 0x40
  889. #define QCA956X_GPIO_REG_IN_ENABLE0 0x44
  890. #define QCA956X_GPIO_REG_IN_ENABLE3 0x50
  891. #define QCA956X_GPIO_REG_FUNC 0x6c
  892. #define AR71XX_GPIO_FUNC_STEREO_EN BIT(17)
  893. #define AR71XX_GPIO_FUNC_SLIC_EN BIT(16)
  894. #define AR71XX_GPIO_FUNC_SPI_CS2_EN BIT(13)
  895. #define AR71XX_GPIO_FUNC_SPI_CS1_EN BIT(12)
  896. #define AR71XX_GPIO_FUNC_UART_EN BIT(8)
  897. #define AR71XX_GPIO_FUNC_USB_OC_EN BIT(4)
  898. #define AR71XX_GPIO_FUNC_USB_CLK_EN BIT(0)
  899. #define AR724X_GPIO_FUNC_GE0_MII_CLK_EN BIT(19)
  900. #define AR724X_GPIO_FUNC_SPI_EN BIT(18)
  901. #define AR724X_GPIO_FUNC_SPI_CS_EN2 BIT(14)
  902. #define AR724X_GPIO_FUNC_SPI_CS_EN1 BIT(13)
  903. #define AR724X_GPIO_FUNC_CLK_OBS5_EN BIT(12)
  904. #define AR724X_GPIO_FUNC_CLK_OBS4_EN BIT(11)
  905. #define AR724X_GPIO_FUNC_CLK_OBS3_EN BIT(10)
  906. #define AR724X_GPIO_FUNC_CLK_OBS2_EN BIT(9)
  907. #define AR724X_GPIO_FUNC_CLK_OBS1_EN BIT(8)
  908. #define AR724X_GPIO_FUNC_ETH_SWITCH_LED4_EN BIT(7)
  909. #define AR724X_GPIO_FUNC_ETH_SWITCH_LED3_EN BIT(6)
  910. #define AR724X_GPIO_FUNC_ETH_SWITCH_LED2_EN BIT(5)
  911. #define AR724X_GPIO_FUNC_ETH_SWITCH_LED1_EN BIT(4)
  912. #define AR724X_GPIO_FUNC_ETH_SWITCH_LED0_EN BIT(3)
  913. #define AR724X_GPIO_FUNC_UART_RTS_CTS_EN BIT(2)
  914. #define AR724X_GPIO_FUNC_UART_EN BIT(1)
  915. #define AR724X_GPIO_FUNC_JTAG_DISABLE BIT(0)
  916. #define AR913X_GPIO_FUNC_WMAC_LED_EN BIT(22)
  917. #define AR913X_GPIO_FUNC_EXP_PORT_CS_EN BIT(21)
  918. #define AR913X_GPIO_FUNC_I2S_REFCLKEN BIT(20)
  919. #define AR913X_GPIO_FUNC_I2S_MCKEN BIT(19)
  920. #define AR913X_GPIO_FUNC_I2S1_EN BIT(18)
  921. #define AR913X_GPIO_FUNC_I2S0_EN BIT(17)
  922. #define AR913X_GPIO_FUNC_SLIC_EN BIT(16)
  923. #define AR913X_GPIO_FUNC_UART_RTSCTS_EN BIT(9)
  924. #define AR913X_GPIO_FUNC_UART_EN BIT(8)
  925. #define AR913X_GPIO_FUNC_USB_CLK_EN BIT(4)
  926. #define AR933X_GPIO(x) BIT(x)
  927. #define AR933X_GPIO_FUNC_SPDIF2TCK BIT(31)
  928. #define AR933X_GPIO_FUNC_SPDIF_EN BIT(30)
  929. #define AR933X_GPIO_FUNC_I2SO_22_18_EN BIT(29)
  930. #define AR933X_GPIO_FUNC_I2S_MCK_EN BIT(27)
  931. #define AR933X_GPIO_FUNC_I2SO_EN BIT(26)
  932. #define AR933X_GPIO_FUNC_ETH_SWITCH_LED_DUPL BIT(25)
  933. #define AR933X_GPIO_FUNC_ETH_SWITCH_LED_COLL BIT(24)
  934. #define AR933X_GPIO_FUNC_ETH_SWITCH_LED_ACT BIT(23)
  935. #define AR933X_GPIO_FUNC_SPI_EN BIT(18)
  936. #define AR933X_GPIO_FUNC_RES_TRUE BIT(15)
  937. #define AR933X_GPIO_FUNC_SPI_CS_EN2 BIT(14)
  938. #define AR933X_GPIO_FUNC_SPI_CS_EN1 BIT(13)
  939. #define AR933X_GPIO_FUNC_XLNA_EN BIT(12)
  940. #define AR933X_GPIO_FUNC_ETH_SWITCH_LED4_EN BIT(7)
  941. #define AR933X_GPIO_FUNC_ETH_SWITCH_LED3_EN BIT(6)
  942. #define AR933X_GPIO_FUNC_ETH_SWITCH_LED2_EN BIT(5)
  943. #define AR933X_GPIO_FUNC_ETH_SWITCH_LED1_EN BIT(4)
  944. #define AR933X_GPIO_FUNC_ETH_SWITCH_LED0_EN BIT(3)
  945. #define AR933X_GPIO_FUNC_UART_RTS_CTS_EN BIT(2)
  946. #define AR933X_GPIO_FUNC_UART_EN BIT(1)
  947. #define AR933X_GPIO_FUNC_JTAG_DISABLE BIT(0)
  948. #define AR934X_GPIO_FUNC_CLK_OBS7_EN BIT(9)
  949. #define AR934X_GPIO_FUNC_CLK_OBS6_EN BIT(8)
  950. #define AR934X_GPIO_FUNC_CLK_OBS5_EN BIT(7)
  951. #define AR934X_GPIO_FUNC_CLK_OBS4_EN BIT(6)
  952. #define AR934X_GPIO_FUNC_CLK_OBS3_EN BIT(5)
  953. #define AR934X_GPIO_FUNC_CLK_OBS2_EN BIT(4)
  954. #define AR934X_GPIO_FUNC_CLK_OBS1_EN BIT(3)
  955. #define AR934X_GPIO_FUNC_CLK_OBS0_EN BIT(2)
  956. #define AR934X_GPIO_FUNC_JTAG_DISABLE BIT(1)
  957. #define AR934X_GPIO_OUT_GPIO 0
  958. #define AR934X_GPIO_OUT_SPI_CS1 7
  959. #define AR934X_GPIO_OUT_LED_LINK0 41
  960. #define AR934X_GPIO_OUT_LED_LINK1 42
  961. #define AR934X_GPIO_OUT_LED_LINK2 43
  962. #define AR934X_GPIO_OUT_LED_LINK3 44
  963. #define AR934X_GPIO_OUT_LED_LINK4 45
  964. #define AR934X_GPIO_OUT_EXT_LNA0 46
  965. #define AR934X_GPIO_OUT_EXT_LNA1 47
  966. #define QCA953X_GPIO(x) BIT(x)
  967. #define QCA953X_GPIO_MUX_MASK(x) (0xff << (x))
  968. #define QCA953X_GPIO_OUT_MUX_SPI_CS1 10
  969. #define QCA953X_GPIO_OUT_MUX_SPI_CS2 11
  970. #define QCA953X_GPIO_OUT_MUX_SPI_CS0 9
  971. #define QCA953X_GPIO_OUT_MUX_SPI_CLK 8
  972. #define QCA953X_GPIO_OUT_MUX_SPI_MOSI 12
  973. #define QCA953X_GPIO_OUT_MUX_UART0_SOUT 22
  974. #define QCA953X_GPIO_OUT_MUX_LED_LINK1 41
  975. #define QCA953X_GPIO_OUT_MUX_LED_LINK2 42
  976. #define QCA953X_GPIO_OUT_MUX_LED_LINK3 43
  977. #define QCA953X_GPIO_OUT_MUX_LED_LINK4 44
  978. #define QCA953X_GPIO_OUT_MUX_LED_LINK5 45
  979. #define QCA953X_GPIO_IN_MUX_UART0_SIN 9
  980. #define QCA953X_GPIO_IN_MUX_SPI_DATA_IN 8
  981. #define QCA956X_GPIO_OUT_MUX_GE0_MDO 32
  982. #define QCA956X_GPIO_OUT_MUX_GE0_MDC 33
  983. #define AR71XX_GPIO_COUNT 16
  984. #define AR7240_GPIO_COUNT 18
  985. #define AR7241_GPIO_COUNT 20
  986. #define AR913X_GPIO_COUNT 22
  987. #define AR933X_GPIO_COUNT 30
  988. #define AR934X_GPIO_COUNT 23
  989. #define QCA953X_GPIO_COUNT 18
  990. #define QCA955X_GPIO_COUNT 24
  991. #define QCA956X_GPIO_COUNT 23
  992. /*
  993. * SRIF block
  994. */
  995. #define AR933X_SRIF_DDR_DPLL1_REG 0x240
  996. #define AR933X_SRIF_DDR_DPLL2_REG 0x244
  997. #define AR933X_SRIF_DDR_DPLL3_REG 0x248
  998. #define AR933X_SRIF_DDR_DPLL4_REG 0x24c
  999. #define AR934X_SRIF_CPU_DPLL1_REG 0x1c0
  1000. #define AR934X_SRIF_CPU_DPLL2_REG 0x1c4
  1001. #define AR934X_SRIF_CPU_DPLL3_REG 0x1c8
  1002. #define AR934X_SRIF_CPU_DPLL4_REG 0x1cc
  1003. #define AR934X_SRIF_DDR_DPLL1_REG 0x240
  1004. #define AR934X_SRIF_DDR_DPLL2_REG 0x244
  1005. #define AR934X_SRIF_DDR_DPLL3_REG 0x248
  1006. #define AR934X_SRIF_DDR_DPLL4_REG 0x24c
  1007. #define AR934X_SRIF_DPLL1_REFDIV_SHIFT 27
  1008. #define AR934X_SRIF_DPLL1_REFDIV_MASK 0x1f
  1009. #define AR934X_SRIF_DPLL1_NINT_SHIFT 18
  1010. #define AR934X_SRIF_DPLL1_NINT_MASK 0x1ff
  1011. #define AR934X_SRIF_DPLL1_NFRAC_MASK 0x0003ffff
  1012. #define AR934X_SRIF_DPLL2_LOCAL_PLL BIT(30)
  1013. #define AR934X_SRIF_DPLL2_OUTDIV_SHIFT 13
  1014. #define AR934X_SRIF_DPLL2_OUTDIV_MASK 0x7
  1015. #define QCA953X_SRIF_BB_DPLL1_REG 0x180
  1016. #define QCA953X_SRIF_BB_DPLL2_REG 0x184
  1017. #define QCA953X_SRIF_BB_DPLL3_REG 0x188
  1018. #define QCA953X_SRIF_CPU_DPLL1_REG 0x1c0
  1019. #define QCA953X_SRIF_CPU_DPLL2_REG 0x1c4
  1020. #define QCA953X_SRIF_CPU_DPLL3_REG 0x1c8
  1021. #define QCA953X_SRIF_DDR_DPLL1_REG 0x240
  1022. #define QCA953X_SRIF_DDR_DPLL2_REG 0x244
  1023. #define QCA953X_SRIF_DDR_DPLL3_REG 0x248
  1024. #define QCA953X_SRIF_PCIE_DPLL1_REG 0xc00
  1025. #define QCA953X_SRIF_PCIE_DPLL2_REG 0xc04
  1026. #define QCA953X_SRIF_PCIE_DPLL3_REG 0xc08
  1027. #define QCA953X_SRIF_PMU1_REG 0xc40
  1028. #define QCA953X_SRIF_PMU2_REG 0xc44
  1029. #define QCA953X_SRIF_DPLL1_REFDIV_SHIFT 27
  1030. #define QCA953X_SRIF_DPLL1_REFDIV_MASK 0x1f
  1031. #define QCA953X_SRIF_DPLL1_NINT_SHIFT 18
  1032. #define QCA953X_SRIF_DPLL1_NINT_MASK 0x1ff
  1033. #define QCA953X_SRIF_DPLL1_NFRAC_MASK 0x0003ffff
  1034. #define QCA953X_SRIF_DPLL2_LOCAL_PLL BIT(30)
  1035. #define QCA953X_SRIF_DPLL2_KI_SHIFT 29
  1036. #define QCA953X_SRIF_DPLL2_KI_MASK 0x3
  1037. #define QCA953X_SRIF_DPLL2_KD_SHIFT 25
  1038. #define QCA953X_SRIF_DPLL2_KD_MASK 0xf
  1039. #define QCA953X_SRIF_DPLL2_PWD BIT(22)
  1040. #define QCA953X_SRIF_DPLL2_OUTDIV_SHIFT 13
  1041. #define QCA953X_SRIF_DPLL2_OUTDIV_MASK 0x7
  1042. /*
  1043. * MII_CTRL block
  1044. */
  1045. #define AR71XX_MII_REG_MII0_CTRL 0x00
  1046. #define AR71XX_MII_REG_MII1_CTRL 0x04
  1047. #define AR71XX_MII_CTRL_IF_MASK 3
  1048. #define AR71XX_MII_CTRL_SPEED_SHIFT 4
  1049. #define AR71XX_MII_CTRL_SPEED_MASK 3
  1050. #define AR71XX_MII_CTRL_SPEED_10 0
  1051. #define AR71XX_MII_CTRL_SPEED_100 1
  1052. #define AR71XX_MII_CTRL_SPEED_1000 2
  1053. #define AR71XX_MII0_CTRL_IF_GMII 0
  1054. #define AR71XX_MII0_CTRL_IF_MII 1
  1055. #define AR71XX_MII0_CTRL_IF_RGMII 2
  1056. #define AR71XX_MII0_CTRL_IF_RMII 3
  1057. #define AR71XX_MII1_CTRL_IF_RGMII 0
  1058. #define AR71XX_MII1_CTRL_IF_RMII 1
  1059. /*
  1060. * AR933X GMAC interface
  1061. */
  1062. #define AR933X_GMAC_REG_ETH_CFG 0x00
  1063. #define AR933X_ETH_CFG_RGMII_GE0 BIT(0)
  1064. #define AR933X_ETH_CFG_MII_GE0 BIT(1)
  1065. #define AR933X_ETH_CFG_GMII_GE0 BIT(2)
  1066. #define AR933X_ETH_CFG_MII_GE0_MASTER BIT(3)
  1067. #define AR933X_ETH_CFG_MII_GE0_SLAVE BIT(4)
  1068. #define AR933X_ETH_CFG_MII_GE0_ERR_EN BIT(5)
  1069. #define AR933X_ETH_CFG_SW_PHY_SWAP BIT(7)
  1070. #define AR933X_ETH_CFG_SW_PHY_ADDR_SWAP BIT(8)
  1071. #define AR933X_ETH_CFG_RMII_GE0 BIT(9)
  1072. #define AR933X_ETH_CFG_RMII_GE0_SPD_10 0
  1073. #define AR933X_ETH_CFG_RMII_GE0_SPD_100 BIT(10)
  1074. /*
  1075. * AR934X GMAC Interface
  1076. */
  1077. #define AR934X_GMAC_REG_ETH_CFG 0x00
  1078. #define AR934X_ETH_CFG_RGMII_GMAC0 BIT(0)
  1079. #define AR934X_ETH_CFG_MII_GMAC0 BIT(1)
  1080. #define AR934X_ETH_CFG_GMII_GMAC0 BIT(2)
  1081. #define AR934X_ETH_CFG_MII_GMAC0_MASTER BIT(3)
  1082. #define AR934X_ETH_CFG_MII_GMAC0_SLAVE BIT(4)
  1083. #define AR934X_ETH_CFG_MII_GMAC0_ERR_EN BIT(5)
  1084. #define AR934X_ETH_CFG_SW_ONLY_MODE BIT(6)
  1085. #define AR934X_ETH_CFG_SW_PHY_SWAP BIT(7)
  1086. #define AR934X_ETH_CFG_SW_APB_ACCESS BIT(9)
  1087. #define AR934X_ETH_CFG_RMII_GMAC0 BIT(10)
  1088. #define AR933X_ETH_CFG_MII_CNTL_SPEED BIT(11)
  1089. #define AR934X_ETH_CFG_RMII_GMAC0_MASTER BIT(12)
  1090. #define AR933X_ETH_CFG_SW_ACC_MSB_FIRST BIT(13)
  1091. #define AR934X_ETH_CFG_RXD_DELAY BIT(14)
  1092. #define AR934X_ETH_CFG_RXD_DELAY_MASK 0x3
  1093. #define AR934X_ETH_CFG_RXD_DELAY_SHIFT 14
  1094. #define AR934X_ETH_CFG_RDV_DELAY BIT(16)
  1095. #define AR934X_ETH_CFG_RDV_DELAY_MASK 0x3
  1096. #define AR934X_ETH_CFG_RDV_DELAY_SHIFT 16
  1097. /*
  1098. * QCA953X GMAC Interface
  1099. */
  1100. #define QCA953X_GMAC_REG_ETH_CFG 0x00
  1101. #define QCA953X_ETH_CFG_SW_ONLY_MODE BIT(6)
  1102. #define QCA953X_ETH_CFG_SW_PHY_SWAP BIT(7)
  1103. #define QCA953X_ETH_CFG_SW_APB_ACCESS BIT(9)
  1104. #define QCA953X_ETH_CFG_SW_ACC_MSB_FIRST BIT(13)
  1105. /*
  1106. * QCA955X GMAC Interface
  1107. */
  1108. #define QCA955X_GMAC_REG_ETH_CFG 0x00
  1109. #define QCA955X_ETH_CFG_RGMII_EN BIT(0)
  1110. #define QCA955X_ETH_CFG_GE0_SGMII BIT(6)
  1111. #endif /* __ASM_AR71XX_H */