xref: /freebsd/sys/dev/mii/jmphyreg.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
16021a944SPyun YongHyeon /*-
2*4d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
3718cf2ccSPedro F. Giffuni  *
46021a944SPyun YongHyeon  * Copyright (c) 2008, Pyun YongHyeon
56021a944SPyun YongHyeon  * All rights reserved.
66021a944SPyun YongHyeon  *
76021a944SPyun YongHyeon  * Redistribution and use in source and binary forms, with or without
86021a944SPyun YongHyeon  * modification, are permitted provided that the following conditions
96021a944SPyun YongHyeon  * are met:
106021a944SPyun YongHyeon  * 1. Redistributions of source code must retain the above copyright
116021a944SPyun YongHyeon  *    notice unmodified, this list of conditions, and the following
126021a944SPyun YongHyeon  *    disclaimer.
136021a944SPyun YongHyeon  * 2. Redistributions in binary form must reproduce the above copyright
146021a944SPyun YongHyeon  *    notice, this list of conditions and the following disclaimer in the
156021a944SPyun YongHyeon  *    documentation and/or other materials provided with the distribution.
166021a944SPyun YongHyeon  *
176021a944SPyun YongHyeon  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
186021a944SPyun YongHyeon  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
196021a944SPyun YongHyeon  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
206021a944SPyun YongHyeon  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
216021a944SPyun YongHyeon  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
226021a944SPyun YongHyeon  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
236021a944SPyun YongHyeon  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
246021a944SPyun YongHyeon  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
256021a944SPyun YongHyeon  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
266021a944SPyun YongHyeon  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
276021a944SPyun YongHyeon  * SUCH DAMAGE.
286021a944SPyun YongHyeon  */
296021a944SPyun YongHyeon 
306021a944SPyun YongHyeon #ifndef	_DEV_MII_JMPHYREG_H_
316021a944SPyun YongHyeon #define	_DEV_MII_JMPHYREG_H_
326021a944SPyun YongHyeon 
336021a944SPyun YongHyeon /*
346021a944SPyun YongHyeon  * Registers for the JMicron JMC250 Gigabit PHY.
356021a944SPyun YongHyeon  */
366021a944SPyun YongHyeon 
376021a944SPyun YongHyeon /* PHY specific status register. */
386021a944SPyun YongHyeon #define JMPHY_SSR			0x11
396021a944SPyun YongHyeon #define JMPHY_SSR_SPEED_1000		0x8000
406021a944SPyun YongHyeon #define JMPHY_SSR_SPEED_100		0x4000
416021a944SPyun YongHyeon #define JMPHY_SSR_SPEED_10		0x0000
426021a944SPyun YongHyeon #define JMPHY_SSR_SPEED_MASK		0xC000
436021a944SPyun YongHyeon #define JMPHY_SSR_DUPLEX		0x2000
446021a944SPyun YongHyeon #define JMPHY_SSR_SPD_DPLX_RESOLVED	0x0800
456021a944SPyun YongHyeon #define JMPHY_SSR_LINK_UP		0x0400
466021a944SPyun YongHyeon #define JMPHY_SSR_MDI_XOVER		0x0040
476021a944SPyun YongHyeon #define	JMPHY_SSR_INV_POLARITY		0x0002
486021a944SPyun YongHyeon 
496021a944SPyun YongHyeon /* PHY specific cable length status register. */
506021a944SPyun YongHyeon #define	JMPHY_SCL			0x17
516021a944SPyun YongHyeon #define	JMPHY_SCL_CHAN_D_MASK		0xF000
526021a944SPyun YongHyeon #define	JMPHY_SCL_CHAN_C_MASK		0x0F00
536021a944SPyun YongHyeon #define	JMPHY_SCL_CHAN_B_MASK		0x00F0
546021a944SPyun YongHyeon #define	JMPHY_SCL_CHAN_A_MASK		0x000F
556021a944SPyun YongHyeon #define	JMPHY_SCL_LEN_35		0
566021a944SPyun YongHyeon #define	JMPHY_SCL_LEN_40		1
576021a944SPyun YongHyeon #define	JMPHY_SCL_LEN_50		2
586021a944SPyun YongHyeon #define	JMPHY_SCL_LEN_60		3
596021a944SPyun YongHyeon #define	JMPHY_SCL_LEN_70		4
606021a944SPyun YongHyeon #define	JMPHY_SCL_LEN_80		5
616021a944SPyun YongHyeon #define	JMPHY_SCL_LEN_90		6
626021a944SPyun YongHyeon #define	JMPHY_SCL_LEN_100		7
636021a944SPyun YongHyeon #define	JMPHY_SCL_LEN_110		8
646021a944SPyun YongHyeon #define	JMPHY_SCL_LEN_120		9
656021a944SPyun YongHyeon #define	JMPHY_SCL_LEN_130		10
666021a944SPyun YongHyeon #define	JMPHY_SCL_LEN_140		11
676021a944SPyun YongHyeon #define	JMPHY_SCL_LEN_150		12
686021a944SPyun YongHyeon #define	JMPHY_SCL_LEN_160		13
696021a944SPyun YongHyeon #define	JMPHY_SCL_LEN_170		14
706021a944SPyun YongHyeon #define	JMPHY_SCL_RSVD			15
716021a944SPyun YongHyeon 
726021a944SPyun YongHyeon /* PHY specific LED control register 1. */
736021a944SPyun YongHyeon #define	JMPHY_LED_CTL1			0x18
746021a944SPyun YongHyeon #define	JMPHY_LED_BLINK_42MS		0x0000
756021a944SPyun YongHyeon #define	JMPHY_LED_BLINK_84MS		0x2000
766021a944SPyun YongHyeon #define	JMPHY_LED_BLINK_170MS		0x4000
776021a944SPyun YongHyeon #define	JMPHY_LED_BLINK_340MS		0x6000
786021a944SPyun YongHyeon #define	JMPHY_LED_BLINK_670MS		0x8000
796021a944SPyun YongHyeon #define	JMPHY_LED_BLINK_MASK		0xE000
806021a944SPyun YongHyeon #define	JMPHY_LED_FLP_GAP_MASK		0x1F00
816021a944SPyun YongHyeon #define	JMPHY_LED_FLP_GAP_DEFULT	0x1000
826021a944SPyun YongHyeon #define	JMPHY_LED2_POLARITY_MASK	0x0030
836021a944SPyun YongHyeon #define	JMPHY_LED1_POLARITY_MASK	0x000C
846021a944SPyun YongHyeon #define	JMPHY_LED0_POLARITY_MASK	0x0003
856021a944SPyun YongHyeon #define	JMPHY_LED_ON_LO_OFF_HI		0
866021a944SPyun YongHyeon #define	JMPHY_LED_ON_HI_OFF_HI		1
876021a944SPyun YongHyeon #define	JMPHY_LED_ON_LO_OFF_TS		2
886021a944SPyun YongHyeon #define	JMPHY_LED_ON_HI_OFF_TS		3
896021a944SPyun YongHyeon 
906021a944SPyun YongHyeon /* PHY specific LED control register 2. */
916021a944SPyun YongHyeon #define	JMPHY_LED_CTL2			0x19
926021a944SPyun YongHyeon #define	JMPHY_LED_NO_STRETCH		0x0000
936021a944SPyun YongHyeon #define	JMPHY_LED_STRETCH_42MS		0x2000
946021a944SPyun YongHyeon #define	JMPHY_LED_STRETCH_84MS		0x4000
956021a944SPyun YongHyeon #define	JMPHY_LED_STRETCH_170MS		0x6000
966021a944SPyun YongHyeon #define	JMPHY_LED_STRETCH_340MS		0x8000
976021a944SPyun YongHyeon #define	JMPHY_LED_STRETCH_670MS		0xB000
986021a944SPyun YongHyeon #define	JMPHY_LED_STRETCH_1300MS	0xC000
996021a944SPyun YongHyeon #define	JMPHY_LED_STRETCH_2700MS	0xE000
1006021a944SPyun YongHyeon #define	JMPHY_LED2_MODE_MASK		0x0F00
1016021a944SPyun YongHyeon #define	JMPHY_LED1_MODE_MASK		0x00F0
1026021a944SPyun YongHyeon #define	JMPHY_LED0_MODE_MASK		0x000F
1036021a944SPyun YongHyeon 
1046021a944SPyun YongHyeon /* PHY specific test mode control register. */
1056021a944SPyun YongHyeon #define	JMPHY_TMCTL			0x1A
1066021a944SPyun YongHyeon #define	JMPHY_TMCTL_SLEEP_ENB		0x1000
1076021a944SPyun YongHyeon 
1084f1ff93aSPyun YongHyeon /* PHY specific configuration register. */
1094f1ff93aSPyun YongHyeon #define	JMPHY_SPEC_ADDR			0x1E
1104f1ff93aSPyun YongHyeon #define	JMPHY_SPEC_ADDR_READ		0x4000
1114f1ff93aSPyun YongHyeon #define	JMPHY_SPEC_ADDR_WRITE		0x8000
1124f1ff93aSPyun YongHyeon 
1134f1ff93aSPyun YongHyeon #define	JMPHY_SPEC_DATA			0x1F
1144f1ff93aSPyun YongHyeon 
1154f1ff93aSPyun YongHyeon #define	JMPHY_EXT_COMM_2		0x32
1164f1ff93aSPyun YongHyeon 
1176021a944SPyun YongHyeon #endif	/* _DEV_MII_JMPHYREG_H_ */
118