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
use crate::generic::*; #[doc = "Voltage select. Per bank control"] #[repr(transparent)] #[derive(Copy, Clone)] pub struct VoltageSelect(pub u32); impl VoltageSelect { pub const fn voltage_select(&self) -> super::vals::VoltageSelect { let val = (self.0 >> 0u32) & 0x01; super::vals::VoltageSelect(val as u8) } pub fn set_voltage_select(&mut self, val: super::vals::VoltageSelect) { self.0 = (self.0 & !(0x01 << 0u32)) | (((val.0 as u32) & 0x01) << 0u32); } } impl Default for VoltageSelect { fn default() -> VoltageSelect { VoltageSelect(0) } } #[doc = "Pad control register"] #[repr(transparent)] #[derive(Copy, Clone)] pub struct GpioCtrl(pub u32); impl GpioCtrl { #[doc = "Output disable. Has priority over output enable from peripherals"] pub const fn od(&self) -> bool { let val = (self.0 >> 7u32) & 0x01; val != 0 } #[doc = "Output disable. Has priority over output enable from peripherals"] pub fn set_od(&mut self, val: bool) { self.0 = (self.0 & !(0x01 << 7u32)) | (((val as u32) & 0x01) << 7u32); } #[doc = "Input enable"] pub const fn ie(&self) -> bool { let val = (self.0 >> 6u32) & 0x01; val != 0 } #[doc = "Input enable"] pub fn set_ie(&mut self, val: bool) { self.0 = (self.0 & !(0x01 << 6u32)) | (((val as u32) & 0x01) << 6u32); } #[doc = "Drive strength."] pub const fn drive(&self) -> super::vals::Drive { let val = (self.0 >> 4u32) & 0x03; super::vals::Drive(val as u8) } #[doc = "Drive strength."] pub fn set_drive(&mut self, val: super::vals::Drive) { self.0 = (self.0 & !(0x03 << 4u32)) | (((val.0 as u32) & 0x03) << 4u32); } #[doc = "Pull up enable"] pub const fn pue(&self) -> bool { let val = (self.0 >> 3u32) & 0x01; val != 0 } #[doc = "Pull up enable"] pub fn set_pue(&mut self, val: bool) { self.0 = (self.0 & !(0x01 << 3u32)) | (((val as u32) & 0x01) << 3u32); } #[doc = "Pull down enable"] pub const fn pde(&self) -> bool { let val = (self.0 >> 2u32) & 0x01; val != 0 } #[doc = "Pull down enable"] pub fn set_pde(&mut self, val: bool) { self.0 = (self.0 & !(0x01 << 2u32)) | (((val as u32) & 0x01) << 2u32); } #[doc = "Enable schmitt trigger"] pub const fn schmitt(&self) -> bool { let val = (self.0 >> 1u32) & 0x01; val != 0 } #[doc = "Enable schmitt trigger"] pub fn set_schmitt(&mut self, val: bool) { self.0 = (self.0 & !(0x01 << 1u32)) | (((val as u32) & 0x01) << 1u32); } #[doc = "Slew rate control. 1 = Fast, 0 = Slow"] pub const fn slewfast(&self) -> bool { let val = (self.0 >> 0u32) & 0x01; val != 0 } #[doc = "Slew rate control. 1 = Fast, 0 = Slow"] pub fn set_slewfast(&mut self, val: bool) { self.0 = (self.0 & !(0x01 << 0u32)) | (((val as u32) & 0x01) << 0u32); } } impl Default for GpioCtrl { fn default() -> GpioCtrl { GpioCtrl(0) } }