-
Notifications
You must be signed in to change notification settings - Fork 0
/
stm32_svd-sdmmc.ads
644 lines (599 loc) · 22.8 KB
/
stm32_svd-sdmmc.ads
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
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
pragma Style_Checks (Off);
-- This spec has been automatically generated from STM32L4R9.svd
pragma Restrictions (No_Elaboration_Code);
with HAL;
with System;
package STM32_SVD.SDMMC is
pragma Preelaborate;
---------------
-- Registers --
---------------
subtype POWER_PWRCTRL_Field is HAL.UInt2;
subtype POWER_DIRPOL_Field is HAL.UInt2;
-- power control register
type POWER_Register is record
PWRCTRL : POWER_PWRCTRL_Field := 16#0#;
-- SDMMC state control bits
VSWITCH : Boolean := False;
-- Voltage switch sequence start
VSWITCHEN : Boolean := False;
-- Voltage switch procedure enable
DIRPOL : POWER_DIRPOL_Field := 16#0#;
-- Data and command direction signals polarity selection
Reserved_6_31 : HAL.UInt26 := 16#0#;
-- unspecified
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
for POWER_Register use record
PWRCTRL at 0 range 0 .. 1;
VSWITCH at 0 range 2 .. 2;
VSWITCHEN at 0 range 3 .. 3;
DIRPOL at 0 range 4 .. 5;
Reserved_6_31 at 0 range 6 .. 31;
end record;
subtype CLKCR_CLKDIV_Field is HAL.UInt10;
subtype CLKCR_WIDBUS_Field is HAL.UInt2;
subtype CLKCR_SELCLKRX_Field is HAL.UInt2;
-- SDI clock control register
type CLKCR_Register is record
CLKDIV : CLKCR_CLKDIV_Field := 16#0#;
-- Clock divide factor
Reserved_10_11 : HAL.UInt2 := 16#0#;
-- unspecified
PWRSAV : Boolean := False;
-- Power saving configuration bit
Reserved_13_13 : HAL.Bit := 16#0#;
-- unspecified
WIDBUS : CLKCR_WIDBUS_Field := 16#0#;
-- Wide bus mode enable bit
NEGEDGE : Boolean := False;
-- SDIO_CK dephasing selection bit
HWFC_EN : Boolean := False;
-- HW Flow Control enable
DDR : Boolean := False;
-- Data rate signalling selection
BUSSPEED : Boolean := False;
-- BUS speed for selection of SDMMC operating modes
SELCLKRX : CLKCR_SELCLKRX_Field := 16#0#;
-- Receive clock selection
Reserved_22_31 : HAL.UInt10 := 16#0#;
-- unspecified
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
for CLKCR_Register use record
CLKDIV at 0 range 0 .. 9;
Reserved_10_11 at 0 range 10 .. 11;
PWRSAV at 0 range 12 .. 12;
Reserved_13_13 at 0 range 13 .. 13;
WIDBUS at 0 range 14 .. 15;
NEGEDGE at 0 range 16 .. 16;
HWFC_EN at 0 range 17 .. 17;
DDR at 0 range 18 .. 18;
BUSSPEED at 0 range 19 .. 19;
SELCLKRX at 0 range 20 .. 21;
Reserved_22_31 at 0 range 22 .. 31;
end record;
subtype CMD_CMDINDEX_Field is HAL.UInt6;
subtype CMD_WAITRESP_Field is HAL.UInt2;
-- command register
type CMD_Register is record
CMDINDEX : CMD_CMDINDEX_Field := 16#0#;
-- Command index
CMDTRANS : Boolean := False;
-- Treat command as data transfer
CMDSTOP : Boolean := False;
-- Treat command as stop transmission
WAITRESP : CMD_WAITRESP_Field := 16#0#;
-- Wait for response bits
WAITINT : Boolean := False;
-- CPSM waits for interrupt request
WAITPEND : Boolean := False;
-- CPSM Waits for ends of data transfer (CmdPend internal signal)
CPSMEN : Boolean := False;
-- Command path state machine (CPSM) Enable bit
DTHOLD : Boolean := False;
-- Hold new data block transmission and reception in the DPSM
BOOTMODE : Boolean := False;
-- Select the boot mode procedure to use
BOOTEN : Boolean := False;
-- Enable boot mode procedure
CMDSUSPEND : Boolean := False;
-- Treat as a suspend or resume command
Reserved_17_31 : HAL.UInt15 := 16#0#;
-- unspecified
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
for CMD_Register use record
CMDINDEX at 0 range 0 .. 5;
CMDTRANS at 0 range 6 .. 6;
CMDSTOP at 0 range 7 .. 7;
WAITRESP at 0 range 8 .. 9;
WAITINT at 0 range 10 .. 10;
WAITPEND at 0 range 11 .. 11;
CPSMEN at 0 range 12 .. 12;
DTHOLD at 0 range 13 .. 13;
BOOTMODE at 0 range 14 .. 14;
BOOTEN at 0 range 15 .. 15;
CMDSUSPEND at 0 range 16 .. 16;
Reserved_17_31 at 0 range 17 .. 31;
end record;
subtype RESPCMD_RESPCMD_Field is HAL.UInt6;
-- command response register
type RESPCMD_Register is record
RESPCMD : RESPCMD_RESPCMD_Field;
-- Read-only. Response command index
Reserved_6_31 : HAL.UInt26;
-- unspecified
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
for RESPCMD_Register use record
RESPCMD at 0 range 0 .. 5;
Reserved_6_31 at 0 range 6 .. 31;
end record;
subtype DLEN_DATALENGTH_Field is HAL.UInt25;
-- data length register
type DLEN_Register is record
DATALENGTH : DLEN_DATALENGTH_Field := 16#0#;
-- Data length value
Reserved_25_31 : HAL.UInt7 := 16#0#;
-- unspecified
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
for DLEN_Register use record
DATALENGTH at 0 range 0 .. 24;
Reserved_25_31 at 0 range 25 .. 31;
end record;
subtype DCTRL_DTMODE_Field is HAL.UInt2;
subtype DCTRL_DBLOCKSIZE_Field is HAL.UInt4;
-- data control register
type DCTRL_Register is record
DTEN : Boolean := False;
-- Data transfer enable bit
DTDIR : Boolean := False;
-- Data transfer direction selection
DTMODE : DCTRL_DTMODE_Field := 16#0#;
-- Data transfer mode selection
DBLOCKSIZE : DCTRL_DBLOCKSIZE_Field := 16#0#;
-- Data block size
RWSTART : Boolean := False;
-- Read wait start
RWSTOP : Boolean := False;
-- Read wait stop
RWMOD : Boolean := False;
-- Read wait mode
SDIOEN : Boolean := False;
-- SD I/O interrupt enable functions
BOOTACKEN : Boolean := False;
-- Enable the reception of the boot ack
FIFORST : Boolean := False;
-- FIFO reset, flushes any remaining data
Reserved_14_31 : HAL.UInt18 := 16#0#;
-- unspecified
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
for DCTRL_Register use record
DTEN at 0 range 0 .. 0;
DTDIR at 0 range 1 .. 1;
DTMODE at 0 range 2 .. 3;
DBLOCKSIZE at 0 range 4 .. 7;
RWSTART at 0 range 8 .. 8;
RWSTOP at 0 range 9 .. 9;
RWMOD at 0 range 10 .. 10;
SDIOEN at 0 range 11 .. 11;
BOOTACKEN at 0 range 12 .. 12;
FIFORST at 0 range 13 .. 13;
Reserved_14_31 at 0 range 14 .. 31;
end record;
subtype DCNTR_DATACOUNT_Field is HAL.UInt25;
-- data counter register
type DCNTR_Register is record
DATACOUNT : DCNTR_DATACOUNT_Field;
-- Read-only. Data count value
Reserved_25_31 : HAL.UInt7;
-- unspecified
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
for DCNTR_Register use record
DATACOUNT at 0 range 0 .. 24;
Reserved_25_31 at 0 range 25 .. 31;
end record;
-- status register
type STA_Register is record
CCRCFAIL : Boolean;
-- Read-only. Command response received (CRC check failed)
DCRCFAIL : Boolean;
-- Read-only. Data block sent/received (CRC check failed)
CTIMEOUT : Boolean;
-- Read-only. Command response timeout
DTIMEOUT : Boolean;
-- Read-only. Data timeout
TXUNDERR : Boolean;
-- Read-only. Transmit FIFO underrun error
RXOVERR : Boolean;
-- Read-only. Received FIFO overrun error
CMDREND : Boolean;
-- Read-only. Command response received (CRC check passed, or no CRC)
CMDSENT : Boolean;
-- Read-only. Command sent (no response required)
DATAEND : Boolean;
-- Read-only. Data transfer ended correctly
DHOLD : Boolean;
-- Read-only. Data transfer hold
DBCKEND : Boolean;
-- Read-only. Data block sent/received (CRC check passed)
DABORT : Boolean;
-- Read-only. Data transfer aborted by CMD 12
DPSMACT : Boolean;
-- Read-only. Data path state machine active, i.e. not in Idle state
CPSMACT : Boolean;
-- Read-only. Command path state machine active, i.e. not in Idle state
TXFIFOHE : Boolean;
-- Read-only. Transmit FIFO half empty: at least halt the words can be
-- written into the FIFO
RXFIFOHF : Boolean;
-- Read-only. Receive FIFO half full: there are at least half the number
-- of words in the FIFO
TXFIFOF : Boolean;
-- Read-only. Transmit FIFO full
RXFIFOF : Boolean;
-- Read-only. Receive FIFO full
TXFIFOE : Boolean;
-- Read-only. Transmit FIFO empty
RXFIFOE : Boolean;
-- Read-only. Receive FIFO empty
BUSYD0 : Boolean;
-- Read-only. Inverted value of SDMMC_D0 line (Busy)
BUSYD0END : Boolean;
-- Read-only. end of SDMMC_D0 Busy following a CMD response detected
SDIOIT : Boolean;
-- Read-only. SDIO interrupt received
ACKFAIL : Boolean;
-- Read-only. Boot acknowledgment received (boot acknowledgment check
-- fail)
ACKTIMEOUT : Boolean;
-- Read-only. Boot acknowledgment timeout
VSWEND : Boolean;
-- Read-only. Voltage switch critical timing section completion
CKSTOP : Boolean;
-- Read-only. SDMMC_CK stopped in Voltage switch procedure
IDMATE : Boolean;
-- Read-only. IDMA transfer error
IDMABTC : Boolean;
-- Read-only. IDMA buffer transfer complete
Reserved_29_31 : HAL.UInt3;
-- unspecified
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
for STA_Register use record
CCRCFAIL at 0 range 0 .. 0;
DCRCFAIL at 0 range 1 .. 1;
CTIMEOUT at 0 range 2 .. 2;
DTIMEOUT at 0 range 3 .. 3;
TXUNDERR at 0 range 4 .. 4;
RXOVERR at 0 range 5 .. 5;
CMDREND at 0 range 6 .. 6;
CMDSENT at 0 range 7 .. 7;
DATAEND at 0 range 8 .. 8;
DHOLD at 0 range 9 .. 9;
DBCKEND at 0 range 10 .. 10;
DABORT at 0 range 11 .. 11;
DPSMACT at 0 range 12 .. 12;
CPSMACT at 0 range 13 .. 13;
TXFIFOHE at 0 range 14 .. 14;
RXFIFOHF at 0 range 15 .. 15;
TXFIFOF at 0 range 16 .. 16;
RXFIFOF at 0 range 17 .. 17;
TXFIFOE at 0 range 18 .. 18;
RXFIFOE at 0 range 19 .. 19;
BUSYD0 at 0 range 20 .. 20;
BUSYD0END at 0 range 21 .. 21;
SDIOIT at 0 range 22 .. 22;
ACKFAIL at 0 range 23 .. 23;
ACKTIMEOUT at 0 range 24 .. 24;
VSWEND at 0 range 25 .. 25;
CKSTOP at 0 range 26 .. 26;
IDMATE at 0 range 27 .. 27;
IDMABTC at 0 range 28 .. 28;
Reserved_29_31 at 0 range 29 .. 31;
end record;
-- interrupt clear register
type ICR_Register is record
CCRCFAILC : Boolean := False;
-- CCRCFAIL flag clear bit
DCRCFAILC : Boolean := False;
-- DCRCFAIL flag clear bit
CTIMEOUTC : Boolean := False;
-- CTIMEOUT flag clear bit
DTIMEOUTC : Boolean := False;
-- DTIMEOUT flag clear bit
TXUNDERRC : Boolean := False;
-- TXUNDERR flag clear bit
RXOVERRC : Boolean := False;
-- RXOVERR flag clear bit
CMDRENDC : Boolean := False;
-- CMDREND flag clear bit
CMDSENTC : Boolean := False;
-- CMDSENT flag clear bit
DATAENDC : Boolean := False;
-- DATAEND flag clear bit
DHOLDC : Boolean := False;
-- DHOLD flag clear bit
DBCKENDC : Boolean := False;
-- DBCKEND flag clear bit
DABORTC : Boolean := False;
-- DABORT flag clear bit
Reserved_12_20 : HAL.UInt9 := 16#0#;
-- unspecified
BUSYD0ENDC : Boolean := False;
-- BUSYD0END flag clear bit
SDIOITC : Boolean := False;
-- SDIOIT flag clear bit
ACKFAILC : Boolean := False;
-- ACKFAIL flag clear bit
ACKTIMEOUTC : Boolean := False;
-- ACKTIMEOUT flag clear bit
VSWENDC : Boolean := False;
-- VSWEND flag clear bit
CKSTOPC : Boolean := False;
-- CKSTOP flag clear bit
IDMATEC : Boolean := False;
-- IDMATE flag clear bit
IDMABTCC : Boolean := False;
-- IDMABTC flag clear bit
Reserved_29_31 : HAL.UInt3 := 16#0#;
-- unspecified
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
for ICR_Register use record
CCRCFAILC at 0 range 0 .. 0;
DCRCFAILC at 0 range 1 .. 1;
CTIMEOUTC at 0 range 2 .. 2;
DTIMEOUTC at 0 range 3 .. 3;
TXUNDERRC at 0 range 4 .. 4;
RXOVERRC at 0 range 5 .. 5;
CMDRENDC at 0 range 6 .. 6;
CMDSENTC at 0 range 7 .. 7;
DATAENDC at 0 range 8 .. 8;
DHOLDC at 0 range 9 .. 9;
DBCKENDC at 0 range 10 .. 10;
DABORTC at 0 range 11 .. 11;
Reserved_12_20 at 0 range 12 .. 20;
BUSYD0ENDC at 0 range 21 .. 21;
SDIOITC at 0 range 22 .. 22;
ACKFAILC at 0 range 23 .. 23;
ACKTIMEOUTC at 0 range 24 .. 24;
VSWENDC at 0 range 25 .. 25;
CKSTOPC at 0 range 26 .. 26;
IDMATEC at 0 range 27 .. 27;
IDMABTCC at 0 range 28 .. 28;
Reserved_29_31 at 0 range 29 .. 31;
end record;
-- mask register
type MASK_Register is record
CCRCFAILIE : Boolean := False;
-- Command CRC fail interrupt enable
DCRCFAILIE : Boolean := False;
-- Data CRC fail interrupt enable
CTIMEOUTIE : Boolean := False;
-- Command timeout interrupt enable
DTIMEOUTIE : Boolean := False;
-- Data timeout interrupt enable
TXUNDERRIE : Boolean := False;
-- Tx FIFO underrun error interrupt enable
RXOVERRIE : Boolean := False;
-- Rx FIFO overrun error interrupt enable
CMDRENDIE : Boolean := False;
-- Command response received interrupt enable
CMDSENTIE : Boolean := False;
-- Command sent interrupt enable
DATAENDIE : Boolean := False;
-- Data end interrupt enable
DHOLDIE : Boolean := False;
-- Data hold interrupt enable
DBCKENDIE : Boolean := False;
-- Data block end interrupt enable
DABORTIE : Boolean := False;
-- Data transfer aborted interrupt enable
Reserved_12_13 : HAL.UInt2 := 16#0#;
-- unspecified
TXFIFOHEIE : Boolean := False;
-- Tx FIFO half empty interrupt enable
RXFIFOHFIE : Boolean := False;
-- Rx FIFO half full interrupt enable
Reserved_16_16 : HAL.Bit := 16#0#;
-- unspecified
RXFIFOFIE : Boolean := False;
-- Rx FIFO full interrupt enable
TXFIFOEIE : Boolean := False;
-- Tx FIFO empty interrupt enable
Reserved_19_20 : HAL.UInt2 := 16#0#;
-- unspecified
BUSYD0ENDIE : Boolean := False;
-- BUSYD0END interrupt enable
SDIOITIE : Boolean := False;
-- SDIO mode interrupt received interrupt enable
ACKFAILIE : Boolean := False;
-- Acknowledgement fail interrupt enable
ACKTIMEOUTIE : Boolean := False;
-- Acknowledge timeout interrupt enable
VSWENDIE : Boolean := False;
-- Voltage switch critical timing section completion interrupt enable
CKSTOPIE : Boolean := False;
-- Voltage switch clock stopped interrupt enable
Reserved_27_27 : HAL.Bit := 16#0#;
-- unspecified
IDMABTCIE : Boolean := False;
-- IDMA buffer transfer complete interrupt enable
Reserved_29_31 : HAL.UInt3 := 16#0#;
-- unspecified
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
for MASK_Register use record
CCRCFAILIE at 0 range 0 .. 0;
DCRCFAILIE at 0 range 1 .. 1;
CTIMEOUTIE at 0 range 2 .. 2;
DTIMEOUTIE at 0 range 3 .. 3;
TXUNDERRIE at 0 range 4 .. 4;
RXOVERRIE at 0 range 5 .. 5;
CMDRENDIE at 0 range 6 .. 6;
CMDSENTIE at 0 range 7 .. 7;
DATAENDIE at 0 range 8 .. 8;
DHOLDIE at 0 range 9 .. 9;
DBCKENDIE at 0 range 10 .. 10;
DABORTIE at 0 range 11 .. 11;
Reserved_12_13 at 0 range 12 .. 13;
TXFIFOHEIE at 0 range 14 .. 14;
RXFIFOHFIE at 0 range 15 .. 15;
Reserved_16_16 at 0 range 16 .. 16;
RXFIFOFIE at 0 range 17 .. 17;
TXFIFOEIE at 0 range 18 .. 18;
Reserved_19_20 at 0 range 19 .. 20;
BUSYD0ENDIE at 0 range 21 .. 21;
SDIOITIE at 0 range 22 .. 22;
ACKFAILIE at 0 range 23 .. 23;
ACKTIMEOUTIE at 0 range 24 .. 24;
VSWENDIE at 0 range 25 .. 25;
CKSTOPIE at 0 range 26 .. 26;
Reserved_27_27 at 0 range 27 .. 27;
IDMABTCIE at 0 range 28 .. 28;
Reserved_29_31 at 0 range 29 .. 31;
end record;
subtype ACKTIMER_ACKTIME_Field is HAL.UInt25;
-- Acknowledgement timer register
type ACKTIMER_Register is record
ACKTIME : ACKTIMER_ACKTIME_Field := 16#0#;
-- Boot acknowledgement timeout period
Reserved_25_31 : HAL.UInt7 := 16#0#;
-- unspecified
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
for ACKTIMER_Register use record
ACKTIME at 0 range 0 .. 24;
Reserved_25_31 at 0 range 25 .. 31;
end record;
-- DMA control register
type IDMACTRL_Register is record
IDMAEN : Boolean := False;
-- IDMA enable
IDMABMODE : Boolean := False;
-- Buffer mode selection
IDMABACT : Boolean := False;
-- Double buffer mode active buffer indication
Reserved_3_31 : HAL.UInt29 := 16#0#;
-- unspecified
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
for IDMACTRL_Register use record
IDMAEN at 0 range 0 .. 0;
IDMABMODE at 0 range 1 .. 1;
IDMABACT at 0 range 2 .. 2;
Reserved_3_31 at 0 range 3 .. 31;
end record;
subtype IDMABSIZER_IDMABNDT_Field is HAL.UInt8;
-- IDMA buffer size register
type IDMABSIZER_Register is record
Reserved_0_4 : HAL.UInt5 := 16#0#;
-- unspecified
IDMABNDT : IDMABSIZER_IDMABNDT_Field := 16#0#;
-- Number of bytes per buffer
Reserved_13_31 : HAL.UInt19 := 16#0#;
-- unspecified
end record
with Volatile_Full_Access, Object_Size => 32,
Bit_Order => System.Low_Order_First;
for IDMABSIZER_Register use record
Reserved_0_4 at 0 range 0 .. 4;
IDMABNDT at 0 range 5 .. 12;
Reserved_13_31 at 0 range 13 .. 31;
end record;
-----------------
-- Peripherals --
-----------------
-- Secure digital input/output SDMMC interface
type SDMMC_Peripheral is record
POWER : aliased POWER_Register;
-- power control register
CLKCR : aliased CLKCR_Register;
-- SDI clock control register
ARG : aliased HAL.UInt32;
-- argument register
CMD : aliased CMD_Register;
-- command register
RESPCMD : aliased RESPCMD_Register;
-- command response register
RESP1 : aliased HAL.UInt32;
-- response 1..4 register
RESP2 : aliased HAL.UInt32;
-- response 1..4 register
RESP3 : aliased HAL.UInt32;
-- response 1..4 register
RESP4 : aliased HAL.UInt32;
-- response 1..4 register
DTIMER : aliased HAL.UInt32;
-- data timer register
DLEN : aliased DLEN_Register;
-- data length register
DCTRL : aliased DCTRL_Register;
-- data control register
DCNTR : aliased DCNTR_Register;
-- data counter register
STA : aliased STA_Register;
-- status register
ICR : aliased ICR_Register;
-- interrupt clear register
MASK : aliased MASK_Register;
-- mask register
ACKTIMER : aliased ACKTIMER_Register;
-- Acknowledgement timer register
IDMACTRL : aliased IDMACTRL_Register;
-- DMA control register
IDMABSIZER : aliased IDMABSIZER_Register;
-- IDMA buffer size register
IDMABASE0 : aliased HAL.UInt32;
-- IDMA buffer 0 base address register
IDMABASE1 : aliased HAL.UInt32;
-- IDMA buffer 1 base address register
FIFO : aliased HAL.UInt32;
-- data FIFO register
end record
with Volatile;
for SDMMC_Peripheral use record
POWER at 16#0# range 0 .. 31;
CLKCR at 16#4# range 0 .. 31;
ARG at 16#8# range 0 .. 31;
CMD at 16#C# range 0 .. 31;
RESPCMD at 16#10# range 0 .. 31;
RESP1 at 16#14# range 0 .. 31;
RESP2 at 16#18# range 0 .. 31;
RESP3 at 16#1C# range 0 .. 31;
RESP4 at 16#20# range 0 .. 31;
DTIMER at 16#24# range 0 .. 31;
DLEN at 16#28# range 0 .. 31;
DCTRL at 16#2C# range 0 .. 31;
DCNTR at 16#30# range 0 .. 31;
STA at 16#34# range 0 .. 31;
ICR at 16#38# range 0 .. 31;
MASK at 16#3C# range 0 .. 31;
ACKTIMER at 16#40# range 0 .. 31;
IDMACTRL at 16#50# range 0 .. 31;
IDMABSIZER at 16#54# range 0 .. 31;
IDMABASE0 at 16#58# range 0 .. 31;
IDMABASE1 at 16#5C# range 0 .. 31;
FIFO at 16#80# range 0 .. 31;
end record;
-- Secure digital input/output SDMMC interface
SDMMC_Periph : aliased SDMMC_Peripheral
with Import, Address => SDMMC_Base;
end STM32_SVD.SDMMC;