/* * am35x.h - TI's AM35x platform specific usb wrapper definitions. * * Author: Ajay Kumar Gupta * * 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 #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__ */