forked from M-Labs/zynq-rs
eth phy: set LEDs only on Kasli-SoC
This commit is contained in:
parent
2b3c7e4b2f
commit
072fd5f015
|
@ -310,6 +310,7 @@ impl<GEM: Gem> Eth<GEM, (), ()> {
|
||||||
let phy = Phy::find(&mut inner).expect("phy");
|
let phy = Phy::find(&mut inner).expect("phy");
|
||||||
phy.reset(&mut inner);
|
phy.reset(&mut inner);
|
||||||
phy.restart_autoneg(&mut inner);
|
phy.restart_autoneg(&mut inner);
|
||||||
|
#[cfg(feature="target_kasli_soc")]
|
||||||
phy.set_leds(&mut inner);
|
phy.set_leds(&mut inner);
|
||||||
|
|
||||||
Eth {
|
Eth {
|
||||||
|
|
|
@ -85,6 +85,8 @@ const OUI_MARVELL: u32 = 0x005043;
|
||||||
const OUI_REALTEK: u32 = 0x000732;
|
const OUI_REALTEK: u32 = 0x000732;
|
||||||
const OUI_LANTIQ : u32 = 0x355969;
|
const OUI_LANTIQ : u32 = 0x355969;
|
||||||
|
|
||||||
|
//only change pages on Kasli-SoC's Marvel 88E11xx
|
||||||
|
#[cfg(feature="target_kasli_soc")]
|
||||||
const PAGE_REGISTER: u8 = 0x16;
|
const PAGE_REGISTER: u8 = 0x16;
|
||||||
|
|
||||||
impl Phy {
|
impl Phy {
|
||||||
|
@ -126,7 +128,9 @@ impl Phy {
|
||||||
PA: PhyAccess,
|
PA: PhyAccess,
|
||||||
PR: PhyRegister + From<u16>,
|
PR: PhyRegister + From<u16>,
|
||||||
{
|
{
|
||||||
|
#[cfg(feature="target_kasli_soc")]
|
||||||
pa.write_phy(self.addr, PAGE_REGISTER, PR::page().into());
|
pa.write_phy(self.addr, PAGE_REGISTER, PR::page().into());
|
||||||
|
|
||||||
pa.read_phy(self.addr, PR::addr()).into()
|
pa.read_phy(self.addr, PR::addr()).into()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,7 +140,9 @@ impl Phy {
|
||||||
PR: PhyRegister + From<u16> + Into<u16>,
|
PR: PhyRegister + From<u16> + Into<u16>,
|
||||||
F: FnMut(PR) -> PR,
|
F: FnMut(PR) -> PR,
|
||||||
{
|
{
|
||||||
|
#[cfg(feature="target_kasli_soc")]
|
||||||
pa.write_phy(self.addr, PAGE_REGISTER, PR::page().into());
|
pa.write_phy(self.addr, PAGE_REGISTER, PR::page().into());
|
||||||
|
|
||||||
let reg = pa.read_phy(self.addr, PR::addr()).into();
|
let reg = pa.read_phy(self.addr, PR::addr()).into();
|
||||||
let reg = f(reg);
|
let reg = f(reg);
|
||||||
pa.write_phy(self.addr, PR::addr(), reg.into())
|
pa.write_phy(self.addr, PR::addr(), reg.into())
|
||||||
|
@ -192,6 +198,7 @@ impl Phy {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature="target_kasli_soc")]
|
||||||
pub fn set_leds<PA: PhyAccess>(&self, pa: &mut PA) {
|
pub fn set_leds<PA: PhyAccess>(&self, pa: &mut PA) {
|
||||||
self.modify_leds(pa, |leds|
|
self.modify_leds(pa, |leds|
|
||||||
leds.set_led0(Led0Control::OnCopperLinkOffElse)
|
leds.set_led0(Led0Control::OnCopperLinkOffElse)
|
||||||
|
|
Loading…
Reference in New Issue