Skip to main content

EthernetPinBundle

Trait EthernetPinBundle 

Source
pub trait EthernetPinBundle: Sealed {
    const MAX_SPEED: Speed;

    // Required methods
    fn apply(self);
    fn apply_speed(speed: Speed);
}
Expand description

RMII or MII pad wiring for Ethernet::new.

Required Associated Constants§

Source

const MAX_SPEED: Speed

Fastest link speed this interface can carry.

RMII and MII are limited to 100 Mbps; only RGMII reaches 1000 Mbps. The PHY is told not to advertise anything faster.

Required Methods§

Source

fn apply(self)

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

Source

fn apply_speed(speed: Speed)

Retunes the interface clocking for a newly negotiated link speed.

Called by the driver from Ethernet::set_speed, after the pins have been consumed by apply, so it takes no self.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<'d, C, Rxd0, Rxd1, RxDv, Txd0, Txd1, TxEn, Mdc, Mdio> EthernetPinBundle for RmiiPinBundle<C, Rxd0, Rxd1, RxDv, Txd0, Txd1, TxEn, Mdc, Mdio>
where C: RmiiClockConfig, Rxd0: RmiiRxd0 + 'd, Rxd1: RmiiRxd1 + 'd, RxDv: RmiiCrsDv + 'd, Txd0: RmiiTxd0 + 'd, Txd1: RmiiTxd1 + 'd, TxEn: RmiiTxEn + 'd, Mdc: PeripheralOutput<'d>, Mdio: PeripheralInput<'d> + PeripheralOutput<'d>,

Available on crate feature unstable only.
Source§

const MAX_SPEED: Speed = Speed::_100M

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§

const MAX_SPEED: Speed = Speed::_1000M

Source§

impl<'d, Rxd0, Rxd1, RxDv, Txd0, Txd1, TxEn, Rxd2, Rxd3, Txd2, Txd3, TxClk, RxClk, Crs, Col, Mdc, Mdio> EthernetPinBundle for MiiPinBundle<Rxd0, Rxd1, RxDv, Txd0, Txd1, TxEn, Rxd2, Rxd3, Txd2, Txd3, TxClk, RxClk, Crs, Col, Mdc, Mdio>
where Rxd0: MiiRxd0 + 'd, Rxd1: MiiRxd1 + 'd, RxDv: MiiRxDv + 'd, Txd0: MiiTxd0 + 'd, Txd1: MiiTxd1 + 'd, TxEn: MiiTxEn + 'd, Rxd2: MiiRxd2 + 'd, Rxd3: MiiRxd3 + 'd, Txd2: MiiTxd2 + 'd, Txd3: MiiTxd3 + 'd, TxClk: MiiTxClk + 'd, RxClk: MiiRxClk + 'd, Crs: PeripheralInput<'d>, Col: PeripheralInput<'d>, Mdc: PeripheralOutput<'d>, Mdio: PeripheralInput<'d> + PeripheralOutput<'d>,

Available on crate feature unstable only.
Source§

const MAX_SPEED: Speed = Speed::_100M