cfi_flash: use buffer length in unmap_physmem()
[platform/kernel/u-boot.git] / drivers / usb / musb / am35x.h
1 /*
2  * am35x.h - TI's AM35x platform specific usb wrapper definitions.
3  *
4  * Author: Ajay Kumar Gupta <ajay.gupta@ti.com>
5  *
6  * Based on drivers/usb/musb/da8xx.h
7  *
8  * Copyright (c) 2010 Texas Instruments Incorporated
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23  */
24
25 #ifndef __AM35X_USB_H__
26 #define __AM35X_USB_H__
27
28 #include <asm/arch/am35x_def.h>
29 #include "musb_core.h"
30
31 /* Base address of musb wrapper */
32 #define AM35X_USB_OTG_BASE      0x5C040000
33
34 /* Base address of musb core */
35 #define AM35X_USB_OTG_CORE_BASE (AM35X_USB_OTG_BASE + 0x400)
36
37 /* Timeout for AM35x usb module */
38 #define AM35X_USB_OTG_TIMEOUT   0x3FFFFFF
39
40 /*
41  * AM35x platform USB wrapper register overlay.
42  */
43 struct am35x_usb_regs {
44         u32     revision;
45         u32     control;
46         u32     status;
47         u32     emulation;
48         u32     reserved0[1];
49         u32     autoreq;
50         u32     srpfixtime;
51         u32     ep_intsrc;
52         u32     ep_intsrcset;
53         u32     ep_intsrcclr;
54         u32     ep_intmsk;
55         u32     ep_intmskset;
56         u32     ep_intmskclr;
57         u32     ep_intsrcmsked;
58         u32     reserved1[1];
59         u32     core_intsrc;
60         u32     core_intsrcset;
61         u32     core_intsrcclr;
62         u32     core_intmsk;
63         u32     core_intmskset;
64         u32     core_intmskclr;
65         u32     core_intsrcmsked;
66         u32     reserved2[1];
67         u32     eoi;
68         u32     mop_sop_en;
69         u32     reserved3[2];
70         u32     txmode;
71         u32     rxmode;
72         u32     epcount_mode;
73 };
74
75 #define am35x_usb_regs ((struct am35x_usb_regs *)AM35X_USB_OTG_BASE)
76
77 /* USB 2.0 PHY Control */
78 #define DEVCONF2_PHY_GPIOMODE   (1 << 23)
79 #define DEVCONF2_OTGMODE        (3 << 14)
80 #define DEVCONF2_SESENDEN       (1 << 13)       /* Vsess_end comparator */
81 #define DEVCONF2_VBDTCTEN       (1 << 12)       /* Vbus comparator */
82 #define DEVCONF2_REFFREQ_24MHZ  (2 << 8)
83 #define DEVCONF2_REFFREQ_26MHZ  (7 << 8)
84 #define DEVCONF2_REFFREQ_13MHZ  (6 << 8)
85 #define DEVCONF2_REFFREQ        (0xf << 8)
86 #define DEVCONF2_PHYCKGD        (1 << 7)
87 #define DEVCONF2_VBUSSENSE      (1 << 6)
88 #define DEVCONF2_PHY_PLLON      (1 << 5)        /* override PLL suspend */
89 #define DEVCONF2_RESET          (1 << 4)
90 #define DEVCONF2_PHYPWRDN       (1 << 3)
91 #define DEVCONF2_OTGPWRDN       (1 << 2)
92 #define DEVCONF2_DATPOL         (1 << 1)
93
94 #endif  /* __AM35X_USB_H__ */