fparameters_comm.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624
  1. /*
  2. * Copyright : (C) 2022 Phytium Information Technology, Inc.
  3. * All Rights Reserved.
  4. *
  5. * This program is OPEN SOURCE software: you can redistribute it and/or modify it
  6. * under the terms of the Phytium Public License as published by the Phytium Technology Co.,Ltd,
  7. * either version 1.0 of the License, or (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY;
  10. * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  11. * See the Phytium Public License for more details.
  12. *
  13. *
  14. * FilePath: fparameters_comm.h
  15. * Date: 2022-02-10 14:53:42
  16. * LastEditTime: 2022-02-17 18:01:11
  17. * Description:  This files is for
  18. *
  19. * Modify History:
  20. * Ver   Who        Date         Changes
  21. * ----- ------     --------    --------------------------------------
  22. */
  23. #ifndef BOARD_E2000_PARAMTERERS_COMMON_H
  24. #define BOARD_E2000_PARAMTERERS_COMMON_H
  25. #ifdef __cplusplus
  26. extern "C"
  27. {
  28. #endif
  29. /***************************** Include Files *********************************/
  30. #if !defined(__ASSEMBLER__)
  31. #include "ftypes.h"
  32. #endif
  33. /************************** Constant Definitions *****************************/
  34. /* CACHE */
  35. #define CACHE_LINE_ADDR_MASK 0x3FU
  36. #define CACHE_LINE 64U
  37. /* DEVICE Register Address */
  38. #define FT_DEV_BASE_ADDR 0x28000000U
  39. #define FT_DEV_END_ADDR 0x2FFFFFFFU
  40. /* PCI */
  41. #define FT_PCIE_NUM 1
  42. #define FT_PCIE0_ID 0
  43. #define FT_PCIE0_MISC_IRQ_NUM 40
  44. #define FT_PCIE_CFG_MAX_NUM_OF_BUS 256
  45. #define FT_PCIE_CFG_MAX_NUM_OF_DEV 32
  46. #define FT_PCIE_CFG_MAX_NUM_OF_FUN 8
  47. #define FT_PCI_CONFIG_BASEADDR 0x40000000U
  48. #define FT_PCI_CONFIG_REG_LENGTH 0x10000000U
  49. #define FT_PCI_IO_CONFIG_BASEADDR 0x50000000U
  50. #define FT_PCI_IO_CONFIG_REG_LENGTH 0x08000000U
  51. #define FT_PCI_MEM32_BASEADDR 0x58000000U
  52. #define FT_PCI_MEM32_REG_LENGTH 0x27FFFFFFU
  53. #define FT_PCI_MEM64_BASEADDR 0x1000000000U
  54. #define FT_PCI_MEM64_REG_LENGTH 0x1000000000U
  55. #define FT_PCI_EU0_C0_CONTROL_BASEADDR 0x29000000U
  56. #define FT_PCI_EU0_C1_CONTROL_BASEADDR 0x29010000U
  57. #define FT_PCI_EU0_C2_CONTROL_BASEADDR 0x29020000U
  58. #define FT_PCI_EU1_C0_CONTROL_BASEADDR 0x29030000U
  59. #define FT_PCI_EU1_C1_CONTROL_BASEADDR 0x29040000U
  60. #define FT_PCI_EU1_C2_CONTROL_BASEADDR 0x29050000U
  61. #define FT_PCI_EU0_CONFIG_BASEADDR 0x29100000U
  62. #define FT_PCI_EU1_CONFIG_BASEADDR 0x29101000U
  63. #define FT_PCI_INTA_IRQ_NUM 36
  64. #define FT_PCI_INTB_IRQ_NUM 37
  65. #define FT_PCI_INTC_IRQ_NUM 38
  66. #define FT_PCI_INTD_IRQ_NUM 39
  67. #define FT_PCI_NEED_SKIP 0
  68. #define FT_PCI_INTX_PEU0_STAT 0x29100000U
  69. #define FT_PCI_INTX_PEU1_STAT 0x29101000U
  70. #define FT_PCI_INTX_EU0_C0_CONTROL 0x29000184U
  71. #define FT_PCI_INTX_EU0_C1_CONTROL 0x29010184U
  72. #define FT_PCI_INTX_EU0_C2_CONTROL 0x29020184U
  73. #define FT_PCI_INTX_EU1_C0_CONTROL 0x29030184U
  74. #define FT_PCI_INTX_EU1_C1_CONTROL 0x29040184U
  75. #define FT_PCI_INTX_EU1_C2_CONTROL 0x29050184U
  76. #define FT_PCI_INTX_CONTROL_NUM 6 /* Total number of controllers */
  77. #define FT_PCI_INTX_SATA_NUM 2 /* Total number of controllers */
  78. /* platform ahci host */
  79. #define PLAT_AHCI_HOST_MAX_COUNT 5
  80. #define AHCI_BASE_0 0
  81. #define AHCI_BASE_1 0
  82. #define AHCI_BASE_2 0
  83. #define AHCI_BASE_3 0
  84. #define AHCI_BASE_4 0
  85. #define AHCI_IRQ_0 0
  86. #define AHCI_IRQ_1 0
  87. #define AHCI_IRQ_2 0
  88. #define AHCI_IRQ_3 0
  89. #define AHCI_IRQ_4 0
  90. /* sata controller */
  91. #define FSATA0_BASEADDR 0x31A40000U
  92. #define FSATA1_BASEADDR 0x32014000U
  93. #define FSATA0_IRQNUM 74
  94. #define FSATA1_IRQNUM 75
  95. #if !defined(__ASSEMBLER__)
  96. typedef enum
  97. {
  98. FSATA_INSTANCE_0 = 0,
  99. FSATA_INSTANCE_1 = 1,
  100. FSATA_INSTANCE_NUM
  101. } FSataInstance;
  102. #endif
  103. /* Generic Timer */
  104. #define GENERIC_TIMER_CLK_FREQ_MHZ 48U
  105. #define GENERIC_TIMER_NS_IRQ_NUM 30U
  106. #define GENERIC_TIMER_NS_CLK_FREQ 2000000U
  107. #define COUNTS_PER_SECOND GENERIC_TIMER_NS_CLK_FREQ
  108. /* UART */
  109. #define FUART_NUM 4U
  110. #define FUART_REG_LENGTH 0x18000U
  111. #define FUART0_ID 0U
  112. #define FUART0_IRQ_NUM (85 + 30)
  113. #define FUART0_BASE_ADDR 0x2800c000U
  114. #define FUART0_CLK_FREQ_HZ 100000000U
  115. #define FUART1_ID 1U
  116. #define FUART1_IRQ_NUM (86 + 30)
  117. #define FUART1_BASE_ADDR 0x2800d000U
  118. #define FUART1_CLK_FREQ_HZ 100000000U
  119. #define FUART2_ID 2U
  120. #define FUART2_IRQ_NUM (87 + 30)
  121. #define FUART2_BASE_ADDR 0x2800e000U
  122. #define FUART2_CLK_FREQ_HZ 100000000U
  123. #define FUART3_BASE_ADDR 0x2800f000U
  124. #define FUART3_ID 3U
  125. #define FUART3_IRQ_NUM (88 + 30)
  126. #define FUART3_CLK_FREQ_HZ 100000000U
  127. #define FT_STDOUT_BASE_ADDR FUART1_BASE_ADDR
  128. #define FT_STDIN_BASE_ADDR FUART1_BASE_ADDR
  129. /****** GIC v3 *****/
  130. #define FT_GICV3_INSTANCES_NUM 1U
  131. #define GICV3_REG_LENGTH 0x00009000U
  132. /*
  133. * The maximum priority value that can be used in the GIC.
  134. */
  135. #define GICV3_MAX_INTR_PRIO_VAL 240U
  136. #define GICV3_INTR_PRIO_MASK 0x000000f0U
  137. #define ARM_GIC_NR_IRQS 160U
  138. #define ARM_GIC_IRQ_START 0U
  139. #define FGIC_NUM 1U
  140. #define ARM_GIC_IPI_COUNT 16U /* MPCore IPI count */
  141. #define SGI_INT_MAX 16U
  142. #define SPI_START_INT_NUM 32U /* SPI start at ID32 */
  143. #define PPI_START_INT_NUM 16U /* PPI start at ID16 */
  144. #define GIC_INT_MAX_NUM 1020U /* GIC max interrupts count */
  145. #define GICV3_BASEADDRESS 0x30800000U
  146. #define GICV3_DISTRIBUTOR_BASEADDRESS (GICV3_BASEADDRESS + 0)
  147. #define GICV3_RD_BASEADDRESS (GICV3_BASEADDRESS + 0x80000U)
  148. #define GICV3_RD_OFFSET (2U << 16)
  149. #define FT_GICV3_VECTORTABLE_NUM GIC_INT_MAX_NUM
  150. /* GPIO */
  151. #define FGPIO_ID_0 0U
  152. #define FGPIO_ID_1 1U
  153. #define FGPIO_ID_2 2U
  154. #define FGPIO_WITH_PIN_IRQ 2U /* max id of gpio assign irq for each pin */
  155. #define FGPIO_ID_3 3U
  156. #define FGPIO_ID_4 4U
  157. #define FGPIO_ID_5 5U
  158. #define FGPIO_NUM 6U
  159. #define FGPIO_0_BASE_ADDR 0x28034000U
  160. #define FGPIO_1_BASE_ADDR 0x28035000U
  161. #define FGPIO_2_BASE_ADDR 0x28036000U
  162. #define FGPIO_3_BASE_ADDR 0x28037000U
  163. #define FGPIO_4_BASE_ADDR 0x28038000U
  164. #define FGPIO_5_BASE_ADDR 0x28039000U
  165. #define FGPIO_CTRL_PIN_NUM 16U
  166. #define FGPIO_PIN_IRQ_BASE 140U
  167. #define FGPIO_PIN_IRQ_NUM_GET(id, pin) (FGPIO_PIN_IRQ_BASE + FGPIO_CTRL_PIN_NUM * (id) + (pin))
  168. #define FGPIO_3_IRQ_NUM 188U
  169. #define FGPIO_4_IRQ_NUM 189U
  170. #define FGPIO_5_IRQ_NUM 190U
  171. #define FGPIO_PIN_IRQ_TOTAL 51U
  172. /* SPI */
  173. #define FSPI0_BASE 0x2803A000U
  174. #define FSPI1_BASE 0x2803B000U
  175. #define FSPI2_BASE 0x2803C000U
  176. #define FSPI3_BASE 0x2803D000U
  177. #define FSPI0_ID 0U
  178. #define FSPI1_ID 1U
  179. #define FSPI2_ID 2U
  180. #define FSPI3_ID 3U
  181. #define FSPI0_IRQ_NUM 191U
  182. #define FSPI1_IRQ_NUM 192U
  183. #define FSPI2_IRQ_NUM 193U
  184. #define FSPI3_IRQ_NUM 194U
  185. #define FSPI_FREQ 50000000U
  186. #define FSPI_DEVICE_NUM 4U
  187. /* XMAC */
  188. #define FT_XMAC_NUM 4U
  189. #define FT_XMAC0_ID 0U
  190. #define FT_XMAC1_ID 1U
  191. #define FT_XMAC2_ID 2U
  192. #define FT_XMAC3_ID 3U
  193. #define FT_XMAC0_BASEADDRESS 0x3200C000U
  194. #define FT_XMAC1_BASEADDRESS 0x3200E000U
  195. #define FT_XMAC2_BASEADDRESS 0x32010000U
  196. #define FT_XMAC3_BASEADDRESS 0x32012000U
  197. #define FT_XMAC0_MODE_SEL_BASEADDRESS 0x3200DC00U
  198. #define FT_XMAC0_LOOPBACK_SEL_BASEADDRESS 0x3200DC04U
  199. #define FT_XMAC1_MODE_SEL_BASEADDRESS 0x3200FC00U
  200. #define FT_XMAC1_LOOPBACK_SEL_BASEADDRESS 0x3200FC04U
  201. #define FT_XMAC2_MODE_SEL_BASEADDRESS 0x32011C00U
  202. #define FT_XMAC2_LOOPBACK_SEL_BASEADDRESS 0x32011C04U
  203. #define FT_XMAC3_MODE_SEL_BASEADDRESS 0x32013C00U
  204. #define FT_XMAC3_LOOPBACK_SEL_BASEADDRESS 0x32013C04U
  205. #define FT_XMAC0_PCLK 50000000U
  206. #define FT_XMAC1_PCLK 50000000U
  207. #define FT_XMAC2_PCLK 50000000U
  208. #define FT_XMAC3_PCLK 50000000U
  209. #define FT_XMAC0_HOTPLUG_IRQ_NUM (53U + 30U)
  210. #define FT_XMAC1_HOTPLUG_IRQ_NUM (54U + 30U)
  211. #define FT_XMAC2_HOTPLUG_IRQ_NUM (55U + 30U)
  212. #define FT_XMAC3_HOTPLUG_IRQ_NUM (56U + 30U)
  213. #define FT_XMAC_QUEUE_MAX_NUM 16U
  214. #define FT_XMAC0_QUEUE0_IRQ_NUM (57U + 30U)
  215. #define FT_XMAC0_QUEUE1_IRQ_NUM (58U + 30U)
  216. #define FT_XMAC0_QUEUE2_IRQ_NUM (59U + 30U)
  217. #define FT_XMAC0_QUEUE3_IRQ_NUM (60U + 30U)
  218. #define FT_XMAC0_QUEUE4_IRQ_NUM (30U + 30U)
  219. #define FT_XMAC0_QUEUE5_IRQ_NUM (31U + 30U)
  220. #define FT_XMAC0_QUEUE6_IRQ_NUM (32U + 30U)
  221. #define FT_XMAC0_QUEUE7_IRQ_NUM (33U + 30U)
  222. #define FT_XMAC1_QUEUE0_IRQ_NUM (61U + 30U)
  223. #define FT_XMAC1_QUEUE1_IRQ_NUM (62U + 30U)
  224. #define FT_XMAC1_QUEUE2_IRQ_NUM (63U + 30U)
  225. #define FT_XMAC1_QUEUE3_IRQ_NUM (64U + 30U)
  226. #define FT_XMAC2_QUEUE0_IRQ_NUM (66U + 30U)
  227. #define FT_XMAC2_QUEUE1_IRQ_NUM (67U + 30U)
  228. #define FT_XMAC2_QUEUE2_IRQ_NUM (68U + 30U)
  229. #define FT_XMAC2_QUEUE3_IRQ_NUM (69U + 30U)
  230. #define FT_XMAC3_QUEUE0_IRQ_NUM (70U + 30U)
  231. #define FT_XMAC3_QUEUE1_IRQ_NUM (71U + 30U)
  232. #define FT_XMAC3_QUEUE2_IRQ_NUM (72U + 30U)
  233. #define FT_XMAC3_QUEUE3_IRQ_NUM (73U + 30U)
  234. #define FT_XMAC_PHY_MAX_NUM 32U
  235. /* QSPI */
  236. #define FQSPI_BASEADDR 0x028008000U
  237. #if !defined(__ASSEMBLER__)
  238. typedef enum
  239. {
  240. FQSPI_INSTANCE_0 = 0,
  241. FQSPI_INSTANCE_NUM
  242. } FQspiInstance;
  243. /* FQSPI cs 0_3, chip number */
  244. typedef enum
  245. {
  246. FQSPI_CS_0 = 0,
  247. FQSPI_CS_1 = 1,
  248. FQSPI_CS_2 = 2,
  249. FQSPI_CS_3 = 3,
  250. FQSPI_CS_NUM
  251. } FQspiChipCS;
  252. #endif
  253. #define FQSPI_MEM_START_ADDR 0x0U
  254. #define FQSPI_MEM_END_ADDR 0x0FFFFFFFU /* 256MB */
  255. #define FQSPI_MEM_START_ADDR_64 0x100000000U
  256. #define FQSPI_MEM_END_ADDR_64 0x17FFFFFFFU /* 2GB */
  257. /* TIMER and TACHO */
  258. #define TIMER_NUM 38U
  259. #define TACHO_NUM 16U
  260. #define TIMER_CLK_FREQ_HZ 50000000U /* 50MHz */
  261. #define TIMER_TICK_PERIOD_NS 20U /* 20ns */
  262. #define TIMER_TACHO_IRQ_ID(n) (226U + (n))
  263. #define TIMER_TACHO_BASE_ADDR(n) (0x28054000U + 0x1000U * (n))
  264. #if !defined(__ASSEMBLER__)
  265. typedef enum
  266. {
  267. TACHO_INSTANCE_0 = 0,
  268. TACHO_INSTANCE_1 = 1,
  269. TACHO_INSTANCE_2 = 2,
  270. TACHO_INSTANCE_3 = 3,
  271. TACHO_INSTANCE_4 = 4,
  272. TACHO_INSTANCE_5 = 5,
  273. TACHO_INSTANCE_6 = 6,
  274. TACHO_INSTANCE_7 = 7,
  275. TACHO_INSTANCE_8 = 8,
  276. TACHO_INSTANCE_9 = 9,
  277. TACHO_INSTANCE_10 = 10,
  278. TACHO_INSTANCE_11 = 11,
  279. TACHO_INSTANCE_12 = 12,
  280. TACHO_INSTANCE_13 = 13,
  281. TACHO_INSTANCE_14 = 14,
  282. TACHO_INSTANCE_15 = 15,
  283. TACHO_INSTANCE_NUM
  284. } TachoInstance;
  285. #endif
  286. /* GDMA */
  287. #define FGDMA0_ID 0U
  288. #define FGDMA0_BASE_ADDR 0x32B34000U
  289. #define FGDMA0_IRQ_NUM 266U
  290. #define FGDMA_INSTANCE_NUM 1U
  291. /* CANFD */
  292. #define FCAN_REF_CLOCK 200000000U
  293. #define FCAN0_BASEADDR 0x2800A000U
  294. #define FCAN1_BASEADDR 0x2800B000U
  295. #define FCAN0_IRQNUM 113U
  296. #define FCAN1_IRQNUM 114U
  297. #if !defined(__ASSEMBLER__)
  298. typedef enum
  299. {
  300. FCAN_INSTANCE_0 = 0,
  301. FCAN_INSTANCE_1 = 1,
  302. FCAN_INSTANCE_NUM
  303. } FCanInstance;
  304. #endif
  305. /* WDT */
  306. #if !defined(__ASSEMBLER__)
  307. typedef enum
  308. {
  309. FWDT_INSTANCE_0 = 0,
  310. FWDT_INSTANCE_1,
  311. FWDT_INSTANCE_NUM
  312. } FWdtInstance;
  313. #endif
  314. #define FWDT0_REFRESH_BASE 0x28040000U
  315. #define FWDT0_CONTROL_BASE 0x28041000U
  316. #define FWDT1_REFRESH_BASE 0x28042000U
  317. #define FWDT1_CONTROL_BASE 0x28043000U
  318. #define FWDT0_INTR_IRQ 196U
  319. #define FWDT1_INTR_IRQ 197U
  320. #define FWDT_CLK 48000000U /* 48MHz */
  321. /*MIO*/
  322. #define FMIO_NUM 16
  323. #define FMIO_BASE_ADDR(n) (0x28014000 + 0x2000 * (n))
  324. #define FMIO_CONF_ADDR(n) FMIO_BASE_ADDR(n)+0x1000
  325. #define FMIO_IRQ_NUM(n) (124+n)
  326. #define MIO_REF_CLK_HZ 50000000 /* 50MHz */
  327. #if !defined(__ASSEMBLER__)
  328. typedef enum
  329. {
  330. MIO_INSTANCE_0 = 0,
  331. MIO_INSTANCE_1,
  332. MIO_INSTANCE_2,
  333. MIO_INSTANCE_3,
  334. MIO_INSTANCE_4,
  335. MIO_INSTANCE_5,
  336. MIO_INSTANCE_6,
  337. MIO_INSTANCE_7,
  338. MIO_INSTANCE_8,
  339. MIO_INSTANCE_9,
  340. MIO_INSTANCE_10,
  341. MIO_INSTANCE_11,
  342. MIO_INSTANCE_12,
  343. MIO_INSTANCE_13,
  344. MIO_INSTANCE_14,
  345. MIO_INSTANCE_15,
  346. MIO_INSTANCE_NUM
  347. } MioInstance;
  348. #endif
  349. #if !defined(__ASSEMBLER__)
  350. /*I2C0 -> PMBUS0
  351. * I2C1 -> PMBUS1
  352. * I2C2 -> SMBUS0
  353. */
  354. typedef enum
  355. {
  356. I2C_INSTANCE_0 = 0,
  357. I2C_INSTANCE_1,
  358. I2C_INSTANCE_2,
  359. I2C_INSTANCE_NUM
  360. } I2cInstance;
  361. #endif
  362. #define I2C_0_BASEADDR 0x28011000
  363. #define I2C_1_BASEADDR 0x28012000
  364. #define I2C_2_BASEADDR 0x28013000
  365. #define I2C_0_INTR_IRQ 121
  366. #define I2C_1_INTR_IRQ 122
  367. #define I2C_2_INTR_IRQ 123
  368. #define I2C_REF_CLK_HZ 50000000 /* 50MHz */
  369. /* SDIO */
  370. #if !defined(__ASSEMBLER__)
  371. enum
  372. {
  373. FSDIO_HOST_INSTANCE_0 = 0,
  374. FSDIO_HOST_INSTANCE_1,
  375. FSDIO_HOST_INSTANCE_NUM
  376. };
  377. #endif
  378. #define FSDIO_HOST_0_BASE_ADDR 0x28000000U
  379. #define FSDIO_HOST_1_BASE_ADDR 0x28001000U
  380. #define FSDIO_HOST_0_IRQ_NUM 104U
  381. #define FSDIO_HOST_1_IRQ_NUM 105U
  382. #define FSDIO_CLK_RATE_HZ (1200000000UL) /* 1.2GHz */
  383. /* NAND */
  384. #define FNAND_NUM 1U
  385. #define FNAND_INSTANCE0 0U
  386. #define FNAND_BASEADDRESS 0x28002000U
  387. #define FNAND_IRQ_NUM (106U)
  388. #define FNAND_CONNECT_MAX_NUM 1U
  389. #define FIOPAD_BASE_ADDR 0x32B30000U
  390. /* DDMA */
  391. #define FDDMA0_ID 0U
  392. #define FDDMA0_BASE_ADDR 0x28003000U
  393. #define FDDMA0_IRQ_NUM 107U
  394. #define FDDMA1_ID 1U
  395. #define FDDMA1_BASE_ADDR 0x28004000U
  396. #define FDDMA1_IRQ_NUM 108U
  397. #define FDDMA_INSTANCE_NUM 2U
  398. #define FDDMA0_UART0_TX_SLAVE_ID 2U /* uart0 tx slave-id */
  399. #define FDDMA0_UART1_TX_SLAVE_ID 3U /* uart1 tx slave-id */
  400. #define FDDMA0_UART2_TX_SLAVE_ID 4U /* uart2 tx slave-id */
  401. #define FDDMA0_UART3_TX_SLAVE_ID 5U /* uart3 tx slave-id */
  402. #define FDDMA0_SPIM0_TX_SLAVE_ID 6U /* spi0 tx slave-id */
  403. #define FDDMA0_SPIM1_TX_SLAVE_ID 7U /* spi1 tx slave-id */
  404. #define FDDMA0_SPIM2_TX_SLAVE_ID 8U /* spi2 tx slave-id */
  405. #define FDDMA0_SPIM3_TX_SLAVE_ID 9U /* spi3 tx slave-id */
  406. #define FDDMA0_UART0_RX_SLAVE_ID 15U /* uart0 rx slave-id */
  407. #define FDDMA0_UART1_RX_SLAVE_ID 16U /* uart1 rx slave-id */
  408. #define FDDMA0_UART2_RX_SLAVE_ID 17U /* uart2 rx slave-id */
  409. #define FDDMA0_UART3_RX_SLAVE_ID 18U /* uart3 rx slave-id */
  410. #define FDDMA0_SPIM0_RX_SLAVE_ID 19U /* spi0 rx slave-id */
  411. #define FDDMA0_SPIM1_RX_SLAVE_ID 20U /* spi1 rx slave-id */
  412. #define FDDMA0_SPIM2_RX_SLAVE_ID 21U /* spi2 rx slave-id */
  413. #define FDDMA0_SPIM3_RX_SLAVE_ID 22U /* spi3 rx slave-id */
  414. #define FDDMA_MIN_SLAVE_ID 0U
  415. #define FDDMA_MAX_SLAVE_ID 31U
  416. /* ADC */
  417. #if !defined(__ASSEMBLER__)
  418. typedef enum
  419. {
  420. FADC_INSTANCE_0 = 0,
  421. FADC_INSTANCE_1,
  422. FADC_INSTANCE_NUM
  423. } FAdcInstance;
  424. typedef enum
  425. {
  426. FADC_CHANNEL_0 = 0,
  427. FADC_CHANNEL_1 = 1,
  428. FADC_CHANNEL_2,
  429. FADC_CHANNEL_3,
  430. FADC_CHANNEL_4,
  431. FADC_CHANNEL_5,
  432. FADC_CHANNEL_6,
  433. FADC_CHANNEL_7,
  434. FADC_CHANNEL_NUM
  435. } FAdcChannel;
  436. #endif
  437. #define FADC0_CONTROL_BASE 0x2807B000U
  438. #define FADC1_CONTROL_BASE 0x2807C000U
  439. #define FADC0_INTR_IRQ 264U
  440. #define FADC1_INTR_IRQ 265U
  441. /* PWM */
  442. #if !defined(__ASSEMBLER__)
  443. typedef enum
  444. {
  445. FPWM_INSTANCE_0 = 0,
  446. FPWM_INSTANCE_1,
  447. FPWM_INSTANCE_2,
  448. FPWM_INSTANCE_3,
  449. FPWM_INSTANCE_4,
  450. FPWM_INSTANCE_5,
  451. FPWM_INSTANCE_6,
  452. FPWM_INSTANCE_7,
  453. FPWM_INSTANCE_NUM
  454. } FPwmInstance;
  455. typedef enum
  456. {
  457. FPWM_CHANNEL_0 = 0,
  458. FPWM_CHANNEL_1,
  459. FPWM_CHANNEL_NUM
  460. } FPwmChannel;
  461. #endif
  462. #define FPWM_CONTROL_BASE 0x2804A000U
  463. #define FPWM_CLK 50000000U /* 50MHz */
  464. #define FPWM0_INTR_IRQ 205U
  465. #define FPWM1_INTR_IRQ 206U
  466. #define FPWM2_INTR_IRQ 207U
  467. #define FPWM3_INTR_IRQ 208U
  468. #define FPWM4_INTR_IRQ 209U
  469. #define FPWM5_INTR_IRQ 210U
  470. #define FPWM6_INTR_IRQ 211U
  471. #define FPWM7_INTR_IRQ 212U
  472. #define FPWM8_INTR_IRQ 213U
  473. #define FPWM9_INTR_IRQ 214U
  474. #define FPWM10_INTR_IRQ 215U
  475. #define FPWM11_INTR_IRQ 216U
  476. #define FPWM12_INTR_IRQ 217U
  477. #define FPWM13_INTR_IRQ 218U
  478. #define FPWM14_INTR_IRQ 219U
  479. #define FPWM15_INTR_IRQ 220U
  480. /* Semaphore */
  481. #define FSEMA0_ID 0U
  482. #define FSEMA0_BASE_ADDR 0x32B36000U
  483. #define FSEMA_INSTANCE_NUM 1U
  484. /* LSD Config */
  485. #define FLSD_CONFIG_BASE 0x2807E000U
  486. #define FLSD_NAND_MMCSD_HADDR 0xC0U
  487. #define FLSD_CK_STOP_CONFIG0_HADDR 0x10U
  488. /* USB3 */
  489. #define FUSB3_ID_0 0U
  490. #define FUSB3_ID_1 1U
  491. #define FUSB3_NUM 2U
  492. #define FUSB3_XHCI_OFFSET 0x8000U
  493. #define FUSB3_0_BASE_ADDR 0x31A00000U
  494. #define FUSB3_1_BASE_ADDR 0x31A20000U
  495. #define FUSB3_0_IRQ_NUM 48U
  496. #define FUSB3_1_IRQ_NUM 49U
  497. /*****************************************************************************/
  498. #ifdef __cplusplus
  499. }
  500. #endif
  501. #endif