Skip to main content

RgmiiPinBundle

Struct RgmiiPinBundle 

Source
pub struct RgmiiPinBundle<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio> {
Show 14 fields pub rx_clk: RxClk, pub tx_clk: TxClk, pub rx_ctl: RxCtl, pub tx_ctl: TxCtl, pub rxd0: Rxd0, pub rxd1: Rxd1, pub rxd2: Rxd2, pub rxd3: Rxd3, pub txd0: Txd0, pub txd1: Txd1, pub txd2: Txd2, pub txd3: Txd3, pub mdc: Mdc, pub mdio: Mdio,
}
Expand description

Wired RGMII pads (pass to Ethernet::new).

RGMII data and clock pads use IOMUX only. Do not route them through the GPIO matrix (MiiTxd* / MiiRxd*).

Fields§

§rx_clk: RxClk§tx_clk: TxClk§rx_ctl: RxCtl§tx_ctl: TxCtl§rxd0: Rxd0§rxd1: Rxd1§rxd2: Rxd2§rxd3: Rxd3§txd0: Txd0§txd1: Txd1§txd2: Txd2§txd3: Txd3§mdc: Mdc§mdio: Mdio

Trait Implementations§

Source§

impl<'d, RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio> EthernetPinBundle for RgmiiPinBundle<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio>
where RxClk: RgmiiRxClk + 'd, TxClk: RmiiClkOut + 'd, RxCtl: RmiiCrsDv + 'd, TxCtl: RmiiTxEn + 'd, Rxd0: RmiiRxd0 + 'd, Rxd1: RmiiRxd1 + 'd, Rxd2: RgmiiRxd2 + 'd, Rxd3: RgmiiRxd3 + 'd, Txd0: RmiiTxd0 + 'd, Txd1: RmiiTxd1 + 'd, Txd2: RgmiiTxd2 + 'd, Txd3: RgmiiTxd3 + 'd, Mdc: PeripheralOutput<'d>, Mdio: PeripheralInput<'d> + PeripheralOutput<'d>,

Available on crate feature unstable only.
Source§

fn apply_speed(speed: Speed)

The MAC drives RGMII TX_CLK, so its divider has to follow the link: 125 MHz at 1000 Mbps, 25 MHz at 100 Mbps, 2.5 MHz at 10 Mbps.

Source§

const MAX_SPEED: Speed = Speed::_1000M

Fastest link speed this interface can carry. Read more
Source§

fn apply(self)

Applies the required configuration. Intended to be called by the Ethernet driver internally.

Auto Trait Implementations§

§

impl<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio> Freeze for RgmiiPinBundle<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio>
where RxClk: Freeze, TxClk: Freeze, RxCtl: Freeze, TxCtl: Freeze, Rxd0: Freeze, Rxd1: Freeze, Rxd2: Freeze, Rxd3: Freeze, Txd0: Freeze, Txd1: Freeze, Txd2: Freeze, Txd3: Freeze, Mdc: Freeze, Mdio: Freeze,

§

impl<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio> RefUnwindSafe for RgmiiPinBundle<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio>
where RxClk: RefUnwindSafe, TxClk: RefUnwindSafe, RxCtl: RefUnwindSafe, TxCtl: RefUnwindSafe, Rxd0: RefUnwindSafe, Rxd1: RefUnwindSafe, Rxd2: RefUnwindSafe, Rxd3: RefUnwindSafe, Txd0: RefUnwindSafe, Txd1: RefUnwindSafe, Txd2: RefUnwindSafe, Txd3: RefUnwindSafe, Mdc: RefUnwindSafe, Mdio: RefUnwindSafe,

§

impl<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio> Send for RgmiiPinBundle<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio>
where RxClk: Send, TxClk: Send, RxCtl: Send, TxCtl: Send, Rxd0: Send, Rxd1: Send, Rxd2: Send, Rxd3: Send, Txd0: Send, Txd1: Send, Txd2: Send, Txd3: Send, Mdc: Send, Mdio: Send,

§

impl<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio> Sync for RgmiiPinBundle<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio>
where RxClk: Sync, TxClk: Sync, RxCtl: Sync, TxCtl: Sync, Rxd0: Sync, Rxd1: Sync, Rxd2: Sync, Rxd3: Sync, Txd0: Sync, Txd1: Sync, Txd2: Sync, Txd3: Sync, Mdc: Sync, Mdio: Sync,

§

impl<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio> Unpin for RgmiiPinBundle<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio>
where RxClk: Unpin, TxClk: Unpin, RxCtl: Unpin, TxCtl: Unpin, Rxd0: Unpin, Rxd1: Unpin, Rxd2: Unpin, Rxd3: Unpin, Txd0: Unpin, Txd1: Unpin, Txd2: Unpin, Txd3: Unpin, Mdc: Unpin, Mdio: Unpin,

§

impl<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio> UnsafeUnpin for RgmiiPinBundle<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio>
where RxClk: UnsafeUnpin, TxClk: UnsafeUnpin, RxCtl: UnsafeUnpin, TxCtl: UnsafeUnpin, Rxd0: UnsafeUnpin, Rxd1: UnsafeUnpin, Rxd2: UnsafeUnpin, Rxd3: UnsafeUnpin, Txd0: UnsafeUnpin, Txd1: UnsafeUnpin, Txd2: UnsafeUnpin, Txd3: UnsafeUnpin, Mdc: UnsafeUnpin, Mdio: UnsafeUnpin,

§

impl<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio> UnwindSafe for RgmiiPinBundle<RxClk, TxClk, RxCtl, TxCtl, Rxd0, Rxd1, Rxd2, Rxd3, Txd0, Txd1, Txd2, Txd3, Mdc, Mdio>
where RxClk: UnwindSafe, TxClk: UnwindSafe, RxCtl: UnwindSafe, TxCtl: UnwindSafe, Rxd0: UnwindSafe, Rxd1: UnwindSafe, Rxd2: UnwindSafe, Rxd3: UnwindSafe, Txd0: UnwindSafe, Txd1: UnwindSafe, Txd2: UnwindSafe, Txd3: UnwindSafe, Mdc: UnwindSafe, Mdio: UnwindSafe,

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

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> Same for T

Source§

type Output = T

Should always be Self
§

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

§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.