imxrt_ral/blocks/imxrt1051/
tsc.rs

1#[doc = "Touch Screen Controller"]
2#[repr(C)]
3pub struct RegisterBlock {
4    #[doc = "no description available"]
5    pub BASIC_SETTING: crate::RWRegister<u32>,
6    _reserved0: [u8; 0x0c],
7    #[doc = "no description available"]
8    pub PRE_CHARGE_TIME: crate::RWRegister<u32>,
9    _reserved1: [u8; 0x0c],
10    #[doc = "Flow Control"]
11    pub FLOW_CONTROL: crate::RWRegister<u32>,
12    _reserved2: [u8; 0x0c],
13    #[doc = "Measure Value"]
14    pub MEASEURE_VALUE: crate::RORegister<u32>,
15    _reserved3: [u8; 0x0c],
16    #[doc = "Interrupt Enable"]
17    pub INT_EN: crate::RWRegister<u32>,
18    _reserved4: [u8; 0x0c],
19    #[doc = "Interrupt Signal Enable"]
20    pub INT_SIG_EN: crate::RWRegister<u32>,
21    _reserved5: [u8; 0x0c],
22    #[doc = "Intterrupt Status"]
23    pub INT_STATUS: crate::RWRegister<u32>,
24    _reserved6: [u8; 0x0c],
25    #[doc = "no description available"]
26    pub DEBUG_MODE: crate::RWRegister<u32>,
27    _reserved7: [u8; 0x0c],
28    #[doc = "no description available"]
29    pub DEBUG_MODE2: crate::RWRegister<u32>,
30}
31#[doc = "no description available"]
32pub mod BASIC_SETTING {
33    #[doc = "Auto Measure"]
34    pub mod AUTO_MEASURE {
35        pub const offset: u32 = 0;
36        pub const mask: u32 = 0x01 << offset;
37        pub mod R {}
38        pub mod W {}
39        pub mod RW {
40            #[doc = "Disable Auto Measure"]
41            pub const AUTO_MEASURE_0: u32 = 0;
42            #[doc = "Auto Measure"]
43            pub const AUTO_MEASURE_1: u32 = 0x01;
44        }
45    }
46    #[doc = "4/5 Wire detection"]
47    pub mod _4_5_WIRE {
48        pub const offset: u32 = 4;
49        pub const mask: u32 = 0x01 << offset;
50        pub mod R {}
51        pub mod W {}
52        pub mod RW {
53            #[doc = "4-Wire Detection Mode"]
54            pub const _4_5_WIRE_0: u32 = 0;
55            #[doc = "5-Wire Detection Mode"]
56            pub const _4_5_WIRE_1: u32 = 0x01;
57        }
58    }
59    #[doc = "Measure Delay Time"]
60    pub mod MEASURE_DELAY_TIME {
61        pub const offset: u32 = 8;
62        pub const mask: u32 = 0x00ff_ffff << offset;
63        pub mod R {}
64        pub mod W {}
65        pub mod RW {}
66    }
67}
68#[doc = "no description available"]
69pub mod PRE_CHARGE_TIME {
70    #[doc = "Before detection, the top screen needs some time before being pulled up to a high voltage."]
71    pub mod PRE_CHARGE_TIME {
72        pub const offset: u32 = 0;
73        pub const mask: u32 = 0xffff_ffff << offset;
74        pub mod R {}
75        pub mod W {}
76        pub mod RW {}
77    }
78}
79#[doc = "Flow Control"]
80pub mod FLOW_CONTROL {
81    #[doc = "Soft Reset"]
82    pub mod SW_RST {
83        pub const offset: u32 = 0;
84        pub const mask: u32 = 0x01 << offset;
85        pub mod R {}
86        pub mod W {}
87        pub mod RW {}
88    }
89    #[doc = "Start Measure"]
90    pub mod START_MEASURE {
91        pub const offset: u32 = 4;
92        pub const mask: u32 = 0x01 << offset;
93        pub mod R {}
94        pub mod W {}
95        pub mod RW {
96            #[doc = "Do not start measure for now"]
97            pub const START_MEASURE_0: u32 = 0;
98            #[doc = "Start measure the X/Y coordinate value"]
99            pub const START_MEASURE_1: u32 = 0x01;
100        }
101    }
102    #[doc = "Drop Measure"]
103    pub mod DROP_MEASURE {
104        pub const offset: u32 = 8;
105        pub const mask: u32 = 0x01 << offset;
106        pub mod R {}
107        pub mod W {}
108        pub mod RW {
109            #[doc = "Do not drop measure for now"]
110            pub const DROP_MEASURE_0: u32 = 0;
111            #[doc = "Drop the measure and controller return to idle status"]
112            pub const DROP_MEASURE_1: u32 = 0x01;
113        }
114    }
115    #[doc = "Start Sense"]
116    pub mod START_SENSE {
117        pub const offset: u32 = 12;
118        pub const mask: u32 = 0x01 << offset;
119        pub mod R {}
120        pub mod W {}
121        pub mod RW {
122            #[doc = "Stay at idle status"]
123            pub const START_SENSE_0: u32 = 0;
124            #[doc = "Start sense detection and (if auto_measure set to 1) measure after detect a touch"]
125            pub const START_SENSE_1: u32 = 0x01;
126        }
127    }
128    #[doc = "This bit is for SW disable registers"]
129    pub mod DISABLE {
130        pub const offset: u32 = 16;
131        pub const mask: u32 = 0x01 << offset;
132        pub mod R {}
133        pub mod W {}
134        pub mod RW {
135            #[doc = "Leave HW state machine control"]
136            pub const DISABLE_0: u32 = 0;
137            #[doc = "SW set to idle status"]
138            pub const DISABLE_1: u32 = 0x01;
139        }
140    }
141}
142#[doc = "Measure Value"]
143pub mod MEASEURE_VALUE {
144    #[doc = "Y Value"]
145    pub mod Y_VALUE {
146        pub const offset: u32 = 0;
147        pub const mask: u32 = 0x0fff << offset;
148        pub mod R {}
149        pub mod W {}
150        pub mod RW {}
151    }
152    #[doc = "X Value"]
153    pub mod X_VALUE {
154        pub const offset: u32 = 16;
155        pub const mask: u32 = 0x0fff << offset;
156        pub mod R {}
157        pub mod W {}
158        pub mod RW {}
159    }
160}
161#[doc = "Interrupt Enable"]
162pub mod INT_EN {
163    #[doc = "Measure Interrupt Enable"]
164    pub mod MEASURE_INT_EN {
165        pub const offset: u32 = 0;
166        pub const mask: u32 = 0x01 << offset;
167        pub mod R {}
168        pub mod W {}
169        pub mod RW {
170            #[doc = "Disable measure interrupt"]
171            pub const MEASURE_INT_EN_0: u32 = 0;
172            #[doc = "Enable measure interrupt"]
173            pub const MEASURE_INT_EN_1: u32 = 0x01;
174        }
175    }
176    #[doc = "Detect Interrupt Enable"]
177    pub mod DETECT_INT_EN {
178        pub const offset: u32 = 4;
179        pub const mask: u32 = 0x01 << offset;
180        pub mod R {}
181        pub mod W {}
182        pub mod RW {
183            #[doc = "Disable detect interrupt"]
184            pub const DETECT_INT_EN_0: u32 = 0;
185            #[doc = "Enable detect interrupt"]
186            pub const DETECT_INT_EN_1: u32 = 0x01;
187        }
188    }
189    #[doc = "Idle Software Interrupt Enable"]
190    pub mod IDLE_SW_INT_EN {
191        pub const offset: u32 = 12;
192        pub const mask: u32 = 0x01 << offset;
193        pub mod R {}
194        pub mod W {}
195        pub mod RW {
196            #[doc = "Disable idle software interrupt"]
197            pub const IDLE_SW_INT_EN_0: u32 = 0;
198            #[doc = "Enable idle software interrupt"]
199            pub const IDLE_SW_INT_EN_1: u32 = 0x01;
200        }
201    }
202}
203#[doc = "Interrupt Signal Enable"]
204pub mod INT_SIG_EN {
205    #[doc = "Measure Signal Enable"]
206    pub mod MEASURE_SIG_EN {
207        pub const offset: u32 = 0;
208        pub const mask: u32 = 0x01 << offset;
209        pub mod R {}
210        pub mod W {}
211        pub mod RW {}
212    }
213    #[doc = "Detect Signal Enable"]
214    pub mod DETECT_SIG_EN {
215        pub const offset: u32 = 4;
216        pub const mask: u32 = 0x01 << offset;
217        pub mod R {}
218        pub mod W {}
219        pub mod RW {
220            #[doc = "Disable detect signal"]
221            pub const DETECT_SIG_EN_0: u32 = 0;
222            #[doc = "Enable detect signal"]
223            pub const DETECT_SIG_EN_1: u32 = 0x01;
224        }
225    }
226    #[doc = "Valid Signal Enable"]
227    pub mod VALID_SIG_EN {
228        pub const offset: u32 = 8;
229        pub const mask: u32 = 0x01 << offset;
230        pub mod R {}
231        pub mod W {}
232        pub mod RW {
233            #[doc = "Disable valid signal"]
234            pub const VALID_SIG_EN_0: u32 = 0;
235            #[doc = "Enable valid signal"]
236            pub const VALID_SIG_EN_1: u32 = 0x01;
237        }
238    }
239    #[doc = "Idle Software Signal Enable"]
240    pub mod IDLE_SW_SIG_EN {
241        pub const offset: u32 = 12;
242        pub const mask: u32 = 0x01 << offset;
243        pub mod R {}
244        pub mod W {}
245        pub mod RW {
246            #[doc = "Disable idle software signal"]
247            pub const IDLE_SW_SIG_EN_0: u32 = 0;
248            #[doc = "Enable idle software signal"]
249            pub const IDLE_SW_SIG_EN_1: u32 = 0x01;
250        }
251    }
252}
253#[doc = "Intterrupt Status"]
254pub mod INT_STATUS {
255    #[doc = "Measure Signal"]
256    pub mod MEASURE {
257        pub const offset: u32 = 0;
258        pub const mask: u32 = 0x01 << offset;
259        pub mod R {}
260        pub mod W {}
261        pub mod RW {
262            #[doc = "Does not exist a measure signal"]
263            pub const MEASURE_0: u32 = 0;
264            #[doc = "Exist a measure signal"]
265            pub const MEASURE_1: u32 = 0x01;
266        }
267    }
268    #[doc = "Detect Signal"]
269    pub mod DETECT {
270        pub const offset: u32 = 4;
271        pub const mask: u32 = 0x01 << offset;
272        pub mod R {}
273        pub mod W {}
274        pub mod RW {
275            #[doc = "Does not exist a detect signal"]
276            pub const DETECT_0: u32 = 0;
277            #[doc = "Exist detect signal"]
278            pub const DETECT_1: u32 = 0x01;
279        }
280    }
281    #[doc = "Valid Signal"]
282    pub mod VALID {
283        pub const offset: u32 = 8;
284        pub const mask: u32 = 0x01 << offset;
285        pub mod R {}
286        pub mod W {}
287        pub mod RW {
288            #[doc = "There is no touch detected after measurement, indicates that the measured value is not valid"]
289            pub const VALID_0: u32 = 0;
290            #[doc = "There is touch detection after measurement, indicates that the measure is valid"]
291            pub const VALID_1: u32 = 0x01;
292        }
293    }
294    #[doc = "Idle Software"]
295    pub mod IDLE_SW {
296        pub const offset: u32 = 12;
297        pub const mask: u32 = 0x01 << offset;
298        pub mod R {}
299        pub mod W {}
300        pub mod RW {
301            #[doc = "Haven't return to idle status"]
302            pub const IDLE_SW_0: u32 = 0;
303            #[doc = "Already return to idle status"]
304            pub const IDLE_SW_1: u32 = 0x01;
305        }
306    }
307}
308#[doc = "no description available"]
309pub mod DEBUG_MODE {
310    #[doc = "ADC Conversion Value"]
311    pub mod ADC_CONV_VALUE {
312        pub const offset: u32 = 0;
313        pub const mask: u32 = 0x0fff << offset;
314        pub mod R {}
315        pub mod W {}
316        pub mod RW {}
317    }
318    #[doc = "ADC COCO Signal"]
319    pub mod ADC_COCO {
320        pub const offset: u32 = 12;
321        pub const mask: u32 = 0x01 << offset;
322        pub mod R {}
323        pub mod W {}
324        pub mod RW {}
325    }
326    #[doc = "Hardware Trigger Select Signal"]
327    pub mod EXT_HWTS {
328        pub const offset: u32 = 16;
329        pub const mask: u32 = 0x1f << offset;
330        pub mod R {}
331        pub mod W {}
332        pub mod RW {}
333    }
334    #[doc = "Trigger"]
335    pub mod TRIGGER {
336        pub const offset: u32 = 24;
337        pub const mask: u32 = 0x01 << offset;
338        pub mod R {}
339        pub mod W {}
340        pub mod RW {
341            #[doc = "No hardware trigger signal"]
342            pub const TRIGGER_0: u32 = 0;
343            #[doc = "Hardware trigger signal, the signal must last at least 1 ips clock period"]
344            pub const TRIGGER_1: u32 = 0x01;
345        }
346    }
347    #[doc = "ADC Coco Clear"]
348    pub mod ADC_COCO_CLEAR {
349        pub const offset: u32 = 25;
350        pub const mask: u32 = 0x01 << offset;
351        pub mod R {}
352        pub mod W {}
353        pub mod RW {
354            #[doc = "No ADC COCO clear"]
355            pub const ADC_COCO_CLEAR_0: u32 = 0;
356            #[doc = "Set ADC COCO clear"]
357            pub const ADC_COCO_CLEAR_1: u32 = 0x01;
358        }
359    }
360    #[doc = "ADC COCO Clear Disable"]
361    pub mod ADC_COCO_CLEAR_DISABLE {
362        pub const offset: u32 = 26;
363        pub const mask: u32 = 0x01 << offset;
364        pub mod R {}
365        pub mod W {}
366        pub mod RW {
367            #[doc = "Allow TSC hardware generates ADC COCO clear"]
368            pub const ADC_COCO_CLEAR_DISABLE_0: u32 = 0;
369            #[doc = "Prevent TSC from generate ADC COCO clear signal"]
370            pub const ADC_COCO_CLEAR_DISABLE_1: u32 = 0x01;
371        }
372    }
373    #[doc = "Debug Enable"]
374    pub mod DEBUG_EN {
375        pub const offset: u32 = 28;
376        pub const mask: u32 = 0x01 << offset;
377        pub mod R {}
378        pub mod W {}
379        pub mod RW {
380            #[doc = "Enable debug mode"]
381            pub const DEBUG_EN_0: u32 = 0;
382            #[doc = "Disable debug mode"]
383            pub const DEBUG_EN_1: u32 = 0x01;
384        }
385    }
386}
387#[doc = "no description available"]
388pub mod DEBUG_MODE2 {
389    #[doc = "XPUL Wire Pull Down Switch"]
390    pub mod XPUL_PULL_DOWN {
391        pub const offset: u32 = 0;
392        pub const mask: u32 = 0x01 << offset;
393        pub mod R {}
394        pub mod W {}
395        pub mod RW {
396            #[doc = "Close the switch"]
397            pub const XPUL_PULL_DOWN_0: u32 = 0;
398            #[doc = "Open up the switch"]
399            pub const XPUL_PULL_DOWN_1: u32 = 0x01;
400        }
401    }
402    #[doc = "XPUL Wire Pull Up Switch"]
403    pub mod XPUL_PULL_UP {
404        pub const offset: u32 = 1;
405        pub const mask: u32 = 0x01 << offset;
406        pub mod R {}
407        pub mod W {}
408        pub mod RW {
409            #[doc = "Close the switch"]
410            pub const XPUL_PULL_UP_0: u32 = 0;
411            #[doc = "Open up the switch"]
412            pub const XPUL_PULL_UP_1: u32 = 0x01;
413        }
414    }
415    #[doc = "XPUL Wire 200K Pull Up Switch"]
416    pub mod XPUL_200K_PULL_UP {
417        pub const offset: u32 = 2;
418        pub const mask: u32 = 0x01 << offset;
419        pub mod R {}
420        pub mod W {}
421        pub mod RW {
422            #[doc = "Close the switch"]
423            pub const XPUL_200K_PULL_UP_0: u32 = 0;
424            #[doc = "Open up the switch"]
425            pub const XPUL_200K_PULL_UP_1: u32 = 0x01;
426        }
427    }
428    #[doc = "XNUR Wire Pull Down Switch"]
429    pub mod XNUR_PULL_DOWN {
430        pub const offset: u32 = 3;
431        pub const mask: u32 = 0x01 << offset;
432        pub mod R {}
433        pub mod W {}
434        pub mod RW {
435            #[doc = "Close the switch"]
436            pub const XNUR_PULL_DOWN_0: u32 = 0;
437            #[doc = "Open up the switch"]
438            pub const XNUR_PULL_DOWN_1: u32 = 0x01;
439        }
440    }
441    #[doc = "XNUR Wire Pull Up Switch"]
442    pub mod XNUR_PULL_UP {
443        pub const offset: u32 = 4;
444        pub const mask: u32 = 0x01 << offset;
445        pub mod R {}
446        pub mod W {}
447        pub mod RW {
448            #[doc = "Close the switch"]
449            pub const XNUR_PULL_UP_0: u32 = 0;
450            #[doc = "Open up the switch"]
451            pub const XNUR_PULL_UP_1: u32 = 0x01;
452        }
453    }
454    #[doc = "XNUR Wire 200K Pull Up Switch"]
455    pub mod XNUR_200K_PULL_UP {
456        pub const offset: u32 = 5;
457        pub const mask: u32 = 0x01 << offset;
458        pub mod R {}
459        pub mod W {}
460        pub mod RW {
461            #[doc = "Close the switch"]
462            pub const XNUR_200K_PULL_UP_0: u32 = 0;
463            #[doc = "Open up the switch"]
464            pub const XNUR_200K_PULL_UP_1: u32 = 0x01;
465        }
466    }
467    #[doc = "YPLL Wire Pull Down Switch"]
468    pub mod YPLL_PULL_DOWN {
469        pub const offset: u32 = 6;
470        pub const mask: u32 = 0x01 << offset;
471        pub mod R {}
472        pub mod W {}
473        pub mod RW {
474            #[doc = "Close the switch"]
475            pub const YPLL_PULL_DOWN_0: u32 = 0;
476            #[doc = "Open up the switch"]
477            pub const YPLL_PULL_DOWN_1: u32 = 0x01;
478        }
479    }
480    #[doc = "YPLL Wire Pull Up Switch"]
481    pub mod YPLL_PULL_UP {
482        pub const offset: u32 = 7;
483        pub const mask: u32 = 0x01 << offset;
484        pub mod R {}
485        pub mod W {}
486        pub mod RW {
487            #[doc = "Close the switch"]
488            pub const YPLL_PULL_UP_0: u32 = 0;
489            #[doc = "Open the switch"]
490            pub const YPLL_PULL_UP_1: u32 = 0x01;
491        }
492    }
493    #[doc = "YPLL Wire 200K Pull Up Switch"]
494    pub mod YPLL_200K_PULL_UP {
495        pub const offset: u32 = 8;
496        pub const mask: u32 = 0x01 << offset;
497        pub mod R {}
498        pub mod W {}
499        pub mod RW {
500            #[doc = "Close the switch"]
501            pub const YPLL_200K_PULL_UP_0: u32 = 0;
502            #[doc = "Open up the switch"]
503            pub const YPLL_200K_PULL_UP_1: u32 = 0x01;
504        }
505    }
506    #[doc = "YNLR Wire Pull Down Switch"]
507    pub mod YNLR_PULL_DOWN {
508        pub const offset: u32 = 9;
509        pub const mask: u32 = 0x01 << offset;
510        pub mod R {}
511        pub mod W {}
512        pub mod RW {
513            #[doc = "Close the switch"]
514            pub const YNLR_PULL_DOWN_0: u32 = 0;
515            #[doc = "Open up the switch"]
516            pub const YNLR_PULL_DOWN_1: u32 = 0x01;
517        }
518    }
519    #[doc = "YNLR Wire Pull Up Switch"]
520    pub mod YNLR_PULL_UP {
521        pub const offset: u32 = 10;
522        pub const mask: u32 = 0x01 << offset;
523        pub mod R {}
524        pub mod W {}
525        pub mod RW {
526            #[doc = "Close the switch"]
527            pub const YNLR_PULL_UP_0: u32 = 0;
528            #[doc = "Open up the switch"]
529            pub const YNLR_PULL_UP_1: u32 = 0x01;
530        }
531    }
532    #[doc = "YNLR Wire 200K Pull Up Switch"]
533    pub mod YNLR_200K_PULL_UP {
534        pub const offset: u32 = 11;
535        pub const mask: u32 = 0x01 << offset;
536        pub mod R {}
537        pub mod W {}
538        pub mod RW {
539            #[doc = "Close the switch"]
540            pub const YNLR_200K_PULL_UP_0: u32 = 0;
541            #[doc = "Open up the switch"]
542            pub const YNLR_200K_PULL_UP_1: u32 = 0x01;
543        }
544    }
545    #[doc = "Wiper Wire Pull Down Switch"]
546    pub mod WIPER_PULL_DOWN {
547        pub const offset: u32 = 12;
548        pub const mask: u32 = 0x01 << offset;
549        pub mod R {}
550        pub mod W {}
551        pub mod RW {
552            #[doc = "Close the switch"]
553            pub const WIPER_PULL_DOWN_0: u32 = 0;
554            #[doc = "Open up the switch"]
555            pub const WIPER_PULL_DOWN_1: u32 = 0x01;
556        }
557    }
558    #[doc = "Wiper Wire Pull Up Switch"]
559    pub mod WIPER_PULL_UP {
560        pub const offset: u32 = 13;
561        pub const mask: u32 = 0x01 << offset;
562        pub mod R {}
563        pub mod W {}
564        pub mod RW {
565            #[doc = "Close the switch"]
566            pub const WIPER_PULL_UP_0: u32 = 0;
567            #[doc = "Open up the switch"]
568            pub const WIPER_PULL_UP_1: u32 = 0x01;
569        }
570    }
571    #[doc = "Wiper Wire 200K Pull Up Switch"]
572    pub mod WIPER_200K_PULL_UP {
573        pub const offset: u32 = 14;
574        pub const mask: u32 = 0x01 << offset;
575        pub mod R {}
576        pub mod W {}
577        pub mod RW {
578            #[doc = "Close the switch"]
579            pub const WIPER_200K_PULL_UP_0: u32 = 0;
580            #[doc = "Open up the switch"]
581            pub const WIPER_200K_PULL_UP_1: u32 = 0x01;
582        }
583    }
584    #[doc = "Detect Four Wire"]
585    pub mod DETECT_FOUR_WIRE {
586        pub const offset: u32 = 16;
587        pub const mask: u32 = 0x01 << offset;
588        pub mod R {}
589        pub mod W {}
590        pub mod RW {
591            #[doc = "No detect signal"]
592            pub const DETECT_FOUR_WIRE_0: u32 = 0;
593            #[doc = "Yes, there is a detect on the touch screen."]
594            pub const DETECT_FOUR_WIRE_1: u32 = 0x01;
595        }
596    }
597    #[doc = "Detect Five Wire"]
598    pub mod DETECT_FIVE_WIRE {
599        pub const offset: u32 = 17;
600        pub const mask: u32 = 0x01 << offset;
601        pub mod R {}
602        pub mod W {}
603        pub mod RW {
604            #[doc = "No detect signal"]
605            pub const DETECT_FIVE_WIRE_0: u32 = 0;
606            #[doc = "Yes, there is a detect on the touch screen."]
607            pub const DETECT_FIVE_WIRE_1: u32 = 0x01;
608        }
609    }
610    #[doc = "State Machine"]
611    pub mod STATE_MACHINE {
612        pub const offset: u32 = 20;
613        pub const mask: u32 = 0x07 << offset;
614        pub mod R {}
615        pub mod W {}
616        pub mod RW {
617            #[doc = "Idle"]
618            pub const STATE_MACHINE_0: u32 = 0;
619            #[doc = "Pre-charge"]
620            pub const STATE_MACHINE_1: u32 = 0x01;
621            #[doc = "Detect"]
622            pub const STATE_MACHINE_2: u32 = 0x02;
623            #[doc = "X-measure"]
624            pub const STATE_MACHINE_3: u32 = 0x03;
625            #[doc = "Y-measure"]
626            pub const STATE_MACHINE_4: u32 = 0x04;
627            #[doc = "Pre-charge"]
628            pub const STATE_MACHINE_5: u32 = 0x05;
629            #[doc = "Detect"]
630            pub const STATE_MACHINE_6: u32 = 0x06;
631        }
632    }
633    #[doc = "Intermediate State"]
634    pub mod INTERMEDIATE {
635        pub const offset: u32 = 23;
636        pub const mask: u32 = 0x01 << offset;
637        pub mod R {}
638        pub mod W {}
639        pub mod RW {
640            #[doc = "Not in intermedia"]
641            pub const INTERMEDIATE_0: u32 = 0;
642            #[doc = "Intermedia"]
643            pub const INTERMEDIATE_1: u32 = 0x01;
644        }
645    }
646    #[doc = "Detect Enable Four Wire"]
647    pub mod DETECT_ENABLE_FOUR_WIRE {
648        pub const offset: u32 = 24;
649        pub const mask: u32 = 0x01 << offset;
650        pub mod R {}
651        pub mod W {}
652        pub mod RW {
653            #[doc = "Do not read four wire detect value, read default value from analogue"]
654            pub const DETECT_ENABLE_FOUR_WIRE_0: u32 = 0;
655            #[doc = "Read four wire detect status from analogue"]
656            pub const DETECT_ENABLE_FOUR_WIRE_1: u32 = 0x01;
657        }
658    }
659    #[doc = "Detect Enable Five Wire"]
660    pub mod DETECT_ENABLE_FIVE_WIRE {
661        pub const offset: u32 = 28;
662        pub const mask: u32 = 0x01 << offset;
663        pub mod R {}
664        pub mod W {}
665        pub mod RW {
666            #[doc = "Do not read five wire detect value, read default value from analogue"]
667            pub const DETECT_ENABLE_FIVE_WIRE_0: u32 = 0;
668            #[doc = "Read five wire detect status from analogue"]
669            pub const DETECT_ENABLE_FIVE_WIRE_1: u32 = 0x01;
670        }
671    }
672    #[doc = "This field indicates glitch threshold"]
673    pub mod DE_GLITCH {
674        pub const offset: u32 = 29;
675        pub const mask: u32 = 0x03 << offset;
676        pub mod R {}
677        pub mod W {}
678        pub mod RW {
679            #[doc = "Normal function: 0x1fff ipg clock cycles; Low power mode: 0x9 low power clock cycles"]
680            pub const DE_GLITCH_0: u32 = 0;
681            #[doc = "Normal function: 0xfff ipg clock cycles; Low power mode: :0x7 low power clock cycles"]
682            pub const DE_GLITCH_1: u32 = 0x01;
683            #[doc = "Normal function: 0x7ff ipg clock cycles; Low power mode:0x5 low power clock cycles"]
684            pub const DE_GLITCH_2: u32 = 0x02;
685            #[doc = "Normal function: 0x3 ipg clock cycles; Low power mode:0x3 low power clock cycles"]
686            pub const DE_GLITCH_3: u32 = 0x03;
687        }
688    }
689}