uboot/drivers/usb/musb/musb_hcd.h
<<
>>
Prefs
   1/*
   2 * Mentor USB OTG Core host controller driver.
   3 *
   4 * Copyright (c) 2008 Texas Instruments
   5 *
   6 * This program is free software; you can redistribute it and/or
   7 * modify it under the terms of the GNU General Public License as
   8 * published by the Free Software Foundation; either version 2 of
   9 * the License, or (at your option) any later version.
  10 *
  11 * This program is distributed in the hope that it will be useful,
  12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 * GNU General Public License for more details.
  15 *
  16 * You should have received a copy of the GNU General Public License
  17 * along with this program; if not, write to the Free Software
  18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  19 * MA 02111-1307 USA
  20 *
  21 * Author: Thomas Abraham t-abraham@ti.com, Texas Instruments
  22 */
  23
  24#ifndef __MUSB_HCD_H__
  25#define __MUSB_HCD_H__
  26
  27#include "musb_core.h"
  28#ifdef CONFIG_USB_KEYBOARD
  29#include <stdio_dev.h>
  30extern unsigned char new[];
  31#endif
  32
  33#ifndef CONFIG_MUSB_TIMEOUT
  34# define CONFIG_MUSB_TIMEOUT 100000
  35#endif
  36
  37/* This defines the endpoint number used for control transfers */
  38#define MUSB_CONTROL_EP 0
  39
  40/* This defines the endpoint number used for bulk transfer */
  41#ifndef MUSB_BULK_EP
  42# define MUSB_BULK_EP 1
  43#endif
  44
  45/* This defines the endpoint number used for interrupt transfer */
  46#define MUSB_INTR_EP 2
  47
  48/* Determine the operating speed of MUSB core */
  49#define musb_ishighspeed() \
  50        ((readb(&musbr->power) & MUSB_POWER_HSMODE) \
  51                >> MUSB_POWER_HSMODE_SHIFT)
  52
  53#define min_t(type, x, y)       \
  54        ({ type __x = (x); type __y = (y); __x < __y ? __x : __y; })
  55
  56/* USB HUB CONSTANTS (not OHCI-specific; see hub.h) */
  57
  58/* destination of request */
  59#define RH_INTERFACE               0x01
  60#define RH_ENDPOINT                0x02
  61#define RH_OTHER                   0x03
  62
  63#define RH_CLASS                   0x20
  64#define RH_VENDOR                  0x40
  65
  66/* Requests: bRequest << 8 | bmRequestType */
  67#define RH_GET_STATUS           0x0080
  68#define RH_CLEAR_FEATURE        0x0100
  69#define RH_SET_FEATURE          0x0300
  70#define RH_SET_ADDRESS          0x0500
  71#define RH_GET_DESCRIPTOR       0x0680
  72#define RH_SET_DESCRIPTOR       0x0700
  73#define RH_GET_CONFIGURATION    0x0880
  74#define RH_SET_CONFIGURATION    0x0900
  75#define RH_GET_STATE            0x0280
  76#define RH_GET_INTERFACE        0x0A80
  77#define RH_SET_INTERFACE        0x0B00
  78#define RH_SYNC_FRAME           0x0C80
  79/* Our Vendor Specific Request */
  80#define RH_SET_EP               0x2000
  81
  82/* Hub port features */
  83#define RH_PORT_CONNECTION         0x00
  84#define RH_PORT_ENABLE             0x01
  85#define RH_PORT_SUSPEND            0x02
  86#define RH_PORT_OVER_CURRENT       0x03
  87#define RH_PORT_RESET              0x04
  88#define RH_PORT_POWER              0x08
  89#define RH_PORT_LOW_SPEED          0x09
  90
  91#define RH_C_PORT_CONNECTION       0x10
  92#define RH_C_PORT_ENABLE           0x11
  93#define RH_C_PORT_SUSPEND          0x12
  94#define RH_C_PORT_OVER_CURRENT     0x13
  95#define RH_C_PORT_RESET            0x14
  96
  97/* Hub features */
  98#define RH_C_HUB_LOCAL_POWER       0x00
  99#define RH_C_HUB_OVER_CURRENT      0x01
 100
 101#define RH_DEVICE_REMOTE_WAKEUP    0x00
 102#define RH_ENDPOINT_STALL          0x01
 103
 104#define RH_ACK                     0x01
 105#define RH_REQ_ERR                 -1
 106#define RH_NACK                    0x00
 107
 108/* extern functions */
 109extern int musb_platform_init(void);
 110extern void musb_platform_deinit(void);
 111
 112#endif  /* __MUSB_HCD_H__ */
 113