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
#[doc = r"Register block"]
#[repr(C)]
pub struct EHCI_OPERATIONAL {
    #[doc = "0x00 - EHCI USB Command Register"]
    pub usbcmd: USBCMD,
    _reserved1: [u8; 0x04],
    #[doc = "0x08 - EHCI USB Interrupt Enable Register"]
    pub usbintr: USBINTR,
    #[doc = "0x0c - EHCI Frame Index Register"]
    pub frindex: FRINDEX,
    #[doc = "0x10 - EHCI 4G Segment Selector Register"]
    pub ctrldssegment: CTRLDSSEGMENT,
    _reserved_4_usbsts: [u8; 0x04],
    #[doc = "0x18 - EHCI Current Asynchronous List Address Register"]
    pub asynclistaddr: ASYNCLISTADDR,
    _reserved6: [u8; 0x24],
    #[doc = "0x40 - EHCI Configure Flag Register"]
    pub configflag: CONFIGFLAG,
    #[doc = "0x44 - EHCI Port Status/Control Register"]
    pub portsc: PORTSC,
}
impl EHCI_OPERATIONAL {
    #[doc = "0x14 - EHCI Periodic Frame List Base Address Register"]
    #[inline(always)]
    pub const fn periodiclistbase(&self) -> &PERIODICLISTBASE {
        unsafe { &*(self as *const Self).cast::<u8>().add(20usize).cast() }
    }
    #[doc = "0x14 - EHCI USB Status Register"]
    #[inline(always)]
    pub const fn usbsts(&self) -> &USBSTS {
        unsafe { &*(self as *const Self).cast::<u8>().add(20usize).cast() }
    }
}
#[doc = "usbcmd (rw) register accessor: an alias for `Reg<USBCMD_SPEC>`"]
pub type USBCMD = crate::Reg<usbcmd::USBCMD_SPEC>;
#[doc = "EHCI USB Command Register"]
pub mod usbcmd;
#[doc = "usbsts (rw) register accessor: an alias for `Reg<USBSTS_SPEC>`"]
pub type USBSTS = crate::Reg<usbsts::USBSTS_SPEC>;
#[doc = "EHCI USB Status Register"]
pub mod usbsts;
#[doc = "usbintr (rw) register accessor: an alias for `Reg<USBINTR_SPEC>`"]
pub type USBINTR = crate::Reg<usbintr::USBINTR_SPEC>;
#[doc = "EHCI USB Interrupt Enable Register"]
pub mod usbintr;
#[doc = "frindex (rw) register accessor: an alias for `Reg<FRINDEX_SPEC>`"]
pub type FRINDEX = crate::Reg<frindex::FRINDEX_SPEC>;
#[doc = "EHCI Frame Index Register"]
pub mod frindex;
#[doc = "ctrldssegment (rw) register accessor: an alias for `Reg<CTRLDSSEGMENT_SPEC>`"]
pub type CTRLDSSEGMENT = crate::Reg<ctrldssegment::CTRLDSSEGMENT_SPEC>;
#[doc = "EHCI 4G Segment Selector Register"]
pub mod ctrldssegment;
#[doc = "periodiclistbase (rw) register accessor: an alias for `Reg<PERIODICLISTBASE_SPEC>`"]
pub type PERIODICLISTBASE = crate::Reg<periodiclistbase::PERIODICLISTBASE_SPEC>;
#[doc = "EHCI Periodic Frame List Base Address Register"]
pub mod periodiclistbase;
#[doc = "asynclistaddr (rw) register accessor: an alias for `Reg<ASYNCLISTADDR_SPEC>`"]
pub type ASYNCLISTADDR = crate::Reg<asynclistaddr::ASYNCLISTADDR_SPEC>;
#[doc = "EHCI Current Asynchronous List Address Register"]
pub mod asynclistaddr;
#[doc = "configflag (rw) register accessor: an alias for `Reg<CONFIGFLAG_SPEC>`"]
pub type CONFIGFLAG = crate::Reg<configflag::CONFIGFLAG_SPEC>;
#[doc = "EHCI Configure Flag Register"]
pub mod configflag;
#[doc = "portsc (rw) register accessor: an alias for `Reg<PORTSC_SPEC>`"]
pub type PORTSC = crate::Reg<portsc::PORTSC_SPEC>;
#[doc = "EHCI Port Status/Control Register"]
pub mod portsc;