[][src]Module ksz8863::smi

Serial Management Interface (SMI).

The SMI is the KSZ8863-specific, non-standard MIIM interface that provides access to all available configuration registers.

Each register is indexed via an 8-bit address.

Re-exports

pub use chip_id0::ChipId0;
pub use chip_id1::ChipId1;
pub use gc0::Gc0;
pub use gc1::Gc1;
pub use gc2::Gc2;
pub use gc3::Gc3;
pub use gc4::Gc4;
pub use gc5::Gc5;
pub use gc9::Gc9;
pub use gc10::Gc10;
pub use gc11::Gc11;
pub use gc12::Gc12;
pub use gc13::Gc13;
pub use port1_ctrl0::Port1Ctrl0;
pub use port1_ctrl1::Port1Ctrl1;
pub use port1_ctrl2::Port1Ctrl2;
pub use port1_ctrl3::Port1Ctrl3;
pub use port1_ctrl4::Port1Ctrl4;
pub use port1_ctrl5::Port1Ctrl5;
pub use port1_q0_ingress_rate_limit::Port1Q0IngressRateLimit;
pub use port1_q1_ingress_rate_limit::Port1Q1IngressRateLimit;
pub use port1_q2_ingress_rate_limit::Port1Q2IngressRateLimit;
pub use port1_q3_ingress_rate_limit::Port1Q3IngressRateLimit;
pub use port1_phy_special::Port1PhySpecial;
pub use port1_link_md_result::Port1LinkMdResult;
pub use port1_ctrl12::Port1Ctrl12;
pub use port1_ctrl13::Port1Ctrl13;
pub use port1_status0::Port1Status0;
pub use port1_status1::Port1Status1;
pub use port2_ctrl0::Port2Ctrl0;
pub use port2_ctrl1::Port2Ctrl1;
pub use port2_ctrl2::Port2Ctrl2;
pub use port2_ctrl3::Port2Ctrl3;
pub use port2_ctrl4::Port2Ctrl4;
pub use port2_ctrl5::Port2Ctrl5;
pub use port2_q0_ingress_rate_limit::Port2Q0IngressRateLimit;
pub use port2_q1_ingress_rate_limit::Port2Q1IngressRateLimit;
pub use port2_q2_ingress_rate_limit::Port2Q2IngressRateLimit;
pub use port2_q3_ingress_rate_limit::Port2Q3IngressRateLimit;
pub use port2_phy_special::Port2PhySpecial;
pub use port2_link_md_result::Port2LinkMdResult;
pub use port2_ctrl12::Port2Ctrl12;
pub use port2_ctrl13::Port2Ctrl13;
pub use port2_status0::Port2Status0;
pub use port2_status1::Port2Status1;
pub use port3_ctrl0::Port3Ctrl0;
pub use port3_ctrl1::Port3Ctrl1;
pub use port3_ctrl2::Port3Ctrl2;
pub use port3_ctrl3::Port3Ctrl3;
pub use port3_ctrl4::Port3Ctrl4;
pub use port3_ctrl5::Port3Ctrl5;
pub use port3_q0_ingress_rate_limit::Port3Q0IngressRateLimit;
pub use port3_q1_ingress_rate_limit::Port3Q1IngressRateLimit;
pub use port3_q2_ingress_rate_limit::Port3Q2IngressRateLimit;
pub use port3_q3_ingress_rate_limit::Port3Q3IngressRateLimit;
pub use port3_status1::Port3Status1;
pub use reset::Reset;
pub use tos_priority_ctrl_0::TosPriorityCtrl0;
pub use tos_priority_ctrl_1::TosPriorityCtrl1;
pub use tos_priority_ctrl_2::TosPriorityCtrl2;
pub use tos_priority_ctrl_3::TosPriorityCtrl3;
pub use tos_priority_ctrl_4::TosPriorityCtrl4;
pub use tos_priority_ctrl_5::TosPriorityCtrl5;
pub use tos_priority_ctrl_6::TosPriorityCtrl6;
pub use tos_priority_ctrl_7::TosPriorityCtrl7;
pub use tos_priority_ctrl_8::TosPriorityCtrl8;
pub use tos_priority_ctrl_9::TosPriorityCtrl9;
pub use tos_priority_ctrl_10::TosPriorityCtrl10;
pub use tos_priority_ctrl_11::TosPriorityCtrl11;
pub use tos_priority_ctrl_12::TosPriorityCtrl12;
pub use tos_priority_ctrl_13::TosPriorityCtrl13;
pub use tos_priority_ctrl_14::TosPriorityCtrl14;
pub use tos_priority_ctrl_15::TosPriorityCtrl15;
pub use mac_addr_0::MacAddr0;
pub use mac_addr_1::MacAddr1;
pub use mac_addr_2::MacAddr2;
pub use mac_addr_3::MacAddr3;
pub use mac_addr_4::MacAddr4;
pub use mac_addr_5::MacAddr5;
pub use user_def1::UserDef1;
pub use user_def2::UserDef2;
pub use user_def3::UserDef3;
pub use indirect_access_ctrl0::IndirectAccessCtrl0;
pub use indirect_access_ctrl1::IndirectAccessCtrl1;
pub use indirect_data8::IndirectData8;
pub use indirect_data7::IndirectData7;
pub use indirect_data6::IndirectData6;
pub use indirect_data5::IndirectData5;
pub use indirect_data4::IndirectData4;
pub use indirect_data3::IndirectData3;
pub use indirect_data2::IndirectData2;
pub use indirect_data1::IndirectData1;
pub use indirect_data0::IndirectData0;
pub use station1_mac_addr0::Station1MacAddr0;
pub use station1_mac_addr1::Station1MacAddr1;
pub use station1_mac_addr2::Station1MacAddr2;
pub use station1_mac_addr3::Station1MacAddr3;
pub use station1_mac_addr4::Station1MacAddr4;
pub use station1_mac_addr5::Station1MacAddr5;
pub use station2_mac_addr0::Station2MacAddr0;
pub use station2_mac_addr1::Station2MacAddr1;
pub use station2_mac_addr2::Station2MacAddr2;
pub use station2_mac_addr3::Station2MacAddr3;
pub use station2_mac_addr4::Station2MacAddr4;
pub use station2_mac_addr5::Station2MacAddr5;
pub use mode::Mode;
pub use high_priority_packet_buffer_q3::HighPriorityPacketBufferQ3;
pub use high_priority_packet_buffer_q2::HighPriorityPacketBufferQ2;
pub use high_priority_packet_buffer_q1::HighPriorityPacketBufferQ1;
pub use high_priority_packet_buffer_q0::HighPriorityPacketBufferQ0;
pub use pm_usage_flow_ctrl_select_mode_1::PmUsageFlowCtrlSelectMode1;
pub use pm_usage_flow_ctrl_select_mode_2::PmUsageFlowCtrlSelectMode2;
pub use pm_usage_flow_ctrl_select_mode_3::PmUsageFlowCtrlSelectMode3;
pub use pm_usage_flow_ctrl_select_mode_4::PmUsageFlowCtrlSelectMode4;
pub use port1_txq_split_for_q3::Port1TxqSplitForQ3;
pub use port1_txq_split_for_q2::Port1TxqSplitForQ2;
pub use port1_txq_split_for_q1::Port1TxqSplitForQ1;
pub use port1_txq_split_for_q0::Port1TxqSplitForQ0;
pub use port2_txq_split_for_q3::Port2TxqSplitForQ3;
pub use port2_txq_split_for_q2::Port2TxqSplitForQ2;
pub use port2_txq_split_for_q1::Port2TxqSplitForQ1;
pub use port2_txq_split_for_q0::Port2TxqSplitForQ0;
pub use port3_txq_split_for_q3::Port3TxqSplitForQ3;
pub use port3_txq_split_for_q2::Port3TxqSplitForQ2;
pub use port3_txq_split_for_q1::Port3TxqSplitForQ1;
pub use port3_txq_split_for_q0::Port3TxqSplitForQ0;
pub use interrupt_enable::InterruptEnable;
pub use link_change_interrupt::LinkChangeInterrupt;
pub use force_pause_off::ForcePauseOff;
pub use fiber_signal_threshold::FiberSignalThreshold;
pub use internal_ldo_ctrl::InternalLdoCtrl;
pub use insert_src_pvid::InsertSrcPvid;
pub use pwr_mgmt_and_led_mode::PwrMgmtAndLedMode;
pub use sleep_mode::SleepMode;
pub use fwd_invalid_vid_frame_and_host_mode::FwdInvalidVidFrameAndHostMode;

Modules

chip_id0
chip_id1
fiber_signal_threshold
force_pause_off
fwd_invalid_vid_frame_and_host_mode
gc0
gc1
gc2
gc3
gc4
gc5
gc9
gc10
gc11
gc12
gc13
high_priority_packet_buffer_q0
high_priority_packet_buffer_q1
high_priority_packet_buffer_q2
high_priority_packet_buffer_q3
indirect_access_ctrl0
indirect_access_ctrl1
indirect_data0
indirect_data1
indirect_data2
indirect_data3
indirect_data4
indirect_data5
indirect_data6
indirect_data7
indirect_data8
insert_src_pvid
internal_ldo_ctrl
interrupt_enable
link_change_interrupt
mac_addr_0
mac_addr_1
mac_addr_2
mac_addr_3
mac_addr_4
mac_addr_5
mode
pm_usage_flow_ctrl_select_mode_1
pm_usage_flow_ctrl_select_mode_2
pm_usage_flow_ctrl_select_mode_3
pm_usage_flow_ctrl_select_mode_4
port1_ctrl0
port1_ctrl1
port1_ctrl2
port1_ctrl3
port1_ctrl4
port1_ctrl5
port1_ctrl12
port1_ctrl13
port1_link_md_result
port1_phy_special
port1_q0_ingress_rate_limit
port1_q1_ingress_rate_limit
port1_q2_ingress_rate_limit
port1_q3_ingress_rate_limit
port1_status0
port1_status1
port1_txq_split_for_q0
port1_txq_split_for_q1
port1_txq_split_for_q2
port1_txq_split_for_q3
port2_ctrl0
port2_ctrl1
port2_ctrl2
port2_ctrl3
port2_ctrl4
port2_ctrl5
port2_ctrl12
port2_ctrl13
port2_link_md_result
port2_phy_special
port2_q0_ingress_rate_limit
port2_q1_ingress_rate_limit
port2_q2_ingress_rate_limit
port2_q3_ingress_rate_limit
port2_status0
port2_status1
port2_txq_split_for_q0
port2_txq_split_for_q1
port2_txq_split_for_q2
port2_txq_split_for_q3
port3_ctrl0
port3_ctrl1
port3_ctrl2
port3_ctrl3
port3_ctrl4
port3_ctrl5
port3_q0_ingress_rate_limit
port3_q1_ingress_rate_limit
port3_q2_ingress_rate_limit
port3_q3_ingress_rate_limit
port3_status1
port3_txq_split_for_q0
port3_txq_split_for_q1
port3_txq_split_for_q2
port3_txq_split_for_q3
pwr_mgmt_and_led_mode
reset
sleep_mode
station1_mac_addr0
station1_mac_addr1
station1_mac_addr2
station1_mac_addr3
station1_mac_addr4
station1_mac_addr5
station2_mac_addr0
station2_mac_addr1
station2_mac_addr2
station2_mac_addr3
station2_mac_addr4
station2_mac_addr5
tos_priority_ctrl_0
tos_priority_ctrl_1
tos_priority_ctrl_2
tos_priority_ctrl_3
tos_priority_ctrl_4
tos_priority_ctrl_5
tos_priority_ctrl_6
tos_priority_ctrl_7
tos_priority_ctrl_8
tos_priority_ctrl_9
tos_priority_ctrl_10
tos_priority_ctrl_11
tos_priority_ctrl_12
tos_priority_ctrl_13
tos_priority_ctrl_14
tos_priority_ctrl_15
user_def1
user_def2
user_def3

Structs

Map

A map of the state of all registers in the impl_registers invocation.

R

A type wrapper that allows to read the individual fields of a register.

Reg

A wrapper around an miim::Read and/or miim::Write implementation for a particular SMI register.

Smi

A higher-level wrapper around an smi::Read and/or smi::Write implementation.

W

A type wrapper that allows to write to the individual fields of a register.

Enums

Address

The set of implemented MIIM register addresses on the KSZ8863.

State

A dynamic representation of a register's state.

Traits

Read

A trait for reading from the KSZ8863's SMI interface.

Register

Implemented for all 8-bit SMI registers.

Write

A trait for writing to the KSZ8863's SMI interface.

Functions

read_ctrl_bits

Given the register address, produce the control bits for an SMI read operation.

write_ctrl_bits

Given the register address, produce the control bits for an SMI write operation.