aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/ports/SAMA/SAMA5D2x/sama_registry.h
blob: 88d8802a5868263460b9d439a017d198318c8431 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
/*
    ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
*/

/**
 * @file    SAMA5D2x/sama_registry.h
 * @brief   SAMA5D2x capabilities registry.
 *
 * @addtogroup HAL
 * @{
 */

#ifndef SAMA_REGISTRY_H
#define SAMA_REGISTRY_H

/**
 * @brief   Sub-family identifier.
 */
#if !defined(SAMA5D2X) || defined(__DOXYGEN__)
#define SAMA5D2X
#endif

/*===========================================================================*/
/* Common features.                                                          */
/*===========================================================================*/

/*===========================================================================*/
/* Platform capabilities.                                                    */
/*===========================================================================*/

/**
 * @name    SAMA5D27 capabilities
 * @{
 */
/*===========================================================================*/
/* SAMA5D27.                                                                 */
/*===========================================================================*/

#if defined(SAMA5D27) || defined(__DOXYGEN__)

/* AIC IDs. */
#define SAMA_AIC_ARM            2U          /**< ARM AIC Identifier.       */
#define SAMA_AIC_PIT            3U          /**< PIT AIC Identifier.       */
#define SAMA_AIC_WDT            4U          /**< WDT AIC Identifier.       */
#define SAMA_AIC_GMAC           5U          /**< GMAC AIC Identifier.      */
#define SAMA_AIC_XDMAC0         6U          /**< XDMAC0 AIC Identifier.    */
#define SAMA_AIC_XDMAC1         7U          /**< XDMAC1 AIC Identifier.    */
#define SAMA_AIC_ICM            8U          /**< ICM AIC Identifier.       */
#define SAMA_AIC_AES            9U          /**< AES AIC Identifier.       */
#define SAMA_AIC_AESB           10U         /**< AESB AIC Identifier.      */
#define SAMA_AIC_TDES           11U         /**< TDES AIC Identifier.      */
#define SAMA_AIC_SHA            12U         /**< SHA AIC Identifier.       */
#define SAMA_AIC_MPDDRC         13U         /**< MPDDRC AIC Identifier.    */
#define SAMA_AIC_H32MX          14U         /**< H32MX AIC Identifier.     */
#define SAMA_AIC_H64MX          15U         /**< H64MX AIC Identifier.     */
#define SAMA_AIC_SECUMOD        16U         /**< SECUMOD AIC Identifier.   */
#define SAMA_AIC_HSMC           17U         /**< HSMC AIC Identifier.      */
#define SAMA_AIC_PIOA           18U         /**< PIOA AIC Identifier.      */
#define SAMA_AIC_FLEXCOM0       19U         /**< FLEXCOM0 AIC Identifier.  */
#define SAMA_AIC_FLEXCOM1       20U         /**< FLEXCOM1 AIC Identifier.  */
#define SAMA_AIC_FLEXCOM2       21U         /**< FLEXCOM2 AIC Identifier.  */
#define SAMA_AIC_FLEXCOM3       22U         /**< FLEXCOM3 AIC Identifier.  */
#define SAMA_AIC_FLEXCOM4       23U         /**< FLEXCOM4 AIC Identifier.  */
#define SAMA_AIC_UART0          24U         /**< UART0 AIC Identifier.     */
#define SAMA_AIC_UART1          25U         /**< UART1 AIC Identifier.     */
#define SAMA_AIC_UART2          26U         /**< UART2 AIC Identifier.     */
#define SAMA_AIC_UART3          27U         /**< UART3 AIC Identifier.     */
#define SAMA_AIC_UART4          28U         /**< UART4 AIC Identifier.     */
#define SAMA_AIC_TWIHS0         29U         /**< TWIHS0 AIC Identifier.    */
#define SAMA_AIC_TWIHS1         30U         /**< TWIHS1 AIC Identifier.    */
#define SAMA_AIC_SDMMC0         31U         /**< SDMMC0 AIC Identifier.    */
#define SAMA_AIC_SDMMC1         32U         /**< SDMMC1 AIC Identifier.    */
#define SAMA_AIC_SPI0           33U         /**< SPI0 AIC Identifier.      */
#define SAMA_AIC_SPI1           34U         /**< SPI1 AIC Identifier.      */
#define SAMA_AIC_TC0            35U         /**< TC0 AIC Identifier.       */
#define SAMA_AIC_TC1            36U         /**< TC1 AIC Identifier.       */
#define SAMA_AIC_PWM            38U         /**< PWM AIC Identifier.       */
#define SAMA_AIC_ADC            40U         /**< ADC AIC Identifier.       */
#define SAMA_AIC_UHPHS          41U         /**< UHPHS AIC Identifier.     */
#define SAMA_AIC_UDPHS          42U         /**< UDPHS AIC Identifier.     */
#define SAMA_AIC_SSC0           43U         /**< SSC0 AIC Identifier.      */
#define SAMA_AIC_SSC1           44U         /**< SSC1 AIC Identifier.      */
#define SAMA_AIC_LCDC           45U         /**< LCDC AIC Identifier.      */
#define SAMA_AIC_ISC            46U         /**< ISC AIC Identifier.       */
#define SAMA_AIC_TRNG           47U         /**< TRNG AIC Identifier.      */
#define SAMA_AIC_PDMIC          48U         /**< PDMIC AIC Identifier.     */
#define SAMA_AIC_AIC0           49U         /**< AIC AIC Identifier.       */
#define SAMA_AIC_SFC            50U         /**< SFC AIC Identifier.       */
#define SAMA_AIC_SECURAM        51U         /**< SECURAM AIC Identifier.   */
#define SAMA_AIC_QSPI0          52U         /**< QSPI0 AIC Identifier.     */
#define SAMA_AIC_QSPI1          53U         /**< QSPI1 AIC Identifier.     */
#define SAMA_AIC_I2SC0          54U         /**< I2SC0 AIC Identifier.     */
#define SAMA_AIC_I2SC1          55U         /**< I2SC1 AIC Identifier.     */
#define SAMA_AIC_MCAN0          56U         /**< MCAN0 AIC Identifier.     */
#define SAMA_AIC_MCAN1          57U         /**< MCAN1 AIC Identifier.     */
#define SAMA_AIC_PTC            58U         /**< PTC AIC Identifier.       */
#define SAMA_AIC_CLASSD         59U         /**< CLASSD AIC Identifier.    */
#define SAMA_AIC_SFR            60U         /**< SFR AIC Identifier.       */
#define SAMA_AIC_SAIC1          61U         /**< SAIC AIC Identifier.      */
#define SAMA_AIC_AIC1           62U         /**< AIC AIC Identifier.       */
#define SAMA_AIC_L2CC           63U         /**< L2CC AIC Identifier.      */

/* PCM Peripheral IDs.*/
#define SAMA_PID_ARM                        (1 << (SAMA_AIC_ARM & 0x1F))
#define SAMA_PID_PIT                        (1 << (SAMA_AIC_PIT & 0x1F))
#define SAMA_PID_WDT                        (1 << (SAMA_AIC_WDT & 0x1F))
#define SAMA_PID_GMAC                       (1 << (SAMA_AIC_GMAC & 0x1F))
#define SAMA_PID_XDMAC0                     (1 << (SAMA_AIC_XDMAC0 & 0x1F))
#define SAMA_PID_XDMAC1                     (1 << (SAMA_AIC_XDMAC1 & 0x1F))
#define SAMA_PID_ICM                        (1 << (SAMA_AIC_ICM & 0x1F))
#define SAMA_PID_AES                        (1 << (SAMA_AIC_AES & 0x1F))
#define SAMA_PID_AESB                       (1 << (SAMA_AIC_AESB & 0x1F))
#define SAMA_PID_TDES                       (1 << (SAMA_AIC_TDES & 0x1F))
#define SAMA_PID_SHA                        (1 << (SAMA_AIC_SHA & 0x1F))
#define SAMA_PID_MPDDRC                     (1 << (SAMA_AIC_MPDDRC & 0x1F))
#define SAMA_PID_H32MX                      (1 << (SAMA_AIC_H32MX & 0x1F))
#define SAMA_PID_H64MX                      (1 << (SAMA_AIC_H64MX & 0x1F))
#define SAMA_PID_SECUMOD                    (1 << (SAMA_AIC_SECUMOD & 0x1F))
#define SAMA_PID_HSMC                       (1 << (SAMA_AIC_HSMC & 0x1F))
#define SAMA_PID_FLEXCOM0                   (1 << (SAMA_AIC_FLEXCOM0 & 0x1F))
#define SAMA_PID_PIOA                       (1 << (SAMA_AIC_PIOA & 0x1F))
#define SAMA_PID_FLEXCOM1                   (1 << (SAMA_AIC_FLEXCOM1 & 0x1F))
#define SAMA_PID_FLEXCOM2                   (1 << (SAMA_AIC_FLEXCOM2 & 0x1F))
#define SAMA_PID_FLEXCOM3                   (1 << (SAMA_AIC_FLEXCOM3 & 0x1F))
#define SAMA_PID_FLEXCOM4                   (1 << (SAMA_AIC_FLEXCOM4 & 0x1F))
#define SAMA_PID_UART0                      (1 << (SAMA_AIC_UART0 & 0x1F))
#define SAMA_PID_UART1                      (1 << (SAMA_AIC_UART1 & 0x1F))
#define SAMA_PID_UART2                      (1 << (SAMA_AIC_UART2 & 0x1F))
#define SAMA_PID_UART3                      (1 << (SAMA_AIC_UART3 & 0x1F))
#define SAMA_PID_UART4                      (1 << (SAMA_AIC_UART4 & 0x1F))
#define SAMA_PID_TWIHS0                     (1 << (SAMA_AIC_TWIHS0 & 0x1F))
#define SAMA_PID_TWIHS1                     (1 << (SAMA_AIC_TWIHS1 & 0x1F))
#define SAMA_PID_SDMMC0                     (1 << (SAMA_AIC_SDMMC0 & 0x1F))
#define SAMA_PID_SDMMC1                     (1 << (SAMA_AIC_SDMMC1 & 0x1F)) 
#define SAMA_PID_SPI0                       (1 << (SAMA_AIC_SPI0 & 0x1F))
#define SAMA_PID_SPI1                       (1 << (SAMA_AIC_SPI1 & 0x1F))
#define SAMA_PID_TC0                        (1 << (SAMA_AIC_TC0 & 0x1F))
#define SAMA_PID_TC1                        (1 << (SAMA_AIC_TC1 & 0x1F))
#define SAMA_PID_PWM                        (1 << (SAMA_AIC_PWM & 0x1F))
#define SAMA_PID_ADC                        (1 << (SAMA_AIC_ADC & 0x1F))
#define SAMA_PID_UHPHS                      (1 << (SAMA_AIC_UHPHS & 0x1F))
#define SAMA_PID_UDPHS                      (1 << (SAMA_AIC_UDPHS & 0x1F))
#define SAMA_PID_SSC0                       (1 << (SAMA_AIC_SSC0 & 0x1F))
#define SAMA_PID_SSC1                       (1 << (SAMA_AIC_SSC1 & 0x1F))
#define SAMA_PID_LCDC                       (1 << (SAMA_AIC_LCDC & 0x1F))
#define SAMA_PID_ISC                        (1 << (SAMA_AIC_ISC & 0x1F))
#define SAMA_PID_TRNG                       (1 << (SAMA_AIC_TRNG & 0x1F))
#define SAMA_PID_PDMIC                      (1 << (SAMA_AIC_PDMIC & 0x1F))
#define SAMA_PID_AIC0                       (1 << (SAMA_AIC_AIC0 & 0x1F))
#define SAMA_PID_SFC                        (1 << (SAMA_AIC_SFC & 0x1F))
#define SAMA_PID_SECURAM                    (1 << (SAMA_AIC_SECURAM & 0x1F))
#define SAMA_PID_QSPI0                      (1 << (SAMA_AIC_QSPI0 & 0x1F))
#define SAMA_PID_QSPI1                      (1 << (SAMA_AIC_QSPI1 & 0x1F))
#define SAMA_PID_I2SC0                      (1 << (SAMA_AIC_I2SC0 & 0x1F))
#define SAMA_PID_I2SC1                      (1 << (SAMA_AIC_I2SC1 & 0x1F))
#define SAMA_PID_MCAN0                      (1 << (SAMA_AIC_MCAN0 & 0x1F))
#define SAMA_PID_MCAN1                      (1 << (SAMA_AIC_MCAN1 & 0x1F))
#define SAMA_PID_PTC                        (1 << (SAMA_AIC_PTC & 0x1F))
#define SAMA_PID_CLASSD                     (1 << (SAMA_AIC_CLASSD & 0x1F))
#define SAMA_PID_SFR                        (1 << (SAMA_AIC_SFR & 0x1F))
#define SAMA_PID_SAIC1                      (1 << (SAMA_AIC_SAIC1 & 0x1F))
#define SAMA_PID_AIC1                       (1 << (SAMA_AIC_AIC1 & 0x1F))
#define SAMA_PID_L2CC                       (1 << (SAMA_AIC_L2CC & 0x1F))
#endif /* defined(SAMA5D27) */

/** @} */

#endif /* SAMA_REGISTRY_H */

/** @} */