aboutsummaryrefslogtreecommitdiff
path: root/drivers/iomuxc-11xx/src/lib.rs
blob: 54f0c17a97b0ec69caa3e045956a9c4d3b6257cf (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
#![no_std]

pub mod iomuxc_gpr {
    #[repr(C)]
    #[allow(non_snake_case)]
    pub struct RegisterBlock {
        pub GPR: [u32; 76],
    }

    ral_registers::register!(pub GPR<u32> RW []);
}

pub mod iomuxc {
    #[repr(C)]
    #[allow(non_snake_case)]
    pub struct RegisterBlock {
        _reserved: [u8; 16],
        pub SW_MUX_CTL_PAD: PadLayout,
        pub SW_PAD_CTL_PAD: PadLayout,
        pub SELECT_INPUT: [u32; 160],
    }

    #[doc(hidden)]
    #[repr(C)]
    #[allow(non_snake_case)]
    pub struct PadLayout {
        pub GPIO_EMC_B1: [u32; 42],
        pub GPIO_EMC_B2: [u32; 21],
        pub GPIO_AD: [u32; 36],
        pub GPIO_SD_B1: [u32; 6],
        pub GPIO_SD_B2: [u32; 12],
        pub GPIO_DISP_B1: [u32; 12],
        pub GPIO_DISP_B2: [u32; 16],
    }

    const _: () = assert!(size_of::<PadLayout>() == size_of::<[u32; 145]>());

    #[allow(non_snake_case)]
    pub mod SW_PAD_CTL_PAD {
        #[doc(inline)]
        pub use super::PadLayout as RegisterBlock;

        ral_registers::register! {
            #[doc(hidden)]
            pub v1<u32> RW [
                #[doc = "PDRV Field"]
                PDRV start(1) width(1) RW {
                    HIGH = 0
                    NORMAL = 0x1,
                }
                #[doc = "Pull Down Pull Up Field"]
                PULL start(2) width(2) RW {
                    PULL_UP = 0x1,
                    PULL_DOWN = 0x2,
                    NO_PULL = 0x3,
                }
                #[doc = "Open Drain Field"]
                ODE start(4) width(1) RW {}
                #[doc = "Domain write protection"]
                DWP start(28) width(2) RW {}
                #[doc = "Domain write protection lock"]
                DWP_LOCK start(30) width(2) RW {}
            ]
        }

        ral_registers::register! {
            #[doc(hidden)]
            pub v2<u32> RW [
                #[doc = "Slew Rate Field"]
                SRE start(0) width(1) RW {
                    SLOW = 0,
                    FAST = 0x1,
                }
                #[doc = "Drive Strength Field"]
                DSE start(1) width(1) RW {
                    NORMAL = 0,
                    HIGH = 0x1,
                }
                #[doc = "Pull / Keep Select Field"]
                PUE start(2) width(1) RW {}
                #[doc = "Pull Up / Down Config. Field"]
                PUS start(3) width(1) RW {
                    PULL_DOWN = 0,
                    PULL_UP = 0x1,
                }
                #[doc = "Open Drain Field"]
                ODE start(4) width(1) RW {}
                #[doc = "Domain write protection"]
                DWP start(28) width(2) RW {}
                #[doc = "Domain write protection lock"]
                DWP_LOCK start(30) width(2) RW {}
            ]
        }

        #[doc(inline)]
        pub use v1 as GPIO_EMC_B1;
        #[doc(inline)]
        pub use v1 as GPIO_EMC_B2;
        #[doc(inline)]
        pub use v1 as GPIO_SD_B1;
        #[doc(inline)]
        pub use v1 as GPIO_SD_B2;
        #[doc(inline)]
        pub use v1 as GPIO_DISP_B1;

        #[doc(inline)]
        pub use v2 as GPIO_AD;
        #[doc(inline)]
        pub use v2 as GPIO_DISP_B2;
    }

    #[allow(non_snake_case)]
    pub mod SW_MUX_CTL_PAD {
        #[doc(inline)]
        pub use super::PadLayout as RegisterBlock;

        ral_registers::register! {
            #[doc(hidden)]
            pub common<u32> RW [
                #[doc = "MUX Mode Select Field."]
                MUX_MODE start(0) width(4) RW {}
                #[doc = "Software Input On Field."]
                SION start(4) width(1) RW {}
            ]
        }

        #[doc(inline)]
        pub use common as GPIO_EMC_B1;
        #[doc(inline)]
        pub use common as GPIO_EMC_B2;
        #[doc(inline)]
        pub use common as GPIO_SD_B1;
        #[doc(inline)]
        pub use common as GPIO_SD_B2;
        #[doc(inline)]
        pub use common as GPIO_DISP_B1;
        #[doc(inline)]
        pub use common as GPIO_DISP_B2;
        #[doc(inline)]
        pub use common as GPIO_AD;
    }

    pub mod select_input {
        pub const FLEXCAN1_RX: usize = 0;
        pub const FLEXCAN2_RX: usize = 1;
        pub const CCM_ENET_QOS_REF_CLK: usize = 2;
        pub const CCM_ENET_QOS_TX_CLK: usize = 3;
        pub const ENET_IPG_CLK_RMII: usize = 4;
        pub const ENET_MAC0_MDIO: usize = 5;
        pub const ENET_MAC0_RXDATA_0: usize = 6;
        pub const ENET_MAC0_RXDATA_1: usize = 7;
        pub const ENET_MAC0_RXEN: usize = 8;
        pub const ENET_MAC0_RXERR: usize = 9;
        pub const ENET_MAC0_TXCLK: usize = 10;
        pub const ENET_1G_IPG_CLK_RMII: usize = 11;
        pub const ENET_1G_MAC0_MDIO: usize = 12;
        pub const ENET_1G_MAC0_RXCLK: usize = 13;
        pub const ENET_1G_MAC0_RXDATA_0: usize = 14;
        pub const ENET_1G_MAC0_RXDATA_1: usize = 15;
        pub const ENET_1G_MAC0_RXDATA_2: usize = 16;
        pub const ENET_1G_MAC0_RXDATA_3: usize = 17;
        pub const ENET_1G_MAC0_RXEN: usize = 18;
        pub const ENET_1G_MAC0_RXERR: usize = 19;
        pub const ENET_1G_MAC0_TXCLK: usize = 20;
        pub const ENET_QOS_GMII_MDI_I: usize = 21;
        pub const ENET_QOS_PHY_RXD_I_0: usize = 22;
        pub const ENET_QOS_PHY_RXD_I_1: usize = 23;
        pub const ENET_QOS_PHY_RXDV_I: usize = 24;
        pub const ENET_QOS_PHY_RXER_I: usize = 25;
        pub const FLEXPWM1_PWMA_0: usize = 26;
        pub const FLEXPWM1_PWMA_1: usize = 27;
        pub const FLEXPWM1_PWMA_2: usize = 28;
        pub const FLEXPWM1_PWMB_0: usize = 29;
        pub const FLEXPWM1_PWMB_1: usize = 30;
        pub const FLEXPWM1_PWMB_2: usize = 31;
        pub const FLEXPWM2_PWMA_0: usize = 32;
        pub const FLEXPWM2_PWMA_1: usize = 33;
        pub const FLEXPWM2_PWMA_2: usize = 34;
        pub const FLEXPWM2_PWMB_0: usize = 35;
        pub const FLEXPWM2_PWMB_1: usize = 36;
        pub const FLEXPWM2_PWMB_2: usize = 37;
        pub const FLEXPWM3_PWMA_0: usize = 38;
        pub const FLEXPWM3_PWMA_1: usize = 39;
        pub const FLEXPWM3_PWMA_2: usize = 40;
        pub const FLEXPWM3_PWMA_3: usize = 41;
        pub const FLEXPWM3_PWMB_0: usize = 42;
        pub const FLEXPWM3_PWMB_1: usize = 43;
        pub const FLEXPWM3_PWMB_2: usize = 44;
        pub const FLEXPWM3_PWMB_3: usize = 45;
        pub const FLEXSPI1_I_DQS_FA: usize = 46;
        pub const FLEXSPI1_I_IO_FA_0: usize = 47;
        pub const FLEXSPI1_I_IO_FA_1: usize = 48;
        pub const FLEXSPI1_I_IO_FA_2: usize = 49;
        pub const FLEXSPI1_I_IO_FA_3: usize = 50;
        pub const FLEXSPI1_I_IO_FB_0: usize = 51;
        pub const FLEXSPI1_I_IO_FB_1: usize = 52;
        pub const FLEXSPI1_I_IO_FB_2: usize = 53;
        pub const FLEXSPI1_I_IO_FB_3: usize = 54;
        pub const FLEXSPI1_I_SCK_FA: usize = 55;
        pub const FLEXSPI1_I_SCK_FB: usize = 56;
        pub const FLEXSPI2_I_IO_FA_0: usize = 57;
        pub const FLEXSPI2_I_IO_FA_1: usize = 58;
        pub const FLEXSPI2_I_IO_FA_2: usize = 59;
        pub const FLEXSPI2_I_IO_FA_3: usize = 60;
        pub const FLEXSPI2_I_SCK_FA: usize = 61;
        pub const GPT3_CAPIN1: usize = 62;
        pub const GPT3_CAPIN2: usize = 63;
        pub const GPT3_CLKIN: usize = 64;
        pub const KPP_COL_6: usize = 65;
        pub const KPP_COL_7: usize = 66;
        pub const KPP_ROW_6: usize = 67;
        pub const KPP_ROW_7: usize = 68;
        pub const LPI2C1_LPI2C_SCL: usize = 69;
        pub const LPI2C1_LPI2C_SDA: usize = 70;
        pub const LPI2C2_LPI2C_SCL: usize = 71;
        pub const LPI2C2_LPI2C_SDA: usize = 72;
        pub const LPI2C3_LPI2C_SCL: usize = 73;
        pub const LPI2C3_LPI2C_SDA: usize = 74;
        pub const LPI2C4_LPI2C_SCL: usize = 75;
        pub const LPI2C4_LPI2C_SDA: usize = 76;
        pub const LPSPI1_LPSPI_PCS_0: usize = 77;
        pub const LPSPI1_LPSPI_SCK: usize = 78;
        pub const LPSPI1_LPSPI_SDI: usize = 79;
        pub const LPSPI1_LPSPI_SDO: usize = 80;
        pub const LPSPI2_LPSPI_PCS_0: usize = 81;
        pub const LPSPI2_LPSPI_PCS_1: usize = 82;
        pub const LPSPI2_LPSPI_SCK: usize = 83;
        pub const LPSPI2_LPSPI_SDI: usize = 84;
        pub const LPSPI2_LPSPI_SDO: usize = 85;
        pub const LPSPI3_LPSPI_PCS_0: usize = 86;
        pub const LPSPI3_LPSPI_PCS_1: usize = 87;
        pub const LPSPI3_LPSPI_PCS_2: usize = 88;
        pub const LPSPI3_LPSPI_PCS_3: usize = 89;
        pub const LPSPI3_LPSPI_SCK: usize = 90;
        pub const LPSPI3_LPSPI_SDI: usize = 91;
        pub const LPSPI3_LPSPI_SDO: usize = 92;
        pub const LPSPI4_LPSPI_PCS_0: usize = 93;
        pub const LPSPI4_LPSPI_SCK: usize = 94;
        pub const LPSPI4_LPSPI_SDI: usize = 95;
        pub const LPSPI4_LPSPI_SDO: usize = 96;
        pub const LPUART1_LPUART_RXD: usize = 97;
        pub const LPUART1_LPUART_TXD: usize = 98;
        pub const LPUART10_LPUART_RXD: usize = 99;
        pub const LPUART10_LPUART_TXD: usize = 100;
        pub const LPUART7_LPUART_RXD: usize = 101;
        pub const LPUART7_LPUART_TXD: usize = 102;
        pub const LPUART8_LPUART_RXD: usize = 103;
        pub const LPUART8_LPUART_TXD: usize = 104;
        pub const QTIMER1_TMR0_INPUT: usize = 105;
        pub const QTIMER1_TMR1_INPUT: usize = 106;
        pub const QTIMER1_TMR2_INPUT: usize = 107;
        pub const QTIMER2_TMR0_INPUT: usize = 108;
        pub const QTIMER2_TMR1_INPUT: usize = 109;
        pub const QTIMER2_TMR2_INPUT: usize = 110;
        pub const QTIMER3_TMR0_INPUT: usize = 111;
        pub const QTIMER3_TMR1_INPUT: usize = 112;
        pub const QTIMER3_TMR2_INPUT: usize = 113;
        pub const QTIMER4_TMR0_INPUT: usize = 114;
        pub const QTIMER4_TMR1_INPUT: usize = 115;
        pub const QTIMER4_TMR2_INPUT: usize = 116;
        pub const SAI1_IPG_CLK_SAI_MCLK: usize = 117;
        pub const SAI1_SAI_RXBCLK: usize = 118;
        pub const SAI1_SAI_RXDATA_0: usize = 119;
        pub const SAI1_SAI_RXSYNC: usize = 120;
        pub const SAI1_SAI_TXBCLK: usize = 121;
        pub const SAI1_SAI_TXSYNC: usize = 122;
        pub const EMVSIM1_SIO: usize = 129;
        pub const EMVSIM1_IPP_SIMPD: usize = 130;
        pub const EMVSIM1_POWER_FAIL: usize = 131;
        pub const EMVSIM2_SIO: usize = 132;
        pub const EMVSIM2_IPP_SIMPD: usize = 133;
        pub const EMVSIM2_POWER_FAIL: usize = 134;
        pub const SPDIF_SPDIF_IN1: usize = 135;
        pub const USB_OTG2_OC: usize = 136;
        pub const USB_OTG_OC: usize = 137;
        pub const USBPHY1_USB_ID: usize = 138;
        pub const USBPHY2_USB_ID: usize = 139;
        pub const USDHC1_IPP_CARD_DET: usize = 140;
        pub const USDHC1_IPP_WP_ON: usize = 141;
        pub const USDHC2_IPP_CARD_DET: usize = 142;
        pub const USDHC2_IPP_WP_ON: usize = 143;
        pub const XBAR1_IN_20: usize = 144;
        pub const XBAR1_IN_21: usize = 145;
        pub const XBAR1_IN_22: usize = 146;
        pub const XBAR1_IN_23: usize = 147;
        pub const XBAR1_IN_24: usize = 148;
        pub const XBAR1_IN_25: usize = 149;
        pub const XBAR1_IN_26: usize = 150;
        pub const XBAR1_IN_27: usize = 151;
        pub const XBAR1_IN_28: usize = 152;
        pub const XBAR1_IN_29: usize = 153;
        pub const XBAR1_IN_30: usize = 154;
        pub const XBAR1_IN_31: usize = 155;
        pub const XBAR1_IN_32: usize = 156;
        pub const XBAR1_IN_33: usize = 157;
        pub const XBAR1_IN_34: usize = 158;
        pub const XBAR1_IN_35: usize = 159;
    }

    ral_registers::register! {
        pub SELECT_INPUT<u32> RW []
    }
}

pub mod iomuxc_lpsr {
    #[repr(C)]
    #[allow(non_snake_case)]
    pub struct RegisterBlock {
        pub SW_MUX_CTL_PAD: [u32; 16],
        pub SW_PAD_CTL_PAD: [u32; 16],
        pub SELECT_INPUT: [u32; 24],
    }

    #[doc(inline)]
    pub use super::iomuxc::SW_MUX_CTL_PAD::common as SW_MUX_CTL_PAD;

    ral_registers::register! {
        pub SW_PAD_CTL_PAD<u32> RW [
            #[doc = "Slew Rate Field"]
            SRE start(0) width(1) RW {
                SLOW = 0,
                FAST = 0x1,
            }
            #[doc = "Drive Strength Field"]
            DSE start(1) width(1) RW {
                NORMAL = 0,
                HIGH = 0x1,
            }
            #[doc = "Pull / Keep Select Field"]
            PUE start(2) width(1) RW {}
            #[doc = "Pull Up / Down Config. Field"]
            PUS start(3) width(1) RW {
                PULL_DOWN = 0,
                PULL_UP = 0x1,
            }
            #[doc = "Open Drain LPSR Field"]
            ODE start(5) width(1) RW {}
            #[doc = "Domain write protection"]
            DWP start(28) width(2) RW {}
            #[doc = "Domain write protection lock"]
            DWP_LOCK start(30) width(2) RW {}
        ]
    }

    pub mod select_input {
        pub const CAN3_IPP_IND_CANRX: usize = 0;
        pub const LPI2C5_IPP_IND_LPI2C_SCL: usize = 1;
        pub const LPI2C5_IPP_IND_LPI2C_SDA: usize = 2;
        pub const LPI2C6_IPP_IND_LPI2C_SCL: usize = 3;
        pub const LPI2C6_IPP_IND_LPI2C_SDA: usize = 4;
        pub const LPSPI5_IPP_IND_LPSPI_PCS_0: usize = 5;
        pub const LPSPI5_IPP_IND_LPSPI_SCK: usize = 6;
        pub const LPSPI5_IPP_IND_LPSPI_SDI: usize = 7;
        pub const LPSPI5_IPP_IND_LPSPI_SDO: usize = 8;
        pub const LPUART11_IPP_IND_LPUART_RXD: usize = 9;
        pub const LPUART11_IPP_IND_LPUART_TXD: usize = 10;
        pub const LPUART12_IPP_IND_LPUART_RXD: usize = 11;
        pub const LPUART12_IPP_IND_LPUART_TXD: usize = 12;
        pub const MIC_IPP_IND_MIC_PDM_BITSTREAM_0: usize = 13;
        pub const MIC_IPP_IND_MIC_PDM_BITSTREAM_1: usize = 14;
        pub const MIC_IPP_IND_MIC_PDM_BITSTREAM_2: usize = 15;
        pub const MIC_IPP_IND_MIC_PDM_BITSTREAM_3: usize = 16;
        pub const NMI_GLUE_IPP_IND_NMI: usize = 17;
        pub const SAI4_IPG_CLK_SAI_MCLK: usize = 18;
        pub const SAI4_IPP_IND_SAI_RXBCLK: usize = 19;
        pub const SAI4_IPP_IND_SAI_RXDATA_0: usize = 20;
        pub const SAI4_IPP_IND_SAI_RXSYNC: usize = 21;
        pub const SAI4_IPP_IND_SAI_TXBCLK: usize = 22;
        pub const SAI4_IPP_IND_SAI_TXSYNC: usize = 23;
    }

    ral_registers::register! {
        pub SELECT_INPUT<u32> RW []
    }
}

pub mod iomuxc_aon {
    #[repr(C)]
    #[allow(non_snake_case)]
    pub struct RegisterBlock {
        pub SW_MUX_CTL_PAD: [u32; 29],
        pub SW_PAD_CTL_PAD: [u32; 29],
        pub SELECT_INPUT: [u32; 39],
    }

    #[doc(inline)]
    pub use super::iomuxc::SW_MUX_CTL_PAD::common as SW_MUX_CTL_PAD;

    ral_registers::register! {
        pub SW_PAD_CTL_PAD<u32> RW [
            #[doc = "Slew Rate Field"]
            SRE start(0) width(1) RW {
                FAST = 0,
                SLOW  = 0x1,
            }
            #[doc = "Drive Strength Field"]
            DSE start(1) width(1) RW {
                NORMAL = 0,
                HIGH = 0x1,
            }
            #[doc = "Pull / Keep Select Field"]
            PUE start(2) width(1) RW {}
            #[doc = "Pull Up / Down Config. Field"]
            PUS start(3) width(1) RW {
                PULL_DOWN = 0,
                PULL_UP = 0x1,
            }
            #[doc = "Open Drain Field"]
            ODE start(4) width(1) RW {}
            #[doc = "Domain write protection"]
            DWP start(24) width(4) RW {}
            #[doc = "Domain write protection lock"]
            DWP_LOCK start(28) width(4) RW {}
        ]
    }

    pub mod select_input {
        pub const I3C1_PIN_SCL_IN: usize = 0;
        pub const I3C1_PIN_SDA_IN: usize = 1;
        pub const LPI2C1_IPP_IND_LPI2C_SCL: usize = 2;
        pub const LPI2C1_IPP_IND_LPI2C_SDA: usize = 3;
        pub const LPI2C2_IPP_IND_LPI2C_SCL: usize = 4;
        pub const LPI2C2_IPP_IND_LPI2C_SDA: usize = 5;
        pub const LPSPI1_IPP_IND_LPSPI_PCS_0: usize = 6;
        pub const LPSPI1_IPP_IND_LPSPI_PCS_1: usize = 7;
        pub const LPSPI1_IPP_IND_LPSPI_SCK: usize = 8;
        pub const LPSPI1_IPP_IND_LPSPI_SDI: usize = 9;
        pub const LPSPI1_IPP_IND_LPSPI_SDO: usize = 10;
        pub const LPSPI2_IPP_IND_LPSPI_PCS_0: usize = 11;
        pub const LPSPI2_IPP_IND_LPSPI_PCS_1: usize = 12;
        pub const LPSPI2_IPP_IND_LPSPI_PCS_3: usize = 13;
        pub const LPSPI2_IPP_IND_LPSPI_SCK: usize = 14;
        pub const LPSPI2_IPP_IND_LPSPI_SDI: usize = 15;
        pub const LPSPI2_IPP_IND_LPSPI_SDO: usize = 16;
        pub const LPTMR1_IPP_IND_LPTIMER_1: usize = 17;
        pub const LPTMR1_IPP_IND_LPTIMER_2: usize = 18;
        pub const LPTMR1_IPP_IND_LPTIMER_3: usize = 19;
        pub const LPUART1_IPP_IND_LPUART_CTS_N: usize = 20;
        pub const LPUART1_IPP_IND_LPUART_DCD_N: usize = 21;
        pub const LPUART1_IPP_IND_LPUART_DSR_N: usize = 22;
        pub const LPUART12_IPP_IND_LPUART_CTS_N: usize = 23;
        pub const LPUART12_IPP_IND_LPUART_RXD: usize = 24;
        pub const LPUART12_IPP_IND_LPUART_TXD: usize = 25;
        pub const LPUART2_IPP_IND_LPUART_CTS_N: usize = 26;
        pub const LPUART2_IPP_IND_LPUART_RXD: usize = 27;
        pub const LPUART2_IPP_IND_LPUART_TXD: usize = 28;
        pub const LPUART7_IPP_IND_LPUART_CTS_N: usize = 29;
        pub const LPUART7_IPP_IND_LPUART_RXD: usize = 30;
        pub const LPUART7_IPP_IND_LPUART_TXD: usize = 31;
        pub const SAI1_IPG_CLK_SAI_MCLK: usize = 32;
        pub const SAI1_IPP_IND_SAI_RXBCLK: usize = 33;
        pub const SAI1_IPP_IND_SAI_RXDATA_0: usize = 34;
        pub const SAI1_IPP_IND_SAI_RXDATA_1: usize = 35;
        pub const SAI1_IPP_IND_SAI_RXSYNC: usize = 36;
        pub const SAI1_IPP_IND_SAI_TXBCLK: usize = 37;
        pub const SAI1_IPP_IND_SAI_TXSYNC: usize = 38;
    }

    ral_registers::register! {
        pub SELECT_INPUT<u32> RW []
    }
}

#[cfg(test)]
mod tests {
    use core::mem::offset_of;

    use super::iomuxc::RegisterBlock as Iomuxc;

    #[test]
    fn iomuxc_layout() {
        assert_eq!(offset_of!(Iomuxc, SW_PAD_CTL_PAD.GPIO_AD), 0x350);
        assert_eq!(offset_of!(Iomuxc, SELECT_INPUT), 0x498);
    }
}