atsamd51n/gclk/
syncbusy.rs1#[doc = "Register `SYNCBUSY` reader"]
2pub type R = crate::R<SyncbusySpec>;
3#[doc = "Field `SWRST` reader - Software Reset Synchroniation Busy bit"]
4pub type SwrstR = crate::BitReader;
5#[doc = "Generic Clock Generator Control n Synchronization Busy bits\n\nValue on reset: 0"]
6#[derive(Clone, Copy, Debug, PartialEq, Eq)]
7#[repr(u16)]
8pub enum Genctrlselect {
9 #[doc = "1: Generic clock generator 0"]
10 Gclk0 = 1,
11 #[doc = "2: Generic clock generator 1"]
12 Gclk1 = 2,
13 #[doc = "4: Generic clock generator 2"]
14 Gclk2 = 4,
15 #[doc = "8: Generic clock generator 3"]
16 Gclk3 = 8,
17 #[doc = "16: Generic clock generator 4"]
18 Gclk4 = 16,
19 #[doc = "32: Generic clock generator 5"]
20 Gclk5 = 32,
21 #[doc = "64: Generic clock generator 6"]
22 Gclk6 = 64,
23 #[doc = "128: Generic clock generator 7"]
24 Gclk7 = 128,
25 #[doc = "256: Generic clock generator 8"]
26 Gclk8 = 256,
27 #[doc = "512: Generic clock generator 9"]
28 Gclk9 = 512,
29 #[doc = "1024: Generic clock generator 10"]
30 Gclk10 = 1024,
31 #[doc = "2048: Generic clock generator 11"]
32 Gclk11 = 2048,
33}
34impl From<Genctrlselect> for u16 {
35 #[inline(always)]
36 fn from(variant: Genctrlselect) -> Self {
37 variant as _
38 }
39}
40impl crate::FieldSpec for Genctrlselect {
41 type Ux = u16;
42}
43impl crate::IsEnum for Genctrlselect {}
44#[doc = "Field `GENCTRL` reader - Generic Clock Generator Control n Synchronization Busy bits"]
45pub type GenctrlR = crate::FieldReader<Genctrlselect>;
46impl GenctrlR {
47 #[doc = "Get enumerated values variant"]
48 #[inline(always)]
49 pub const fn variant(&self) -> Option<Genctrlselect> {
50 match self.bits {
51 1 => Some(Genctrlselect::Gclk0),
52 2 => Some(Genctrlselect::Gclk1),
53 4 => Some(Genctrlselect::Gclk2),
54 8 => Some(Genctrlselect::Gclk3),
55 16 => Some(Genctrlselect::Gclk4),
56 32 => Some(Genctrlselect::Gclk5),
57 64 => Some(Genctrlselect::Gclk6),
58 128 => Some(Genctrlselect::Gclk7),
59 256 => Some(Genctrlselect::Gclk8),
60 512 => Some(Genctrlselect::Gclk9),
61 1024 => Some(Genctrlselect::Gclk10),
62 2048 => Some(Genctrlselect::Gclk11),
63 _ => None,
64 }
65 }
66 #[doc = "Generic clock generator 0"]
67 #[inline(always)]
68 pub fn is_gclk0(&self) -> bool {
69 *self == Genctrlselect::Gclk0
70 }
71 #[doc = "Generic clock generator 1"]
72 #[inline(always)]
73 pub fn is_gclk1(&self) -> bool {
74 *self == Genctrlselect::Gclk1
75 }
76 #[doc = "Generic clock generator 2"]
77 #[inline(always)]
78 pub fn is_gclk2(&self) -> bool {
79 *self == Genctrlselect::Gclk2
80 }
81 #[doc = "Generic clock generator 3"]
82 #[inline(always)]
83 pub fn is_gclk3(&self) -> bool {
84 *self == Genctrlselect::Gclk3
85 }
86 #[doc = "Generic clock generator 4"]
87 #[inline(always)]
88 pub fn is_gclk4(&self) -> bool {
89 *self == Genctrlselect::Gclk4
90 }
91 #[doc = "Generic clock generator 5"]
92 #[inline(always)]
93 pub fn is_gclk5(&self) -> bool {
94 *self == Genctrlselect::Gclk5
95 }
96 #[doc = "Generic clock generator 6"]
97 #[inline(always)]
98 pub fn is_gclk6(&self) -> bool {
99 *self == Genctrlselect::Gclk6
100 }
101 #[doc = "Generic clock generator 7"]
102 #[inline(always)]
103 pub fn is_gclk7(&self) -> bool {
104 *self == Genctrlselect::Gclk7
105 }
106 #[doc = "Generic clock generator 8"]
107 #[inline(always)]
108 pub fn is_gclk8(&self) -> bool {
109 *self == Genctrlselect::Gclk8
110 }
111 #[doc = "Generic clock generator 9"]
112 #[inline(always)]
113 pub fn is_gclk9(&self) -> bool {
114 *self == Genctrlselect::Gclk9
115 }
116 #[doc = "Generic clock generator 10"]
117 #[inline(always)]
118 pub fn is_gclk10(&self) -> bool {
119 *self == Genctrlselect::Gclk10
120 }
121 #[doc = "Generic clock generator 11"]
122 #[inline(always)]
123 pub fn is_gclk11(&self) -> bool {
124 *self == Genctrlselect::Gclk11
125 }
126}
127impl R {
128 #[doc = "Bit 0 - Software Reset Synchroniation Busy bit"]
129 #[inline(always)]
130 pub fn swrst(&self) -> SwrstR {
131 SwrstR::new((self.bits & 1) != 0)
132 }
133 #[doc = "Bits 2:13 - Generic Clock Generator Control n Synchronization Busy bits"]
134 #[inline(always)]
135 pub fn genctrl(&self) -> GenctrlR {
136 GenctrlR::new(((self.bits >> 2) & 0x0fff) as u16)
137 }
138}
139#[doc = "Synchronization Busy\n\nYou can [`read`](crate::Reg::read) this register and get [`syncbusy::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
140pub struct SyncbusySpec;
141impl crate::RegisterSpec for SyncbusySpec {
142 type Ux = u32;
143}
144#[doc = "`read()` method returns [`syncbusy::R`](R) reader structure"]
145impl crate::Readable for SyncbusySpec {}
146#[doc = "`reset()` method sets SYNCBUSY to value 0"]
147impl crate::Resettable for SyncbusySpec {
148 const RESET_VALUE: u32 = 0;
149}