xref: /rk3399_rockchip-uboot/include/fsl_usb.h (revision 9dee205d78402c6c48076735859f4e1a293cf693)
1*9dee205dSramneek mehresh /*
2*9dee205dSramneek mehresh  * Freescale USB Controller
3*9dee205dSramneek mehresh  *
4*9dee205dSramneek mehresh  * Copyright 2013 Freescale Semiconductor, Inc.
5*9dee205dSramneek mehresh  *
6*9dee205dSramneek mehresh  * This software may be used and distributed according to the
7*9dee205dSramneek mehresh  * terms of the GNU Public License, Version 2, incorporated
8*9dee205dSramneek mehresh  * herein by reference.
9*9dee205dSramneek mehresh  *
10*9dee205dSramneek mehresh  * This program is free software; you can redistribute it and/or
11*9dee205dSramneek mehresh  * modify it under the terms of the GNU General Public License
12*9dee205dSramneek mehresh  * Version 2 as published by the Free Software Foundation.
13*9dee205dSramneek mehresh  *
14*9dee205dSramneek mehresh  * This program is distributed in the hope that it will be useful,
15*9dee205dSramneek mehresh  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16*9dee205dSramneek mehresh  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17*9dee205dSramneek mehresh  * GNU General Public License for more details.
18*9dee205dSramneek mehresh  *
19*9dee205dSramneek mehresh  * You should have received a copy of the GNU General Public License
20*9dee205dSramneek mehresh  * along with this program; if not, write to the Free Software
21*9dee205dSramneek mehresh  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
22*9dee205dSramneek mehresh  * MA 02111-1307 USA
23*9dee205dSramneek mehresh  */
24*9dee205dSramneek mehresh 
25*9dee205dSramneek mehresh #ifndef _ASM_FSL_USB_H_
26*9dee205dSramneek mehresh #define _ASM_FSL_USB_H_
27*9dee205dSramneek mehresh 
28*9dee205dSramneek mehresh #ifdef CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE
29*9dee205dSramneek mehresh struct ccsr_usb_port_ctrl {
30*9dee205dSramneek mehresh 	u32	ctrl;
31*9dee205dSramneek mehresh 	u32	drvvbuscfg;
32*9dee205dSramneek mehresh 	u32	pwrfltcfg;
33*9dee205dSramneek mehresh 	u32	sts;
34*9dee205dSramneek mehresh 	u8	res_14[0xc];
35*9dee205dSramneek mehresh 	u32	bistcfg;
36*9dee205dSramneek mehresh 	u32	biststs;
37*9dee205dSramneek mehresh 	u32	abistcfg;
38*9dee205dSramneek mehresh 	u32	abiststs;
39*9dee205dSramneek mehresh 	u8	res_30[0x10];
40*9dee205dSramneek mehresh 	u32	xcvrprg;
41*9dee205dSramneek mehresh 	u32	anaprg;
42*9dee205dSramneek mehresh 	u32	anadrv;
43*9dee205dSramneek mehresh 	u32	anasts;
44*9dee205dSramneek mehresh };
45*9dee205dSramneek mehresh 
46*9dee205dSramneek mehresh struct ccsr_usb_phy {
47*9dee205dSramneek mehresh 	u32	id;
48*9dee205dSramneek mehresh 	struct ccsr_usb_port_ctrl port1;
49*9dee205dSramneek mehresh 	u8	res_50[0xc];
50*9dee205dSramneek mehresh 	u32	tvr;
51*9dee205dSramneek mehresh 	u32	pllprg[4];
52*9dee205dSramneek mehresh 	u8	res_70[0x4];
53*9dee205dSramneek mehresh 	u32	anaccfg;
54*9dee205dSramneek mehresh 	u32	dbg;
55*9dee205dSramneek mehresh 	u8	res_7c[0x4];
56*9dee205dSramneek mehresh 	struct ccsr_usb_port_ctrl port2;
57*9dee205dSramneek mehresh 	u8	res_dc[0x334];
58*9dee205dSramneek mehresh };
59*9dee205dSramneek mehresh 
60*9dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_CTRL_PHY_EN (1 << 0)
61*9dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_DRVVBUS_CR_EN (1 << 1)
62*9dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PWRFLT_CR_EN (1 << 1)
63*9dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PLLPRG1_PHY_DIV (1 << 0)
64*9dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PLLPRG2_PHY2_CLK_EN (1 << 0)
65*9dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PLLPRG2_PHY1_CLK_EN (1 << 1)
66*9dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PLLPRG2_FRAC_LPF_EN (1 << 13)
67*9dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PLLPRG2_REF_DIV (1 << 4)
68*9dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PLLPRG2_MFI (5 << 16)
69*9dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_PLLPRG2_PLL_EN (1 << 21)
70*9dee205dSramneek mehresh #define CONFIG_SYS_FSL_USB_SYS_CLK_VALID (1 << 0)
71*9dee205dSramneek mehresh #else
72*9dee205dSramneek mehresh struct ccsr_usb_phy {
73*9dee205dSramneek mehresh 	u8	res0[0x18];
74*9dee205dSramneek mehresh 	u32	usb_enable_override;
75*9dee205dSramneek mehresh 	u8	res[0xe4];
76*9dee205dSramneek mehresh };
77*9dee205dSramneek mehresh #define	CONFIG_SYS_FSL_USB_ENABLE_OVERRIDE	1
78*9dee205dSramneek mehresh #endif
79*9dee205dSramneek mehresh 
80*9dee205dSramneek mehresh #endif /*_ASM_FSL_USB_H_ */
81