Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
omap-usb-tll.c File Reference
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/platform_device.h>
#include <linux/clk.h>
#include <linux/io.h>
#include <linux/err.h>
#include <plat/usb.h>
#include <linux/pm_runtime.h>

Go to the source code of this file.

Data Structures

struct  usbtll_omap
 

Macros

#define USBTLL_DRIVER_NAME   "usbhs_tll"
 
#define OMAP_USBTLL_REVISION   (0x00)
 
#define OMAP_USBTLL_SYSCONFIG   (0x10)
 
#define OMAP_USBTLL_SYSCONFIG_CACTIVITY   (1 << 8)
 
#define OMAP_USBTLL_SYSCONFIG_SIDLEMODE   (1 << 3)
 
#define OMAP_USBTLL_SYSCONFIG_ENAWAKEUP   (1 << 2)
 
#define OMAP_USBTLL_SYSCONFIG_SOFTRESET   (1 << 1)
 
#define OMAP_USBTLL_SYSCONFIG_AUTOIDLE   (1 << 0)
 
#define OMAP_USBTLL_SYSSTATUS   (0x14)
 
#define OMAP_USBTLL_SYSSTATUS_RESETDONE   (1 << 0)
 
#define OMAP_USBTLL_IRQSTATUS   (0x18)
 
#define OMAP_USBTLL_IRQENABLE   (0x1C)
 
#define OMAP_TLL_SHARED_CONF   (0x30)
 
#define OMAP_TLL_SHARED_CONF_USB_90D_DDR_EN   (1 << 6)
 
#define OMAP_TLL_SHARED_CONF_USB_180D_SDR_EN   (1 << 5)
 
#define OMAP_TLL_SHARED_CONF_USB_DIVRATION   (1 << 2)
 
#define OMAP_TLL_SHARED_CONF_FCLK_REQ   (1 << 1)
 
#define OMAP_TLL_SHARED_CONF_FCLK_IS_ON   (1 << 0)
 
#define OMAP_TLL_CHANNEL_CONF(num)   (0x040 + 0x004 * num)
 
#define OMAP_TLL_CHANNEL_CONF_FSLSMODE_SHIFT   24
 
#define OMAP_TLL_CHANNEL_CONF_ULPINOBITSTUFF   (1 << 11)
 
#define OMAP_TLL_CHANNEL_CONF_ULPI_ULPIAUTOIDLE   (1 << 10)
 
#define OMAP_TLL_CHANNEL_CONF_UTMIAUTOIDLE   (1 << 9)
 
#define OMAP_TLL_CHANNEL_CONF_ULPIDDRMODE   (1 << 8)
 
#define OMAP_TLL_CHANNEL_CONF_CHANMODE_FSLS   (1 << 1)
 
#define OMAP_TLL_CHANNEL_CONF_CHANEN   (1 << 0)
 
#define OMAP_TLL_FSLSMODE_6PIN_PHY_DAT_SE0   0x0
 
#define OMAP_TLL_FSLSMODE_6PIN_PHY_DP_DM   0x1
 
#define OMAP_TLL_FSLSMODE_3PIN_PHY   0x2
 
#define OMAP_TLL_FSLSMODE_4PIN_PHY   0x3
 
#define OMAP_TLL_FSLSMODE_6PIN_TLL_DAT_SE0   0x4
 
#define OMAP_TLL_FSLSMODE_6PIN_TLL_DP_DM   0x5
 
#define OMAP_TLL_FSLSMODE_3PIN_TLL   0x6
 
#define OMAP_TLL_FSLSMODE_4PIN_TLL   0x7
 
#define OMAP_TLL_FSLSMODE_2PIN_TLL_DAT_SE0   0xA
 
#define OMAP_TLL_FSLSMODE_2PIN_DAT_DP_DM   0xB
 
#define OMAP_TLL_ULPI_FUNCTION_CTRL(num)   (0x804 + 0x100 * num)
 
#define OMAP_TLL_ULPI_INTERFACE_CTRL(num)   (0x807 + 0x100 * num)
 
#define OMAP_TLL_ULPI_OTG_CTRL(num)   (0x80A + 0x100 * num)
 
#define OMAP_TLL_ULPI_INT_EN_RISE(num)   (0x80D + 0x100 * num)
 
#define OMAP_TLL_ULPI_INT_EN_FALL(num)   (0x810 + 0x100 * num)
 
#define OMAP_TLL_ULPI_INT_STATUS(num)   (0x813 + 0x100 * num)
 
#define OMAP_TLL_ULPI_INT_LATCH(num)   (0x814 + 0x100 * num)
 
#define OMAP_TLL_ULPI_DEBUG(num)   (0x815 + 0x100 * num)
 
#define OMAP_TLL_ULPI_SCRATCH_REGISTER(num)   (0x816 + 0x100 * num)
 
#define OMAP_REV2_TLL_CHANNEL_COUNT   2
 
#define OMAP_TLL_CHANNEL_COUNT   3
 
#define OMAP_TLL_CHANNEL_1_EN_MASK   (1 << 0)
 
#define OMAP_TLL_CHANNEL_2_EN_MASK   (1 << 1)
 
#define OMAP_TLL_CHANNEL_3_EN_MASK   (1 << 2)
 
#define OMAP_USBTLL_REV1   0x00000015 /* OMAP3 */
 
#define OMAP_USBTLL_REV2   0x00000018 /* OMAP 3630 */
 
#define OMAP_USBTLL_REV3   0x00000004 /* OMAP4 */
 
#define is_ehci_tll_mode(x)   (x == OMAP_EHCI_PORT_MODE_TLL)
 

Functions

int omap_tll_enable (void)
 
 EXPORT_SYMBOL_GPL (omap_tll_enable)
 
int omap_tll_disable (void)
 
 EXPORT_SYMBOL_GPL (omap_tll_disable)
 
 MODULE_AUTHOR ("Keshava Munegowda <[email protected]>")
 
 MODULE_ALIAS ("platform:"USBHS_DRIVER_NAME)
 
 MODULE_LICENSE ("GPL v2")
 
 MODULE_DESCRIPTION ("usb tll driver for TI OMAP EHCI and OHCI controllers")
 
 fs_initcall (omap_usbtll_drvinit)
 
 module_exit (omap_usbtll_drvexit)
 

Variables

const char usbtll_driver_name [] = USBTLL_DRIVER_NAME
 
struct platform_devicetll_pdev
 

Macro Definition Documentation

#define is_ehci_tll_mode (   x)    (x == OMAP_EHCI_PORT_MODE_TLL)

Definition at line 96 of file omap-usb-tll.c.

#define OMAP_REV2_TLL_CHANNEL_COUNT   2

Definition at line 85 of file omap-usb-tll.c.

#define OMAP_TLL_CHANNEL_1_EN_MASK   (1 << 0)

Definition at line 87 of file omap-usb-tll.c.

#define OMAP_TLL_CHANNEL_2_EN_MASK   (1 << 1)

Definition at line 88 of file omap-usb-tll.c.

#define OMAP_TLL_CHANNEL_3_EN_MASK   (1 << 2)

Definition at line 89 of file omap-usb-tll.c.

#define OMAP_TLL_CHANNEL_CONF (   num)    (0x040 + 0x004 * num)

Definition at line 55 of file omap-usb-tll.c.

#define OMAP_TLL_CHANNEL_CONF_CHANEN   (1 << 0)

Definition at line 62 of file omap-usb-tll.c.

#define OMAP_TLL_CHANNEL_CONF_CHANMODE_FSLS   (1 << 1)

Definition at line 61 of file omap-usb-tll.c.

#define OMAP_TLL_CHANNEL_CONF_FSLSMODE_SHIFT   24

Definition at line 56 of file omap-usb-tll.c.

#define OMAP_TLL_CHANNEL_CONF_ULPI_ULPIAUTOIDLE   (1 << 10)

Definition at line 58 of file omap-usb-tll.c.

#define OMAP_TLL_CHANNEL_CONF_ULPIDDRMODE   (1 << 8)

Definition at line 60 of file omap-usb-tll.c.

#define OMAP_TLL_CHANNEL_CONF_ULPINOBITSTUFF   (1 << 11)

Definition at line 57 of file omap-usb-tll.c.

#define OMAP_TLL_CHANNEL_CONF_UTMIAUTOIDLE   (1 << 9)

Definition at line 59 of file omap-usb-tll.c.

#define OMAP_TLL_CHANNEL_COUNT   3

Definition at line 86 of file omap-usb-tll.c.

#define OMAP_TLL_FSLSMODE_2PIN_DAT_DP_DM   0xB

Definition at line 73 of file omap-usb-tll.c.

#define OMAP_TLL_FSLSMODE_2PIN_TLL_DAT_SE0   0xA

Definition at line 72 of file omap-usb-tll.c.

#define OMAP_TLL_FSLSMODE_3PIN_PHY   0x2

Definition at line 66 of file omap-usb-tll.c.

#define OMAP_TLL_FSLSMODE_3PIN_TLL   0x6

Definition at line 70 of file omap-usb-tll.c.

#define OMAP_TLL_FSLSMODE_4PIN_PHY   0x3

Definition at line 67 of file omap-usb-tll.c.

#define OMAP_TLL_FSLSMODE_4PIN_TLL   0x7

Definition at line 71 of file omap-usb-tll.c.

#define OMAP_TLL_FSLSMODE_6PIN_PHY_DAT_SE0   0x0

Definition at line 64 of file omap-usb-tll.c.

#define OMAP_TLL_FSLSMODE_6PIN_PHY_DP_DM   0x1

Definition at line 65 of file omap-usb-tll.c.

#define OMAP_TLL_FSLSMODE_6PIN_TLL_DAT_SE0   0x4

Definition at line 68 of file omap-usb-tll.c.

#define OMAP_TLL_FSLSMODE_6PIN_TLL_DP_DM   0x5

Definition at line 69 of file omap-usb-tll.c.

#define OMAP_TLL_SHARED_CONF   (0x30)

Definition at line 48 of file omap-usb-tll.c.

#define OMAP_TLL_SHARED_CONF_FCLK_IS_ON   (1 << 0)

Definition at line 53 of file omap-usb-tll.c.

#define OMAP_TLL_SHARED_CONF_FCLK_REQ   (1 << 1)

Definition at line 52 of file omap-usb-tll.c.

#define OMAP_TLL_SHARED_CONF_USB_180D_SDR_EN   (1 << 5)

Definition at line 50 of file omap-usb-tll.c.

#define OMAP_TLL_SHARED_CONF_USB_90D_DDR_EN   (1 << 6)

Definition at line 49 of file omap-usb-tll.c.

#define OMAP_TLL_SHARED_CONF_USB_DIVRATION   (1 << 2)

Definition at line 51 of file omap-usb-tll.c.

#define OMAP_TLL_ULPI_DEBUG (   num)    (0x815 + 0x100 * num)

Definition at line 82 of file omap-usb-tll.c.

#define OMAP_TLL_ULPI_FUNCTION_CTRL (   num)    (0x804 + 0x100 * num)

Definition at line 75 of file omap-usb-tll.c.

#define OMAP_TLL_ULPI_INT_EN_FALL (   num)    (0x810 + 0x100 * num)

Definition at line 79 of file omap-usb-tll.c.

#define OMAP_TLL_ULPI_INT_EN_RISE (   num)    (0x80D + 0x100 * num)

Definition at line 78 of file omap-usb-tll.c.

#define OMAP_TLL_ULPI_INT_LATCH (   num)    (0x814 + 0x100 * num)

Definition at line 81 of file omap-usb-tll.c.

#define OMAP_TLL_ULPI_INT_STATUS (   num)    (0x813 + 0x100 * num)

Definition at line 80 of file omap-usb-tll.c.

#define OMAP_TLL_ULPI_INTERFACE_CTRL (   num)    (0x807 + 0x100 * num)

Definition at line 76 of file omap-usb-tll.c.

#define OMAP_TLL_ULPI_OTG_CTRL (   num)    (0x80A + 0x100 * num)

Definition at line 77 of file omap-usb-tll.c.

#define OMAP_TLL_ULPI_SCRATCH_REGISTER (   num)    (0x816 + 0x100 * num)

Definition at line 83 of file omap-usb-tll.c.

#define OMAP_USBTLL_IRQENABLE   (0x1C)

Definition at line 46 of file omap-usb-tll.c.

#define OMAP_USBTLL_IRQSTATUS   (0x18)

Definition at line 45 of file omap-usb-tll.c.

#define OMAP_USBTLL_REV1   0x00000015 /* OMAP3 */

Definition at line 92 of file omap-usb-tll.c.

#define OMAP_USBTLL_REV2   0x00000018 /* OMAP 3630 */

Definition at line 93 of file omap-usb-tll.c.

#define OMAP_USBTLL_REV3   0x00000004 /* OMAP4 */

Definition at line 94 of file omap-usb-tll.c.

#define OMAP_USBTLL_REVISION   (0x00)

Definition at line 34 of file omap-usb-tll.c.

#define OMAP_USBTLL_SYSCONFIG   (0x10)

Definition at line 35 of file omap-usb-tll.c.

#define OMAP_USBTLL_SYSCONFIG_AUTOIDLE   (1 << 0)

Definition at line 40 of file omap-usb-tll.c.

#define OMAP_USBTLL_SYSCONFIG_CACTIVITY   (1 << 8)

Definition at line 36 of file omap-usb-tll.c.

#define OMAP_USBTLL_SYSCONFIG_ENAWAKEUP   (1 << 2)

Definition at line 38 of file omap-usb-tll.c.

#define OMAP_USBTLL_SYSCONFIG_SIDLEMODE   (1 << 3)

Definition at line 37 of file omap-usb-tll.c.

#define OMAP_USBTLL_SYSCONFIG_SOFTRESET   (1 << 1)

Definition at line 39 of file omap-usb-tll.c.

#define OMAP_USBTLL_SYSSTATUS   (0x14)

Definition at line 42 of file omap-usb-tll.c.

#define OMAP_USBTLL_SYSSTATUS_RESETDONE   (1 << 0)

Definition at line 43 of file omap-usb-tll.c.

#define USBTLL_DRIVER_NAME   "usbhs_tll"

omap-usb-tll.c - The USB TLL driver for OMAP EHCI & OHCI

Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com Author: Keshava Munegowda kesha.nosp@m.va_m.nosp@m.gowda.nosp@m.@ti..nosp@m.com

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 of the License as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition at line 31 of file omap-usb-tll.c.

Function Documentation

EXPORT_SYMBOL_GPL ( omap_tll_enable  )
EXPORT_SYMBOL_GPL ( omap_tll_disable  )
fs_initcall ( omap_usbtll_drvinit  )
MODULE_ALIAS ( "platform:"  USBHS_DRIVER_NAME)
MODULE_AUTHOR ( "Keshava Munegowda <[email protected]>"  )
MODULE_DESCRIPTION ( "usb tll driver for TI OMAP EHCI and OHCI controllers"  )
module_exit ( omap_usbtll_drvexit  )
MODULE_LICENSE ( "GPL v2 )
int omap_tll_disable ( void  )

Definition at line 440 of file omap-usb-tll.c.

int omap_tll_enable ( void  )

Definition at line 430 of file omap-usb-tll.c.

Variable Documentation

Definition at line 109 of file omap-usb-tll.c.

const char usbtll_driver_name[] = USBTLL_DRIVER_NAME

Definition at line 108 of file omap-usb-tll.c.