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
#[doc = "Register `C2APB1SMENR1` reader"]
pub struct R(crate::R<C2APB1SMENR1_SPEC>);
impl core::ops::Deref for R {
    type Target = crate::R<C2APB1SMENR1_SPEC>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
impl From<crate::R<C2APB1SMENR1_SPEC>> for R {
    #[inline(always)]
    fn from(reader: crate::R<C2APB1SMENR1_SPEC>) -> Self {
        R(reader)
    }
}
#[doc = "Register `C2APB1SMENR1` writer"]
pub struct W(crate::W<C2APB1SMENR1_SPEC>);
impl core::ops::Deref for W {
    type Target = crate::W<C2APB1SMENR1_SPEC>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
impl core::ops::DerefMut for W {
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut Self::Target {
        &mut self.0
    }
}
impl From<crate::W<C2APB1SMENR1_SPEC>> for W {
    #[inline(always)]
    fn from(writer: crate::W<C2APB1SMENR1_SPEC>) -> Self {
        W(writer)
    }
}
#[doc = "Field `LPTIM1SMEN` reader - Low power timer 1 clocks enable during CPU2 Sleep mode"]
pub type LPTIM1SMEN_R = crate::BitReader<bool>;
#[doc = "Field `LPTIM1SMEN` writer - Low power timer 1 clocks enable during CPU2 Sleep mode"]
pub type LPTIM1SMEN_W<'a, const O: u8> = crate::BitWriter<'a, u32, C2APB1SMENR1_SPEC, bool, O>;
#[doc = "Field `USBSMEN` reader - USB FS clocks enable during CPU2 Sleep mode"]
pub type USBSMEN_R = crate::BitReader<bool>;
#[doc = "Field `USBSMEN` writer - USB FS clocks enable during CPU2 Sleep mode"]
pub type USBSMEN_W<'a, const O: u8> = crate::BitWriter<'a, u32, C2APB1SMENR1_SPEC, bool, O>;
#[doc = "Field `CRSMEN` reader - CRS clocks enable during CPU2 Sleep mode"]
pub type CRSMEN_R = crate::BitReader<bool>;
#[doc = "Field `CRSMEN` writer - CRS clocks enable during CPU2 Sleep mode"]
pub type CRSMEN_W<'a, const O: u8> = crate::BitWriter<'a, u32, C2APB1SMENR1_SPEC, bool, O>;
#[doc = "Field `I2C3SMEN` reader - I2C3 clocks enable during CPU2 Sleep mode"]
pub type I2C3SMEN_R = crate::BitReader<bool>;
#[doc = "Field `I2C3SMEN` writer - I2C3 clocks enable during CPU2 Sleep mode"]
pub type I2C3SMEN_W<'a, const O: u8> = crate::BitWriter<'a, u32, C2APB1SMENR1_SPEC, bool, O>;
#[doc = "Field `I2C1SMEN` reader - I2C1 clocks enable during CPU2 Sleep mode"]
pub type I2C1SMEN_R = crate::BitReader<bool>;
#[doc = "Field `I2C1SMEN` writer - I2C1 clocks enable during CPU2 Sleep mode"]
pub type I2C1SMEN_W<'a, const O: u8> = crate::BitWriter<'a, u32, C2APB1SMENR1_SPEC, bool, O>;
#[doc = "Field `SPI2SMEN` reader - SPI2 clocks enable during CPU2 Sleep mode"]
pub type SPI2SMEN_R = crate::BitReader<bool>;
#[doc = "Field `SPI2SMEN` writer - SPI2 clocks enable during CPU2 Sleep mode"]
pub type SPI2SMEN_W<'a, const O: u8> = crate::BitWriter<'a, u32, C2APB1SMENR1_SPEC, bool, O>;
#[doc = "Field `RTCAPBSMEN` reader - RTC APB clocks enable during CPU2 Sleep mode"]
pub type RTCAPBSMEN_R = crate::BitReader<bool>;
#[doc = "Field `RTCAPBSMEN` writer - RTC APB clocks enable during CPU2 Sleep mode"]
pub type RTCAPBSMEN_W<'a, const O: u8> = crate::BitWriter<'a, u32, C2APB1SMENR1_SPEC, bool, O>;
#[doc = "Field `LCDSMEN` reader - LCD clocks enable during CPU2 Sleep mode"]
pub type LCDSMEN_R = crate::BitReader<bool>;
#[doc = "Field `LCDSMEN` writer - LCD clocks enable during CPU2 Sleep mode"]
pub type LCDSMEN_W<'a, const O: u8> = crate::BitWriter<'a, u32, C2APB1SMENR1_SPEC, bool, O>;
#[doc = "Field `TIM2SMEN` reader - TIM2 timer clocks enable during CPU2 Sleep mode"]
pub type TIM2SMEN_R = crate::BitReader<bool>;
#[doc = "Field `TIM2SMEN` writer - TIM2 timer clocks enable during CPU2 Sleep mode"]
pub type TIM2SMEN_W<'a, const O: u8> = crate::BitWriter<'a, u32, C2APB1SMENR1_SPEC, bool, O>;
impl R {
    #[doc = "Bit 31 - Low power timer 1 clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn lptim1smen(&self) -> LPTIM1SMEN_R {
        LPTIM1SMEN_R::new(((self.bits >> 31) & 1) != 0)
    }
    #[doc = "Bit 26 - USB FS clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn usbsmen(&self) -> USBSMEN_R {
        USBSMEN_R::new(((self.bits >> 26) & 1) != 0)
    }
    #[doc = "Bit 24 - CRS clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn crsmen(&self) -> CRSMEN_R {
        CRSMEN_R::new(((self.bits >> 24) & 1) != 0)
    }
    #[doc = "Bit 23 - I2C3 clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn i2c3smen(&self) -> I2C3SMEN_R {
        I2C3SMEN_R::new(((self.bits >> 23) & 1) != 0)
    }
    #[doc = "Bit 21 - I2C1 clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn i2c1smen(&self) -> I2C1SMEN_R {
        I2C1SMEN_R::new(((self.bits >> 21) & 1) != 0)
    }
    #[doc = "Bit 14 - SPI2 clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn spi2smen(&self) -> SPI2SMEN_R {
        SPI2SMEN_R::new(((self.bits >> 14) & 1) != 0)
    }
    #[doc = "Bit 10 - RTC APB clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn rtcapbsmen(&self) -> RTCAPBSMEN_R {
        RTCAPBSMEN_R::new(((self.bits >> 10) & 1) != 0)
    }
    #[doc = "Bit 9 - LCD clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn lcdsmen(&self) -> LCDSMEN_R {
        LCDSMEN_R::new(((self.bits >> 9) & 1) != 0)
    }
    #[doc = "Bit 0 - TIM2 timer clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn tim2smen(&self) -> TIM2SMEN_R {
        TIM2SMEN_R::new((self.bits & 1) != 0)
    }
}
impl W {
    #[doc = "Bit 31 - Low power timer 1 clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn lptim1smen(&mut self) -> LPTIM1SMEN_W<31> {
        LPTIM1SMEN_W::new(self)
    }
    #[doc = "Bit 26 - USB FS clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn usbsmen(&mut self) -> USBSMEN_W<26> {
        USBSMEN_W::new(self)
    }
    #[doc = "Bit 24 - CRS clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn crsmen(&mut self) -> CRSMEN_W<24> {
        CRSMEN_W::new(self)
    }
    #[doc = "Bit 23 - I2C3 clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn i2c3smen(&mut self) -> I2C3SMEN_W<23> {
        I2C3SMEN_W::new(self)
    }
    #[doc = "Bit 21 - I2C1 clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn i2c1smen(&mut self) -> I2C1SMEN_W<21> {
        I2C1SMEN_W::new(self)
    }
    #[doc = "Bit 14 - SPI2 clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn spi2smen(&mut self) -> SPI2SMEN_W<14> {
        SPI2SMEN_W::new(self)
    }
    #[doc = "Bit 10 - RTC APB clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn rtcapbsmen(&mut self) -> RTCAPBSMEN_W<10> {
        RTCAPBSMEN_W::new(self)
    }
    #[doc = "Bit 9 - LCD clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn lcdsmen(&mut self) -> LCDSMEN_W<9> {
        LCDSMEN_W::new(self)
    }
    #[doc = "Bit 0 - TIM2 timer clocks enable during CPU2 Sleep mode"]
    #[inline(always)]
    pub fn tim2smen(&mut self) -> TIM2SMEN_W<0> {
        TIM2SMEN_W::new(self)
    }
    #[doc = "Writes raw bits to the register."]
    #[inline(always)]
    pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
        self.0.bits(bits);
        self
    }
}
#[doc = "CPU2 APB1SMENR1\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 [c2apb1smenr1](index.html) module"]
pub struct C2APB1SMENR1_SPEC;
impl crate::RegisterSpec for C2APB1SMENR1_SPEC {
    type Ux = u32;
}
#[doc = "`read()` method returns [c2apb1smenr1::R](R) reader structure"]
impl crate::Readable for C2APB1SMENR1_SPEC {
    type Reader = R;
}
#[doc = "`write(|w| ..)` method takes [c2apb1smenr1::W](W) writer structure"]
impl crate::Writable for C2APB1SMENR1_SPEC {
    type Writer = W;
}
#[doc = "`reset()` method sets C2APB1SMENR1 to value 0x85a0_4601"]
impl crate::Resettable for C2APB1SMENR1_SPEC {
    #[inline(always)]
    fn reset_value() -> Self::Ux {
        0x85a0_4601
    }
}