#[doc = "Register `DAT` reader"]
pub type R = crate::R<DatSpec>;
#[doc = "Register `DAT` writer"]
pub type W = crate::W<DatSpec>;
#[doc = "Field `Data` reader - This register holds data values that have been received or are to be transmitted."]
pub type DataR = crate::FieldReader;
#[doc = "Field `Data` writer - This register holds data values that have been received or are to be transmitted."]
pub type DataW<'a, REG> = crate::FieldWriter<'a, REG, 8>;
impl R {
    #[doc = "Bits 0:7 - This register holds data values that have been received or are to be transmitted."]
    #[inline(always)]
    pub fn data(&self) -> DataR {
        DataR::new((self.bits & 0xff) as u8)
    }
}
impl W {
    #[doc = "Bits 0:7 - This register holds data values that have been received or are to be transmitted."]
    #[inline(always)]
    pub fn data(&mut self) -> DataW<'_, DatSpec> {
        DataW::new(self, 0)
    }
}
#[doc = "I2C Data Register. During master or slave transmit mode, data to be transmitted is written to this register. During master or slave receive mode, data that has been received may be read from this register.\n\nYou can [`read`](crate::Reg::read) this register and get [`dat::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`dat::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct DatSpec;
impl crate::RegisterSpec for DatSpec {
    type Ux = u32;
}
#[doc = "`read()` method returns [`dat::R`](R) reader structure"]
impl crate::Readable for DatSpec {}
#[doc = "`write(|w| ..)` method takes [`dat::W`](W) writer structure"]
impl crate::Writable for DatSpec {
    type Safety = crate::Unsafe;
}
#[doc = "`reset()` method sets DAT to value 0"]
impl crate::Resettable for DatSpec {}
