phylib: add natsemi dp83630 phy
Subsystems (2)
add natsemi dp83630 phy, used on the upcoming siemens boards.
Signed-off-by Heiko Schocher <[email protected]>
Cc Andy Fleming <[email protected]>
Cc Joe Hershberger <[email protected]>
--- drivers/net/phy/natsemi.c | 37 +++++++++++++++++++++++++++++++++++++
1 Datei ge?ndert, 37 Zeilen hinzugef?gt(+)
drivers/net/phy/natsemi.c +37 -0
@@ -22,6 +22,42 @@*/ #include <phy.h> +/* NatSemi DP83630 */ + +#define DP83630_PHY_PAGESEL_REG 0x13 +#define DP83630_PHY_PTP_COC_REG 0x14 +#define DP83630_PHY_PTP_CLKOUT_EN (1<<15) +#define DP83630_PHY_RBR_REG 0x17 + +static int dp83630_config (struct phy_device *phydev) +{ +int ptp_coc_reg; + +phy_write (phydev,MDIO_DEVAD_NONE ,MII_BMCR ,BMCR_RESET ); +phy_write (phydev,MDIO_DEVAD_NONE ,DP83630_PHY_PAGESEL_REG ,0x6 ); + ptp_coc_reg =phy_read (phydev,MDIO_DEVAD_NONE , +DP83630_PHY_PTP_COC_REG ); + ptp_coc_reg &= ~DP83630_PHY_PTP_CLKOUT_EN ; +phy_write (phydev,MDIO_DEVAD_NONE ,DP83630_PHY_PTP_COC_REG , + ptp_coc_reg); +phy_write (phydev,MDIO_DEVAD_NONE ,DP83630_PHY_PAGESEL_REG ,0 ); + +genphy_config_aneg (phydev); + +return 0 ; +} + +static struct phy_driver DP83630_driver = { + .name ="NatSemi DP83630" , + .uid =0x20005ce1 , + .mask =0xfffffff0 , + .features =PHY_BASIC_FEATURES , + .config = &dp83630_config, + .startup = &genphy_startup, + .shutdown = &genphy_shutdown, +}; + +/* DP83865 Link and Auto-Neg Status Register */ #define MIIM_DP83865_LANR 0x11#define MIIM_DP83865_SPD_MASK 0x0018
@@ -90,6 +126,7 @@ static struct phy_driver DP83865_driver = {int phy_natsemi_init (void ) { +phy_register (&DP83630_driver);phy_register (&DP83865_driver);return 0 ;
Signature · 1 line
1.7.11.7
Joe Hershberger
AppliedQuoted 5 lines · Heiko Schocher
add natsemi dp83630 phy, used on the upcoming siemens boards.
Signed-off-by Heiko Schocher <[email protected]>Cc Andy Fleming <[email protected]>Cc Joe Hershberger <[email protected]>
Applied, Thanks.
-Joe