📄 usb_otg.h
字号:
/************************************************************** * Philips OTG module for USB OTG controller * * (c) 2002 Koninklijke Philips Electronics N.V., All rights reserved * * This source code and any compilation or derivative thereof is the * proprietary information of Koninklijke Philips Electronics N.V. * and is confidential in nature. * Under no circumstances is this software to be exposed to or placed * under an Open Source License of any type without the expressed * written permission of Koninklijke Philips Electronics N.V. * * File Name: usb_otg.h * * History: * * Version Date Author Comments * ------------------------------------------------- * 1.0 09/23/02 SYARRA Initial Creation * **************************************************************/#ifndef __USB_OTG_H__#define __USB_OTG_H__typedef struct { int action;} usb_otg_notif_t;/* status_code values in usb_otg_info_t structure */#define OTG_STATUS_NONE 0x00 /* No status */#define OTG_STATUS_TIMEOUT 0x01 /* Protocol Timeout */#define OTG_STATUS_VBUS_ERR 0x02 /* VBUS error for A device */#define OTG_STATUS_ENUM_SUCCESS 0x03 /* Remote OTG device enumerated successfully */#define OTG_STATUS_ENUM_FAILED 0x04 /* Remote OTG device enumeration failed *//* action values */#define OTG_NOTIF_STATE_CHANGE 0typedef struct { unsigned char id; unsigned char state; unsigned char status_code;} usb_otg_info_t;/* state values */// The following five are used as commands by Application to change state#define OTG_IDLE 0#define OTG_HOST 1#define OTG_PERIPHERAL 2#define OTG_BUS_DROP 3#define OTG_BUS_OPEN 4/* Complete State values */#define OTG_A_DEV_BASE 0x10#define OTG_B_DEV_BASE 0x0#define OTG_WAIT_RMT_CON 3#define OTG_INV_STATE 0xFF/* Application abstraction states */#define OTG_A_IDLE (OTG_A_DEV_BASE + OTG_IDLE)#define OTG_A_HOST (OTG_A_DEV_BASE + OTG_HOST)#define OTG_A_PERIPHERAL (OTG_A_DEV_BASE + OTG_PERIPHERAL)#define OTG_B_IDLE (OTG_B_DEV_BASE + OTG_IDLE)#define OTG_B_HOST (OTG_B_DEV_BASE + OTG_HOST)#define OTG_B_PERIPHERAL (OTG_B_DEV_BASE + OTG_PERIPHERAL)/* Additional SW FSM States */#define OTG_A_WAIT_BCON (OTG_A_DEV_BASE + OTG_WAIT_RMT_CON)#define OTG_A_WAIT_VRISE (OTG_A_DEV_BASE + 4)#define OTG_A_SUSPEND (OTG_A_DEV_BASE + 5)#define OTG_A_WAIT_VFALL (OTG_A_DEV_BASE + 6)#define OTG_A_VBUS_ERR (OTG_A_DEV_BASE + 7)#define OTG_A_LAST_STATE (OTG_A_VBUS_ERR + 1)#define OTG_B_WAIT_ACON (OTG_B_DEV_BASE + OTG_WAIT_RMT_CON)#define OTG_B_SRP_INIT (OTG_B_DEV_BASE + 4)#define OTG_B_LAST_STATE (OTG_B_SRP_INIT + 1)#define USB_OTG_MAJOR 244#define USB_OTG_MODULE_NAME "usb-otgfsm"/* usb-otg device IOCTL VALUES */#define OTG_IOC_MAGIC 'o'#define OTG_IOC_GET_STATE _IOR(OTG_IOC_MAGIC, 0, usb_otg_info_t)#define OTG_IOC_SET_STATE _IOW(OTG_IOC_MAGIC, 1, usb_otg_info_t)extern void usb_otg_receive_notif(usb_otg_notif_t *notif);extern void* usb_otg_register_dcd(void *dcd_priv);extern void usb_otg_set_hnp(void *otg_priv, unsigned char feature);#ifdef __KERNEL__#include "otg_fsm.h"typedef struct { usb_otg_info_t status; otg_fsm_t fsm_data; struct fasync_struct *fasync_q; unsigned long notif_mem; /* Application notification memory area */}usb_otgdev_t;extern void usb_otgdev_async_notif(usb_otgdev_t *otgdev);extern usb_otgdev_t *usb_otgdev;#define otg_bus(fsm) ((usb_otgdev_t*)fsm->usb_otg_data)->dev#endif /* __KERNEL__ */#define USB_OTG_VERSION "1.0"#define DRIVER_AUTHOR "philips Semiconductors"#define DRIVER_DESC "Philips USB OTG Driver"#endif /* __USB_OTG__H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -