33 #ifndef __ALT_PHY_KSZ9031_H__
34 #define __ALT_PHY_KSZ9031_H__
37 #include "socal/hps.h"
38 #include "socal/alt_emac.h"
59 #define EMAC0_PHY_ADDRESS (7)
60 #define EMAC1_PHY_ADDRESS (0)
61 #define EMAC2_PHY_ADDRESS (0)
64 #define PHY_CONTROL_PAD_SKEW_REG (4)
65 #define PHY_CONTROL_PAD_SKEW_VALUE (0x70)
66 #define PHY_RX_DATA_PAD_SKEW_REG (5)
67 #define PHY_RX_DATA_PAD_SKEW_VALUE (0x7777)
68 #define PHY_TX_DATA_PAD_SKEW_REG (6)
69 #define PHY_TX_DATA_PAD_SKEW_VALUE (0x0)
70 #define PHY_CLK_PAD_SKEW_REG (8)
71 #define PHY_CLK_PAD_SKEW_VALUE (0x3FC)
74 #define PHY_MMD_D0_FLP_LO_REG (3)
75 #define PHY_MMD_D0_FLP_16MS_LO (0x1A80)
76 #define PHY_MMD_D0_FLP_HI_REG (4)
77 #define PHY_MMD_D0_FLP_16MS_HI (0x0006)
83 #define PHY_READ_TO ((uint32_t)0x0004FFFF)
84 #define PHY_WRITE_TO ((uint32_t)0x0004FFFF)
93 #define PHY_1GSTS (10)
97 #define PHY_RESET_DELAY ((uint32_t)0x000FFFFF)
100 #define PHY_SPEED_10 (0x0010)
101 #define PHY_SPEED_100 (0x0020)
102 #define PHY_SPEED_1000 (0x0040)
103 #define PHY_SPEED_MASK (0x0070)
104 #define PHY_DUPLEX_STATUS (0x0008)
107 #define PHYADVERTISE_1000FULL (0x0200)
108 #define PHYADVERTISE_1000HALF (0x0100)
111 #define PHYANA_SEL_MASK (0x1F)
112 #define PHYANA_10BASET (1 << 5)
113 #define PHYANA_10BASETFD (1 << 6)
114 #define PHYANA_100BASETX (1 << 7)
115 #define PHYANA_100BASETXFD (1 << 8)
116 #define PHYANA_PAUSE_OP_MASK (3 << 10)
117 #define PHYANA_REMOTE_FAULT (1 << 13)
120 #define PHY_MOD_DATA_NO_POST_INC (0x1)
121 #define PHY_MOD_DATA_POST_INC_RW (0x2)
122 #define PHY_MOD_DATA_POST_INC_W (0x3)
124 #define PHY_MMD_CTRL_REG (0x0d)
125 #define PHY_MMD_REGDATA_REG (0x0e)
127 #define PHY_MMD_DEV_ADDR_02 (2)
128 #define PHY_MMD_DEV_ADDR_00 (0)
131 #define PHY_COLLTEST (1 << 7 )
132 #define PHY_DUPLEX_MODE (1 << 8 )
133 #define PHY_RESTART_AUTONEGOTIATION (1 << 9 )
134 #define PHY_POWERDOWN (1 << 11)
135 #define PHY_AUTONEGOTIATION (1 << 12)
136 #define PHY_SPEEDSEL (1 << 13)
137 #define PHY_LOOPBACK (1 << 14)
138 #define PHY_RESET (1 << 15)
141 #define PHY_AUTONEGO_COMPLETE (0x0020)
142 #define PHY_LINKED_STATUS (0x0004)
143 #define PHY_JABBER_DETECTION (0x0002)
144 #define PHY_AUTOCAP (0x0008)
161 ALT_STATUS_CODE alt_eth_phy_write_register(uint32_t emac_instance, uint32_t phy_reg, uint32_t wrval);
178 ALT_STATUS_CODE alt_eth_phy_read_register(uint32_t emac_instance, uint32_t phy_reg, uint32_t * rdval);
197 ALT_STATUS_CODE alt_eth_phy_read_register_extended(uint32_t emac_instance, uint32_t dev_addr, uint32_t phy_reg, uint32_t * rdval);
216 ALT_STATUS_CODE alt_eth_phy_write_register_extended(uint32_t emac_instance, uint32_t dev_addr, uint32_t phy_reg, uint32_t wrval);
231 ALT_STATUS_CODE alt_eth_phy_loopback(uint32_t new_state, uint32_t emac_instance);