hc
2023-08-30 862c27fc9920c83318c784bfdadf43a65df1ec8f
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
/*
 * am35x.h - TI's AM35x platform specific usb wrapper definitions.
 *
 * Author: Ajay Kumar Gupta <ajay.gupta@ti.com>
 *
 * Based on drivers/usb/musb/da8xx.h
 *
 * Copyright (c) 2010 Texas Instruments Incorporated
 *
 * SPDX-License-Identifier:    GPL-2.0+
 */
 
#ifndef __AM35X_USB_H__
#define __AM35X_USB_H__
 
#include <asm/arch/am35x_def.h>
#include "musb_core.h"
 
/* Base address of musb wrapper */
#define AM35X_USB_OTG_BASE    0x5C040000
 
/* Base address of musb core */
#define AM35X_USB_OTG_CORE_BASE    (AM35X_USB_OTG_BASE + 0x400)
 
/* Timeout for AM35x usb module */
#define AM35X_USB_OTG_TIMEOUT    0x3FFFFFF
 
/*
 * AM35x platform USB wrapper register overlay.
 */
struct am35x_usb_regs {
   u32    revision;
   u32    control;
   u32    status;
   u32    emulation;
   u32    reserved0[1];
   u32    autoreq;
   u32    srpfixtime;
   u32    ep_intsrc;
   u32    ep_intsrcset;
   u32    ep_intsrcclr;
   u32    ep_intmsk;
   u32    ep_intmskset;
   u32    ep_intmskclr;
   u32    ep_intsrcmsked;
   u32    reserved1[1];
   u32    core_intsrc;
   u32    core_intsrcset;
   u32    core_intsrcclr;
   u32    core_intmsk;
   u32    core_intmskset;
   u32    core_intmskclr;
   u32    core_intsrcmsked;
   u32    reserved2[1];
   u32    eoi;
   u32    mop_sop_en;
   u32    reserved3[2];
   u32    txmode;
   u32    rxmode;
   u32    epcount_mode;
};
 
#define am35x_usb_regs ((struct am35x_usb_regs *)AM35X_USB_OTG_BASE)
 
/* USB 2.0 PHY Control */
#define DEVCONF2_PHY_GPIOMODE    (1 << 23)
#define DEVCONF2_OTGMODE    (3 << 14)
#define DEVCONF2_SESENDEN    (1 << 13)       /* Vsess_end comparator */
#define DEVCONF2_VBDTCTEN    (1 << 12)       /* Vbus comparator */
#define DEVCONF2_REFFREQ_24MHZ    (2 << 8)
#define DEVCONF2_REFFREQ_26MHZ    (7 << 8)
#define DEVCONF2_REFFREQ_13MHZ    (6 << 8)
#define DEVCONF2_REFFREQ    (0xf << 8)
#define DEVCONF2_PHYCKGD    (1 << 7)
#define DEVCONF2_VBUSSENSE    (1 << 6)
#define DEVCONF2_PHY_PLLON    (1 << 5)        /* override PLL suspend */
#define DEVCONF2_RESET        (1 << 4)
#define DEVCONF2_PHYPWRDN    (1 << 3)
#define DEVCONF2_OTGPWRDN    (1 << 2)
#define DEVCONF2_DATPOL        (1 << 1)
 
#endif    /* __AM35X_USB_H__ */