1#[doc = "Register `SSC_TCMR` reader"]
2pub struct R(crate::R<SSC_TCMR_SPEC>);
3impl core::ops::Deref for R {
4 type Target = crate::R<SSC_TCMR_SPEC>;
5 #[inline(always)]
6 fn deref(&self) -> &Self::Target {
7 &self.0
8 }
9}
10impl From<crate::R<SSC_TCMR_SPEC>> for R {
11 #[inline(always)]
12 fn from(reader: crate::R<SSC_TCMR_SPEC>) -> Self {
13 R(reader)
14 }
15}
16#[doc = "Register `SSC_TCMR` writer"]
17pub struct W(crate::W<SSC_TCMR_SPEC>);
18impl core::ops::Deref for W {
19 type Target = crate::W<SSC_TCMR_SPEC>;
20 #[inline(always)]
21 fn deref(&self) -> &Self::Target {
22 &self.0
23 }
24}
25impl core::ops::DerefMut for W {
26 #[inline(always)]
27 fn deref_mut(&mut self) -> &mut Self::Target {
28 &mut self.0
29 }
30}
31impl From<crate::W<SSC_TCMR_SPEC>> for W {
32 #[inline(always)]
33 fn from(writer: crate::W<SSC_TCMR_SPEC>) -> Self {
34 W(writer)
35 }
36}
37#[doc = "Transmit Clock Selection\n\nValue on reset: 0"]
38#[derive(Clone, Copy, Debug, PartialEq)]
39#[repr(u8)]
40pub enum CKS_A {
41 #[doc = "0: Divided Clock"]
42 MCK = 0,
43 #[doc = "1: RK Clock signal"]
44 RK = 1,
45 #[doc = "2: TK pin"]
46 TK = 2,
47}
48impl From<CKS_A> for u8 {
49 #[inline(always)]
50 fn from(variant: CKS_A) -> Self {
51 variant as _
52 }
53}
54#[doc = "Field `CKS` reader - Transmit Clock Selection"]
55pub struct CKS_R(crate::FieldReader<u8, CKS_A>);
56impl CKS_R {
57 #[inline(always)]
58 pub(crate) fn new(bits: u8) -> Self {
59 CKS_R(crate::FieldReader::new(bits))
60 }
61 #[doc = r"Get enumerated values variant"]
62 #[inline(always)]
63 pub fn variant(&self) -> Option<CKS_A> {
64 match self.bits {
65 0 => Some(CKS_A::MCK),
66 1 => Some(CKS_A::RK),
67 2 => Some(CKS_A::TK),
68 _ => None,
69 }
70 }
71 #[doc = "Checks if the value of the field is `MCK`"]
72 #[inline(always)]
73 pub fn is_mck(&self) -> bool {
74 **self == CKS_A::MCK
75 }
76 #[doc = "Checks if the value of the field is `RK`"]
77 #[inline(always)]
78 pub fn is_rk(&self) -> bool {
79 **self == CKS_A::RK
80 }
81 #[doc = "Checks if the value of the field is `TK`"]
82 #[inline(always)]
83 pub fn is_tk(&self) -> bool {
84 **self == CKS_A::TK
85 }
86}
87impl core::ops::Deref for CKS_R {
88 type Target = crate::FieldReader<u8, CKS_A>;
89 #[inline(always)]
90 fn deref(&self) -> &Self::Target {
91 &self.0
92 }
93}
94#[doc = "Field `CKS` writer - Transmit Clock Selection"]
95pub struct CKS_W<'a> {
96 w: &'a mut W,
97}
98impl<'a> CKS_W<'a> {
99 #[doc = r"Writes `variant` to the field"]
100 #[inline(always)]
101 pub fn variant(self, variant: CKS_A) -> &'a mut W {
102 unsafe { self.bits(variant.into()) }
103 }
104 #[doc = "Divided Clock"]
105 #[inline(always)]
106 pub fn mck(self) -> &'a mut W {
107 self.variant(CKS_A::MCK)
108 }
109 #[doc = "RK Clock signal"]
110 #[inline(always)]
111 pub fn rk(self) -> &'a mut W {
112 self.variant(CKS_A::RK)
113 }
114 #[doc = "TK pin"]
115 #[inline(always)]
116 pub fn tk(self) -> &'a mut W {
117 self.variant(CKS_A::TK)
118 }
119 #[doc = r"Writes raw bits to the field"]
120 #[inline(always)]
121 pub unsafe fn bits(self, value: u8) -> &'a mut W {
122 self.w.bits = (self.w.bits & !0x03) | (value as u32 & 0x03);
123 self.w
124 }
125}
126#[doc = "Transmit Clock Output Mode Selection\n\nValue on reset: 0"]
127#[derive(Clone, Copy, Debug, PartialEq)]
128#[repr(u8)]
129pub enum CKO_A {
130 #[doc = "0: None, TK pin is an input"]
131 NONE = 0,
132 #[doc = "1: Continuous Transmit Clock, TK pin is an output"]
133 CONTINUOUS = 1,
134 #[doc = "2: Transmit Clock only during data transfers, TK pin is an output"]
135 TRANSFER = 2,
136}
137impl From<CKO_A> for u8 {
138 #[inline(always)]
139 fn from(variant: CKO_A) -> Self {
140 variant as _
141 }
142}
143#[doc = "Field `CKO` reader - Transmit Clock Output Mode Selection"]
144pub struct CKO_R(crate::FieldReader<u8, CKO_A>);
145impl CKO_R {
146 #[inline(always)]
147 pub(crate) fn new(bits: u8) -> Self {
148 CKO_R(crate::FieldReader::new(bits))
149 }
150 #[doc = r"Get enumerated values variant"]
151 #[inline(always)]
152 pub fn variant(&self) -> Option<CKO_A> {
153 match self.bits {
154 0 => Some(CKO_A::NONE),
155 1 => Some(CKO_A::CONTINUOUS),
156 2 => Some(CKO_A::TRANSFER),
157 _ => None,
158 }
159 }
160 #[doc = "Checks if the value of the field is `NONE`"]
161 #[inline(always)]
162 pub fn is_none(&self) -> bool {
163 **self == CKO_A::NONE
164 }
165 #[doc = "Checks if the value of the field is `CONTINUOUS`"]
166 #[inline(always)]
167 pub fn is_continuous(&self) -> bool {
168 **self == CKO_A::CONTINUOUS
169 }
170 #[doc = "Checks if the value of the field is `TRANSFER`"]
171 #[inline(always)]
172 pub fn is_transfer(&self) -> bool {
173 **self == CKO_A::TRANSFER
174 }
175}
176impl core::ops::Deref for CKO_R {
177 type Target = crate::FieldReader<u8, CKO_A>;
178 #[inline(always)]
179 fn deref(&self) -> &Self::Target {
180 &self.0
181 }
182}
183#[doc = "Field `CKO` writer - Transmit Clock Output Mode Selection"]
184pub struct CKO_W<'a> {
185 w: &'a mut W,
186}
187impl<'a> CKO_W<'a> {
188 #[doc = r"Writes `variant` to the field"]
189 #[inline(always)]
190 pub fn variant(self, variant: CKO_A) -> &'a mut W {
191 unsafe { self.bits(variant.into()) }
192 }
193 #[doc = "None, TK pin is an input"]
194 #[inline(always)]
195 pub fn none(self) -> &'a mut W {
196 self.variant(CKO_A::NONE)
197 }
198 #[doc = "Continuous Transmit Clock, TK pin is an output"]
199 #[inline(always)]
200 pub fn continuous(self) -> &'a mut W {
201 self.variant(CKO_A::CONTINUOUS)
202 }
203 #[doc = "Transmit Clock only during data transfers, TK pin is an output"]
204 #[inline(always)]
205 pub fn transfer(self) -> &'a mut W {
206 self.variant(CKO_A::TRANSFER)
207 }
208 #[doc = r"Writes raw bits to the field"]
209 #[inline(always)]
210 pub unsafe fn bits(self, value: u8) -> &'a mut W {
211 self.w.bits = (self.w.bits & !(0x07 << 2)) | ((value as u32 & 0x07) << 2);
212 self.w
213 }
214}
215#[doc = "Field `CKI` reader - Transmit Clock Inversion"]
216pub struct CKI_R(crate::FieldReader<bool, bool>);
217impl CKI_R {
218 #[inline(always)]
219 pub(crate) fn new(bits: bool) -> Self {
220 CKI_R(crate::FieldReader::new(bits))
221 }
222}
223impl core::ops::Deref for CKI_R {
224 type Target = crate::FieldReader<bool, bool>;
225 #[inline(always)]
226 fn deref(&self) -> &Self::Target {
227 &self.0
228 }
229}
230#[doc = "Field `CKI` writer - Transmit Clock Inversion"]
231pub struct CKI_W<'a> {
232 w: &'a mut W,
233}
234impl<'a> CKI_W<'a> {
235 #[doc = r"Sets the field bit"]
236 #[inline(always)]
237 pub fn set_bit(self) -> &'a mut W {
238 self.bit(true)
239 }
240 #[doc = r"Clears the field bit"]
241 #[inline(always)]
242 pub fn clear_bit(self) -> &'a mut W {
243 self.bit(false)
244 }
245 #[doc = r"Writes raw bits to the field"]
246 #[inline(always)]
247 pub fn bit(self, value: bool) -> &'a mut W {
248 self.w.bits = (self.w.bits & !(0x01 << 5)) | ((value as u32 & 0x01) << 5);
249 self.w
250 }
251}
252#[doc = "Transmit Clock Gating Selection\n\nValue on reset: 0"]
253#[derive(Clone, Copy, Debug, PartialEq)]
254#[repr(u8)]
255pub enum CKG_A {
256 #[doc = "0: None"]
257 CONTINUOUS = 0,
258 #[doc = "1: Transmit Clock enabled only if TF Low"]
259 EN_TF_LOW = 1,
260 #[doc = "2: Transmit Clock enabled only if TF High"]
261 EN_TF_HIGH = 2,
262}
263impl From<CKG_A> for u8 {
264 #[inline(always)]
265 fn from(variant: CKG_A) -> Self {
266 variant as _
267 }
268}
269#[doc = "Field `CKG` reader - Transmit Clock Gating Selection"]
270pub struct CKG_R(crate::FieldReader<u8, CKG_A>);
271impl CKG_R {
272 #[inline(always)]
273 pub(crate) fn new(bits: u8) -> Self {
274 CKG_R(crate::FieldReader::new(bits))
275 }
276 #[doc = r"Get enumerated values variant"]
277 #[inline(always)]
278 pub fn variant(&self) -> Option<CKG_A> {
279 match self.bits {
280 0 => Some(CKG_A::CONTINUOUS),
281 1 => Some(CKG_A::EN_TF_LOW),
282 2 => Some(CKG_A::EN_TF_HIGH),
283 _ => None,
284 }
285 }
286 #[doc = "Checks if the value of the field is `CONTINUOUS`"]
287 #[inline(always)]
288 pub fn is_continuous(&self) -> bool {
289 **self == CKG_A::CONTINUOUS
290 }
291 #[doc = "Checks if the value of the field is `EN_TF_LOW`"]
292 #[inline(always)]
293 pub fn is_en_tf_low(&self) -> bool {
294 **self == CKG_A::EN_TF_LOW
295 }
296 #[doc = "Checks if the value of the field is `EN_TF_HIGH`"]
297 #[inline(always)]
298 pub fn is_en_tf_high(&self) -> bool {
299 **self == CKG_A::EN_TF_HIGH
300 }
301}
302impl core::ops::Deref for CKG_R {
303 type Target = crate::FieldReader<u8, CKG_A>;
304 #[inline(always)]
305 fn deref(&self) -> &Self::Target {
306 &self.0
307 }
308}
309#[doc = "Field `CKG` writer - Transmit Clock Gating Selection"]
310pub struct CKG_W<'a> {
311 w: &'a mut W,
312}
313impl<'a> CKG_W<'a> {
314 #[doc = r"Writes `variant` to the field"]
315 #[inline(always)]
316 pub fn variant(self, variant: CKG_A) -> &'a mut W {
317 unsafe { self.bits(variant.into()) }
318 }
319 #[doc = "None"]
320 #[inline(always)]
321 pub fn continuous(self) -> &'a mut W {
322 self.variant(CKG_A::CONTINUOUS)
323 }
324 #[doc = "Transmit Clock enabled only if TF Low"]
325 #[inline(always)]
326 pub fn en_tf_low(self) -> &'a mut W {
327 self.variant(CKG_A::EN_TF_LOW)
328 }
329 #[doc = "Transmit Clock enabled only if TF High"]
330 #[inline(always)]
331 pub fn en_tf_high(self) -> &'a mut W {
332 self.variant(CKG_A::EN_TF_HIGH)
333 }
334 #[doc = r"Writes raw bits to the field"]
335 #[inline(always)]
336 pub unsafe fn bits(self, value: u8) -> &'a mut W {
337 self.w.bits = (self.w.bits & !(0x03 << 6)) | ((value as u32 & 0x03) << 6);
338 self.w
339 }
340}
341#[doc = "Transmit Start Selection\n\nValue on reset: 0"]
342#[derive(Clone, Copy, Debug, PartialEq)]
343#[repr(u8)]
344pub enum START_A {
345 #[doc = "0: Continuous, as soon as a word is written in the SSC_THR (if Transmit is enabled), and immediately after the end of transfer of the previous data"]
346 CONTINUOUS = 0,
347 #[doc = "1: Receive start"]
348 RECEIVE = 1,
349 #[doc = "2: Detection of a low level on TF signal"]
350 TF_LOW = 2,
351 #[doc = "3: Detection of a high level on TF signal"]
352 TF_HIGH = 3,
353 #[doc = "4: Detection of a falling edge on TF signal"]
354 TF_FALLING = 4,
355 #[doc = "5: Detection of a rising edge on TF signal"]
356 TF_RISING = 5,
357 #[doc = "6: Detection of any level change on TF signal"]
358 TF_LEVEL = 6,
359 #[doc = "7: Detection of any edge on TF signal"]
360 TF_EDGE = 7,
361}
362impl From<START_A> for u8 {
363 #[inline(always)]
364 fn from(variant: START_A) -> Self {
365 variant as _
366 }
367}
368#[doc = "Field `START` reader - Transmit Start Selection"]
369pub struct START_R(crate::FieldReader<u8, START_A>);
370impl START_R {
371 #[inline(always)]
372 pub(crate) fn new(bits: u8) -> Self {
373 START_R(crate::FieldReader::new(bits))
374 }
375 #[doc = r"Get enumerated values variant"]
376 #[inline(always)]
377 pub fn variant(&self) -> Option<START_A> {
378 match self.bits {
379 0 => Some(START_A::CONTINUOUS),
380 1 => Some(START_A::RECEIVE),
381 2 => Some(START_A::TF_LOW),
382 3 => Some(START_A::TF_HIGH),
383 4 => Some(START_A::TF_FALLING),
384 5 => Some(START_A::TF_RISING),
385 6 => Some(START_A::TF_LEVEL),
386 7 => Some(START_A::TF_EDGE),
387 _ => None,
388 }
389 }
390 #[doc = "Checks if the value of the field is `CONTINUOUS`"]
391 #[inline(always)]
392 pub fn is_continuous(&self) -> bool {
393 **self == START_A::CONTINUOUS
394 }
395 #[doc = "Checks if the value of the field is `RECEIVE`"]
396 #[inline(always)]
397 pub fn is_receive(&self) -> bool {
398 **self == START_A::RECEIVE
399 }
400 #[doc = "Checks if the value of the field is `TF_LOW`"]
401 #[inline(always)]
402 pub fn is_tf_low(&self) -> bool {
403 **self == START_A::TF_LOW
404 }
405 #[doc = "Checks if the value of the field is `TF_HIGH`"]
406 #[inline(always)]
407 pub fn is_tf_high(&self) -> bool {
408 **self == START_A::TF_HIGH
409 }
410 #[doc = "Checks if the value of the field is `TF_FALLING`"]
411 #[inline(always)]
412 pub fn is_tf_falling(&self) -> bool {
413 **self == START_A::TF_FALLING
414 }
415 #[doc = "Checks if the value of the field is `TF_RISING`"]
416 #[inline(always)]
417 pub fn is_tf_rising(&self) -> bool {
418 **self == START_A::TF_RISING
419 }
420 #[doc = "Checks if the value of the field is `TF_LEVEL`"]
421 #[inline(always)]
422 pub fn is_tf_level(&self) -> bool {
423 **self == START_A::TF_LEVEL
424 }
425 #[doc = "Checks if the value of the field is `TF_EDGE`"]
426 #[inline(always)]
427 pub fn is_tf_edge(&self) -> bool {
428 **self == START_A::TF_EDGE
429 }
430}
431impl core::ops::Deref for START_R {
432 type Target = crate::FieldReader<u8, START_A>;
433 #[inline(always)]
434 fn deref(&self) -> &Self::Target {
435 &self.0
436 }
437}
438#[doc = "Field `START` writer - Transmit Start Selection"]
439pub struct START_W<'a> {
440 w: &'a mut W,
441}
442impl<'a> START_W<'a> {
443 #[doc = r"Writes `variant` to the field"]
444 #[inline(always)]
445 pub fn variant(self, variant: START_A) -> &'a mut W {
446 unsafe { self.bits(variant.into()) }
447 }
448 #[doc = "Continuous, as soon as a word is written in the SSC_THR (if Transmit is enabled), and immediately after the end of transfer of the previous data"]
449 #[inline(always)]
450 pub fn continuous(self) -> &'a mut W {
451 self.variant(START_A::CONTINUOUS)
452 }
453 #[doc = "Receive start"]
454 #[inline(always)]
455 pub fn receive(self) -> &'a mut W {
456 self.variant(START_A::RECEIVE)
457 }
458 #[doc = "Detection of a low level on TF signal"]
459 #[inline(always)]
460 pub fn tf_low(self) -> &'a mut W {
461 self.variant(START_A::TF_LOW)
462 }
463 #[doc = "Detection of a high level on TF signal"]
464 #[inline(always)]
465 pub fn tf_high(self) -> &'a mut W {
466 self.variant(START_A::TF_HIGH)
467 }
468 #[doc = "Detection of a falling edge on TF signal"]
469 #[inline(always)]
470 pub fn tf_falling(self) -> &'a mut W {
471 self.variant(START_A::TF_FALLING)
472 }
473 #[doc = "Detection of a rising edge on TF signal"]
474 #[inline(always)]
475 pub fn tf_rising(self) -> &'a mut W {
476 self.variant(START_A::TF_RISING)
477 }
478 #[doc = "Detection of any level change on TF signal"]
479 #[inline(always)]
480 pub fn tf_level(self) -> &'a mut W {
481 self.variant(START_A::TF_LEVEL)
482 }
483 #[doc = "Detection of any edge on TF signal"]
484 #[inline(always)]
485 pub fn tf_edge(self) -> &'a mut W {
486 self.variant(START_A::TF_EDGE)
487 }
488 #[doc = r"Writes raw bits to the field"]
489 #[inline(always)]
490 pub unsafe fn bits(self, value: u8) -> &'a mut W {
491 self.w.bits = (self.w.bits & !(0x0f << 8)) | ((value as u32 & 0x0f) << 8);
492 self.w
493 }
494}
495#[doc = "Field `STTDLY` reader - Transmit Start Delay"]
496pub struct STTDLY_R(crate::FieldReader<u8, u8>);
497impl STTDLY_R {
498 #[inline(always)]
499 pub(crate) fn new(bits: u8) -> Self {
500 STTDLY_R(crate::FieldReader::new(bits))
501 }
502}
503impl core::ops::Deref for STTDLY_R {
504 type Target = crate::FieldReader<u8, u8>;
505 #[inline(always)]
506 fn deref(&self) -> &Self::Target {
507 &self.0
508 }
509}
510#[doc = "Field `STTDLY` writer - Transmit Start Delay"]
511pub struct STTDLY_W<'a> {
512 w: &'a mut W,
513}
514impl<'a> STTDLY_W<'a> {
515 #[doc = r"Writes raw bits to the field"]
516 #[inline(always)]
517 pub unsafe fn bits(self, value: u8) -> &'a mut W {
518 self.w.bits = (self.w.bits & !(0xff << 16)) | ((value as u32 & 0xff) << 16);
519 self.w
520 }
521}
522#[doc = "Field `PERIOD` reader - Transmit Period Divider Selection"]
523pub struct PERIOD_R(crate::FieldReader<u8, u8>);
524impl PERIOD_R {
525 #[inline(always)]
526 pub(crate) fn new(bits: u8) -> Self {
527 PERIOD_R(crate::FieldReader::new(bits))
528 }
529}
530impl core::ops::Deref for PERIOD_R {
531 type Target = crate::FieldReader<u8, u8>;
532 #[inline(always)]
533 fn deref(&self) -> &Self::Target {
534 &self.0
535 }
536}
537#[doc = "Field `PERIOD` writer - Transmit Period Divider Selection"]
538pub struct PERIOD_W<'a> {
539 w: &'a mut W,
540}
541impl<'a> PERIOD_W<'a> {
542 #[doc = r"Writes raw bits to the field"]
543 #[inline(always)]
544 pub unsafe fn bits(self, value: u8) -> &'a mut W {
545 self.w.bits = (self.w.bits & !(0xff << 24)) | ((value as u32 & 0xff) << 24);
546 self.w
547 }
548}
549impl R {
550 #[doc = "Bits 0:1 - Transmit Clock Selection"]
551 #[inline(always)]
552 pub fn cks(&self) -> CKS_R {
553 CKS_R::new((self.bits & 0x03) as u8)
554 }
555 #[doc = "Bits 2:4 - Transmit Clock Output Mode Selection"]
556 #[inline(always)]
557 pub fn cko(&self) -> CKO_R {
558 CKO_R::new(((self.bits >> 2) & 0x07) as u8)
559 }
560 #[doc = "Bit 5 - Transmit Clock Inversion"]
561 #[inline(always)]
562 pub fn cki(&self) -> CKI_R {
563 CKI_R::new(((self.bits >> 5) & 0x01) != 0)
564 }
565 #[doc = "Bits 6:7 - Transmit Clock Gating Selection"]
566 #[inline(always)]
567 pub fn ckg(&self) -> CKG_R {
568 CKG_R::new(((self.bits >> 6) & 0x03) as u8)
569 }
570 #[doc = "Bits 8:11 - Transmit Start Selection"]
571 #[inline(always)]
572 pub fn start(&self) -> START_R {
573 START_R::new(((self.bits >> 8) & 0x0f) as u8)
574 }
575 #[doc = "Bits 16:23 - Transmit Start Delay"]
576 #[inline(always)]
577 pub fn sttdly(&self) -> STTDLY_R {
578 STTDLY_R::new(((self.bits >> 16) & 0xff) as u8)
579 }
580 #[doc = "Bits 24:31 - Transmit Period Divider Selection"]
581 #[inline(always)]
582 pub fn period(&self) -> PERIOD_R {
583 PERIOD_R::new(((self.bits >> 24) & 0xff) as u8)
584 }
585}
586impl W {
587 #[doc = "Bits 0:1 - Transmit Clock Selection"]
588 #[inline(always)]
589 pub fn cks(&mut self) -> CKS_W {
590 CKS_W { w: self }
591 }
592 #[doc = "Bits 2:4 - Transmit Clock Output Mode Selection"]
593 #[inline(always)]
594 pub fn cko(&mut self) -> CKO_W {
595 CKO_W { w: self }
596 }
597 #[doc = "Bit 5 - Transmit Clock Inversion"]
598 #[inline(always)]
599 pub fn cki(&mut self) -> CKI_W {
600 CKI_W { w: self }
601 }
602 #[doc = "Bits 6:7 - Transmit Clock Gating Selection"]
603 #[inline(always)]
604 pub fn ckg(&mut self) -> CKG_W {
605 CKG_W { w: self }
606 }
607 #[doc = "Bits 8:11 - Transmit Start Selection"]
608 #[inline(always)]
609 pub fn start(&mut self) -> START_W {
610 START_W { w: self }
611 }
612 #[doc = "Bits 16:23 - Transmit Start Delay"]
613 #[inline(always)]
614 pub fn sttdly(&mut self) -> STTDLY_W {
615 STTDLY_W { w: self }
616 }
617 #[doc = "Bits 24:31 - Transmit Period Divider Selection"]
618 #[inline(always)]
619 pub fn period(&mut self) -> PERIOD_W {
620 PERIOD_W { w: self }
621 }
622 #[doc = "Writes raw bits to the register."]
623 #[inline(always)]
624 pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
625 self.0.bits(bits);
626 self
627 }
628}
629#[doc = "Transmit Clock Mode Register\n\nThis register you can [`read`](crate::generic::Reg::read), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [ssc_tcmr](index.html) module"]
630pub struct SSC_TCMR_SPEC;
631impl crate::RegisterSpec for SSC_TCMR_SPEC {
632 type Ux = u32;
633}
634#[doc = "`read()` method returns [ssc_tcmr::R](R) reader structure"]
635impl crate::Readable for SSC_TCMR_SPEC {
636 type Reader = R;
637}
638#[doc = "`write(|w| ..)` method takes [ssc_tcmr::W](W) writer structure"]
639impl crate::Writable for SSC_TCMR_SPEC {
640 type Writer = W;
641}
642#[doc = "`reset()` method sets SSC_TCMR to value 0"]
643impl crate::Resettable for SSC_TCMR_SPEC {
644 #[inline(always)]
645 fn reset_value() -> Self::Ux {
646 0
647 }
648}