summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/nv/include/ap20/arslink.h
blob: cfd1ef7eed2469e0adef2e3397912d5204a6c52a (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
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
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
/*
 * Copyright (c) 2009 NVIDIA Corporation.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 *
 * Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 *
 * Neither the name of the NVIDIA Corporation nor the names of its contributors
 * may be used to endorse or promote products derived from this software
 * without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 *
 */
//
// DO NOT EDIT - generated by simspec!
//

#ifndef ___ARSLINK_H_INC_
#define ___ARSLINK_H_INC_

// Register SLINK_COMMAND_0  
#define SLINK_COMMAND_0                 _MK_ADDR_CONST(0x0)
#define SLINK_COMMAND_0_SECURE                  0x0
#define SLINK_COMMAND_0_WORD_COUNT                      0x1
#define SLINK_COMMAND_0_RESET_VAL                       _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_RESET_MASK                      _MK_MASK_CONST(0xf3f33fff)
#define SLINK_COMMAND_0_SW_DEFAULT_VAL                  _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_SW_DEFAULT_MASK                         _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_READ_MASK                       _MK_MASK_CONST(0xf3f33fff)
#define SLINK_COMMAND_0_WRITE_MASK                      _MK_MASK_CONST(0xf3f33fff)
// RD/WD access to Data Register would start the next  transfer. (This allows continuous Receive via RD of Buffer and Automated  Transmit per WD of Buffer Register)
#define SLINK_COMMAND_0_ENB_SHIFT                       _MK_SHIFT_CONST(31)
#define SLINK_COMMAND_0_ENB_FIELD                       (_MK_MASK_CONST(0x1) << SLINK_COMMAND_0_ENB_SHIFT)
#define SLINK_COMMAND_0_ENB_RANGE                       31:31
#define SLINK_COMMAND_0_ENB_WOFFSET                     0x0
#define SLINK_COMMAND_0_ENB_DEFAULT                     _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_ENB_DEFAULT_MASK                        _MK_MASK_CONST(0x1)
#define SLINK_COMMAND_0_ENB_SW_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_ENB_SW_DEFAULT_MASK                     _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_ENB_DISABLE                     _MK_ENUM_CONST(0)
#define SLINK_COMMAND_0_ENB_ENABLE                      _MK_ENUM_CONST(1)

// Program 1 after all the other bits in the COMMAND2 and COMMAND are programmed to start the trasnfer
// HW clears this bit automatically after the trasnfer is done
// Clearing of the bit by SW will stop the Shifter  and latch the partial data into buffer
#define SLINK_COMMAND_0_GO_SHIFT                        _MK_SHIFT_CONST(30)
#define SLINK_COMMAND_0_GO_FIELD                        (_MK_MASK_CONST(0x1) << SLINK_COMMAND_0_GO_SHIFT)
#define SLINK_COMMAND_0_GO_RANGE                        30:30
#define SLINK_COMMAND_0_GO_WOFFSET                      0x0
#define SLINK_COMMAND_0_GO_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_GO_DEFAULT_MASK                 _MK_MASK_CONST(0x1)
#define SLINK_COMMAND_0_GO_SW_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_GO_SW_DEFAULT_MASK                      _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_GO_STOP                 _MK_ENUM_CONST(0)
#define SLINK_COMMAND_0_GO_GO                   _MK_ENUM_CONST(1)

//  1 = Hold APB Cycle from writing another data into COMMAND register until RDY 0  = NOP. Use of this bit is deprecated.
#define SLINK_COMMAND_0_WAIT_SHIFT                      _MK_SHIFT_CONST(29)
#define SLINK_COMMAND_0_WAIT_FIELD                      (_MK_MASK_CONST(0x1) << SLINK_COMMAND_0_WAIT_SHIFT)
#define SLINK_COMMAND_0_WAIT_RANGE                      29:29
#define SLINK_COMMAND_0_WAIT_WOFFSET                    0x0
#define SLINK_COMMAND_0_WAIT_DEFAULT                    _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_WAIT_DEFAULT_MASK                       _MK_MASK_CONST(0x1)
#define SLINK_COMMAND_0_WAIT_SW_DEFAULT                 _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_WAIT_SW_DEFAULT_MASK                    _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_WAIT_NOP                        _MK_ENUM_CONST(0)
#define SLINK_COMMAND_0_WAIT_WAIT                       _MK_ENUM_CONST(1)

// 1 = Master Mode (internal Clock) 0 = Slave Mode  (external Clock)
#define SLINK_COMMAND_0_M_S_SHIFT                       _MK_SHIFT_CONST(28)
#define SLINK_COMMAND_0_M_S_FIELD                       (_MK_MASK_CONST(0x1) << SLINK_COMMAND_0_M_S_SHIFT)
#define SLINK_COMMAND_0_M_S_RANGE                       28:28
#define SLINK_COMMAND_0_M_S_WOFFSET                     0x0
#define SLINK_COMMAND_0_M_S_DEFAULT                     _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_M_S_DEFAULT_MASK                        _MK_MASK_CONST(0x1)
#define SLINK_COMMAND_0_M_S_SW_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_M_S_SW_DEFAULT_MASK                     _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_M_S_SLAVE                       _MK_ENUM_CONST(0)
#define SLINK_COMMAND_0_M_S_MASTER                      _MK_ENUM_CONST(1)

// 11 = Pull High 10 = Pull Low 01 = Driven High 00 =  Driven Low (def)
#define SLINK_COMMAND_0_IDLE_SCLK_SHIFT                 _MK_SHIFT_CONST(24)
#define SLINK_COMMAND_0_IDLE_SCLK_FIELD                 (_MK_MASK_CONST(0x3) << SLINK_COMMAND_0_IDLE_SCLK_SHIFT)
#define SLINK_COMMAND_0_IDLE_SCLK_RANGE                 25:24
#define SLINK_COMMAND_0_IDLE_SCLK_WOFFSET                       0x0
#define SLINK_COMMAND_0_IDLE_SCLK_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_IDLE_SCLK_DEFAULT_MASK                  _MK_MASK_CONST(0x3)
#define SLINK_COMMAND_0_IDLE_SCLK_SW_DEFAULT                    _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_IDLE_SCLK_SW_DEFAULT_MASK                       _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_IDLE_SCLK_DRIVE_LOW                     _MK_ENUM_CONST(0)
#define SLINK_COMMAND_0_IDLE_SCLK_DRIVE_HIGH                    _MK_ENUM_CONST(1)
#define SLINK_COMMAND_0_IDLE_SCLK_PULL_LOW                      _MK_ENUM_CONST(2)
#define SLINK_COMMAND_0_IDLE_SCLK_PULL_HIGH                     _MK_ENUM_CONST(3)

//  1 = CS3 active high  0  = CS3 active low
#define SLINK_COMMAND_0_CS_POLARITY3_SHIFT                      _MK_SHIFT_CONST(23)
#define SLINK_COMMAND_0_CS_POLARITY3_FIELD                      (_MK_MASK_CONST(0x1) << SLINK_COMMAND_0_CS_POLARITY3_SHIFT)
#define SLINK_COMMAND_0_CS_POLARITY3_RANGE                      23:23
#define SLINK_COMMAND_0_CS_POLARITY3_WOFFSET                    0x0
#define SLINK_COMMAND_0_CS_POLARITY3_DEFAULT                    _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_POLARITY3_DEFAULT_MASK                       _MK_MASK_CONST(0x1)
#define SLINK_COMMAND_0_CS_POLARITY3_SW_DEFAULT                 _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_POLARITY3_SW_DEFAULT_MASK                    _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_POLARITY3_LOW                        _MK_ENUM_CONST(0)
#define SLINK_COMMAND_0_CS_POLARITY3_HIGH                       _MK_ENUM_CONST(1)

//  1 = CS2 active high  0  = CS2 active low
#define SLINK_COMMAND_0_CS_POLARITY2_SHIFT                      _MK_SHIFT_CONST(22)
#define SLINK_COMMAND_0_CS_POLARITY2_FIELD                      (_MK_MASK_CONST(0x1) << SLINK_COMMAND_0_CS_POLARITY2_SHIFT)
#define SLINK_COMMAND_0_CS_POLARITY2_RANGE                      22:22
#define SLINK_COMMAND_0_CS_POLARITY2_WOFFSET                    0x0
#define SLINK_COMMAND_0_CS_POLARITY2_DEFAULT                    _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_POLARITY2_DEFAULT_MASK                       _MK_MASK_CONST(0x1)
#define SLINK_COMMAND_0_CS_POLARITY2_SW_DEFAULT                 _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_POLARITY2_SW_DEFAULT_MASK                    _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_POLARITY2_LOW                        _MK_ENUM_CONST(0)
#define SLINK_COMMAND_0_CS_POLARITY2_HIGH                       _MK_ENUM_CONST(1)

//  1 = Rising Edge 0 =  Falling Edge (def)
#define SLINK_COMMAND_0_CK_SDA_SHIFT                    _MK_SHIFT_CONST(21)
#define SLINK_COMMAND_0_CK_SDA_FIELD                    (_MK_MASK_CONST(0x1) << SLINK_COMMAND_0_CK_SDA_SHIFT)
#define SLINK_COMMAND_0_CK_SDA_RANGE                    21:21
#define SLINK_COMMAND_0_CK_SDA_WOFFSET                  0x0
#define SLINK_COMMAND_0_CK_SDA_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CK_SDA_DEFAULT_MASK                     _MK_MASK_CONST(0x1)
#define SLINK_COMMAND_0_CK_SDA_SW_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CK_SDA_SW_DEFAULT_MASK                  _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CK_SDA_FIRST_CLK_EDGE                   _MK_ENUM_CONST(0)
#define SLINK_COMMAND_0_CK_SDA_SECOND_CLK_EDGE                  _MK_ENUM_CONST(1)

//  1 = CS1 active high  0  = CS1 active low
#define SLINK_COMMAND_0_CS_POLARITY1_SHIFT                      _MK_SHIFT_CONST(20)
#define SLINK_COMMAND_0_CS_POLARITY1_FIELD                      (_MK_MASK_CONST(0x1) << SLINK_COMMAND_0_CS_POLARITY1_SHIFT)
#define SLINK_COMMAND_0_CS_POLARITY1_RANGE                      20:20
#define SLINK_COMMAND_0_CS_POLARITY1_WOFFSET                    0x0
#define SLINK_COMMAND_0_CS_POLARITY1_DEFAULT                    _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_POLARITY1_DEFAULT_MASK                       _MK_MASK_CONST(0x1)
#define SLINK_COMMAND_0_CS_POLARITY1_SW_DEFAULT                 _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_POLARITY1_SW_DEFAULT_MASK                    _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_POLARITY1_LOW                        _MK_ENUM_CONST(0)
#define SLINK_COMMAND_0_CS_POLARITY1_HIGH                       _MK_ENUM_CONST(1)

// 11 = Pull High 10 = Pull Low 01 = Driven High 00  = Driven Low
#define SLINK_COMMAND_0_IDLE_SDA_SHIFT                  _MK_SHIFT_CONST(16)
#define SLINK_COMMAND_0_IDLE_SDA_FIELD                  (_MK_MASK_CONST(0x3) << SLINK_COMMAND_0_IDLE_SDA_SHIFT)
#define SLINK_COMMAND_0_IDLE_SDA_RANGE                  17:16
#define SLINK_COMMAND_0_IDLE_SDA_WOFFSET                        0x0
#define SLINK_COMMAND_0_IDLE_SDA_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_IDLE_SDA_DEFAULT_MASK                   _MK_MASK_CONST(0x3)
#define SLINK_COMMAND_0_IDLE_SDA_SW_DEFAULT                     _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_IDLE_SDA_SW_DEFAULT_MASK                        _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_IDLE_SDA_DRIVE_LOW                      _MK_ENUM_CONST(0)
#define SLINK_COMMAND_0_IDLE_SDA_DRIVE_HIGH                     _MK_ENUM_CONST(1)
#define SLINK_COMMAND_0_IDLE_SDA_PULL_LOW                       _MK_ENUM_CONST(2)
#define SLINK_COMMAND_0_IDLE_SDA_PULL_HIGH                      _MK_ENUM_CONST(3)

//  1 = CS0 active high  0  = CS0 active low
#define SLINK_COMMAND_0_CS_POLARITY0_SHIFT                      _MK_SHIFT_CONST(13)
#define SLINK_COMMAND_0_CS_POLARITY0_FIELD                      (_MK_MASK_CONST(0x1) << SLINK_COMMAND_0_CS_POLARITY0_SHIFT)
#define SLINK_COMMAND_0_CS_POLARITY0_RANGE                      13:13
#define SLINK_COMMAND_0_CS_POLARITY0_WOFFSET                    0x0
#define SLINK_COMMAND_0_CS_POLARITY0_DEFAULT                    _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_POLARITY0_DEFAULT_MASK                       _MK_MASK_CONST(0x1)
#define SLINK_COMMAND_0_CS_POLARITY0_SW_DEFAULT                 _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_POLARITY0_SW_DEFAULT_MASK                    _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_POLARITY0_LOW                        _MK_ENUM_CONST(0)
#define SLINK_COMMAND_0_CS_POLARITY0_HIGH                       _MK_ENUM_CONST(1)

//  1 = CS is high  0  = CS is low  
#define SLINK_COMMAND_0_CS_VALUE_SHIFT                  _MK_SHIFT_CONST(12)
#define SLINK_COMMAND_0_CS_VALUE_FIELD                  (_MK_MASK_CONST(0x1) << SLINK_COMMAND_0_CS_VALUE_SHIFT)
#define SLINK_COMMAND_0_CS_VALUE_RANGE                  12:12
#define SLINK_COMMAND_0_CS_VALUE_WOFFSET                        0x0
#define SLINK_COMMAND_0_CS_VALUE_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_VALUE_DEFAULT_MASK                   _MK_MASK_CONST(0x1)
#define SLINK_COMMAND_0_CS_VALUE_SW_DEFAULT                     _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_VALUE_SW_DEFAULT_MASK                        _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_VALUE_LOW                    _MK_ENUM_CONST(0)
#define SLINK_COMMAND_0_CS_VALUE_HIGH                   _MK_ENUM_CONST(1)

//  1 = CS controlled by SW   0  = CS controlled by hardware
#define SLINK_COMMAND_0_CS_SW_SHIFT                     _MK_SHIFT_CONST(11)
#define SLINK_COMMAND_0_CS_SW_FIELD                     (_MK_MASK_CONST(0x1) << SLINK_COMMAND_0_CS_SW_SHIFT)
#define SLINK_COMMAND_0_CS_SW_RANGE                     11:11
#define SLINK_COMMAND_0_CS_SW_WOFFSET                   0x0
#define SLINK_COMMAND_0_CS_SW_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_SW_DEFAULT_MASK                      _MK_MASK_CONST(0x1)
#define SLINK_COMMAND_0_CS_SW_SW_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_SW_SW_DEFAULT_MASK                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_CS_SW_HARD                      _MK_ENUM_CONST(0)
#define SLINK_COMMAND_0_CS_SW_SOFT                      _MK_ENUM_CONST(1)

//  1 = both lines transmit/receive   0  = one line transmit and other receive 
#define SLINK_COMMAND_0_BOTH_EN_SHIFT                   _MK_SHIFT_CONST(10)
#define SLINK_COMMAND_0_BOTH_EN_FIELD                   (_MK_MASK_CONST(0x1) << SLINK_COMMAND_0_BOTH_EN_SHIFT)
#define SLINK_COMMAND_0_BOTH_EN_RANGE                   10:10
#define SLINK_COMMAND_0_BOTH_EN_WOFFSET                 0x0
#define SLINK_COMMAND_0_BOTH_EN_DEFAULT                 _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_BOTH_EN_DEFAULT_MASK                    _MK_MASK_CONST(0x1)
#define SLINK_COMMAND_0_BOTH_EN_SW_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_BOTH_EN_SW_DEFAULT_MASK                 _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_BOTH_EN_DISABLE                 _MK_ENUM_CONST(0)
#define SLINK_COMMAND_0_BOTH_EN_ENABLE                  _MK_ENUM_CONST(1)

// 31 = Thirty Two words (Max)
#define SLINK_COMMAND_0_WORD_SIZE_SHIFT                 _MK_SHIFT_CONST(5)
#define SLINK_COMMAND_0_WORD_SIZE_FIELD                 (_MK_MASK_CONST(0x1f) << SLINK_COMMAND_0_WORD_SIZE_SHIFT)
#define SLINK_COMMAND_0_WORD_SIZE_RANGE                 9:5
#define SLINK_COMMAND_0_WORD_SIZE_WOFFSET                       0x0
#define SLINK_COMMAND_0_WORD_SIZE_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_WORD_SIZE_DEFAULT_MASK                  _MK_MASK_CONST(0x1f)
#define SLINK_COMMAND_0_WORD_SIZE_SW_DEFAULT                    _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_WORD_SIZE_SW_DEFAULT_MASK                       _MK_MASK_CONST(0x0)

// 31 = Thirty Two bit Transfers (Max)
#define SLINK_COMMAND_0_BIT_LENGTH_SHIFT                        _MK_SHIFT_CONST(0)
#define SLINK_COMMAND_0_BIT_LENGTH_FIELD                        (_MK_MASK_CONST(0x1f) << SLINK_COMMAND_0_BIT_LENGTH_SHIFT)
#define SLINK_COMMAND_0_BIT_LENGTH_RANGE                        4:0
#define SLINK_COMMAND_0_BIT_LENGTH_WOFFSET                      0x0
#define SLINK_COMMAND_0_BIT_LENGTH_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_BIT_LENGTH_DEFAULT_MASK                 _MK_MASK_CONST(0x1f)
#define SLINK_COMMAND_0_BIT_LENGTH_SW_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND_0_BIT_LENGTH_SW_DEFAULT_MASK                      _MK_MASK_CONST(0x0)


// Register SLINK_COMMAND2_0  
#define SLINK_COMMAND2_0                        _MK_ADDR_CONST(0x4)
#define SLINK_COMMAND2_0_SECURE                         0x0
#define SLINK_COMMAND2_0_WORD_COUNT                     0x1
#define SLINK_COMMAND2_0_RESET_VAL                      _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_RESET_MASK                     _MK_MASK_CONST(0xfcfe1fd3)
#define SLINK_COMMAND2_0_SW_DEFAULT_VAL                         _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_SW_DEFAULT_MASK                        _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_READ_MASK                      _MK_MASK_CONST(0xfcfe1fd3)
#define SLINK_COMMAND2_0_WRITE_MASK                     _MK_MASK_CONST(0xfcfe1fd3)
// Receive enable 
#define SLINK_COMMAND2_0_RXEN_SHIFT                     _MK_SHIFT_CONST(31)
#define SLINK_COMMAND2_0_RXEN_FIELD                     (_MK_MASK_CONST(0x1) << SLINK_COMMAND2_0_RXEN_SHIFT)
#define SLINK_COMMAND2_0_RXEN_RANGE                     31:31
#define SLINK_COMMAND2_0_RXEN_WOFFSET                   0x0
#define SLINK_COMMAND2_0_RXEN_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_RXEN_DEFAULT_MASK                      _MK_MASK_CONST(0x1)
#define SLINK_COMMAND2_0_RXEN_SW_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_RXEN_SW_DEFAULT_MASK                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_RXEN_DISABLE                   _MK_ENUM_CONST(0)
#define SLINK_COMMAND2_0_RXEN_ENABLE                    _MK_ENUM_CONST(1)

// Transmit enable 
#define SLINK_COMMAND2_0_TXEN_SHIFT                     _MK_SHIFT_CONST(30)
#define SLINK_COMMAND2_0_TXEN_FIELD                     (_MK_MASK_CONST(0x1) << SLINK_COMMAND2_0_TXEN_SHIFT)
#define SLINK_COMMAND2_0_TXEN_RANGE                     30:30
#define SLINK_COMMAND2_0_TXEN_WOFFSET                   0x0
#define SLINK_COMMAND2_0_TXEN_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_TXEN_DEFAULT_MASK                      _MK_MASK_CONST(0x1)
#define SLINK_COMMAND2_0_TXEN_SW_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_TXEN_SW_DEFAULT_MASK                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_TXEN_DISABLE                   _MK_ENUM_CONST(0)
#define SLINK_COMMAND2_0_TXEN_ENABLE                    _MK_ENUM_CONST(1)

//  1 = bi directional mode 0 = Normal mode
#define SLINK_COMMAND2_0_SPC0_SHIFT                     _MK_SHIFT_CONST(29)
#define SLINK_COMMAND2_0_SPC0_FIELD                     (_MK_MASK_CONST(0x1) << SLINK_COMMAND2_0_SPC0_SHIFT)
#define SLINK_COMMAND2_0_SPC0_RANGE                     29:29
#define SLINK_COMMAND2_0_SPC0_WOFFSET                   0x0
#define SLINK_COMMAND2_0_SPC0_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_SPC0_DEFAULT_MASK                      _MK_MASK_CONST(0x1)
#define SLINK_COMMAND2_0_SPC0_SW_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_SPC0_SW_DEFAULT_MASK                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_SPC0_NORMAL                    _MK_ENUM_CONST(0)
#define SLINK_COMMAND2_0_SPC0_BIDIR                     _MK_ENUM_CONST(1)

// number of cycles between two packs in the DMA. Use of this field is deprecated. Use INT_SIZE 8 = number of cycles between 2 packs (Max) 
#define SLINK_COMMAND2_0_WAIT_PACK_INT_SHIFT                    _MK_SHIFT_CONST(26)
#define SLINK_COMMAND2_0_WAIT_PACK_INT_FIELD                    (_MK_MASK_CONST(0x7) << SLINK_COMMAND2_0_WAIT_PACK_INT_SHIFT)
#define SLINK_COMMAND2_0_WAIT_PACK_INT_RANGE                    28:26
#define SLINK_COMMAND2_0_WAIT_PACK_INT_WOFFSET                  0x0
#define SLINK_COMMAND2_0_WAIT_PACK_INT_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_WAIT_PACK_INT_DEFAULT_MASK                     _MK_MASK_CONST(0x7)
#define SLINK_COMMAND2_0_WAIT_PACK_INT_SW_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_WAIT_PACK_INT_SW_DEFAULT_MASK                  _MK_MASK_CONST(0x0)

// Number of transfers the CS should stay low for word sizes more than 32.
// This will enable to do the trasnfer of word sizes > 32 without using apb-dma
// 0x00  For word_sizes 1 to 32
// 0x01  For word_sizes 33 to 64
// 0x10  For word sizes 65 to 96
// 0x11  For word sizes 97 to 128
#define SLINK_COMMAND2_0_FIFO_REFILLS_SHIFT                     _MK_SHIFT_CONST(22)
#define SLINK_COMMAND2_0_FIFO_REFILLS_FIELD                     (_MK_MASK_CONST(0x3) << SLINK_COMMAND2_0_FIFO_REFILLS_SHIFT)
#define SLINK_COMMAND2_0_FIFO_REFILLS_RANGE                     23:22
#define SLINK_COMMAND2_0_FIFO_REFILLS_WOFFSET                   0x0
#define SLINK_COMMAND2_0_FIFO_REFILLS_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_FIFO_REFILLS_DEFAULT_MASK                      _MK_MASK_CONST(0x3)
#define SLINK_COMMAND2_0_FIFO_REFILLS_SW_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_FIFO_REFILLS_SW_DEFAULT_MASK                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_FIFO_REFILLS_REFILL0                   _MK_ENUM_CONST(0)
#define SLINK_COMMAND2_0_FIFO_REFILLS_REFILL1                   _MK_ENUM_CONST(1)
#define SLINK_COMMAND2_0_FIFO_REFILLS_REFILL2                   _MK_ENUM_CONST(2)
#define SLINK_COMMAND2_0_FIFO_REFILLS_REFILL3                   _MK_ENUM_CONST(3)

// number of cycles CS should stay inactive between packets 4 = number of cycles in setup for chip select (Max)   
#define SLINK_COMMAND2_0_SS_SETUP_SHIFT                 _MK_SHIFT_CONST(20)
#define SLINK_COMMAND2_0_SS_SETUP_FIELD                 (_MK_MASK_CONST(0x3) << SLINK_COMMAND2_0_SS_SETUP_SHIFT)
#define SLINK_COMMAND2_0_SS_SETUP_RANGE                 21:20
#define SLINK_COMMAND2_0_SS_SETUP_WOFFSET                       0x0
#define SLINK_COMMAND2_0_SS_SETUP_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_SS_SETUP_DEFAULT_MASK                  _MK_MASK_CONST(0x3)
#define SLINK_COMMAND2_0_SS_SETUP_SW_DEFAULT                    _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_SS_SETUP_SW_DEFAULT_MASK                       _MK_MASK_CONST(0x0)

// 11 = chip select3 10 = chip select2 01 = chip select1 00 = chip select0(def)
#define SLINK_COMMAND2_0_SS_EN_SHIFT                    _MK_SHIFT_CONST(18)
#define SLINK_COMMAND2_0_SS_EN_FIELD                    (_MK_MASK_CONST(0x3) << SLINK_COMMAND2_0_SS_EN_SHIFT)
#define SLINK_COMMAND2_0_SS_EN_RANGE                    19:18
#define SLINK_COMMAND2_0_SS_EN_WOFFSET                  0x0
#define SLINK_COMMAND2_0_SS_EN_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_SS_EN_DEFAULT_MASK                     _MK_MASK_CONST(0x3)
#define SLINK_COMMAND2_0_SS_EN_SW_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_SS_EN_SW_DEFAULT_MASK                  _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_SS_EN_CS0                      _MK_ENUM_CONST(0)
#define SLINK_COMMAND2_0_SS_EN_CS1                      _MK_ENUM_CONST(1)
#define SLINK_COMMAND2_0_SS_EN_CS2                      _MK_ENUM_CONST(2)
#define SLINK_COMMAND2_0_SS_EN_CS3                      _MK_ENUM_CONST(3)

// 1 = CS active between two packets 0 = CS inactive between two packets
#define SLINK_COMMAND2_0_CS_ACTIVE_BETWEEN_SHIFT                        _MK_SHIFT_CONST(17)
#define SLINK_COMMAND2_0_CS_ACTIVE_BETWEEN_FIELD                        (_MK_MASK_CONST(0x1) << SLINK_COMMAND2_0_CS_ACTIVE_BETWEEN_SHIFT)
#define SLINK_COMMAND2_0_CS_ACTIVE_BETWEEN_RANGE                        17:17
#define SLINK_COMMAND2_0_CS_ACTIVE_BETWEEN_WOFFSET                      0x0
#define SLINK_COMMAND2_0_CS_ACTIVE_BETWEEN_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_CS_ACTIVE_BETWEEN_DEFAULT_MASK                 _MK_MASK_CONST(0x1)
#define SLINK_COMMAND2_0_CS_ACTIVE_BETWEEN_SW_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_CS_ACTIVE_BETWEEN_SW_DEFAULT_MASK                      _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_CS_ACTIVE_BETWEEN_LOW                  _MK_ENUM_CONST(0)
#define SLINK_COMMAND2_0_CS_ACTIVE_BETWEEN_HIGH                 _MK_ENUM_CONST(1)

// number of IDLE cycles between two packets
// 31 = thirty two cycles between 2 packets
#define SLINK_COMMAND2_0_INT_SIZE_SHIFT                 _MK_SHIFT_CONST(8)
#define SLINK_COMMAND2_0_INT_SIZE_FIELD                 (_MK_MASK_CONST(0x1f) << SLINK_COMMAND2_0_INT_SIZE_SHIFT)
#define SLINK_COMMAND2_0_INT_SIZE_RANGE                 12:8
#define SLINK_COMMAND2_0_INT_SIZE_WOFFSET                       0x0
#define SLINK_COMMAND2_0_INT_SIZE_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_INT_SIZE_DEFAULT_MASK                  _MK_MASK_CONST(0x1f)
#define SLINK_COMMAND2_0_INT_SIZE_SW_DEFAULT                    _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_INT_SIZE_SW_DEFAULT_MASK                       _MK_MASK_CONST(0x0)

//  1 = Enable Modef   0 = Disable Modef (def)
#define SLINK_COMMAND2_0_MODFEN_SHIFT                   _MK_SHIFT_CONST(7)
#define SLINK_COMMAND2_0_MODFEN_FIELD                   (_MK_MASK_CONST(0x1) << SLINK_COMMAND2_0_MODFEN_SHIFT)
#define SLINK_COMMAND2_0_MODFEN_RANGE                   7:7
#define SLINK_COMMAND2_0_MODFEN_WOFFSET                 0x0
#define SLINK_COMMAND2_0_MODFEN_DEFAULT                 _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_MODFEN_DEFAULT_MASK                    _MK_MASK_CONST(0x1)
#define SLINK_COMMAND2_0_MODFEN_SW_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_MODFEN_SW_DEFAULT_MASK                 _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_MODFEN_DISABLE                 _MK_ENUM_CONST(0)
#define SLINK_COMMAND2_0_MODFEN_ENABLE                  _MK_ENUM_CONST(1)

// When set to 1 SLINK uses only one data line (mosi/miso) for Tx and Rx depending on Master/Slave mode.
// This has effect only when SPC0 is set to 1
// 1 = Enable Output buffer 0 = Disable Output buffer (def)
#define SLINK_COMMAND2_0_BIDIROE_SHIFT                  _MK_SHIFT_CONST(6)
#define SLINK_COMMAND2_0_BIDIROE_FIELD                  (_MK_MASK_CONST(0x1) << SLINK_COMMAND2_0_BIDIROE_SHIFT)
#define SLINK_COMMAND2_0_BIDIROE_RANGE                  6:6
#define SLINK_COMMAND2_0_BIDIROE_WOFFSET                        0x0
#define SLINK_COMMAND2_0_BIDIROE_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_BIDIROE_DEFAULT_MASK                   _MK_MASK_CONST(0x1)
#define SLINK_COMMAND2_0_BIDIROE_SW_DEFAULT                     _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_BIDIROE_SW_DEFAULT_MASK                        _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_BIDIROE_DISABLE                        _MK_ENUM_CONST(0)
#define SLINK_COMMAND2_0_BIDIROE_ENABLE                 _MK_ENUM_CONST(1)

// 1 = Enable SPIE interrupt 0 = Disable SPIE interrupt
#define SLINK_COMMAND2_0_SPIE_SHIFT                     _MK_SHIFT_CONST(4)
#define SLINK_COMMAND2_0_SPIE_FIELD                     (_MK_MASK_CONST(0x1) << SLINK_COMMAND2_0_SPIE_SHIFT)
#define SLINK_COMMAND2_0_SPIE_RANGE                     4:4
#define SLINK_COMMAND2_0_SPIE_WOFFSET                   0x0
#define SLINK_COMMAND2_0_SPIE_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_SPIE_DEFAULT_MASK                      _MK_MASK_CONST(0x1)
#define SLINK_COMMAND2_0_SPIE_SW_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_SPIE_SW_DEFAULT_MASK                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_SPIE_DISABLE                   _MK_ENUM_CONST(0)
#define SLINK_COMMAND2_0_SPIE_ENABLE                    _MK_ENUM_CONST(1)

// 1 = Enable 0 = Disable (def)
#define SLINK_COMMAND2_0_SSOE_SHIFT                     _MK_SHIFT_CONST(1)
#define SLINK_COMMAND2_0_SSOE_FIELD                     (_MK_MASK_CONST(0x1) << SLINK_COMMAND2_0_SSOE_SHIFT)
#define SLINK_COMMAND2_0_SSOE_RANGE                     1:1
#define SLINK_COMMAND2_0_SSOE_WOFFSET                   0x0
#define SLINK_COMMAND2_0_SSOE_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_SSOE_DEFAULT_MASK                      _MK_MASK_CONST(0x1)
#define SLINK_COMMAND2_0_SSOE_SW_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_SSOE_SW_DEFAULT_MASK                   _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_SSOE_DISABLE                   _MK_ENUM_CONST(0)
#define SLINK_COMMAND2_0_SSOE_ENABLE                    _MK_ENUM_CONST(1)

//  1 = Transmit LSB first 0 = Transmit LSB last
#define SLINK_COMMAND2_0_LSBFE_SHIFT                    _MK_SHIFT_CONST(0)
#define SLINK_COMMAND2_0_LSBFE_FIELD                    (_MK_MASK_CONST(0x1) << SLINK_COMMAND2_0_LSBFE_SHIFT)
#define SLINK_COMMAND2_0_LSBFE_RANGE                    0:0
#define SLINK_COMMAND2_0_LSBFE_WOFFSET                  0x0
#define SLINK_COMMAND2_0_LSBFE_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_LSBFE_DEFAULT_MASK                     _MK_MASK_CONST(0x1)
#define SLINK_COMMAND2_0_LSBFE_SW_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_LSBFE_SW_DEFAULT_MASK                  _MK_MASK_CONST(0x0)
#define SLINK_COMMAND2_0_LSBFE_LAST                     _MK_ENUM_CONST(0)
#define SLINK_COMMAND2_0_LSBFE_FIRST                    _MK_ENUM_CONST(1)


// Register SLINK_STATUS_0  
#define SLINK_STATUS_0                  _MK_ADDR_CONST(0x8)
#define SLINK_STATUS_0_SECURE                   0x0
#define SLINK_STATUS_0_WORD_COUNT                       0x1
#define SLINK_STATUS_0_RESET_VAL                        _MK_MASK_CONST(0xa00000)
#define SLINK_STATUS_0_RESET_MASK                       _MK_MASK_CONST(0xfffdffff)
#define SLINK_STATUS_0_SW_DEFAULT_VAL                   _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_SW_DEFAULT_MASK                  _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_READ_MASK                        _MK_MASK_CONST(0xfffdffff)
#define SLINK_STATUS_0_WRITE_MASK                       _MK_MASK_CONST(0xfffdffff)
//  1 = Controller is Busy 0 =  Controller is Free
#define SLINK_STATUS_0_BSY_SHIFT                        _MK_SHIFT_CONST(31)
#define SLINK_STATUS_0_BSY_FIELD                        (_MK_MASK_CONST(0x1) << SLINK_STATUS_0_BSY_SHIFT)
#define SLINK_STATUS_0_BSY_RANGE                        31:31
#define SLINK_STATUS_0_BSY_WOFFSET                      0x0
#define SLINK_STATUS_0_BSY_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_BSY_DEFAULT_MASK                 _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_BSY_SW_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_BSY_SW_DEFAULT_MASK                      _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_BSY_IDLE                 _MK_ENUM_CONST(0)
#define SLINK_STATUS_0_BSY_BUSY                 _MK_ENUM_CONST(1)

// 1= contoller is Ready for transfer 0 = controller is Busy. Write 1 to clear the flag
#define SLINK_STATUS_0_RDY_SHIFT                        _MK_SHIFT_CONST(30)
#define SLINK_STATUS_0_RDY_FIELD                        (_MK_MASK_CONST(0x1) << SLINK_STATUS_0_RDY_SHIFT)
#define SLINK_STATUS_0_RDY_RANGE                        30:30
#define SLINK_STATUS_0_RDY_WOFFSET                      0x0
#define SLINK_STATUS_0_RDY_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RDY_DEFAULT_MASK                 _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_RDY_SW_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RDY_SW_DEFAULT_MASK                      _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RDY_NOT_READY                    _MK_ENUM_CONST(0)
#define SLINK_STATUS_0_RDY_READY                        _MK_ENUM_CONST(1)

// Will be set to 1 by HW when Errors such as Underflow/overflow occurs.Write 1 to clear the flag
#define SLINK_STATUS_0_ERR_SHIFT                        _MK_SHIFT_CONST(29)
#define SLINK_STATUS_0_ERR_FIELD                        (_MK_MASK_CONST(0x1) << SLINK_STATUS_0_ERR_SHIFT)
#define SLINK_STATUS_0_ERR_RANGE                        29:29
#define SLINK_STATUS_0_ERR_WOFFSET                      0x0
#define SLINK_STATUS_0_ERR_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_ERR_DEFAULT_MASK                 _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_ERR_SW_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_ERR_SW_DEFAULT_MASK                      _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_ERR_OK                   _MK_ENUM_CONST(0)
#define SLINK_STATUS_0_ERR_ERROR                        _MK_ENUM_CONST(1)

// SCLK input signal State
#define SLINK_STATUS_0_SCLK_SHIFT                       _MK_SHIFT_CONST(28)
#define SLINK_STATUS_0_SCLK_FIELD                       (_MK_MASK_CONST(0x1) << SLINK_STATUS_0_SCLK_SHIFT)
#define SLINK_STATUS_0_SCLK_RANGE                       28:28
#define SLINK_STATUS_0_SCLK_WOFFSET                     0x0
#define SLINK_STATUS_0_SCLK_DEFAULT                     _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_SCLK_DEFAULT_MASK                        _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_SCLK_SW_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_SCLK_SW_DEFAULT_MASK                     _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_SCLK_LOW                 _MK_ENUM_CONST(0)
#define SLINK_STATUS_0_SCLK_HIGH                        _MK_ENUM_CONST(1)

// Flush the RX FIFO
#define SLINK_STATUS_0_RX_FLUSH_SHIFT                   _MK_SHIFT_CONST(27)
#define SLINK_STATUS_0_RX_FLUSH_FIELD                   (_MK_MASK_CONST(0x1) << SLINK_STATUS_0_RX_FLUSH_SHIFT)
#define SLINK_STATUS_0_RX_FLUSH_RANGE                   27:27
#define SLINK_STATUS_0_RX_FLUSH_WOFFSET                 0x0
#define SLINK_STATUS_0_RX_FLUSH_DEFAULT                 _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RX_FLUSH_DEFAULT_MASK                    _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_RX_FLUSH_SW_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RX_FLUSH_SW_DEFAULT_MASK                 _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RX_FLUSH_NOP                     _MK_ENUM_CONST(0)
#define SLINK_STATUS_0_RX_FLUSH_FLUSH                   _MK_ENUM_CONST(1)

// Flush the TX FIFO
#define SLINK_STATUS_0_TX_FLUSH_SHIFT                   _MK_SHIFT_CONST(26)
#define SLINK_STATUS_0_TX_FLUSH_FIELD                   (_MK_MASK_CONST(0x1) << SLINK_STATUS_0_TX_FLUSH_SHIFT)
#define SLINK_STATUS_0_TX_FLUSH_RANGE                   26:26
#define SLINK_STATUS_0_TX_FLUSH_WOFFSET                 0x0
#define SLINK_STATUS_0_TX_FLUSH_DEFAULT                 _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_TX_FLUSH_DEFAULT_MASK                    _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_TX_FLUSH_SW_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_TX_FLUSH_SW_DEFAULT_MASK                 _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_TX_FLUSH_NOP                     _MK_ENUM_CONST(0)
#define SLINK_STATUS_0_TX_FLUSH_FLUSH                   _MK_ENUM_CONST(1)

// RX FIFO Overflow
#define SLINK_STATUS_0_RX_OVF_SHIFT                     _MK_SHIFT_CONST(25)
#define SLINK_STATUS_0_RX_OVF_FIELD                     (_MK_MASK_CONST(0x1) << SLINK_STATUS_0_RX_OVF_SHIFT)
#define SLINK_STATUS_0_RX_OVF_RANGE                     25:25
#define SLINK_STATUS_0_RX_OVF_WOFFSET                   0x0
#define SLINK_STATUS_0_RX_OVF_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RX_OVF_DEFAULT_MASK                      _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_RX_OVF_SW_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RX_OVF_SW_DEFAULT_MASK                   _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RX_OVF_OK                        _MK_ENUM_CONST(0)
#define SLINK_STATUS_0_RX_OVF_ERROR                     _MK_ENUM_CONST(1)

// TX FIFO Underflow
#define SLINK_STATUS_0_TX_UNF_SHIFT                     _MK_SHIFT_CONST(24)
#define SLINK_STATUS_0_TX_UNF_FIELD                     (_MK_MASK_CONST(0x1) << SLINK_STATUS_0_TX_UNF_SHIFT)
#define SLINK_STATUS_0_TX_UNF_RANGE                     24:24
#define SLINK_STATUS_0_TX_UNF_WOFFSET                   0x0
#define SLINK_STATUS_0_TX_UNF_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_TX_UNF_DEFAULT_MASK                      _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_TX_UNF_SW_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_TX_UNF_SW_DEFAULT_MASK                   _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_TX_UNF_OK                        _MK_ENUM_CONST(0)
#define SLINK_STATUS_0_TX_UNF_ERROR                     _MK_ENUM_CONST(1)

// RX FIFO Empty
#define SLINK_STATUS_0_RX_EMPTY_SHIFT                   _MK_SHIFT_CONST(23)
#define SLINK_STATUS_0_RX_EMPTY_FIELD                   (_MK_MASK_CONST(0x1) << SLINK_STATUS_0_RX_EMPTY_SHIFT)
#define SLINK_STATUS_0_RX_EMPTY_RANGE                   23:23
#define SLINK_STATUS_0_RX_EMPTY_WOFFSET                 0x0
#define SLINK_STATUS_0_RX_EMPTY_DEFAULT                 _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_RX_EMPTY_DEFAULT_MASK                    _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_RX_EMPTY_SW_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RX_EMPTY_SW_DEFAULT_MASK                 _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RX_EMPTY_NOT_EMPTY                       _MK_ENUM_CONST(0)
#define SLINK_STATUS_0_RX_EMPTY_EMPTY                   _MK_ENUM_CONST(1)

// RX FIFO Full
#define SLINK_STATUS_0_RX_FULL_SHIFT                    _MK_SHIFT_CONST(22)
#define SLINK_STATUS_0_RX_FULL_FIELD                    (_MK_MASK_CONST(0x1) << SLINK_STATUS_0_RX_FULL_SHIFT)
#define SLINK_STATUS_0_RX_FULL_RANGE                    22:22
#define SLINK_STATUS_0_RX_FULL_WOFFSET                  0x0
#define SLINK_STATUS_0_RX_FULL_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RX_FULL_DEFAULT_MASK                     _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_RX_FULL_SW_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RX_FULL_SW_DEFAULT_MASK                  _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RX_FULL_NOT_FULL                 _MK_ENUM_CONST(0)
#define SLINK_STATUS_0_RX_FULL_FULL                     _MK_ENUM_CONST(1)

// TX FIFO Empty
#define SLINK_STATUS_0_TX_EMPTY_SHIFT                   _MK_SHIFT_CONST(21)
#define SLINK_STATUS_0_TX_EMPTY_FIELD                   (_MK_MASK_CONST(0x1) << SLINK_STATUS_0_TX_EMPTY_SHIFT)
#define SLINK_STATUS_0_TX_EMPTY_RANGE                   21:21
#define SLINK_STATUS_0_TX_EMPTY_WOFFSET                 0x0
#define SLINK_STATUS_0_TX_EMPTY_DEFAULT                 _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_TX_EMPTY_DEFAULT_MASK                    _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_TX_EMPTY_SW_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_TX_EMPTY_SW_DEFAULT_MASK                 _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_TX_EMPTY_NOT_EMPTY                       _MK_ENUM_CONST(0)
#define SLINK_STATUS_0_TX_EMPTY_EMPTY                   _MK_ENUM_CONST(1)

// TX FIFO Full
#define SLINK_STATUS_0_TX_FULL_SHIFT                    _MK_SHIFT_CONST(20)
#define SLINK_STATUS_0_TX_FULL_FIELD                    (_MK_MASK_CONST(0x1) << SLINK_STATUS_0_TX_FULL_SHIFT)
#define SLINK_STATUS_0_TX_FULL_RANGE                    20:20
#define SLINK_STATUS_0_TX_FULL_WOFFSET                  0x0
#define SLINK_STATUS_0_TX_FULL_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_TX_FULL_DEFAULT_MASK                     _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_TX_FULL_SW_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_TX_FULL_SW_DEFAULT_MASK                  _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_TX_FULL_NOT_FULL                 _MK_ENUM_CONST(0)
#define SLINK_STATUS_0_TX_FULL_FULL                     _MK_ENUM_CONST(1)

// TX FIFO Overflow
#define SLINK_STATUS_0_TX_OVF_SHIFT                     _MK_SHIFT_CONST(19)
#define SLINK_STATUS_0_TX_OVF_FIELD                     (_MK_MASK_CONST(0x1) << SLINK_STATUS_0_TX_OVF_SHIFT)
#define SLINK_STATUS_0_TX_OVF_RANGE                     19:19
#define SLINK_STATUS_0_TX_OVF_WOFFSET                   0x0
#define SLINK_STATUS_0_TX_OVF_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_TX_OVF_DEFAULT_MASK                      _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_TX_OVF_SW_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_TX_OVF_SW_DEFAULT_MASK                   _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_TX_OVF_OK                        _MK_ENUM_CONST(0)
#define SLINK_STATUS_0_TX_OVF_ERROR                     _MK_ENUM_CONST(1)

// RX FIFO Underflow
#define SLINK_STATUS_0_RX_UNF_SHIFT                     _MK_SHIFT_CONST(18)
#define SLINK_STATUS_0_RX_UNF_FIELD                     (_MK_MASK_CONST(0x1) << SLINK_STATUS_0_RX_UNF_SHIFT)
#define SLINK_STATUS_0_RX_UNF_RANGE                     18:18
#define SLINK_STATUS_0_RX_UNF_WOFFSET                   0x0
#define SLINK_STATUS_0_RX_UNF_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RX_UNF_DEFAULT_MASK                      _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_RX_UNF_SW_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RX_UNF_SW_DEFAULT_MASK                   _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_RX_UNF_OK                        _MK_ENUM_CONST(0)
#define SLINK_STATUS_0_RX_UNF_ERROR                     _MK_ENUM_CONST(1)

// Mode fault
#define SLINK_STATUS_0_MODF_SHIFT                       _MK_SHIFT_CONST(16)
#define SLINK_STATUS_0_MODF_FIELD                       (_MK_MASK_CONST(0x1) << SLINK_STATUS_0_MODF_SHIFT)
#define SLINK_STATUS_0_MODF_RANGE                       16:16
#define SLINK_STATUS_0_MODF_WOFFSET                     0x0
#define SLINK_STATUS_0_MODF_DEFAULT                     _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_MODF_DEFAULT_MASK                        _MK_MASK_CONST(0x1)
#define SLINK_STATUS_0_MODF_SW_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_MODF_SW_DEFAULT_MASK                     _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_MODF_OK                  _MK_ENUM_CONST(0)
#define SLINK_STATUS_0_MODF_ERROR                       _MK_ENUM_CONST(1)

// number of blocks transferred (BLOCK count) during dma
#define SLINK_STATUS_0_BLK_CNT_SHIFT                    _MK_SHIFT_CONST(0)
#define SLINK_STATUS_0_BLK_CNT_FIELD                    (_MK_MASK_CONST(0xffff) << SLINK_STATUS_0_BLK_CNT_SHIFT)
#define SLINK_STATUS_0_BLK_CNT_RANGE                    15:0
#define SLINK_STATUS_0_BLK_CNT_WOFFSET                  0x0
#define SLINK_STATUS_0_BLK_CNT_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_BLK_CNT_DEFAULT_MASK                     _MK_MASK_CONST(0xffff)
#define SLINK_STATUS_0_BLK_CNT_SW_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_BLK_CNT_SW_DEFAULT_MASK                  _MK_MASK_CONST(0x0)

// In GO mode indicates number of words transferred (word count) 
#define SLINK_STATUS_0_WORD_SHIFT                       _MK_SHIFT_CONST(5)
#define SLINK_STATUS_0_WORD_FIELD                       (_MK_MASK_CONST(0x1f) << SLINK_STATUS_0_WORD_SHIFT)
#define SLINK_STATUS_0_WORD_RANGE                       9:5
#define SLINK_STATUS_0_WORD_WOFFSET                     0x0
#define SLINK_STATUS_0_WORD_DEFAULT                     _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_WORD_DEFAULT_MASK                        _MK_MASK_CONST(0x1f)
#define SLINK_STATUS_0_WORD_SW_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_WORD_SW_DEFAULT_MASK                     _MK_MASK_CONST(0x0)

// In Go mode indicates mumber of bits trasnferred (bit count)
#define SLINK_STATUS_0_COUNT_SHIFT                      _MK_SHIFT_CONST(0)
#define SLINK_STATUS_0_COUNT_FIELD                      (_MK_MASK_CONST(0x1f) << SLINK_STATUS_0_COUNT_SHIFT)
#define SLINK_STATUS_0_COUNT_RANGE                      4:0
#define SLINK_STATUS_0_COUNT_WOFFSET                    0x0
#define SLINK_STATUS_0_COUNT_DEFAULT                    _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_COUNT_DEFAULT_MASK                       _MK_MASK_CONST(0x1f)
#define SLINK_STATUS_0_COUNT_SW_DEFAULT                 _MK_MASK_CONST(0x0)
#define SLINK_STATUS_0_COUNT_SW_DEFAULT_MASK                    _MK_MASK_CONST(0x0)


// Reserved address 12 [0xc] 

// Register SLINK_MAS_DATA_0  
#define SLINK_MAS_DATA_0                        _MK_ADDR_CONST(0x10)
#define SLINK_MAS_DATA_0_SECURE                         0x0
#define SLINK_MAS_DATA_0_WORD_COUNT                     0x1
#define SLINK_MAS_DATA_0_RESET_VAL                      _MK_MASK_CONST(0x0)
#define SLINK_MAS_DATA_0_RESET_MASK                     _MK_MASK_CONST(0xffffffff)
#define SLINK_MAS_DATA_0_SW_DEFAULT_VAL                         _MK_MASK_CONST(0x0)
#define SLINK_MAS_DATA_0_SW_DEFAULT_MASK                        _MK_MASK_CONST(0x0)
#define SLINK_MAS_DATA_0_READ_MASK                      _MK_MASK_CONST(0xffffffff)
#define SLINK_MAS_DATA_0_WRITE_MASK                     _MK_MASK_CONST(0xffffffff)
// Tx/Rx Shift Pattern
#define SLINK_MAS_DATA_0_MASTER_BUFFER_SHIFT                    _MK_SHIFT_CONST(0)
#define SLINK_MAS_DATA_0_MASTER_BUFFER_FIELD                    (_MK_MASK_CONST(0xffffffff) << SLINK_MAS_DATA_0_MASTER_BUFFER_SHIFT)
#define SLINK_MAS_DATA_0_MASTER_BUFFER_RANGE                    31:0
#define SLINK_MAS_DATA_0_MASTER_BUFFER_WOFFSET                  0x0
#define SLINK_MAS_DATA_0_MASTER_BUFFER_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_MAS_DATA_0_MASTER_BUFFER_DEFAULT_MASK                     _MK_MASK_CONST(0xffffffff)
#define SLINK_MAS_DATA_0_MASTER_BUFFER_SW_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_MAS_DATA_0_MASTER_BUFFER_SW_DEFAULT_MASK                  _MK_MASK_CONST(0x0)


// Register SLINK_SLAVE_DATA_0  
#define SLINK_SLAVE_DATA_0                      _MK_ADDR_CONST(0x14)
#define SLINK_SLAVE_DATA_0_SECURE                       0x0
#define SLINK_SLAVE_DATA_0_WORD_COUNT                   0x1
#define SLINK_SLAVE_DATA_0_RESET_VAL                    _MK_MASK_CONST(0x0)
#define SLINK_SLAVE_DATA_0_RESET_MASK                   _MK_MASK_CONST(0xffffffff)
#define SLINK_SLAVE_DATA_0_SW_DEFAULT_VAL                       _MK_MASK_CONST(0x0)
#define SLINK_SLAVE_DATA_0_SW_DEFAULT_MASK                      _MK_MASK_CONST(0x0)
#define SLINK_SLAVE_DATA_0_READ_MASK                    _MK_MASK_CONST(0xffffffff)
#define SLINK_SLAVE_DATA_0_WRITE_MASK                   _MK_MASK_CONST(0xffffffff)
// Tx/Rx Shift Pattern
#define SLINK_SLAVE_DATA_0_SLAVE_BUFFER_SHIFT                   _MK_SHIFT_CONST(0)
#define SLINK_SLAVE_DATA_0_SLAVE_BUFFER_FIELD                   (_MK_MASK_CONST(0xffffffff) << SLINK_SLAVE_DATA_0_SLAVE_BUFFER_SHIFT)
#define SLINK_SLAVE_DATA_0_SLAVE_BUFFER_RANGE                   31:0
#define SLINK_SLAVE_DATA_0_SLAVE_BUFFER_WOFFSET                 0x0
#define SLINK_SLAVE_DATA_0_SLAVE_BUFFER_DEFAULT                 _MK_MASK_CONST(0x0)
#define SLINK_SLAVE_DATA_0_SLAVE_BUFFER_DEFAULT_MASK                    _MK_MASK_CONST(0xffffffff)
#define SLINK_SLAVE_DATA_0_SLAVE_BUFFER_SW_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_SLAVE_DATA_0_SLAVE_BUFFER_SW_DEFAULT_MASK                 _MK_MASK_CONST(0x0)


// Register SLINK_DMA_CTL_0  
#define SLINK_DMA_CTL_0                 _MK_ADDR_CONST(0x18)
#define SLINK_DMA_CTL_0_SECURE                  0x0
#define SLINK_DMA_CTL_0_WORD_COUNT                      0x1
#define SLINK_DMA_CTL_0_RESET_VAL                       _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_RESET_MASK                      _MK_MASK_CONST(0x8c7fffff)
#define SLINK_DMA_CTL_0_SW_DEFAULT_VAL                  _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_SW_DEFAULT_MASK                         _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_READ_MASK                       _MK_MASK_CONST(0x8c7fffff)
#define SLINK_DMA_CTL_0_WRITE_MASK                      _MK_MASK_CONST(0x8c7fffff)
//  1 = DMA mode is enabled, 0 = DMA disabled
#define SLINK_DMA_CTL_0_DMA_EN_SHIFT                    _MK_SHIFT_CONST(31)
#define SLINK_DMA_CTL_0_DMA_EN_FIELD                    (_MK_MASK_CONST(0x1) << SLINK_DMA_CTL_0_DMA_EN_SHIFT)
#define SLINK_DMA_CTL_0_DMA_EN_RANGE                    31:31
#define SLINK_DMA_CTL_0_DMA_EN_WOFFSET                  0x0
#define SLINK_DMA_CTL_0_DMA_EN_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_DMA_EN_DEFAULT_MASK                     _MK_MASK_CONST(0x1)
#define SLINK_DMA_CTL_0_DMA_EN_SW_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_DMA_EN_SW_DEFAULT_MASK                  _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_DMA_EN_DISABLE                  _MK_ENUM_CONST(0)
#define SLINK_DMA_CTL_0_DMA_EN_ENABLE                   _MK_ENUM_CONST(1)

// Interrupt enable on receive completion.
// 1 = Enable interrupt generation at the end of a receive transfer.
// 0 = Disable interrupt generation for receive.
#define SLINK_DMA_CTL_0_IE_RXC_SHIFT                    _MK_SHIFT_CONST(27)
#define SLINK_DMA_CTL_0_IE_RXC_FIELD                    (_MK_MASK_CONST(0x1) << SLINK_DMA_CTL_0_IE_RXC_SHIFT)
#define SLINK_DMA_CTL_0_IE_RXC_RANGE                    27:27
#define SLINK_DMA_CTL_0_IE_RXC_WOFFSET                  0x0
#define SLINK_DMA_CTL_0_IE_RXC_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_IE_RXC_DEFAULT_MASK                     _MK_MASK_CONST(0x1)
#define SLINK_DMA_CTL_0_IE_RXC_SW_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_IE_RXC_SW_DEFAULT_MASK                  _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_IE_RXC_DISABLE                  _MK_ENUM_CONST(0)
#define SLINK_DMA_CTL_0_IE_RXC_ENABLE                   _MK_ENUM_CONST(1)

// Interrupt enable on transmit completion.
// 1 = Enable interrupt generation at the end of a transmit transfer.
// 0 = Disable interrupt generation for transmit.
#define SLINK_DMA_CTL_0_IE_TXC_SHIFT                    _MK_SHIFT_CONST(26)
#define SLINK_DMA_CTL_0_IE_TXC_FIELD                    (_MK_MASK_CONST(0x1) << SLINK_DMA_CTL_0_IE_TXC_SHIFT)
#define SLINK_DMA_CTL_0_IE_TXC_RANGE                    26:26
#define SLINK_DMA_CTL_0_IE_TXC_WOFFSET                  0x0
#define SLINK_DMA_CTL_0_IE_TXC_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_IE_TXC_DEFAULT_MASK                     _MK_MASK_CONST(0x1)
#define SLINK_DMA_CTL_0_IE_TXC_SW_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_IE_TXC_SW_DEFAULT_MASK                  _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_IE_TXC_DISABLE                  _MK_ENUM_CONST(0)
#define SLINK_DMA_CTL_0_IE_TXC_ENABLE                   _MK_ENUM_CONST(1)

// Specifies the packet size during the DMA mode
//             00      = 4 bits in a pack
//           01      = 8bits in a pack
//            10      = 16 in a pack
//               10      = 32 in a pack
#define SLINK_DMA_CTL_0_PACK_SIZE_SHIFT                 _MK_SHIFT_CONST(21)
#define SLINK_DMA_CTL_0_PACK_SIZE_FIELD                 (_MK_MASK_CONST(0x3) << SLINK_DMA_CTL_0_PACK_SIZE_SHIFT)
#define SLINK_DMA_CTL_0_PACK_SIZE_RANGE                 22:21
#define SLINK_DMA_CTL_0_PACK_SIZE_WOFFSET                       0x0
#define SLINK_DMA_CTL_0_PACK_SIZE_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_PACK_SIZE_DEFAULT_MASK                  _MK_MASK_CONST(0x3)
#define SLINK_DMA_CTL_0_PACK_SIZE_SW_DEFAULT                    _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_PACK_SIZE_SW_DEFAULT_MASK                       _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_PACK_SIZE_PACK4                 _MK_ENUM_CONST(0)
#define SLINK_DMA_CTL_0_PACK_SIZE_PACK8                 _MK_ENUM_CONST(1)
#define SLINK_DMA_CTL_0_PACK_SIZE_PACK16                        _MK_ENUM_CONST(2)
#define SLINK_DMA_CTL_0_PACK_SIZE_PACK32                        _MK_ENUM_CONST(3)

// Packed mode enable bit.
//  1 = Packed mode is enabled. This is only valid if BIT_LENGTH in SBCX_COMMAND register is set to 3, 7, 15 or 31
// When enabled, all 32-bits of data in the FIFO contains valid
// data packets of either 8-bit or 16-bit length.
// 0 = Packed mode is disabled.
#define SLINK_DMA_CTL_0_PACKED_SHIFT                    _MK_SHIFT_CONST(20)
#define SLINK_DMA_CTL_0_PACKED_FIELD                    (_MK_MASK_CONST(0x1) << SLINK_DMA_CTL_0_PACKED_SHIFT)
#define SLINK_DMA_CTL_0_PACKED_RANGE                    20:20
#define SLINK_DMA_CTL_0_PACKED_WOFFSET                  0x0
#define SLINK_DMA_CTL_0_PACKED_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_PACKED_DEFAULT_MASK                     _MK_MASK_CONST(0x1)
#define SLINK_DMA_CTL_0_PACKED_SW_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_PACKED_SW_DEFAULT_MASK                  _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_PACKED_DISABLE                  _MK_ENUM_CONST(0)
#define SLINK_DMA_CTL_0_PACKED_ENABLE                   _MK_ENUM_CONST(1)

// Receive FIFO trigger level.
// 00: 1 word. DMA trigger is asserted whenever there is at least 1 word in the RX FIFO.
// 01: 4 word. DMA trigger is asserted when there are at least 4 words in the RX FIFO.
// 10: 8 word. DMA trigger is asserted when there are at least 8 words in the RX FIFO.
// 11: 16 word. DMA trigger is asserted when there are at least 16 words in the RX FIFO.
#define SLINK_DMA_CTL_0_RX_TRIG_SHIFT                   _MK_SHIFT_CONST(18)
#define SLINK_DMA_CTL_0_RX_TRIG_FIELD                   (_MK_MASK_CONST(0x3) << SLINK_DMA_CTL_0_RX_TRIG_SHIFT)
#define SLINK_DMA_CTL_0_RX_TRIG_RANGE                   19:18
#define SLINK_DMA_CTL_0_RX_TRIG_WOFFSET                 0x0
#define SLINK_DMA_CTL_0_RX_TRIG_DEFAULT                 _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_RX_TRIG_DEFAULT_MASK                    _MK_MASK_CONST(0x3)
#define SLINK_DMA_CTL_0_RX_TRIG_SW_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_RX_TRIG_SW_DEFAULT_MASK                 _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_RX_TRIG_TRIG1                   _MK_ENUM_CONST(0)
#define SLINK_DMA_CTL_0_RX_TRIG_TRIG4                   _MK_ENUM_CONST(1)
#define SLINK_DMA_CTL_0_RX_TRIG_TRIG8                   _MK_ENUM_CONST(2)
#define SLINK_DMA_CTL_0_RX_TRIG_TRIG16                  _MK_ENUM_CONST(3)

// Transmit FIFO trigger level.
// 00: 1 word. DMA trigger is asserted whenever there is at least 1 word in the TX FIFO.
// 01: 4 word. DMA trigger is asserted when there are at least 4 words in the TX FIFO.
// 10: 8 word. DMA trigger is asserted when there are at least 8 words in the TX FIFO.
// 11: 16 word. DMA trigger is asserted when there are at least 16 words in the TX FIFO.
#define SLINK_DMA_CTL_0_TX_TRIG_SHIFT                   _MK_SHIFT_CONST(16)
#define SLINK_DMA_CTL_0_TX_TRIG_FIELD                   (_MK_MASK_CONST(0x3) << SLINK_DMA_CTL_0_TX_TRIG_SHIFT)
#define SLINK_DMA_CTL_0_TX_TRIG_RANGE                   17:16
#define SLINK_DMA_CTL_0_TX_TRIG_WOFFSET                 0x0
#define SLINK_DMA_CTL_0_TX_TRIG_DEFAULT                 _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_TX_TRIG_DEFAULT_MASK                    _MK_MASK_CONST(0x3)
#define SLINK_DMA_CTL_0_TX_TRIG_SW_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_TX_TRIG_SW_DEFAULT_MASK                 _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_TX_TRIG_TRIG1                   _MK_ENUM_CONST(0)
#define SLINK_DMA_CTL_0_TX_TRIG_TRIG4                   _MK_ENUM_CONST(1)
#define SLINK_DMA_CTL_0_TX_TRIG_TRIG8                   _MK_ENUM_CONST(2)
#define SLINK_DMA_CTL_0_TX_TRIG_TRIG16                  _MK_ENUM_CONST(3)

// N = N+1 packets
// number of packets should be aligned in the packed mode trasnfers.
// packed mode     --> Number of packets
//    3                                        multiple of 8
//    7                                   multiple of 4
//    15                          multiple of 2
//    31                          from 0 to N
#define SLINK_DMA_CTL_0_DMA_BLOCK_SIZE_SHIFT                    _MK_SHIFT_CONST(0)
#define SLINK_DMA_CTL_0_DMA_BLOCK_SIZE_FIELD                    (_MK_MASK_CONST(0xffff) << SLINK_DMA_CTL_0_DMA_BLOCK_SIZE_SHIFT)
#define SLINK_DMA_CTL_0_DMA_BLOCK_SIZE_RANGE                    15:0
#define SLINK_DMA_CTL_0_DMA_BLOCK_SIZE_WOFFSET                  0x0
#define SLINK_DMA_CTL_0_DMA_BLOCK_SIZE_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_DMA_BLOCK_SIZE_DEFAULT_MASK                     _MK_MASK_CONST(0xffff)
#define SLINK_DMA_CTL_0_DMA_BLOCK_SIZE_SW_DEFAULT                       _MK_MASK_CONST(0x0)
#define SLINK_DMA_CTL_0_DMA_BLOCK_SIZE_SW_DEFAULT_MASK                  _MK_MASK_CONST(0x0)


// Register SLINK_STATUS2_0  
#define SLINK_STATUS2_0                 _MK_ADDR_CONST(0x1c)
#define SLINK_STATUS2_0_SECURE                  0x0
#define SLINK_STATUS2_0_WORD_COUNT                      0x1
#define SLINK_STATUS2_0_RESET_VAL                       _MK_MASK_CONST(0x20)
#define SLINK_STATUS2_0_RESET_MASK                      _MK_MASK_CONST(0x3f003f)
#define SLINK_STATUS2_0_SW_DEFAULT_VAL                  _MK_MASK_CONST(0x0)
#define SLINK_STATUS2_0_SW_DEFAULT_MASK                         _MK_MASK_CONST(0x0)
#define SLINK_STATUS2_0_READ_MASK                       _MK_MASK_CONST(0x3f003f)
#define SLINK_STATUS2_0_WRITE_MASK                      _MK_MASK_CONST(0x3f003f)
// Indicates the number of words in the receive FIFO 
#define SLINK_STATUS2_0_RX_FIFO_FULL_COUNT_SHIFT                        _MK_SHIFT_CONST(16)
#define SLINK_STATUS2_0_RX_FIFO_FULL_COUNT_FIELD                        (_MK_MASK_CONST(0x3f) << SLINK_STATUS2_0_RX_FIFO_FULL_COUNT_SHIFT)
#define SLINK_STATUS2_0_RX_FIFO_FULL_COUNT_RANGE                        21:16
#define SLINK_STATUS2_0_RX_FIFO_FULL_COUNT_WOFFSET                      0x0
#define SLINK_STATUS2_0_RX_FIFO_FULL_COUNT_DEFAULT                      _MK_MASK_CONST(0x0)
#define SLINK_STATUS2_0_RX_FIFO_FULL_COUNT_DEFAULT_MASK                 _MK_MASK_CONST(0x3f)
#define SLINK_STATUS2_0_RX_FIFO_FULL_COUNT_SW_DEFAULT                   _MK_MASK_CONST(0x0)
#define SLINK_STATUS2_0_RX_FIFO_FULL_COUNT_SW_DEFAULT_MASK                      _MK_MASK_CONST(0x0)

// Indicates the number of empty slots in the transmit FIFO 
#define SLINK_STATUS2_0_TX_FIFO_EMPTY_COUNT_SHIFT                       _MK_SHIFT_CONST(0)
#define SLINK_STATUS2_0_TX_FIFO_EMPTY_COUNT_FIELD                       (_MK_MASK_CONST(0x3f) << SLINK_STATUS2_0_TX_FIFO_EMPTY_COUNT_SHIFT)
#define SLINK_STATUS2_0_TX_FIFO_EMPTY_COUNT_RANGE                       5:0
#define SLINK_STATUS2_0_TX_FIFO_EMPTY_COUNT_WOFFSET                     0x0
#define SLINK_STATUS2_0_TX_FIFO_EMPTY_COUNT_DEFAULT                     _MK_MASK_CONST(0x20)
#define SLINK_STATUS2_0_TX_FIFO_EMPTY_COUNT_DEFAULT_MASK                        _MK_MASK_CONST(0x3f)
#define SLINK_STATUS2_0_TX_FIFO_EMPTY_COUNT_SW_DEFAULT                  _MK_MASK_CONST(0x0)
#define SLINK_STATUS2_0_TX_FIFO_EMPTY_COUNT_SW_DEFAULT_MASK                     _MK_MASK_CONST(0x0)


// Reserved address 32 [0x20] 

// Reserved address 36 [0x24] 

// Reserved address 40 [0x28] 

// Reserved address 44 [0x2c] 

// Reserved address 48 [0x30] 

// Reserved address 52 [0x34] 

// Reserved address 56 [0x38] 

// Reserved address 60 [0x3c] 

// Reserved address 64 [0x40] 

// Reserved address 68 [0x44] 

// Reserved address 72 [0x48] 

// Reserved address 76 [0x4c] 

// Reserved address 80 [0x50] 

// Reserved address 84 [0x54] 

// Reserved address 88 [0x58] 

// Reserved address 92 [0x5c] 

// Reserved address 96 [0x60] 

// Reserved address 100 [0x64] 

// Reserved address 104 [0x68] 

// Reserved address 108 [0x6c] 

// Reserved address 112 [0x70] 

// Reserved address 116 [0x74] 

// Reserved address 120 [0x78] 

// Reserved address 124 [0x7c] 

// Reserved address 128 [0x80] 

// Reserved address 132 [0x84] 

// Reserved address 136 [0x88] 

// Reserved address 140 [0x8c] 

// Reserved address 144 [0x90] 

// Reserved address 148 [0x94] 

// Reserved address 152 [0x98] 

// Reserved address 156 [0x9c] 

// Reserved address 160 [0xa0] 

// Reserved address 164 [0xa4] 

// Reserved address 168 [0xa8] 

// Reserved address 172 [0xac] 

// Reserved address 176 [0xb0] 

// Reserved address 180 [0xb4] 

// Reserved address 184 [0xb8] 

// Reserved address 188 [0xbc] 

// Reserved address 192 [0xc0] 

// Reserved address 196 [0xc4] 

// Reserved address 200 [0xc8] 

// Reserved address 204 [0xcc] 

// Reserved address 208 [0xd0] 

// Reserved address 212 [0xd4] 

// Reserved address 216 [0xd8] 

// Reserved address 220 [0xdc] 

// Reserved address 224 [0xe0] 

// Reserved address 228 [0xe4] 

// Reserved address 232 [0xe8] 

// Reserved address 236 [0xec] 

// Reserved address 240 [0xf0] 

// Reserved address 244 [0xf4] 

// Reserved address 248 [0xf8] 

// Reserved address 252 [0xfc] 

// Register SLINK_TX_FIFO_0  
#define SLINK_TX_FIFO_0                 _MK_ADDR_CONST(0x100)
#define SLINK_TX_FIFO_0_SECURE                  0x0
#define SLINK_TX_FIFO_0_WORD_COUNT                      0x1
#define SLINK_TX_FIFO_0_RESET_VAL                       _MK_MASK_CONST(0x0)
#define SLINK_TX_FIFO_0_RESET_MASK                      _MK_MASK_CONST(0xffffffff)
#define SLINK_TX_FIFO_0_SW_DEFAULT_VAL                  _MK_MASK_CONST(0x0)
#define SLINK_TX_FIFO_0_SW_DEFAULT_MASK                         _MK_MASK_CONST(0x0)
#define SLINK_TX_FIFO_0_READ_MASK                       _MK_MASK_CONST(0xffffffff)
#define SLINK_TX_FIFO_0_WRITE_MASK                      _MK_MASK_CONST(0xffffffff)
// Tx/Rx Shift Pattern
#define SLINK_TX_FIFO_0_TX_FIFO_REGISTER_SHIFT                  _MK_SHIFT_CONST(0)
#define SLINK_TX_FIFO_0_TX_FIFO_REGISTER_FIELD                  (_MK_MASK_CONST(0xffffffff) << SLINK_TX_FIFO_0_TX_FIFO_REGISTER_SHIFT)
#define SLINK_TX_FIFO_0_TX_FIFO_REGISTER_RANGE                  31:0
#define SLINK_TX_FIFO_0_TX_FIFO_REGISTER_WOFFSET                        0x0
#define SLINK_TX_FIFO_0_TX_FIFO_REGISTER_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_TX_FIFO_0_TX_FIFO_REGISTER_DEFAULT_MASK                   _MK_MASK_CONST(0xffffffff)
#define SLINK_TX_FIFO_0_TX_FIFO_REGISTER_SW_DEFAULT                     _MK_MASK_CONST(0x0)
#define SLINK_TX_FIFO_0_TX_FIFO_REGISTER_SW_DEFAULT_MASK                        _MK_MASK_CONST(0x0)


// Reserved address 260 [0x104] 

// Reserved address 264 [0x108] 

// Reserved address 268 [0x10c] 

// Reserved address 272 [0x110] 

// Reserved address 276 [0x114] 

// Reserved address 280 [0x118] 

// Reserved address 284 [0x11c] 

// Reserved address 288 [0x120] 

// Reserved address 292 [0x124] 

// Reserved address 296 [0x128] 

// Reserved address 300 [0x12c] 

// Reserved address 304 [0x130] 

// Reserved address 308 [0x134] 

// Reserved address 312 [0x138] 

// Reserved address 316 [0x13c] 

// Reserved address 320 [0x140] 

// Reserved address 324 [0x144] 

// Reserved address 328 [0x148] 

// Reserved address 332 [0x14c] 

// Reserved address 336 [0x150] 

// Reserved address 340 [0x154] 

// Reserved address 344 [0x158] 

// Reserved address 348 [0x15c] 

// Reserved address 352 [0x160] 

// Reserved address 356 [0x164] 

// Reserved address 360 [0x168] 

// Reserved address 364 [0x16c] 

// Reserved address 368 [0x170] 

// Reserved address 372 [0x174] 

// Reserved address 376 [0x178] 

// Reserved address 380 [0x17c] 

// Register SLINK_RX_FIFO_0  
#define SLINK_RX_FIFO_0                 _MK_ADDR_CONST(0x180)
#define SLINK_RX_FIFO_0_SECURE                  0x0
#define SLINK_RX_FIFO_0_WORD_COUNT                      0x1
#define SLINK_RX_FIFO_0_RESET_VAL                       _MK_MASK_CONST(0x0)
#define SLINK_RX_FIFO_0_RESET_MASK                      _MK_MASK_CONST(0xffffffff)
#define SLINK_RX_FIFO_0_SW_DEFAULT_VAL                  _MK_MASK_CONST(0x0)
#define SLINK_RX_FIFO_0_SW_DEFAULT_MASK                         _MK_MASK_CONST(0x0)
#define SLINK_RX_FIFO_0_READ_MASK                       _MK_MASK_CONST(0xffffffff)
#define SLINK_RX_FIFO_0_WRITE_MASK                      _MK_MASK_CONST(0xffffffff)
// Tx/Rx Shift Pattern
#define SLINK_RX_FIFO_0_RX_FIFO_REGISTER_SHIFT                  _MK_SHIFT_CONST(0)
#define SLINK_RX_FIFO_0_RX_FIFO_REGISTER_FIELD                  (_MK_MASK_CONST(0xffffffff) << SLINK_RX_FIFO_0_RX_FIFO_REGISTER_SHIFT)
#define SLINK_RX_FIFO_0_RX_FIFO_REGISTER_RANGE                  31:0
#define SLINK_RX_FIFO_0_RX_FIFO_REGISTER_WOFFSET                        0x0
#define SLINK_RX_FIFO_0_RX_FIFO_REGISTER_DEFAULT                        _MK_MASK_CONST(0x0)
#define SLINK_RX_FIFO_0_RX_FIFO_REGISTER_DEFAULT_MASK                   _MK_MASK_CONST(0xffffffff)
#define SLINK_RX_FIFO_0_RX_FIFO_REGISTER_SW_DEFAULT                     _MK_MASK_CONST(0x0)
#define SLINK_RX_FIFO_0_RX_FIFO_REGISTER_SW_DEFAULT_MASK                        _MK_MASK_CONST(0x0)


//
// REGISTER LIST
//
#define LIST_ARSLINK_REGS(_op_) \
_op_(SLINK_COMMAND_0) \
_op_(SLINK_COMMAND2_0) \
_op_(SLINK_STATUS_0) \
_op_(SLINK_MAS_DATA_0) \
_op_(SLINK_SLAVE_DATA_0) \
_op_(SLINK_DMA_CTL_0) \
_op_(SLINK_STATUS2_0) \
_op_(SLINK_TX_FIFO_0) \
_op_(SLINK_RX_FIFO_0)


//
// ADDRESS SPACES
//

#define BASE_ADDRESS_SLINK      0x00000000

//
// ARSLINK REGISTER BANKS
//

#define SLINK0_FIRST_REG 0x0000 // SLINK_COMMAND_0
#define SLINK0_LAST_REG 0x0008 // SLINK_STATUS_0
#define SLINK1_FIRST_REG 0x0010 // SLINK_MAS_DATA_0
#define SLINK1_LAST_REG 0x001c // SLINK_STATUS2_0
#define SLINK2_FIRST_REG 0x0100 // SLINK_TX_FIFO_0
#define SLINK2_LAST_REG 0x0100 // SLINK_TX_FIFO_0
#define SLINK3_FIRST_REG 0x0180 // SLINK_RX_FIFO_0
#define SLINK3_LAST_REG 0x0180 // SLINK_RX_FIFO_0

#ifndef _MK_SHIFT_CONST
  #define _MK_SHIFT_CONST(_constant_) _constant_
#endif
#ifndef _MK_MASK_CONST
  #define _MK_MASK_CONST(_constant_) _constant_
#endif
#ifndef _MK_ENUM_CONST
  #define _MK_ENUM_CONST(_constant_) (_constant_ ## UL)
#endif
#ifndef _MK_ADDR_CONST
  #define _MK_ADDR_CONST(_constant_) _constant_
#endif

#endif // ifndef ___ARSLINK_H_INC_