d1_pac/usb1/ehci_operational/
periodiclistbase.rs

1#[doc = "Register `periodiclistbase` reader"]
2pub type R = crate::R<PERIODICLISTBASE_SPEC>;
3#[doc = "Register `periodiclistbase` writer"]
4pub type W = crate::W<PERIODICLISTBASE_SPEC>;
5#[doc = "Field `base_address` reader - Base Address\n\nThese bits correspond to memory address signals \\[31:12\\], respectively.\n\nThis register contains the beginning address of the Periodic Frame List in the system memory.\n\nSystem software loads this register prior to starting the schedule execution by the Host Controller. The memory structure referenced by this physical memory pointer is assumed to be 4 Kbyte aligned. The contents of this register are combined with the Frame Index Register (FRINDEX) to enable the Host Controller to step through the Periodic Frame List in sequence."]
6pub type BASE_ADDRESS_R = crate::FieldReader<u32>;
7#[doc = "Field `base_address` writer - Base Address\n\nThese bits correspond to memory address signals \\[31:12\\], respectively.\n\nThis register contains the beginning address of the Periodic Frame List in the system memory.\n\nSystem software loads this register prior to starting the schedule execution by the Host Controller. The memory structure referenced by this physical memory pointer is assumed to be 4 Kbyte aligned. The contents of this register are combined with the Frame Index Register (FRINDEX) to enable the Host Controller to step through the Periodic Frame List in sequence."]
8pub type BASE_ADDRESS_W<'a, REG> = crate::FieldWriter<'a, REG, 20, u32>;
9impl R {
10    #[doc = "Bits 12:31 - Base Address\n\nThese bits correspond to memory address signals \\[31:12\\], respectively.\n\nThis register contains the beginning address of the Periodic Frame List in the system memory.\n\nSystem software loads this register prior to starting the schedule execution by the Host Controller. The memory structure referenced by this physical memory pointer is assumed to be 4 Kbyte aligned. The contents of this register are combined with the Frame Index Register (FRINDEX) to enable the Host Controller to step through the Periodic Frame List in sequence."]
11    #[inline(always)]
12    pub fn base_address(&self) -> BASE_ADDRESS_R {
13        BASE_ADDRESS_R::new((self.bits >> 12) & 0x000f_ffff)
14    }
15}
16impl W {
17    #[doc = "Bits 12:31 - Base Address\n\nThese bits correspond to memory address signals \\[31:12\\], respectively.\n\nThis register contains the beginning address of the Periodic Frame List in the system memory.\n\nSystem software loads this register prior to starting the schedule execution by the Host Controller. The memory structure referenced by this physical memory pointer is assumed to be 4 Kbyte aligned. The contents of this register are combined with the Frame Index Register (FRINDEX) to enable the Host Controller to step through the Periodic Frame List in sequence."]
18    #[inline(always)]
19    #[must_use]
20    pub fn base_address(&mut self) -> BASE_ADDRESS_W<PERIODICLISTBASE_SPEC> {
21        BASE_ADDRESS_W::new(self, 12)
22    }
23    #[doc = r" Writes raw bits to the register."]
24    #[doc = r""]
25    #[doc = r" # Safety"]
26    #[doc = r""]
27    #[doc = r" Passing incorrect value can cause undefined behaviour. See reference manual"]
28    #[inline(always)]
29    pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
30        self.bits = bits;
31        self
32    }
33}
34#[doc = "EHCI Periodic Frame List Base Address Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`periodiclistbase::R`](R).  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`periodiclistbase::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
35pub struct PERIODICLISTBASE_SPEC;
36impl crate::RegisterSpec for PERIODICLISTBASE_SPEC {
37    type Ux = u32;
38}
39#[doc = "`read()` method returns [`periodiclistbase::R`](R) reader structure"]
40impl crate::Readable for PERIODICLISTBASE_SPEC {}
41#[doc = "`write(|w| ..)` method takes [`periodiclistbase::W`](W) writer structure"]
42impl crate::Writable for PERIODICLISTBASE_SPEC {
43    const ZERO_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
44    const ONE_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
45}
46#[doc = "`reset()` method sets periodiclistbase to value 0"]
47impl crate::Resettable for PERIODICLISTBASE_SPEC {
48    const RESET_VALUE: Self::Ux = 0;
49}