fparameters_comm.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725
  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 file is for
  18. *
  19. * Modify History:
  20. * Ver   Who        Date         Changes
  21. * ----- ------     --------    --------------------------------------
  22. */
  23. #ifndef BOARD_PHYTIUM_PI_PARAMTERERS_COMMON_H
  24. #define BOARD_PHYTIUM_PI_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 0x3FUL
  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 FPCIE_NUM 1
  42. #define FPCIE0_ID 0
  43. #define FPCIE0_MISC_IRQ_NUM 40
  44. #define FPCIE_CFG_MAX_NUM_OF_BUS 256
  45. #define FPCIE_CFG_MAX_NUM_OF_DEV 32
  46. #define FPCIE_CFG_MAX_NUM_OF_FUN 8
  47. #define FPCI_CONFIG_BASE_ADDR 0x40000000U
  48. #define FPCI_CONFIG_REG_LENGTH 0x10000000U
  49. #define FPCI_IO_CONFIG_BASE_ADDR 0x50000000U
  50. #define FPCI_IO_CONFIG_REG_LENGTH 0x08000000U
  51. #define FPCI_MEM32_BASE_ADDR 0x58000000U
  52. #define FPCI_MEM32_REG_LENGTH 0x27FFFFFFU
  53. #define FPCI_MEM64_BASE_ADDR 0x1000000000U
  54. #define FPCI_MEM64_REG_LENGTH 0x1000000000U
  55. #define FPCI_EU0_C0_CONTROL_BASE_ADDR 0x29000000U
  56. #define FPCI_EU0_C1_CONTROL_BASE_ADDR 0x29010000U
  57. #define FPCI_EU0_C2_CONTROL_BASE_ADDR 0x29020000U
  58. #define FPCI_EU1_C0_CONTROL_BASE_ADDR 0x29030000U
  59. #define FPCI_EU1_C1_CONTROL_BASE_ADDR 0x29040000U
  60. #define FPCI_EU1_C2_CONTROL_BASE_ADDR 0x29050000U
  61. #define FPCI_EU0_CONFIG_BASE_ADDR 0x29100000U
  62. #define FPCI_EU1_CONFIG_BASE_ADDR 0x29101000U
  63. #define FPCI_INTA_IRQ_NUM 36
  64. #define FPCI_INTB_IRQ_NUM 37
  65. #define FPCI_INTC_IRQ_NUM 38
  66. #define FPCI_INTD_IRQ_NUM 39
  67. #define FPCI_NEED_SKIP 0
  68. #define FPCI_INTX_PEU0_STAT 0x29100000U
  69. #define FPCI_INTX_PEU1_STAT 0x29101000U
  70. #define FPCI_INTX_EU0_C0_CONTROL 0x29000184U
  71. #define FPCI_INTX_EU0_C1_CONTROL 0x29010184U
  72. #define FPCI_INTX_EU0_C2_CONTROL 0x29020184U
  73. #define FPCI_INTX_EU1_C0_CONTROL 0x29030184U
  74. #define FPCI_INTX_EU1_C1_CONTROL 0x29040184U
  75. #define FPCI_INTX_EU1_C2_CONTROL 0x29050184U
  76. #define FPCI_INTX_CONTROL_NUM 6 /* Total number of controllers */
  77. #define FPCI_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_BASE_ADDR 0x31A40000U
  92. #define FSATA1_BASE_ADDR 0x32014000U
  93. #define FSATA0_IRQ_NUM 74
  94. #define FSATA1_IRQ_NUM 75
  95. #if !defined(__ASSEMBLER__)
  96. enum
  97. {
  98. FSATA0_ID = 0,
  99. FSATA1_ID = 1,
  100. FSATA_NUM
  101. };
  102. #endif
  103. /* SCMI and MHU */
  104. #define FSCMI_MHU_BASE_ADDR 0x32a00000
  105. #define FSCMI_MHU_IRQ_NUM (22U + 32U)
  106. #define FSCMI_SHR_MEM_ADDR 0x32a11400
  107. #define FSCMI_MEM_TX_OFSET 0x1400
  108. #define FSCMI_MEM_RX_OFSET 0x1000
  109. #define FSCMI_SHR_MEM_SIZE 0x400
  110. #define FSCMI_MSG_SIZE 128
  111. #define FSCMI_MAX_STR_SIZE 16
  112. #define FSCMI_MAX_NUM_SENSOR 16
  113. #define FSCMI_MAX_PROTOCOLS_IMP 16
  114. #define FSCMI_MAX_PERF_DOMAINS 3
  115. #define FSCMI_MAX_OPPS 4
  116. /* UART */
  117. #define FUART_NUM 4U
  118. #define FUART_REG_LENGTH 0x18000U
  119. #define FUART0_ID 0U
  120. #define FUART0_IRQ_NUM (85 + 30)
  121. #define FUART0_BASE_ADDR 0x2800c000U
  122. #define FUART0_CLK_FREQ_HZ 100000000U
  123. #define FUART1_ID 1U
  124. #define FUART1_IRQ_NUM (86 + 30)
  125. #define FUART1_BASE_ADDR 0x2800d000U
  126. #define FUART1_CLK_FREQ_HZ 100000000U
  127. #define FUART2_ID 2U
  128. #define FUART2_IRQ_NUM (87 + 30)
  129. #define FUART2_BASE_ADDR 0x2800e000U
  130. #define FUART2_CLK_FREQ_HZ 100000000U
  131. #define FUART3_BASE_ADDR 0x2800f000U
  132. #define FUART3_ID 3U
  133. #define FUART3_IRQ_NUM (88 + 30)
  134. #define FUART3_CLK_FREQ_HZ 100000000U
  135. #define FT_STDOUT_BASE_ADDR FUART1_BASE_ADDR
  136. #define FT_STDIN_BASE_ADDR FUART1_BASE_ADDR
  137. /****** GIC v3 *****/
  138. #define FT_GICV3_INSTANCES_NUM 1U
  139. #define GICV3_REG_LENGTH 0x00009000U
  140. /*
  141. * The maximum priority value that can be used in the GIC.
  142. */
  143. #define GICV3_MAX_INTR_PRIO_VAL 240U
  144. #define GICV3_INTR_PRIO_MASK 0x000000f0U
  145. #define ARM_GIC_NR_IRQS 270U
  146. #define ARM_GIC_IRQ_START 0U
  147. #define FGIC_NUM 1U
  148. #define ARM_GIC_IPI_COUNT 16U /* MPCore IPI count */
  149. #define SGI_INT_MAX 16U
  150. #define SPI_START_INT_NUM 32U /* SPI start at ID32 */
  151. #define PPI_START_INT_NUM 16U /* PPI start at ID16 */
  152. #define GIC_INT_MAX_NUM 1020U /* GIC max interrupts count */
  153. #define GICV3_BASE_ADDR 0x30800000U
  154. #define GICV3_DISTRIBUTOR_BASE_ADDR (GICV3_BASE_ADDR + 0)
  155. #define GICV3_RD_BASE_ADDR (GICV3_BASE_ADDR + 0x80000U)
  156. #define GICV3_RD_OFFSET (2U << 16)
  157. #define FT_GICV3_VECTORTABLE_NUM GIC_INT_MAX_NUM
  158. /* GPIO */
  159. #if !defined(__ASSEMBLER__)
  160. enum
  161. {
  162. FGPIO0_ID = 0,
  163. FGPIO1_ID = 1,
  164. FGPIO2_ID,
  165. FGPIO3_ID,
  166. FGPIO4_ID,
  167. FGPIO5_ID,
  168. FGPIO_NUM
  169. };
  170. #endif
  171. #define FGPIO_WITH_PIN_IRQ 2U /* max id of gpio assign irq for each pin */
  172. #define FGPIO0_BASE_ADDR 0x28034000U
  173. #define FGPIO1_BASE_ADDR 0x28035000U
  174. #define FGPIO2_BASE_ADDR 0x28036000U
  175. #define FGPIO3_BASE_ADDR 0x28037000U
  176. #define FGPIO4_BASE_ADDR 0x28038000U
  177. #define FGPIO5_BASE_ADDR 0x28039000U
  178. #define FGPIO_CTRL_PIN_NUM 16U
  179. #define FGPIO_PIN_IRQ_BASE 140U
  180. #define FGPIO_PIN_IRQ_NUM_GET(id, pin) (FGPIO_PIN_IRQ_BASE + FGPIO_CTRL_PIN_NUM * (id) + (pin))
  181. #define FGPIO_3_IRQ_NUM 188U
  182. #define FGPIO_4_IRQ_NUM 189U
  183. #define FGPIO_5_IRQ_NUM 190U
  184. #define FGPIO_PIN_IRQ_TOTAL 51U
  185. /* SPI */
  186. #define FSPI0_BASE_ADDR 0x2803A000U
  187. #define FSPI1_BASE_ADDR 0x2803B000U
  188. #define FSPI2_BASE 0x2803C000U
  189. #define FSPI3_BASE 0x2803D000U
  190. #define FSPI0_ID 0U
  191. #define FSPI1_ID 1U
  192. #define FSPI2_ID 2U
  193. #define FSPI3_ID 3U
  194. #define FSPI0_IRQ_NUM 191U
  195. #define FSPI1_IRQ_NUM 192U
  196. #define FSPI2_IRQ_NUM 193U
  197. #define FSPI3_IRQ_NUM 194U
  198. #define FSPI_CLK_FREQ_HZ 50000000U
  199. #define FSPI_NUM 4U
  200. /* XMAC */
  201. #define FXMAC_NUM 4U
  202. #define FXMAC0_ID 0U
  203. #define FXMAC1_ID 1U
  204. #define FXMAC2_ID 2U
  205. #define FXMAC3_ID 3U
  206. #define FXMAC0_BASE_ADDR 0x3200C000U
  207. #define FXMAC1_BASE_ADDR 0x3200E000U
  208. #define FXMAC2_BASE_ADDR 0x32010000U
  209. #define FXMAC3_BASE_ADDR 0x32012000U
  210. #define FXMAC0_MODE_SEL_BASE_ADDR 0x3200DC00U
  211. #define FXMAC0_LOOPBACK_SEL_BASE_ADDR 0x3200DC04U
  212. #define FXMAC1_MODE_SEL_BASE_ADDR 0x3200FC00U
  213. #define FXMAC1_LOOPBACK_SEL_BASE_ADDR 0x3200FC04U
  214. #define FXMAC2_MODE_SEL_BASE_ADDR 0x32011C00U
  215. #define FXMAC2_LOOPBACK_SEL_BASE_ADDR 0x32011C04U
  216. #define FXMAC3_MODE_SEL_BASE_ADDR 0x32013C00U
  217. #define FXMAC3_LOOPBACK_SEL_BASE_ADDR 0x32013C04U
  218. #define FXMAC0_PCLK 50000000U
  219. #define FXMAC1_PCLK 50000000U
  220. #define FXMAC2_PCLK 50000000U
  221. #define FXMAC3_PCLK 50000000U
  222. #define FXMAC0_HOTPLUG_IRQ_NUM (53U + 30U)
  223. #define FXMAC1_HOTPLUG_IRQ_NUM (54U + 30U)
  224. #define FXMAC2_HOTPLUG_IRQ_NUM (55U + 30U)
  225. #define FXMAC3_HOTPLUG_IRQ_NUM (56U + 30U)
  226. #define FXMAC_QUEUE_MAX_NUM 16U
  227. #define FXMAC0_QUEUE0_IRQ_NUM (57U + 30U)
  228. #define FXMAC0_QUEUE1_IRQ_NUM (58U + 30U)
  229. #define FXMAC0_QUEUE2_IRQ_NUM (59U + 30U)
  230. #define FXMAC0_QUEUE3_IRQ_NUM (60U + 30U)
  231. #define FXMAC0_QUEUE4_IRQ_NUM (30U + 30U)
  232. #define FXMAC0_QUEUE5_IRQ_NUM (31U + 30U)
  233. #define FXMAC0_QUEUE6_IRQ_NUM (32U + 30U)
  234. #define FXMAC0_QUEUE7_IRQ_NUM (33U + 30U)
  235. #define FXMAC1_QUEUE0_IRQ_NUM (61U + 30U)
  236. #define FXMAC1_QUEUE1_IRQ_NUM (62U + 30U)
  237. #define FXMAC1_QUEUE2_IRQ_NUM (63U + 30U)
  238. #define FXMAC1_QUEUE3_IRQ_NUM (64U + 30U)
  239. #define FXMAC2_QUEUE0_IRQ_NUM (66U + 30U)
  240. #define FXMAC2_QUEUE1_IRQ_NUM (67U + 30U)
  241. #define FXMAC2_QUEUE2_IRQ_NUM (68U + 30U)
  242. #define FXMAC2_QUEUE3_IRQ_NUM (69U + 30U)
  243. #define FXMAC3_QUEUE0_IRQ_NUM (70U + 30U)
  244. #define FXMAC3_QUEUE1_IRQ_NUM (71U + 30U)
  245. #define FXMAC3_QUEUE2_IRQ_NUM (72U + 30U)
  246. #define FXMAC3_QUEUE3_IRQ_NUM (73U + 30U)
  247. #define FXMAC_PHY_MAX_NUM 32U
  248. #define FXMAC_CLK_TYPE_0
  249. #if !defined(__ASSEMBLER__)
  250. /* IOPAD */
  251. enum
  252. {
  253. FIOPAD0_ID = 0,
  254. FIOPAD_NUM
  255. };
  256. #endif
  257. /* QSPI */
  258. #if !defined(__ASSEMBLER__)
  259. enum
  260. {
  261. FQSPI0_ID = 0,
  262. FQSPI_NUM
  263. };
  264. #define FQSPI_BASE_ADDR 0x028008000U
  265. /* FQSPI cs 0_3, chip number */
  266. enum
  267. {
  268. FQSPI_CS_0 = 0,
  269. FQSPI_CS_1 = 1,
  270. FQSPI_CS_2 = 2,
  271. FQSPI_CS_3 = 3,
  272. FQSPI_CS_NUM
  273. };
  274. #endif
  275. #define FQSPI_MEM_START_ADDR 0x0U
  276. #define FQSPI_MEM_END_ADDR 0x0FFFFFFFU /* 256MB */
  277. #define FQSPI_MEM_START_ADDR_64 0x100000000U
  278. #define FQSPI_MEM_END_ADDR_64 0x17FFFFFFFU /* 2GB */
  279. /* TIMER and TACHO */
  280. #define FTIMER_NUM 38U
  281. #define FTIMER_CLK_FREQ_HZ 50000000ULL /* 50MHz */
  282. #define FTIMER_TICK_PERIOD_NS 20U /* 20ns */
  283. #define FTIMER_TACHO_IRQ_NUM(n) (226U + (n))
  284. #define FTIMER_TACHO_BASE_ADDR(n) (0x28054000U + 0x1000U * (n))
  285. #if !defined(__ASSEMBLER__)
  286. enum
  287. {
  288. FTACHO0_ID = 0,
  289. FTACHO1_ID = 1,
  290. FTACHO2_ID,
  291. FTACHO3_ID,
  292. FTACHO4_ID,
  293. FTACHO5_ID,
  294. FTACHO6_ID,
  295. FTACHO7_ID,
  296. FTACHO8_ID,
  297. FTACHO9_ID,
  298. FTACHO10_ID,
  299. FTACHO11_ID,
  300. FTACHO12_ID,
  301. FTACHO13_ID,
  302. FTACHO14_ID,
  303. FTACHO15_ID,
  304. FTACHO_NUM
  305. } ;
  306. #endif
  307. /* GDMA */
  308. #define FGDMA0_ID 0U
  309. #define FGDMA0_BASE_ADDR 0x32B34000U
  310. #define FGDMA0_CHANNEL0_IRQ_NUM 266U
  311. #define FGDMA_NUM_OF_CHAN 16
  312. #define FGDMA_INSTANCE_NUM 1U
  313. #define FGDMA0_CAPACITY (1U<<0)
  314. /* CANFD */
  315. #define FCAN_CLK_FREQ_HZ 200000000U
  316. #define FCAN0_BASE_ADDR 0x2800A000U
  317. #define FCAN1_BASE_ADDR 0x2800B000U
  318. #define FCAN0_IRQ_NUM 113U
  319. #define FCAN1_IRQ_NUM 114U
  320. #if !defined(__ASSEMBLER__)
  321. enum
  322. {
  323. FCAN0_ID = 0,
  324. FCAN1_ID = 1,
  325. FCAN_NUM
  326. };
  327. #endif
  328. /* WDT */
  329. #if !defined(__ASSEMBLER__)
  330. enum
  331. {
  332. FWDT0_ID = 0,
  333. FWDT1_ID,
  334. FWDT_NUM
  335. };
  336. #endif
  337. #define FWDT0_REFRESH_BASE_ADDR 0x28040000U
  338. #define FWDT1_REFRESH_BASE_ADDR 0x28042000U
  339. #define FWDT_CONTROL_BASE_ADDR(x) ((x)+0x1000)
  340. #define FWDT0_IRQ_NUM 196U
  341. #define FWDT1_IRQ_NUM 197U
  342. #define FWDT_CLK_FREQ_HZ 48000000U /* 48MHz */
  343. /*MIO*/
  344. #define FMIO_BASE_ADDR(n) (0x28014000 + 0x2000 * (n))
  345. #define FMIO_CONF_ADDR(n) FMIO_BASE_ADDR(n)+0x1000
  346. #define FMIO_IRQ_NUM(n) (124+n)
  347. #define FMIO_CLK_FREQ_HZ 50000000 /* 50MHz */
  348. #if !defined(__ASSEMBLER__)
  349. enum
  350. {
  351. FMIO0_ID = 0,
  352. FMIO1_ID = 1,
  353. FMIO2_ID,
  354. FMIO3_ID,
  355. FMIO4_ID,
  356. FMIO5_ID,
  357. FMIO6_ID,
  358. FMIO7_ID,
  359. FMIO8_ID,
  360. FMIO9_ID,
  361. FMIO10_ID,
  362. FMIO11_ID,
  363. FMIO12_ID,
  364. FMIO13_ID,
  365. FMIO14_ID,
  366. FMIO15_ID,
  367. FMIO_NUM
  368. };
  369. #endif
  370. #if !defined(__ASSEMBLER__)
  371. /*I2C0 -> PMBUS0
  372. * I2C1 -> PMBUS1
  373. * I2C2 -> SMBUS0
  374. */
  375. enum
  376. {
  377. FI2C0_ID = 0,
  378. FI2C1_ID,
  379. FI2C2_ID,
  380. FI2C_NUM
  381. };
  382. #endif
  383. #define FI2C0_BASE_ADDR 0x28011000
  384. #define FI2C1_BASE_ADDR 0x28012000
  385. #define FI2C2_BASE_ADDR 0x28013000
  386. #define FI2C0_IRQ_NUM 121
  387. #define FI2C1_IRQ_NUM 122
  388. #define FI2C2_IRQ_NUM 123
  389. #define FI2C_CLK_FREQ_HZ 50000000 /* 50MHz */
  390. /* SDIO */
  391. #if !defined(__ASSEMBLER__)
  392. enum
  393. {
  394. FSDIO0_ID = 0,
  395. FSDIO1_ID = 1,
  396. FSDIO_NUM
  397. };
  398. #endif
  399. #define FSDIO0_BASE_ADDR 0x28000000U
  400. #define FSDIO1_BASE_ADDR 0x28001000U
  401. #define FSDIO0_IRQ_NUM 104U
  402. #define FSDIO1_IRQ_NUM 105U
  403. #define FSDIO_CLK_FREQ_HZ (1200000000UL) /* 1.2GHz */
  404. /* NAND */
  405. #define FNAND_NUM 1U
  406. #define FNAND_INSTANCE0 0U
  407. #define FNAND_BASE_ADDR 0x28002000U
  408. #define FNAND_IRQ_NUM (106U)
  409. #define FNAND_CONNECT_MAX_NUM 1U
  410. #define FIOPAD_BASE_ADDR 0x32B30000U
  411. /* DDMA */
  412. #define FDDMA0_ID 0U
  413. #define FDDMA0_BASE_ADDR 0x28003000U
  414. #define FDDMA0_IRQ_NUM 107U
  415. #define FDDMA1_ID 1U
  416. #define FDDMA1_BASE_ADDR 0x28004000U
  417. #define FDDMA1_IRQ_NUM 108U
  418. #define FDDMA_INSTANCE_NUM 2U
  419. #define FDDMA0_UART0_TX_SLAVE_ID 2U /* uart0 tx slave-id */
  420. #define FDDMA0_UART1_TX_SLAVE_ID 3U /* uart1 tx slave-id */
  421. #define FDDMA0_UART2_TX_SLAVE_ID 4U /* uart2 tx slave-id */
  422. #define FDDMA0_UART3_TX_SLAVE_ID 5U /* uart3 tx slave-id */
  423. #define FDDMA0_SPIM0_TX_SLAVE_ID 6U /* spi0 tx slave-id */
  424. #define FDDMA0_SPIM1_TX_SLAVE_ID 7U /* spi1 tx slave-id */
  425. #define FDDMA0_SPIM2_TX_SLAVE_ID 8U /* spi2 tx slave-id */
  426. #define FDDMA0_SPIM3_TX_SLAVE_ID 9U /* spi3 tx slave-id */
  427. #define FDDMA0_UART0_RX_SLAVE_ID 15U /* uart0 rx slave-id */
  428. #define FDDMA0_UART1_RX_SLAVE_ID 16U /* uart1 rx slave-id */
  429. #define FDDMA0_UART2_RX_SLAVE_ID 17U /* uart2 rx slave-id */
  430. #define FDDMA0_UART3_RX_SLAVE_ID 18U /* uart3 rx slave-id */
  431. #define FDDMA0_SPIM0_RX_SLAVE_ID 19U /* spi0 rx slave-id */
  432. #define FDDMA0_SPIM1_RX_SLAVE_ID 20U /* spi1 rx slave-id */
  433. #define FDDMA0_SPIM2_RX_SLAVE_ID 21U /* spi2 rx slave-id */
  434. #define FDDMA0_SPIM3_RX_SLAVE_ID 22U /* spi3 rx slave-id */
  435. /* FDDMA1_ID */
  436. #define FDDMA1_MIO0_TX_SLAVE_ID 0U /* mio0 rx slave-id */
  437. #define FDDMA1_MIO1_TX_SLAVE_ID 1U /* mio1 rx slave-id */
  438. #define FDDMA1_MIO2_TX_SLAVE_ID 2U /* mio2 rx slave-id */
  439. #define FDDMA1_MIO3_TX_SLAVE_ID 3U /* mio3 rx slave-id */
  440. #define FDDMA1_MIO4_TX_SLAVE_ID 4U /* mio4 rx slave-id */
  441. #define FDDMA1_MIO5_TX_SLAVE_ID 5U /* mio5 rx slave-id */
  442. #define FDDMA1_MIO6_TX_SLAVE_ID 6U /* mio6 rx slave-id */
  443. #define FDDMA1_MIO7_TX_SLAVE_ID 7U /* mio7 rx slave-id */
  444. #define FDDMA1_MIO8_TX_SLAVE_ID 8U /* mio8 rx slave-id */
  445. #define FDDMA1_MIO9_TX_SLAVE_ID 9U /* mio9 rx slave-id */
  446. #define FDDMA1_MIO10_TX_SLAVE_ID 10U /* mio10 rx slave-id */
  447. #define FDDMA1_MIO11_TX_SLAVE_ID 11U /* mio11 rx slave-id */
  448. #define FDDMA1_MIO12_TX_SLAVE_ID 12U /* mio12 rx slave-id */
  449. #define FDDMA1_MIO13_TX_SLAVE_ID 13U /* mio13 rx slave-id */
  450. #define FDDMA1_MIO14_TX_SLAVE_ID 14U /* mio14 rx slave-id */
  451. #define FDDMA1_MIO15_TX_SLAVE_ID 15U /* mio15 rx slave-id */
  452. #define FDDMA1_MIO0_RX_SLAVE_ID 16U /* mio0 tx slave-id */
  453. #define FDDMA1_MIO1_RX_SLAVE_ID 17U /* mio1 tx slave-id */
  454. #define FDDMA1_MIO2_RX_SLAVE_ID 18U /* mio2 tx slave-id */
  455. #define FDDMA1_MIO3_RX_SLAVE_ID 19U /* mio3 tx slave-id */
  456. #define FDDMA1_MIO4_RX_SLAVE_ID 20U /* mio4 tx slave-id */
  457. #define FDDMA1_MIO5_RX_SLAVE_ID 21U /* mio5 tx slave-id */
  458. #define FDDMA1_MIO6_RX_SLAVE_ID 22U /* mio6 tx slave-id */
  459. #define FDDMA1_MIO7_RX_SLAVE_ID 23U /* mio7 tx slave-id */
  460. #define FDDMA1_MIO8_RX_SLAVE_ID 24U /* mio8 tx slave-id */
  461. #define FDDMA1_MIO9_RX_SLAVE_ID 25U /* mio9 tx slave-id */
  462. #define FDDMA1_MIO10_RX_SLAVE_ID 26U /* mio10 tx slave-id */
  463. #define FDDMA1_MIO11_RX_SLAVE_ID 27U /* mio11 tx slave-id */
  464. #define FDDMA1_MIO12_RX_SLAVE_ID 28U /* mio12 tx slave-id */
  465. #define FDDMA1_MIO13_RX_SLAVE_ID 29U /* mio13 tx slave-id */
  466. #define FDDMA1_MIO14_RX_SLAVE_ID 30U /* mio14 tx slave-id */
  467. #define FDDMA1_MIO15_RX_SLAVE_ID 31U /* mio15 tx slave-id */
  468. #define FDDMA_MIN_SLAVE_ID 0U
  469. #define FDDMA_MAX_SLAVE_ID 31U
  470. /* ADC */
  471. #if !defined(__ASSEMBLER__)
  472. enum
  473. {
  474. FADC0_ID = 0,
  475. FADC_NUM
  476. };
  477. typedef enum
  478. {
  479. FADC_CHANNEL_0 = 0,
  480. FADC_CHANNEL_1 = 1,
  481. FADC_CHANNEL_2,
  482. FADC_CHANNEL_3,
  483. FADC_CHANNEL_4,
  484. FADC_CHANNEL_5,
  485. FADC_CHANNEL_6,
  486. FADC_CHANNEL_7,
  487. FADC_CHANNEL_NUM
  488. } FAdcChannel;
  489. #endif
  490. #define FADC0_BASE_ADDR 0x2807B000U
  491. #define FADC0_IRQ_NUM 264U
  492. /* PWM */
  493. #if !defined(__ASSEMBLER__)
  494. enum
  495. {
  496. FPWM0_ID = 0,
  497. FPWM1_ID = 1,
  498. FPWM2_ID,
  499. FPWM3_ID,
  500. FPWM4_ID,
  501. FPWM5_ID,
  502. FPWM6_ID,
  503. FPWM7_ID,
  504. FPWM_NUM
  505. };
  506. typedef enum
  507. {
  508. FPWM_CHANNEL_0 = 0,
  509. FPWM_CHANNEL_1,
  510. FPWM_CHANNEL_NUM
  511. } FPwmChannel;
  512. #endif
  513. #define FPWM_BASE_ADDR 0x2804A000U
  514. #define FPWM_CLK_FREQ_HZ 50000000U /* 50MHz */
  515. #define FPWM0_IRQ_NUM 205U
  516. #define FPWM1_IRQ_NUM 206U
  517. #define FPWM2_IRQ_NUM 207U
  518. #define FPWM3_IRQ_NUM 208U
  519. #define FPWM4_IRQ_NUM 209U
  520. #define FPWM5_IRQ_NUM 210U
  521. #define FPWM6_IRQ_NUM 211U
  522. #define FPWM7_IRQ_NUM 212U
  523. #define FPWM8_IRQ_NUM 213U
  524. #define FPWM9_IRQ_NUM 214U
  525. #define FPWM10_IRQ_NUM 215U
  526. #define FPWM11_IRQ_NUM 216U
  527. #define FPWM12_IRQ_NUM 217U
  528. #define FPWM13_IRQ_NUM 218U
  529. #define FPWM14_IRQ_NUM 219U
  530. #define FPWM15_IRQ_NUM 220U
  531. /* Semaphore */
  532. #define FSEMA0_ID 0U
  533. #define FSEMA0_BASE_ADDR 0x32B36000U
  534. #define FSEMA_INSTANCE_NUM 1U
  535. /* LSD Config */
  536. #define FLSD_CONFIG_BASE 0x2807E000U
  537. #define FLSD_NAND_MMCSD_HADDR 0xC0U
  538. #define FLSD_CK_STOP_CONFIG0_HADDR 0x10U
  539. /* USB3 */
  540. #define FUSB3_ID_0 0U
  541. #define FUSB3_ID_1 1U
  542. #define FUSB3_NUM 2U
  543. #define FUSB3_XHCI_OFFSET 0x8000U
  544. #define FUSB3_0_BASE_ADDR 0x31A00000U
  545. #define FUSB3_1_BASE_ADDR 0x31A20000U
  546. #define FUSB3_0_IRQ_NUM 48U
  547. #define FUSB3_1_IRQ_NUM 49U
  548. /* DcDp */
  549. #if !defined(__ASSEMBLER__)
  550. typedef enum
  551. {
  552. FDCDP_ID0 = 0,
  553. FDCDP_ID1,
  554. FDCDP_INSTANCE_NUM
  555. } FDcDpNum;
  556. #endif
  557. #define FDC_CTRL_BASE_OFFSET 0x32000000U
  558. #define FDC0_CHANNEL_BASE_OFFSET 0x32001000U
  559. #define FDC1_CHANNEL_BASE_OFFSET (FDC0_CHANNEL_BASE_OFFSET + 0x1000U)
  560. #define FDP0_CHANNEL_BASE_OFFSET 0x32004000U
  561. #define FDP1_CHANNEL_BASE_OFFSET (FDP0_CHANNEL_BASE_OFFSET + 0x1000U)
  562. #define FDP0_PHY_BASE_OFFSET 0x32300000U
  563. #define FDP1_PHY_BASE_OFFSET (FDP0_PHY_BASE_OFFSET + 0x100000U)
  564. #define FDCDP_IRQ_NUM 76
  565. /* generic timer */
  566. /* non-secure physical timer int id */
  567. #define GENERIC_TIMER_NS_IRQ_NUM 30U
  568. /* virtual timer int id */
  569. #define GENERIC_VTIMER_IRQ_NUM 27U
  570. #if !defined(__ASSEMBLER__)
  571. enum
  572. {
  573. GENERIC_TIMER_ID0 = 0, /* non-secure physical timer */
  574. GENERIC_TIMER_ID1 = 1, /* virtual timer */
  575. GENERIC_TIMER_NUM
  576. };
  577. #endif
  578. /*****************************************************************************/
  579. #ifdef __cplusplus
  580. }
  581. #endif
  582. #endif