You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.0 KiB
43 lines
1.0 KiB
/*
|
|
* Copyright (c) Company 2019-2020. All rights reserved.
|
|
* Description: for gmac
|
|
* Author: huanglong
|
|
* Create: 2019-11-22
|
|
*/
|
|
|
|
#ifndef _AUTO_EEE_H
|
|
|
|
#define NO_EEE 0
|
|
#define MAC_EEE 1
|
|
#define PHY_EEE 2
|
|
#define PARTNER_EEE 2
|
|
|
|
struct phy_info {
|
|
char *name;
|
|
unsigned int phy_id;
|
|
char eee_available; /* eee support by this phy */
|
|
int (*eee_init)(struct phy_device *phy_dev);
|
|
};
|
|
|
|
/* GMAC register definition */
|
|
#define EEE_ENABLE 0x808
|
|
#define BIT_EEE_ENABLE (1 << 0)
|
|
#define EEE_TIMER 0x80C
|
|
#define EEE_LINK_STATUS 0x810
|
|
#define BIT_PHY_LINK_STATUS (1 << 0)
|
|
#define EEE_TIME_CLK_CNT 0x814
|
|
|
|
/* ----------------------------phy register------------------------------- */
|
|
#define EEE_DEV 0x3
|
|
#define EEE_CAPABILITY 0x14
|
|
#define EEELPAR_DEV 0x7
|
|
#define EEELPAR 0x3D /* EEE link partner ability register */
|
|
#define EEE_ADVERTISE 0x3c
|
|
#define LP_1000BASE_EEE (1 << 2)
|
|
#define LP_100BASE_EEE (1 << 1)
|
|
|
|
struct phy_info *phy_search_ids(unsigned int phy_id);
|
|
void init_autoeee(struct gmac_netdev_local *ld);
|
|
|
|
#endif
|