nxp-pac

Crates

git

Versions

mimxrt685s_cm33

Flavors

Espi

Struct Espi 

Source
pub struct Espi { /* private fields */ }
Expand description

a variant of SPI used by Intel to communicate with its processors via the PCH (aka Southbridge).

Implementations§

Source§

impl Espi

Source

pub const unsafe fn from_ptr(ptr: *mut ()) -> Self

Source

pub const fn as_ptr(&self) -> *mut ()

Source

pub const fn mctrl(self) -> Reg<Mctrl, RW>

Master Control for whole peripheral

Source

pub const fn mstat(self) -> Reg<Mstat, RW>

Master Status of whole peripheral

Source

pub const fn intenset(self) -> Reg<Intenset, RW>

Interrupt Set (enable)

Source

pub const fn intenclr(self) -> Reg<Intenclr, RW>

Interrupt Clear (disable)

Source

pub const fn intstat(self) -> Reg<Intstat, RW>

Masked interrupt status (causes)

Source

pub const fn dmactrl(self) -> Reg<Dmactrl, RW>

Selects DMA for Ports (if used)

Source

pub const fn rambase(self) -> Reg<Rambase, RW>

Address of RAM to use for data. This tells the application where the RAM is located (up to 16K addressable).

Source

pub const fn mapbase(self) -> Reg<Mapbase, RW>

Base0 and Base1 mapped offsets for ports

Source

pub const fn irqpush(self) -> Reg<Irqpush, RW>

IRQ to drive into Host (with eSPI)

Source

pub const fn wirewo(self) -> Reg<Wirewo, RW>

Wire states for Host to see; if LPC, this is the IRQ states.

Source

pub const fn wirero(self) -> Reg<Wirero, R>

Wire states from Host

Source

pub const fn p80stat(self) -> Reg<P80stat, RW>

Port 80 Status (byte and prev byte)

Source

pub const fn stataddr(self) -> Reg<Stataddr, RW>

Location of Status block in memory space, if enabled.

Source

pub const fn espicap(self) -> Reg<Espicap, RW>

eSPI Capabilities of MCU to send to Host

Source

pub const fn espicfg(self) -> Reg<Espicfg, R>

eSPI Configuration settings from eSPI

Source

pub const fn espimisc(self) -> Reg<Espimisc, RW>

Miscellaneous uses, such as Alert pin as GPIO (when not used for Alert).

Source

pub const fn p0cfg(self) -> Reg<P0cfg, RW>

no description available

Source

pub const fn p0stat(self) -> Reg<P0stat, RW>

no description available

Source

pub const fn p0irule_stat(self) -> Reg<P0iruleStat, RW>

The Port Set Interrupt-Rule and Set User Status register is used to set: The interrupt causes per port. That is, it is used to select what events from the port should cause an interrupt, if any. The user Status bits. The status byte returned to the host will be composed of both these user bits (which the application defines) and automatically generated status. The interrupt masks then are matched by sticky cause bits in PnSTAT (which can be read and then write-1 cleared). The sticky bits are set whether the interrupt is masked or not, but the masks cause an interrupt when the bits are set and the port is int enabled via INTENSET.

Source

pub const fn p0addr(self) -> Reg<P0addr, RW>

The Port Address register is used to set the mapped address in the LPC/eSPI memory space. For normal Ports, this is a 16-bit location in IO space or a 32-bit offset into PCIe address mapped space. It is not used for OOB, Bus Mastering, or Flash; see the PnOMFLEN register for those. For Endpoints, it is the base of a dword (64 bits). For Index/Data, it is the base of a word (32 bits). For mailbox memory, the address is modulus the length of the mailbox (x2 for both directions). So, if a 16-byte mailbox (single), the offset must have bits 3:0 set to 0 (that is &~0xF). If split directions, then normally bits 4:0 would be set to 0 (that is &~0x1F).

Source

pub const fn p0omflen(self) -> Reg<P0omflen, RW>

The Port OOB, Mastering, Flash length is used for OOB to Host and Bus Mastering and Flash to or from Host. The PnADDR register is not used for either OOB or Bus Mastering. Instead, this register (in same location) is written with byte length message (including address for Mastering and Flash) along with direction. Writing to the SSTCL field of the PIRuleState will notify the Host to perform the transaction. Clearing it before the Host has started a transaction will cancel it, but only if it has not yet seen the Status.

Source

pub const fn p0data_in(self) -> Reg<P0dataIn, R>

no description available

Source

pub const fn p0data_out(self) -> Reg<P0dataOut, RW>

no description available

Source

pub const fn p0ramuse(self) -> Reg<P0ramuse, RW>

no description available

Source

pub const fn p1cfg(self) -> Reg<P1cfg, RW>

no description available

Source

pub const fn p1stat(self) -> Reg<P1stat, RW>

no description available

Source

pub const fn p1irule_stat(self) -> Reg<P1iruleStat, RW>

The Port Set Interrupt-Rule and Set User Status register is used to set: The interrupt causes per port. That is, it is used to select what events from the port should cause an interrupt, if any. The user Status bits. The status byte returned to the host will be composed of both these user bits (which the application defines) and automatically generated status. The interrupt masks then are matched by sticky cause bits in PnSTAT (which can be read and then write-1 cleared). The sticky bits are set whether the interrupt is masked or not, but the masks cause an interrupt when the bits are set and the port is int enabled via INTENSET.

Source

pub const fn p1addr(self) -> Reg<P1addr, RW>

The Port Address register is used to set the mapped address in the LPC/eSPI memory space. For normal Ports, this is a 16-bit location in IO space or a 32-bit offset into PCIe address mapped space. It is not used for OOB, Bus Mastering, or Flash; see the PnOMFLEN register for those. For Endpoints, it is the base of a dword (64 bits). For Index/Data, it is the base of a word (32 bits). For mailbox memory, the address is modulus the length of the mailbox (x2 for both directions). So, if a 16-byte mailbox (single), the offset must have bits 3:0 set to 0 (that is &~0xF). If split directions, then normally bits 4:0 would be set to 0 (that is &~0x1F).

Source

pub const fn p1omflen(self) -> Reg<P1omflen, RW>

The Port OOB, Mastering, Flash length is used for OOB to Host and Bus Mastering and Flash to or from Host. The PnADDR register is not used for either OOB or Bus Mastering. Instead, this register (in same location) is written with byte length message (including address for Mastering and Flash) along with direction. Writing to the SSTCL field of the PIRuleState will notify the Host to perform the transaction. Clearing it before the Host has started a transaction will cancel it, but only if it has not yet seen the Status.

Source

pub const fn p1data_in(self) -> Reg<P1dataIn, R>

no description available

Source

pub const fn p1data_out(self) -> Reg<P1dataOut, RW>

no description available

Source

pub const fn p1ramuse(self) -> Reg<P1ramuse, RW>

no description available

Source

pub const fn p2cfg(self) -> Reg<P2cfg, RW>

no description available

Source

pub const fn p2stat(self) -> Reg<P2stat, RW>

no description available

Source

pub const fn p2irule_stat(self) -> Reg<P2iruleStat, RW>

The Port Set Interrupt-Rule and Set User Status register is used to set: The interrupt causes per port. That is, it is used to select what events from the port should cause an interrupt, if any. The user Status bits. The status byte returned to the host will be composed of both these user bits (which the application defines) and automatically generated status. The interrupt masks then are matched by sticky cause bits in PnSTAT (which can be read and then write-1 cleared). The sticky bits are set whether the interrupt is masked or not, but the masks cause an interrupt when the bits are set and the port is int enabled via INTENSET.

Source

pub const fn p2addr(self) -> Reg<P2addr, RW>

The Port Address register is used to set the mapped address in the LPC/eSPI memory space. For normal Ports, this is a 16-bit location in IO space or a 32-bit offset into PCIe address mapped space. It is not used for OOB, Bus Mastering, or Flash; see the PnOMFLEN register for those. For Endpoints, it is the base of a dword (64 bits). For Index/Data, it is the base of a word (32 bits). For mailbox memory, the address is modulus the length of the mailbox (x2 for both directions). So, if a 16-byte mailbox (single), the offset must have bits 3:0 set to 0 (that is &~0xF). If split directions, then normally bits 4:0 would be set to 0 (that is &~0x1F).

Source

pub const fn p2omflen(self) -> Reg<P2omflen, RW>

The Port OOB, Mastering, Flash length is used for OOB to Host and Bus Mastering and Flash to or from Host. The PnADDR register is not used for either OOB or Bus Mastering. Instead, this register (in same location) is written with byte length message (including address for Mastering and Flash) along with direction. Writing to the SSTCL field of the PIRuleState will notify the Host to perform the transaction. Clearing it before the Host has started a transaction will cancel it, but only if it has not yet seen the Status.

Source

pub const fn p2data_in(self) -> Reg<P2dataIn, R>

no description available

Source

pub const fn p2data_out(self) -> Reg<P2dataOut, RW>

no description available

Source

pub const fn p2ramuse(self) -> Reg<P2ramuse, RW>

no description available

Source

pub const fn p3cfg(self) -> Reg<P3cfg, RW>

no description available

Source

pub const fn p3stat(self) -> Reg<P3stat, RW>

no description available

Source

pub const fn p3irule_stat(self) -> Reg<P3iruleStat, RW>

The Port Set Interrupt-Rule and Set User Status register is used to set: The interrupt causes per port. That is, it is used to select what events from the port should cause an interrupt, if any. The user Status bits. The status byte returned to the host will be composed of both these user bits (which the application defines) and automatically generated status. The interrupt masks then are matched by sticky cause bits in PnSTAT (which can be read and then write-1 cleared). The sticky bits are set whether the interrupt is masked or not, but the masks cause an interrupt when the bits are set and the port is int enabled via INTENSET.

Source

pub const fn p3addr(self) -> Reg<P3addr, RW>

The Port Address register is used to set the mapped address in the LPC/eSPI memory space. For normal Ports, this is a 16-bit location in IO space or a 32-bit offset into PCIe address mapped space. It is not used for OOB, Bus Mastering, or Flash; see the PnOMFLEN register for those. For Endpoints, it is the base of a dword (64 bits). For Index/Data, it is the base of a word (32 bits). For mailbox memory, the address is modulus the length of the mailbox (x2 for both directions). So, if a 16-byte mailbox (single), the offset must have bits 3:0 set to 0 (that is &~0xF). If split directions, then normally bits 4:0 would be set to 0 (that is &~0x1F).

Source

pub const fn p3omflen(self) -> Reg<P3omflen, RW>

The Port OOB, Mastering, Flash length is used for OOB to Host and Bus Mastering and Flash to or from Host. The PnADDR register is not used for either OOB or Bus Mastering. Instead, this register (in same location) is written with byte length message (including address for Mastering and Flash) along with direction. Writing to the SSTCL field of the PIRuleState will notify the Host to perform the transaction. Clearing it before the Host has started a transaction will cancel it, but only if it has not yet seen the Status.

Source

pub const fn p3data_in(self) -> Reg<P3dataIn, R>

no description available

Source

pub const fn p3data_out(self) -> Reg<P3dataOut, RW>

no description available

Source

pub const fn p3ramuse(self) -> Reg<P3ramuse, RW>

no description available

Source

pub const fn p4cfg(self) -> Reg<P4cfg, RW>

no description available

Source

pub const fn p4stat(self) -> Reg<P4stat, RW>

no description available

Source

pub const fn p4irule_stat(self) -> Reg<P4iruleStat, RW>

The Port Set Interrupt-Rule and Set User Status register is used to set: The interrupt causes per port. That is, it is used to select what events from the port should cause an interrupt, if any. The user Status bits. The status byte returned to the host will be composed of both these user bits (which the application defines) and automatically generated status. The interrupt masks then are matched by sticky cause bits in PnSTAT (which can be read and then write-1 cleared). The sticky bits are set whether the interrupt is masked or not, but the masks cause an interrupt when the bits are set and the port is int enabled via INTENSET.

Source

pub const fn p4addr(self) -> Reg<P4addr, RW>

The Port Address register is used to set the mapped address in the LPC/eSPI memory space. For normal Ports, this is a 16-bit location in IO space or a 32-bit offset into PCIe address mapped space. It is not used for OOB, Bus Mastering, or Flash; see the PnOMFLEN register for those. For Endpoints, it is the base of a dword (64 bits). For Index/Data, it is the base of a word (32 bits). For mailbox memory, the address is modulus the length of the mailbox (x2 for both directions). So, if a 16-byte mailbox (single), the offset must have bits 3:0 set to 0 (that is &~0xF). If split directions, then normally bits 4:0 would be set to 0 (that is &~0x1F).

Source

pub const fn p4omflen(self) -> Reg<P4omflen, RW>

The Port OOB, Mastering, Flash length is used for OOB to Host and Bus Mastering and Flash to or from Host. The PnADDR register is not used for either OOB or Bus Mastering. Instead, this register (in same location) is written with byte length message (including address for Mastering and Flash) along with direction. Writing to the SSTCL field of the PIRuleState will notify the Host to perform the transaction. Clearing it before the Host has started a transaction will cancel it, but only if it has not yet seen the Status.

Source

pub const fn p4data_in(self) -> Reg<P4dataIn, R>

no description available

Source

pub const fn p4data_out(self) -> Reg<P4dataOut, RW>

no description available

Source

pub const fn p4ramuse(self) -> Reg<P4ramuse, RW>

no description available

Trait Implementations§

Source§

impl Clone for Espi

Source§

fn clone(&self) -> Espi

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl PartialEq for Espi

Source§

fn eq(&self, other: &Espi) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Espi

Source§

impl Eq for Espi

Source§

impl Send for Espi

Source§

impl StructuralPartialEq for Espi

Source§

impl Sync for Espi

Auto Trait Implementations§

§

impl Freeze for Espi

§

impl RefUnwindSafe for Espi

§

impl Unpin for Espi

§

impl UnwindSafe for Espi

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.