summaryrefslogtreecommitdiffstats
path: root/include/linux/brcmphy.h
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2014-08-22 21:55:39 -0400
committerDavid S. Miller <davem@davemloft.net>2014-08-23 14:38:53 -0400
commit3af20efc0f83cdc65ce56ec108c0e81f602364df (patch)
treec5315232b726b9b1cdbb61be15802d281c960206 /include/linux/brcmphy.h
parent5aa8dbbd5f9ae6ec6f5ab88596a29a5b5d4caf31 (diff)
net: phy: broadcom: extract all registers to brcmphy.h
Commit 439d39a9ac8fbbba9c04581361188f33f21ced50 ("net: phy: broadcom: extract register definitions") added a bunch of registers to brcmphy.h but left some to broadcom.c, move all of them to the header file since the BCM54xx and BCM7xxx PHY drivers do share all of these registers. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/brcmphy.h')
-rw-r--r--include/linux/brcmphy.h103
1 files changed, 103 insertions, 0 deletions
diff --git a/include/linux/brcmphy.h b/include/linux/brcmphy.h
index 61219b9b3445..be31bf9f60c2 100644
--- a/include/linux/brcmphy.h
+++ b/include/linux/brcmphy.h
@@ -92,4 +92,107 @@
92 92
93#define MII_BCM54XX_AUXCTL_SHDWSEL_AUXCTL 0x0000 93#define MII_BCM54XX_AUXCTL_SHDWSEL_AUXCTL 0x0000
94 94
95/*
96 * Broadcom LED source encodings. These are used in BCM5461, BCM5481,
97 * BCM5482, and possibly some others.
98 */
99#define BCM_LED_SRC_LINKSPD1 0x0
100#define BCM_LED_SRC_LINKSPD2 0x1
101#define BCM_LED_SRC_XMITLED 0x2
102#define BCM_LED_SRC_ACTIVITYLED 0x3
103#define BCM_LED_SRC_FDXLED 0x4
104#define BCM_LED_SRC_SLAVE 0x5
105#define BCM_LED_SRC_INTR 0x6
106#define BCM_LED_SRC_QUALITY 0x7
107#define BCM_LED_SRC_RCVLED 0x8
108#define BCM_LED_SRC_MULTICOLOR1 0xa
109#define BCM_LED_SRC_OPENSHORT 0xb
110#define BCM_LED_SRC_OFF 0xe /* Tied high */
111#define BCM_LED_SRC_ON 0xf /* Tied low */
112
113
114/*
115 * BCM5482: Shadow registers
116 * Shadow values go into bits [14:10] of register 0x1c to select a shadow
117 * register to access.
118 */
119/* 00101: Spare Control Register 3 */
120#define BCM54XX_SHD_SCR3 0x05
121#define BCM54XX_SHD_SCR3_DEF_CLK125 0x0001
122#define BCM54XX_SHD_SCR3_DLLAPD_DIS 0x0002
123#define BCM54XX_SHD_SCR3_TRDDAPD 0x0004
124
125/* 01010: Auto Power-Down */
126#define BCM54XX_SHD_APD 0x0a
127#define BCM54XX_SHD_APD_EN 0x0020
128
129#define BCM5482_SHD_LEDS1 0x0d /* 01101: LED Selector 1 */
130 /* LED3 / ~LINKSPD[2] selector */
131#define BCM5482_SHD_LEDS1_LED3(src) ((src & 0xf) << 4)
132 /* LED1 / ~LINKSPD[1] selector */
133#define BCM5482_SHD_LEDS1_LED1(src) ((src & 0xf) << 0)
134#define BCM54XX_SHD_RGMII_MODE 0x0b /* 01011: RGMII Mode Selector */
135#define BCM5482_SHD_SSD 0x14 /* 10100: Secondary SerDes control */
136#define BCM5482_SHD_SSD_LEDM 0x0008 /* SSD LED Mode enable */
137#define BCM5482_SHD_SSD_EN 0x0001 /* SSD enable */
138#define BCM5482_SHD_MODE 0x1f /* 11111: Mode Control Register */
139#define BCM5482_SHD_MODE_1000BX 0x0001 /* Enable 1000BASE-X registers */
140
141
142/*
143 * EXPANSION SHADOW ACCESS REGISTERS. (PHY REG 0x15, 0x16, and 0x17)
144 */
145#define MII_BCM54XX_EXP_AADJ1CH0 0x001f
146#define MII_BCM54XX_EXP_AADJ1CH0_SWP_ABCD_OEN 0x0200
147#define MII_BCM54XX_EXP_AADJ1CH0_SWSEL_THPF 0x0100
148#define MII_BCM54XX_EXP_AADJ1CH3 0x601f
149#define MII_BCM54XX_EXP_AADJ1CH3_ADCCKADJ 0x0002
150#define MII_BCM54XX_EXP_EXP08 0x0F08
151#define MII_BCM54XX_EXP_EXP08_RJCT_2MHZ 0x0001
152#define MII_BCM54XX_EXP_EXP08_EARLY_DAC_WAKE 0x0200
153#define MII_BCM54XX_EXP_EXP75 0x0f75
154#define MII_BCM54XX_EXP_EXP75_VDACCTRL 0x003c
155#define MII_BCM54XX_EXP_EXP75_CM_OSC 0x0001
156#define MII_BCM54XX_EXP_EXP96 0x0f96
157#define MII_BCM54XX_EXP_EXP96_MYST 0x0010
158#define MII_BCM54XX_EXP_EXP97 0x0f97
159#define MII_BCM54XX_EXP_EXP97_MYST 0x0c0c
160
161/*
162 * BCM5482: Secondary SerDes registers
163 */
164#define BCM5482_SSD_1000BX_CTL 0x00 /* 1000BASE-X Control */
165#define BCM5482_SSD_1000BX_CTL_PWRDOWN 0x0800 /* Power-down SSD */
166#define BCM5482_SSD_SGMII_SLAVE 0x15 /* SGMII Slave Register */
167#define BCM5482_SSD_SGMII_SLAVE_EN 0x0002 /* Slave mode enable */
168#define BCM5482_SSD_SGMII_SLAVE_AD 0x0001 /* Slave auto-detection */
169
170
171/*****************************************************************************/
172/* Fast Ethernet Transceiver definitions. */
173/*****************************************************************************/
174
175#define MII_BRCM_FET_INTREG 0x1a /* Interrupt register */
176#define MII_BRCM_FET_IR_MASK 0x0100 /* Mask all interrupts */
177#define MII_BRCM_FET_IR_LINK_EN 0x0200 /* Link status change enable */
178#define MII_BRCM_FET_IR_SPEED_EN 0x0400 /* Link speed change enable */
179#define MII_BRCM_FET_IR_DUPLEX_EN 0x0800 /* Duplex mode change enable */
180#define MII_BRCM_FET_IR_ENABLE 0x4000 /* Interrupt enable */
181
182#define MII_BRCM_FET_BRCMTEST 0x1f /* Brcm test register */
183#define MII_BRCM_FET_BT_SRE 0x0080 /* Shadow register enable */
184
185
186/*** Shadow register definitions ***/
187
188#define MII_BRCM_FET_SHDW_MISCCTRL 0x10 /* Shadow misc ctrl */
189#define MII_BRCM_FET_SHDW_MC_FAME 0x4000 /* Force Auto MDIX enable */
190
191#define MII_BRCM_FET_SHDW_AUXMODE4 0x1a /* Auxiliary mode 4 */
192#define MII_BRCM_FET_SHDW_AM4_LED_MASK 0x0003
193#define MII_BRCM_FET_SHDW_AM4_LED_MODE1 0x0001
194
195#define MII_BRCM_FET_SHDW_AUXSTAT2 0x1b /* Auxiliary status 2 */
196#define MII_BRCM_FET_SHDW_AS2_APDE 0x0020 /* Auto power down enable */
197
95#endif /* _LINUX_BRCMPHY_H */ 198#endif /* _LINUX_BRCMPHY_H */