xref: /rk3399_rockchip-uboot/drivers/usb/musb/am35x.h (revision 326ea986ac150acdc7656d57fca647db80b50158)
1dbea3242SAjay Kumar Gupta /*
2dbea3242SAjay Kumar Gupta  * am35x.h - TI's AM35x platform specific usb wrapper definitions.
3dbea3242SAjay Kumar Gupta  *
4dbea3242SAjay Kumar Gupta  * Author: Ajay Kumar Gupta <ajay.gupta@ti.com>
5dbea3242SAjay Kumar Gupta  *
6dbea3242SAjay Kumar Gupta  * Based on drivers/usb/musb/da8xx.h
7dbea3242SAjay Kumar Gupta  *
8dbea3242SAjay Kumar Gupta  * Copyright (c) 2010 Texas Instruments Incorporated
9dbea3242SAjay Kumar Gupta  *
10*1a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
11dbea3242SAjay Kumar Gupta  */
12dbea3242SAjay Kumar Gupta 
13dbea3242SAjay Kumar Gupta #ifndef __AM35X_USB_H__
14dbea3242SAjay Kumar Gupta #define __AM35X_USB_H__
15dbea3242SAjay Kumar Gupta 
16dbea3242SAjay Kumar Gupta #include <asm/arch/am35x_def.h>
17dbea3242SAjay Kumar Gupta #include "musb_core.h"
18dbea3242SAjay Kumar Gupta 
19dbea3242SAjay Kumar Gupta /* Base address of musb wrapper */
20dbea3242SAjay Kumar Gupta #define AM35X_USB_OTG_BASE	0x5C040000
21dbea3242SAjay Kumar Gupta 
22dbea3242SAjay Kumar Gupta /* Base address of musb core */
23dbea3242SAjay Kumar Gupta #define AM35X_USB_OTG_CORE_BASE	(AM35X_USB_OTG_BASE + 0x400)
24dbea3242SAjay Kumar Gupta 
25dbea3242SAjay Kumar Gupta /* Timeout for AM35x usb module */
26dbea3242SAjay Kumar Gupta #define AM35X_USB_OTG_TIMEOUT	0x3FFFFFF
27dbea3242SAjay Kumar Gupta 
28dbea3242SAjay Kumar Gupta /*
29dbea3242SAjay Kumar Gupta  * AM35x platform USB wrapper register overlay.
30dbea3242SAjay Kumar Gupta  */
31dbea3242SAjay Kumar Gupta struct am35x_usb_regs {
32dbea3242SAjay Kumar Gupta 	u32	revision;
33dbea3242SAjay Kumar Gupta 	u32	control;
34dbea3242SAjay Kumar Gupta 	u32	status;
35dbea3242SAjay Kumar Gupta 	u32	emulation;
36dbea3242SAjay Kumar Gupta 	u32	reserved0[1];
37dbea3242SAjay Kumar Gupta 	u32	autoreq;
38dbea3242SAjay Kumar Gupta 	u32	srpfixtime;
39dbea3242SAjay Kumar Gupta 	u32	ep_intsrc;
40dbea3242SAjay Kumar Gupta 	u32	ep_intsrcset;
41dbea3242SAjay Kumar Gupta 	u32	ep_intsrcclr;
42dbea3242SAjay Kumar Gupta 	u32	ep_intmsk;
43dbea3242SAjay Kumar Gupta 	u32	ep_intmskset;
44dbea3242SAjay Kumar Gupta 	u32	ep_intmskclr;
45dbea3242SAjay Kumar Gupta 	u32	ep_intsrcmsked;
46dbea3242SAjay Kumar Gupta 	u32	reserved1[1];
47dbea3242SAjay Kumar Gupta 	u32	core_intsrc;
48dbea3242SAjay Kumar Gupta 	u32	core_intsrcset;
49dbea3242SAjay Kumar Gupta 	u32	core_intsrcclr;
50dbea3242SAjay Kumar Gupta 	u32	core_intmsk;
51dbea3242SAjay Kumar Gupta 	u32	core_intmskset;
52dbea3242SAjay Kumar Gupta 	u32	core_intmskclr;
53dbea3242SAjay Kumar Gupta 	u32	core_intsrcmsked;
54dbea3242SAjay Kumar Gupta 	u32	reserved2[1];
55dbea3242SAjay Kumar Gupta 	u32	eoi;
56dbea3242SAjay Kumar Gupta 	u32	mop_sop_en;
57dbea3242SAjay Kumar Gupta 	u32	reserved3[2];
58dbea3242SAjay Kumar Gupta 	u32	txmode;
59dbea3242SAjay Kumar Gupta 	u32	rxmode;
60dbea3242SAjay Kumar Gupta 	u32	epcount_mode;
61dbea3242SAjay Kumar Gupta };
62dbea3242SAjay Kumar Gupta 
63dbea3242SAjay Kumar Gupta #define am35x_usb_regs ((struct am35x_usb_regs *)AM35X_USB_OTG_BASE)
64dbea3242SAjay Kumar Gupta 
65dbea3242SAjay Kumar Gupta /* USB 2.0 PHY Control */
66dbea3242SAjay Kumar Gupta #define DEVCONF2_PHY_GPIOMODE	(1 << 23)
67dbea3242SAjay Kumar Gupta #define DEVCONF2_OTGMODE	(3 << 14)
68dbea3242SAjay Kumar Gupta #define DEVCONF2_SESENDEN	(1 << 13)       /* Vsess_end comparator */
69dbea3242SAjay Kumar Gupta #define DEVCONF2_VBDTCTEN	(1 << 12)       /* Vbus comparator */
70dbea3242SAjay Kumar Gupta #define DEVCONF2_REFFREQ_24MHZ	(2 << 8)
71dbea3242SAjay Kumar Gupta #define DEVCONF2_REFFREQ_26MHZ	(7 << 8)
72dbea3242SAjay Kumar Gupta #define DEVCONF2_REFFREQ_13MHZ	(6 << 8)
73dbea3242SAjay Kumar Gupta #define DEVCONF2_REFFREQ	(0xf << 8)
74dbea3242SAjay Kumar Gupta #define DEVCONF2_PHYCKGD	(1 << 7)
75dbea3242SAjay Kumar Gupta #define DEVCONF2_VBUSSENSE	(1 << 6)
76dbea3242SAjay Kumar Gupta #define DEVCONF2_PHY_PLLON	(1 << 5)        /* override PLL suspend */
77dbea3242SAjay Kumar Gupta #define DEVCONF2_RESET		(1 << 4)
78dbea3242SAjay Kumar Gupta #define DEVCONF2_PHYPWRDN	(1 << 3)
79dbea3242SAjay Kumar Gupta #define DEVCONF2_OTGPWRDN	(1 << 2)
80dbea3242SAjay Kumar Gupta #define DEVCONF2_DATPOL		(1 << 1)
81dbea3242SAjay Kumar Gupta 
82dbea3242SAjay Kumar Gupta #endif	/* __AM35X_USB_H__ */
83