#[doc = "Register `SVSMIO` reader"]
pub type R = crate::R<SvsmioSpec>;
#[doc = "Register `SVSMIO` writer"]
pub type W = crate::W<SvsmioSpec>;
#[doc = "Field `SVMLOE` reader - SVM low side output enable"]
pub type SvmloeR = crate::BitReader;
#[doc = "Field `SVMLOE` writer - SVM low side output enable"]
pub type SvmloeW<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `SVMLVLROE` reader - SVM low side voltage level reached output enable"]
pub type SvmlvlroeR = crate::BitReader;
#[doc = "Field `SVMLVLROE` writer - SVM low side voltage level reached output enable"]
pub type SvmlvlroeW<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `SVMOUTPOL` reader - SVMOUT pin polarity"]
pub type SvmoutpolR = crate::BitReader;
#[doc = "Field `SVMOUTPOL` writer - SVMOUT pin polarity"]
pub type SvmoutpolW<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `SVMHOE` reader - SVM high side output enable"]
pub type SvmhoeR = crate::BitReader;
#[doc = "Field `SVMHOE` writer - SVM high side output enable"]
pub type SvmhoeW<'a, REG> = crate::BitWriter<'a, REG>;
#[doc = "Field `SVMHVLROE` reader - SVM high side voltage level reached output enable"]
pub type SvmhvlroeR = crate::BitReader;
#[doc = "Field `SVMHVLROE` writer - SVM high side voltage level reached output enable"]
pub type SvmhvlroeW<'a, REG> = crate::BitWriter<'a, REG>;
impl R {
#[doc = "Bit 3 - SVM low side output enable"]
#[inline(always)]
pub fn svmloe(&self) -> SvmloeR {
SvmloeR::new(((self.bits >> 3) & 1) != 0)
}
#[doc = "Bit 4 - SVM low side voltage level reached output enable"]
#[inline(always)]
pub fn svmlvlroe(&self) -> SvmlvlroeR {
SvmlvlroeR::new(((self.bits >> 4) & 1) != 0)
}
#[doc = "Bit 5 - SVMOUT pin polarity"]
#[inline(always)]
pub fn svmoutpol(&self) -> SvmoutpolR {
SvmoutpolR::new(((self.bits >> 5) & 1) != 0)
}
#[doc = "Bit 11 - SVM high side output enable"]
#[inline(always)]
pub fn svmhoe(&self) -> SvmhoeR {
SvmhoeR::new(((self.bits >> 11) & 1) != 0)
}
#[doc = "Bit 12 - SVM high side voltage level reached output enable"]
#[inline(always)]
pub fn svmhvlroe(&self) -> SvmhvlroeR {
SvmhvlroeR::new(((self.bits >> 12) & 1) != 0)
}
}
impl W {
#[doc = "Bit 3 - SVM low side output enable"]
#[inline(always)]
pub fn svmloe(&mut self) -> SvmloeW<'_, SvsmioSpec> {
SvmloeW::new(self, 3)
}
#[doc = "Bit 4 - SVM low side voltage level reached output enable"]
#[inline(always)]
pub fn svmlvlroe(&mut self) -> SvmlvlroeW<'_, SvsmioSpec> {
SvmlvlroeW::new(self, 4)
}
#[doc = "Bit 5 - SVMOUT pin polarity"]
#[inline(always)]
pub fn svmoutpol(&mut self) -> SvmoutpolW<'_, SvsmioSpec> {
SvmoutpolW::new(self, 5)
}
#[doc = "Bit 11 - SVM high side output enable"]
#[inline(always)]
pub fn svmhoe(&mut self) -> SvmhoeW<'_, SvsmioSpec> {
SvmhoeW::new(self, 11)
}
#[doc = "Bit 12 - SVM high side voltage level reached output enable"]
#[inline(always)]
pub fn svmhvlroe(&mut self) -> SvmhvlroeW<'_, SvsmioSpec> {
SvmhvlroeW::new(self, 12)
}
}
#[doc = "SVSIN and SVSOUT control register\n\nYou can [`read`](crate::Reg::read) this register and get [`svsmio::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`svsmio::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct SvsmioSpec;
impl crate::RegisterSpec for SvsmioSpec {
type Ux = u16;
}
#[doc = "`read()` method returns [`svsmio::R`](R) reader structure"]
impl crate::Readable for SvsmioSpec {}
#[doc = "`write(|w| ..)` method takes [`svsmio::W`](W) writer structure"]
impl crate::Writable for SvsmioSpec {
type Safety = crate::Unsafe;
}
#[doc = "`reset()` method sets SVSMIO to value 0"]
impl crate::Resettable for SvsmioSpec {}