summaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/arch-mx28/regs-usbphy.h
blob: 0291d815c6ae20dd62d8a2c38c712275e45c1a58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
/*
 * Freescale i.MX28 USB PHY Register Definitions
 *
 * Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
 * on behalf of DENX Software Engineering GmbH
 *
 * 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; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 *
 */

#ifndef __REGS_USBPHY_H__
#define __REGS_USBPHY_H__

struct mx28_usbphy_regs {
	mx28_reg_32(hw_usbphy_pwd)
	mx28_reg_32(hw_usbphy_tx)
	mx28_reg_32(hw_usbphy_rx)
	mx28_reg_32(hw_usbphy_ctrl)
	mx28_reg_32(hw_usbphy_status)
	mx28_reg_32(hw_usbphy_debug)
	mx28_reg_32(hw_usbphy_debug0_status)
	mx28_reg_32(hw_usbphy_debug1)
	mx28_reg_32(hw_usbphy_version)
	mx28_reg_32(hw_usbphy_ip)
};

#define	USBPHY_PWD_RXPWDRX				(1 << 20)
#define	USBPHY_PWD_RXPWDDIFF				(1 << 19)
#define	USBPHY_PWD_RXPWD1PT1				(1 << 18)
#define	USBPHY_PWD_RXPWDENV				(1 << 17)
#define	USBPHY_PWD_TXPWDV2I				(1 << 12)
#define	USBPHY_PWD_TXPWDIBIAS				(1 << 11)
#define	USBPHY_PWD_TXPWDFS				(1 << 10)

#define	USBPHY_TX_USBPHY_TX_EDGECTRL_OFFSET		26
#define	USBPHY_TX_USBPHY_TX_EDGECTRL_MASK		(0x7 << 26)
#define	USBPHY_TX_USBPHY_TX_SYNC_INVERT			(1 << 25)
#define	USBPHY_TX_USBPHY_TX_SYNC_MUX			(1 << 24)
#define	USBPHY_TX_TXENCAL45DP				(1 << 21)
#define	USBPHY_TX_TXCAL45DP_OFFSET			16
#define	USBPHY_TX_TXCAL45DP_MASK			(0xf << 16)
#define	USBPHY_TX_TXENCAL45DM				(1 << 13)
#define	USBPHY_TX_TXCAL45DM_OFFSET			8
#define	USBPHY_TX_TXCAL45DM_MASK			(0xf << 8)
#define	USBPHY_TX_D_CAL_OFFSET				0
#define	USBPHY_TX_D_CAL_MASK				0xf

#define	USBPHY_RX_RXDBYPASS				(1 << 22)
#define	USBPHY_RX_DISCONADJ_OFFSET			4
#define	USBPHY_RX_DISCONADJ_MASK			(0x7 << 4)
#define	USBPHY_RX_ENVADJ_OFFSET				0
#define	USBPHY_RX_ENVADJ_MASK				0x7

#define	USBPHY_CTRL_SFTRST				(1 << 31)
#define	USBPHY_CTRL_CLKGATE				(1 << 30)
#define	USBPHY_CTRL_UTMI_SUSPENDM			(1 << 29)
#define	USBPHY_CTRL_HOST_FORCE_LS_SE0			(1 << 28)
#define	USBPHY_CTRL_ENAUTOSET_USBCLKS			(1 << 26)
#define	USBPHY_CTRL_ENAUTOCLR_USBCLKGATE		(1 << 25)
#define	USBPHY_CTRL_FSDLL_RST_EN			(1 << 24)
#define	USBPHY_CTRL_ENVBUSCHG_WKUP			(1 << 23)
#define	USBPHY_CTRL_ENIDCHG_WKUP			(1 << 22)
#define	USBPHY_CTRL_ENDPDMCHG_WKUP			(1 << 21)
#define	USBPHY_CTRL_ENAUTOCLR_PHY_PWD			(1 << 20)
#define	USBPHY_CTRL_ENAUTOCLR_CLKGATE			(1 << 19)
#define	USBPHY_CTRL_ENAUTO_PWRON_PLL			(1 << 18)
#define	USBPHY_CTRL_WAKEUP_IRQ				(1 << 17)
#define	USBPHY_CTRL_ENIRQWAKEUP				(1 << 16)
#define	USBPHY_CTRL_ENUTMILEVEL3			(1 << 15)
#define	USBPHY_CTRL_ENUTMILEVEL2			(1 << 14)
#define	USBPHY_CTRL_DATA_ON_LRADC			(1 << 13)
#define	USBPHY_CTRL_DEVPLUGIN_IRQ			(1 << 12)
#define	USBPHY_CTRL_ENIRQDEVPLUGIN			(1 << 11)
#define	USBPHY_CTRL_RESUME_IRQ				(1 << 10)
#define	USBPHY_CTRL_ENIRQRESUMEDETECT			(1 << 9)
#define	USBPHY_CTRL_RESUMEIRQSTICKY			(1 << 8)
#define	USBPHY_CTRL_ENOTGIDDETECT			(1 << 7)
#define	USBPHY_CTRL_DEVPLUGIN_POLARITY			(1 << 5)
#define	USBPHY_CTRL_ENDEVPLUGINDETECT			(1 << 4)
#define	USBPHY_CTRL_HOSTDISCONDETECT_IRQ		(1 << 3)
#define	USBPHY_CTRL_ENIRQHOSTDISCON			(1 << 2)
#define	USBPHY_CTRL_ENHOSTDISCONDETECT			(1 << 1)

#define	USBPHY_STATUS_RESUME_STATUS			(1 << 10)
#define	USBPHY_STATUS_OTGID_STATUS			(1 << 8)
#define	USBPHY_STATUS_DEVPLUGIN_STATUS			(1 << 6)
#define	USBPHY_STATUS_HOSTDISCONDETECT_STATUS		(1 << 3)

#define	USBPHY_DEBUG_CLKGATE				(1 << 30)
#define	USBPHY_DEBUG_HOST_RESUME_DEBUG			(1 << 29)
#define	USBPHY_DEBUG_SQUELCHRESETLENGTH_OFFSET		25
#define	USBPHY_DEBUG_SQUELCHRESETLENGTH_MASK		(0xf << 25)
#define	USBPHY_DEBUG_ENSQUELCHRESET			(1 << 24)
#define	USBPHY_DEBUG_SQUELCHRESETCOUNT_OFFSET		16
#define	USBPHY_DEBUG_SQUELCHRESETCOUNT_MASK		(0x1f << 16)
#define	USBPHY_DEBUG_ENTX2RXCOUNT			(1 << 12)
#define	USBPHY_DEBUG_TX2RXCOUNT_OFFSET			8
#define	USBPHY_DEBUG_TX2RXCOUNT_MASK			(0xf << 8)
#define	USBPHY_DEBUG_ENHSTPULLDOWN_OFFSET		4
#define	USBPHY_DEBUG_ENHSTPULLDOWN_MASK			(0x3 << 4)
#define	USBPHY_DEBUG_HSTPULLDOWN_OFFSET			2
#define	USBPHY_DEBUG_HSTPULLDOWN_MASK			(0x3 << 2)
#define	USBPHY_DEBUG_DEBUG_INTERFACE_HOLD		(1 << 1)
#define	USBPHY_DEBUG_OTGIDPIDLOCK			(1 << 0)

#define	USBPHY_DEBUG0_STATUS_SQUELCH_COUNT_OFFSET	26
#define	USBPHY_DEBUG0_STATUS_SQUELCH_COUNT_MASK		(0x3f << 26)
#define	USBPHY_DEBUG0_STATUS_UTMI_RXERROR_OFFSET	16
#define	USBPHY_DEBUG0_STATUS_UTMI_RXERROR_MASK		(0x3ff << 16)
#define	USBPHY_DEBUG0_STATUS_LOOP_BACK_OFFSET		0
#define	USBPHY_DEBUG0_STATUS_LOOP_BACK_MASK		0xffff

#define	USBPHY_DEBUG1_ENTAILADJVD_OFFSET		13
#define	USBPHY_DEBUG1_ENTAILADJVD_MASK			(0x3 << 13)
#define	USBPHY_DEBUG1_ENTX2TX				(1 << 12)
#define	USBPHY_DEBUG1_DBG_ADDRESS_OFFSET		0
#define	USBPHY_DEBUG1_DBG_ADDRESS_MASK			0xf

#define	USBPHY_VERSION_MAJOR_MASK			(0xff << 24)
#define	USBPHY_VERSION_MAJOR_OFFSET			24
#define	USBPHY_VERSION_MINOR_MASK			(0xff << 16)
#define	USBPHY_VERSION_MINOR_OFFSET			16
#define	USBPHY_VERSION_STEP_MASK			0xffff
#define	USBPHY_VERSION_STEP_OFFSET			0

#define	USBPHY_IP_DIV_SEL_OFFSET			23
#define	USBPHY_IP_DIV_SEL_MASK				(0x3 << 23)
#define	USBPHY_IP_LFR_SEL_OFFSET			21
#define	USBPHY_IP_LFR_SEL_MASK				(0x3 << 21)
#define	USBPHY_IP_CP_SEL_OFFSET				19
#define	USBPHY_IP_CP_SEL_MASK				(0x3 << 19)
#define	USBPHY_IP_TSTI_TX_DP				(1 << 18)
#define	USBPHY_IP_TSTI_TX_DM				(1 << 17)
#define	USBPHY_IP_ANALOG_TESTMODE			(1 << 16)
#define	USBPHY_IP_EN_USB_CLKS				(1 << 2)
#define	USBPHY_IP_PLL_LOCKED				(1 << 1)
#define	USBPHY_IP_PLL_POWER				(1 << 0)

#endif	/* __REGS_USBPHY_H__ */