2015-10-06 12:25:48 -07:00
/*
* Copyright ( C ) 2015 Broadcom Corporation
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation version 2.
*
* This program is distributed " as is " WITHOUT ANY WARRANTY of any
* kind , whether express or implied ; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*/
# ifndef _LINUX_BCM_PHY_LIB_H
# define _LINUX_BCM_PHY_LIB_H
2018-05-22 17:04:49 -07:00
# include <linux/brcmphy.h>
2015-10-06 12:25:48 -07:00
# include <linux/phy.h>
int bcm_phy_write_exp ( struct phy_device * phydev , u16 reg , u16 val ) ;
int bcm_phy_read_exp ( struct phy_device * phydev , u16 reg ) ;
2018-05-22 17:04:49 -07:00
static inline int bcm_phy_write_exp_sel ( struct phy_device * phydev ,
u16 reg , u16 val )
{
return bcm_phy_write_exp ( phydev , reg | MII_BCM54XX_EXP_SEL_ER , val ) ;
}
2016-11-22 11:40:54 -08:00
int bcm54xx_auxctl_write ( struct phy_device * phydev , u16 regnum , u16 val ) ;
int bcm54xx_auxctl_read ( struct phy_device * phydev , u16 regnum ) ;
2015-10-06 12:25:48 -07:00
int bcm_phy_write_misc ( struct phy_device * phydev ,
u16 reg , u16 chl , u16 value ) ;
int bcm_phy_read_misc ( struct phy_device * phydev ,
u16 reg , u16 chl ) ;
int bcm_phy_write_shadow ( struct phy_device * phydev , u16 shadow ,
u16 val ) ;
int bcm_phy_read_shadow ( struct phy_device * phydev , u16 shadow ) ;
int bcm_phy_ack_intr ( struct phy_device * phydev ) ;
int bcm_phy_config_intr ( struct phy_device * phydev ) ;
int bcm_phy_enable_apd ( struct phy_device * phydev , bool dll_pwr_down ) ;
2016-11-22 11:40:56 -08:00
int bcm_phy_set_eee ( struct phy_device * phydev , bool enable ) ;
2016-11-22 11:40:55 -08:00
int bcm_phy_downshift_get ( struct phy_device * phydev , u8 * count ) ;
int bcm_phy_downshift_set ( struct phy_device * phydev , u8 count ) ;
2016-11-29 09:57:17 -08:00
int bcm_phy_get_sset_count ( struct phy_device * phydev ) ;
void bcm_phy_get_strings ( struct phy_device * phydev , u8 * data ) ;
void bcm_phy_get_stats ( struct phy_device * phydev , u64 * shadow ,
struct ethtool_stats * stats , u64 * data ) ;
2015-10-06 12:25:48 -07:00
# endif /* _LINUX_BCM_PHY_LIB_H */