at91_pio.h
Go to the documentation of this file.00001
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073 #ifndef AT91_PIO_H
00074 #define AT91_PIO_H
00075
00077
00078 #define PIO_PER_OFF 0x00000000
00079 #define PIO_PDR_OFF 0x00000004
00080 #define PIO_PSR_OFF 0x00000008
00081 #define PIO_OER_OFF 0x00000010
00082 #define PIO_ODR_OFF 0x00000014
00083 #define PIO_OSR_OFF 0x00000018
00084 #define PIO_IFER_OFF 0x00000020
00085 #define PIO_IFDR_OFF 0x00000024
00086 #define PIO_IFSR_OFF 0x00000028
00087 #define PIO_SODR_OFF 0x00000030
00088 #define PIO_CODR_OFF 0x00000034
00089 #define PIO_ODSR_OFF 0x00000038
00090 #define PIO_PDSR_OFF 0x0000003C
00091 #define PIO_IER_OFF 0x00000040
00092 #define PIO_IDR_OFF 0x00000044
00093 #define PIO_IMR_OFF 0x00000048
00094 #define PIO_ISR_OFF 0x0000004C
00095 #if PIO_HAS_MULTIDRIVER
00096 #define PIO_MDER_OFF 0x00000050
00097 #define PIO_MDDR_OFF 0x00000054
00098 #define PIO_MDSR_OFF 0x00000058
00099 #endif
00100 #if PIO_HAS_PULLUP
00101 #define PIO_PUDR_OFF 0x00000060
00102 #define PIO_PUER_OFF 0x00000064
00103 #define PIO_PUSR_OFF 0x00000068
00104 #endif
00105 #if PIO_HAS_PERIPHERALSELECT
00106 #define PIO_ASR_OFF 0x00000070
00107 #define PIO_BSR_OFF 0x00000074
00108 #define PIO_ABSR_OFF 0x00000078
00109 #endif
00110 #if PIO_HAS_OUTPUTWRITEENABLE
00111 #define PIO_OWER_OFF 0x000000A0
00112 #define PIO_OWDR_OFF 0x000000A4
00113 #define PIO_OWSR_OFF 0x000000A8
00114 #endif
00115
00116
00118
00119 #if defined(PIO_BASE)
00120 #define PIO_ACCESS(offset) (*((reg32_t *)(PIO_BASE + (offset))))
00121
00122 #define PIO_PER PIO_ACCESS(PIO_PER_OFF)
00123 #define PIO_PDR PIO_ACCESS(PIO_PDR_OFF)
00124 #define PIO_PSR PIO_ACCESS(PIO_PSR_OFF)
00125 #define PIO_OER PIO_ACCESS(PIO_OER_OFF)
00126 #define PIO_ODR PIO_ACCESS(PIO_ODR_OFF)
00127 #define PIO_OSR PIO_ACCESS(PIO_OSR_OFF)
00128 #define PIO_IFER PIO_ACCESS(PIO_IFER_OFF)
00129 #define PIO_IFDR PIO_ACCESS(PIO_IFDR_OFF)
00130 #define PIO_IFSR PIO_ACCESS(PIO_IFSR_OFF)
00131 #define PIO_SODR PIO_ACCESS(PIO_SODR_OFF)
00132 #define PIO_CODR PIO_ACCESS(PIO_CODR_OFF)
00133 #define PIO_ODSR PIO_ACCESS(PIO_ODSR_OFF)
00134 #define PIO_PDSR PIO_ACCESS(PIO_PDSR_OFF)
00135 #define PIO_IER PIO_ACCESS(PIO_IER_OFF)
00136 #define PIO_IDR PIO_ACCESS(PIO_IDR_OFF)
00137 #define PIO_IMR PIO_ACCESS(PIO_IMR_OFF)
00138 #define PIO_ISR PIO_ACCESS(PIO_ISR_OFF)
00139 #if PIO_HAS_MULTIDRIVER
00140 #define PIO_MDER PIO_ACCESS(PIO_MDER_OFF)
00141 #define PIO_MDDR PIO_ACCESS(PIO_MDDR_OFF)
00142 #define PIO_MDSR PIO_ACCESS(PIO_MDSR_OFF)
00143 #endif
00144 #if PIO_HAS_PULLUP
00145 #define PIO_PUDR PIO_ACCESS(PIO_PUDR_OFF)
00146 #define PIO_PUER PIO_ACCESS(PIO_PUER_OFF)
00147 #define PIO_PUSR PIO_ACCESS(PIO_PUSR_OFF)
00148 #endif
00149 #if PIO_HAS_PERIPHERALSELECT
00150 #define PIO_ASR PIO_ACCESS(PIO_ASR_OFF)
00151 #define PIO_BSR PIO_ACCESS(PIO_BSR_OFF)
00152 #define PIO_ABSR PIO_ACCESS(PIO_ABSR_OFF)
00153 #endif
00154 #if PIO_HAS_OUTPUTWRITEENABLE
00155 #define PIO_OWER PIO_ACCESS(PIO_OWER_OFF)
00156 #define PIO_OWDR PIO_ACCESS(PIO_OWDR_OFF)
00157 #define PIO_OWSR PIO_ACCESS(PIO_OWSR_OFF)
00158 #endif
00159 #endif
00160
00161
00163
00164 #if defined(PIOA_BASE)
00165 #define PIOA_ACCESS(offset) (*((reg32_t *)(PIOA_BASE + (offset))))
00166
00167 #define PIOA_PER PIOA_ACCESS(PIO_PER_OFF)
00168 #define PIOA_PDR PIOA_ACCESS(PIO_PDR_OFF)
00169 #define PIOA_PSR PIOA_ACCESS(PIO_PSR_OFF)
00170 #define PIOA_OER PIOA_ACCESS(PIO_OER_OFF)
00171 #define PIOA_ODR PIOA_ACCESS(PIO_ODR_OFF)
00172 #define PIOA_OSR PIOA_ACCESS(PIO_OSR_OFF)
00173 #define PIOA_IFER PIOA_ACCESS(PIO_IFER_OFF)
00174 #define PIOA_IFDR PIOA_ACCESS(PIO_IFDR_OFF)
00175 #define PIOA_IFSR PIOA_ACCESS(PIO_IFSR_OFF)
00176 #define PIOA_SODR PIOA_ACCESS(PIO_SODR_OFF)
00177 #define PIOA_CODR PIOA_ACCESS(PIO_CODR_OFF)
00178 #define PIOA_ODSR PIOA_ACCESS(PIO_ODSR_OFF)
00179 #define PIOA_PDSR PIOA_ACCESS(PIO_PDSR_OFF)
00180 #define PIOA_IER PIOA_ACCESS(PIO_IER_OFF)
00181 #define PIOA_IDR PIOA_ACCESS(PIO_IDR_OFF)
00182 #define PIOA_IMR PIOA_ACCESS(PIO_IMR_OFF)
00183 #define PIOA_ISR PIOA_ACCESS(PIO_ISR_OFF)
00184 #if PIO_HAS_MULTIDRIVER
00185 #define PIOA_MDER PIOA_ACCESS(PIO_MDER_OFF)
00186 #define PIOA_MDDR PIOA_ACCESS(PIO_MDDR_OFF)
00187 #define PIOA_MDSR PIOA_ACCESS(PIO_MDSR_OFF)
00188 #endif
00189 #if PIO_HAS_PULLUP
00190 #define PIOA_PUDR PIOA_ACCESS(PIO_PUDR_OFF)
00191 #define PIOA_PUER PIOA_ACCESS(PIO_PUER_OFF)
00192 #define PIOA_PUSR PIOA_ACCESS(PIO_PUSR_OFF)
00193 #endif
00194 #if PIO_HAS_PERIPHERALSELECT
00195 #define PIOA_ASR PIOA_ACCESS(PIO_ASR_OFF)
00196 #define PIOA_BSR PIOA_ACCESS(PIO_BSR_OFF)
00197 #define PIOA_ABSR PIOA_ACCESS(PIO_ABSR_OFF)
00198 #endif
00199 #if PIO_HAS_OUTPUTWRITEENABLE
00200 #define PIOA_OWER PIOA_ACCESS(PIO_OWER_OFF)
00201 #define PIOA_OWDR PIOA_ACCESS(PIO_OWDR_OFF)
00202 #define PIOA_OWSR PIOA_ACCESS(PIO_OWSR_OFF)
00203 #endif
00204 #endif
00205
00206
00208
00209 #if defined(PIOB_BASE)
00210 #define PIOB_ACCESS(offset) (*((reg32_t *)(PIOB_BASE + (offset))))
00211
00212 #define PIOB_PER PIOB_ACCESS(PIO_PER_OFF)
00213 #define PIOB_PDR PIOB_ACCESS(PIO_PDR_OFF)
00214 #define PIOB_PSR PIOB_ACCESS(PIO_PSR_OFF)
00215 #define PIOB_OER PIOB_ACCESS(PIO_OER_OFF)
00216 #define PIOB_ODR PIOB_ACCESS(PIO_ODR_OFF)
00217 #define PIOB_OSR PIOB_ACCESS(PIO_OSR_OFF)
00218 #define PIOB_IFER PIOB_ACCESS(PIO_IFER_OFF)
00219 #define PIOB_IFDR PIOB_ACCESS(PIO_IFDR_OFF)
00220 #define PIOB_IFSR PIOB_ACCESS(PIO_IFSR_OFF)
00221 #define PIOB_SODR PIOB_ACCESS(PIO_SODR_OFF)
00222 #define PIOB_CODR PIOB_ACCESS(PIO_CODR_OFF)
00223 #define PIOB_ODSR PIOB_ACCESS(PIO_ODSR_OFF)
00224 #define PIOB_PDSR PIOB_ACCESS(PIO_PDSR_OFF)
00225 #define PIOB_IER PIOB_ACCESS(PIO_IER_OFF)
00226 #define PIOB_IDR PIOB_ACCESS(PIO_IDR_OFF)
00227 #define PIOB_IMR PIOB_ACCESS(PIO_IMR_OFF)
00228 #define PIOB_ISR PIOB_ACCESS(PIO_ISR_OFF)
00229 #if PIO_HAS_MULTIDRIVER
00230 #define PIOB_MDER PIOB_ACCESS(PIO_MDER_OFF)
00231 #define PIOB_MDDR PIOB_ACCESS(PIO_MDDR_OFF)
00232 #define PIOB_MDSR PIOB_ACCESS(PIO_MDSR_OFF)
00233 #endif
00234 #if PIO_HAS_PULLUP
00235 #define PIOB_PUDR PIOB_ACCESS(PIO_PUDR_OFF)
00236 #define PIOB_PUER PIOB_ACCESS(PIO_PUER_OFF)
00237 #define PIOB_PUSR PIOB_ACCESS(PIO_PUSR_OFF)
00238 #endif
00239 #if PIO_HAS_PERIPHERALSELECT
00240 #define PIOB_ASR PIOB_ACCESS(PIO_ASR_OFF)
00241 #define PIOB_BSR PIOB_ACCESS(PIO_BSR_OFF)
00242 #define PIOB_ABSR PIOB_ACCESS(PIO_ABSR_OFF)
00243 #endif
00244 #if PIO_HAS_OUTPUTWRITEENABLE
00245 #define PIOB_OWER PIOB_ACCESS(PIO_OWER_OFF)
00246 #define PIOB_OWDR PIOB_ACCESS(PIO_OWDR_OFF)
00247 #define PIOB_OWSR PIOB_ACCESS(PIO_OWSR_OFF)
00248 #endif
00249 #endif
00250
00251
00253
00254 #if defined(PIOC_BASE)
00255 #define PIOC_ACCESS(offset) (*((reg32_t *)(PIOC_BASE + (offset))))
00256
00257 #define PIOC_PER PIOC_ACCESS(PIO_PER_OFF)
00258 #define PIOC_PDR PIOC_ACCESS(PIO_PDR_OFF)
00259 #define PIOC_PSR PIOC_ACCESS(PIO_PSR_OFF)
00260 #define PIOC_OER PIOC_ACCESS(PIO_OER_OFF)
00261 #define PIOC_ODR PIOC_ACCESS(PIO_ODR_OFF)
00262 #define PIOC_OSR PIOC_ACCESS(PIO_OSR_OFF)
00263 #define PIOC_IFER PIOC_ACCESS(PIO_IFER_OFF)
00264 #define PIOC_IFDR PIOC_ACCESS(PIO_IFDR_OFF)
00265 #define PIOC_IFSR PIOC_ACCESS(PIO_IFSR_OFF)
00266 #define PIOC_SODR PIOC_ACCESS(PIO_SODR_OFF)
00267 #define PIOC_CODR PIOC_ACCESS(PIO_CODR_OFF)
00268 #define PIOC_ODSR PIOC_ACCESS(PIO_ODSR_OFF)
00269 #define PIOC_PDSR PIOC_ACCESS(PIO_PDSR_OFF)
00270 #define PIOC_IER PIOC_ACCESS(PIO_IER_OFF)
00271 #define PIOC_IDR PIOC_ACCESS(PIO_IDR_OFF)
00272 #define PIOC_IMR PIOC_ACCESS(PIO_IMR_OFF)
00273 #define PIOC_ISR PIOC_ACCESS(PIO_ISR_OFF)
00274 #if PIO_HAS_MULTIDRIVER
00275 #define PIOC_MDER PIOC_ACCESS(PIO_MDER_OFF)
00276 #define PIOC_MDDR PIOC_ACCESS(PIO_MDDR_OFF)
00277 #define PIOC_MDSR PIOC_ACCESS(PIO_MDSR_OFF)
00278 #endif
00279 #if PIO_HAS_PULLUP
00280 #define PIOC_PUDR PIOC_ACCESS(PIO_PUDR_OFF)
00281 #define PIOC_PUER PIOC_ACCESS(PIO_PUER_OFF)
00282 #define PIOC_PUSR PIOC_ACCESS(PIO_PUSR_OFF)
00283 #endif
00284 #if PIO_HAS_PERIPHERALSELECT
00285 #define PIOC_ASR PIOC_ACCESS(PIO_ASR_OFF)
00286 #define PIOC_BSR PIOC_ACCESS(PIO_BSR_OFF)
00287 #define PIOC_ABSR PIOC_ACCESS(PIO_ABSR_OFF)
00288 #endif
00289 #if PIO_HAS_OUTPUTWRITEENABLE
00290 #define PIOC_OWER PIOC_ACCESS(PIO_OWER_OFF)
00291 #define PIOC_OWDR PIOC_ACCESS(PIO_OWDR_OFF)
00292 #define PIOC_OWSR PIOC_ACCESS(PIO_OWSR_OFF)
00293 #endif
00294 #endif
00295
00296
00297 #endif