| /** | |
| * debug.h - DesignWare USB3 DRD Controller Debug Header | |
| * | |
| * Copyright (C) 2010-2011 Texas Instruments Incorporated - http://www.ti.com | |
| * | |
| * Authors: Felipe Balbi <balbi@ti.com>, | |
| * Sebastian Andrzej Siewior <bigeasy@linutronix.de> | |
| * | |
| * 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. | |
| */ | |
| #ifndef __DWC3_DEBUG_H | |
| #define __DWC3_DEBUG_H | |
| #include "core.h" | |
| /** | |
| * dwc3_gadget_ep_cmd_string - returns endpoint command string | |
| * @cmd: command code | |
| */ | |
| static inline const char * | |
| dwc3_gadget_ep_cmd_string(u8 cmd) | |
| { | |
| switch (cmd) { | |
| case DWC3_DEPCMD_DEPSTARTCFG: | |
| return "Start New Configuration"; | |
| case DWC3_DEPCMD_ENDTRANSFER: | |
| return "End Transfer"; | |
| case DWC3_DEPCMD_UPDATETRANSFER: | |
| return "Update Transfer"; | |
| case DWC3_DEPCMD_STARTTRANSFER: | |
| return "Start Transfer"; | |
| case DWC3_DEPCMD_CLEARSTALL: | |
| return "Clear Stall"; | |
| case DWC3_DEPCMD_SETSTALL: | |
| return "Set Stall"; | |
| case DWC3_DEPCMD_GETEPSTATE: | |
| return "Get Endpoint State"; | |
| case DWC3_DEPCMD_SETTRANSFRESOURCE: | |
| return "Set Endpoint Transfer Resource"; | |
| case DWC3_DEPCMD_SETEPCONFIG: | |
| return "Set Endpoint Configuration"; | |
| default: | |
| return "UNKNOWN command"; | |
| } | |
| } | |
| /** | |
| * dwc3_gadget_generic_cmd_string - returns generic command string | |
| * @cmd: command code | |
| */ | |
| static inline const char * | |
| dwc3_gadget_generic_cmd_string(u8 cmd) | |
| { | |
| switch (cmd) { | |
| case DWC3_DGCMD_SET_LMP: | |
| return "Set LMP"; | |
| case DWC3_DGCMD_SET_PERIODIC_PAR: | |
| return "Set Periodic Parameters"; | |
| case DWC3_DGCMD_XMIT_FUNCTION: | |
| return "Transmit Function Wake Device Notification"; | |
| case DWC3_DGCMD_SET_SCRATCHPAD_ADDR_LO: | |
| return "Set Scratchpad Buffer Array Address Lo"; | |
| case DWC3_DGCMD_SET_SCRATCHPAD_ADDR_HI: | |
| return "Set Scratchpad Buffer Array Address Hi"; | |
| case DWC3_DGCMD_SELECTED_FIFO_FLUSH: | |
| return "Selected FIFO Flush"; | |
| case DWC3_DGCMD_ALL_FIFO_FLUSH: | |
| return "All FIFO Flush"; | |
| case DWC3_DGCMD_SET_ENDPOINT_NRDY: | |
| return "Set Endpoint NRDY"; | |
| case DWC3_DGCMD_RUN_SOC_BUS_LOOPBACK: | |
| return "Run SoC Bus Loopback Test"; | |
| default: | |
| return "UNKNOWN"; | |
| } | |
| } | |
| /** | |
| * dwc3_gadget_link_string - returns link name | |
| * @link_state: link state code | |
| */ | |
| static inline const char * | |
| dwc3_gadget_link_string(enum dwc3_link_state link_state) | |
| { | |
| switch (link_state) { | |
| case DWC3_LINK_STATE_U0: | |
| return "U0"; | |
| case DWC3_LINK_STATE_U1: | |
| return "U1"; | |
| case DWC3_LINK_STATE_U2: | |
| return "U2"; | |
| case DWC3_LINK_STATE_U3: | |
| return "U3"; | |
| case DWC3_LINK_STATE_SS_DIS: | |
| return "SS.Disabled"; | |
| case DWC3_LINK_STATE_RX_DET: | |
| return "RX.Detect"; | |
| case DWC3_LINK_STATE_SS_INACT: | |
| return "SS.Inactive"; | |
| case DWC3_LINK_STATE_POLL: | |
| return "Polling"; | |
| case DWC3_LINK_STATE_RECOV: | |
| return "Recovery"; | |
| case DWC3_LINK_STATE_HRESET: | |
| return "Hot Reset"; | |
| case DWC3_LINK_STATE_CMPLY: | |
| return "Compliance"; | |
| case DWC3_LINK_STATE_LPBK: | |
| return "Loopback"; | |
| case DWC3_LINK_STATE_RESET: | |
| return "Reset"; | |
| case DWC3_LINK_STATE_RESUME: | |
| return "Resume"; | |
| default: | |
| return "UNKNOWN link state\n"; | |
| } | |
| } | |
| /** | |
| * dwc3_gadget_event_string - returns event name | |
| * @event: the event code | |
| */ | |
| static inline const char *dwc3_gadget_event_string(u8 event) | |
| { | |
| switch (event) { | |
| case DWC3_DEVICE_EVENT_DISCONNECT: | |
| return "Disconnect"; | |
| case DWC3_DEVICE_EVENT_RESET: | |
| return "Reset"; | |
| case DWC3_DEVICE_EVENT_CONNECT_DONE: | |
| return "Connection Done"; | |
| case DWC3_DEVICE_EVENT_LINK_STATUS_CHANGE: | |
| return "Link Status Change"; | |
| case DWC3_DEVICE_EVENT_WAKEUP: | |
| return "WakeUp"; | |
| case DWC3_DEVICE_EVENT_EOPF: | |
| return "End-Of-Frame"; | |
| case DWC3_DEVICE_EVENT_SOF: | |
| return "Start-Of-Frame"; | |
| case DWC3_DEVICE_EVENT_ERRATIC_ERROR: | |
| return "Erratic Error"; | |
| case DWC3_DEVICE_EVENT_CMD_CMPL: | |
| return "Command Complete"; | |
| case DWC3_DEVICE_EVENT_OVERFLOW: | |
| return "Overflow"; | |
| } | |
| return "UNKNOWN"; | |
| } | |
| /** | |
| * dwc3_ep_event_string - returns event name | |
| * @event: then event code | |
| */ | |
| static inline const char *dwc3_ep_event_string(u8 event) | |
| { | |
| switch (event) { | |
| case DWC3_DEPEVT_XFERCOMPLETE: | |
| return "Transfer Complete"; | |
| case DWC3_DEPEVT_XFERINPROGRESS: | |
| return "Transfer In-Progress"; | |
| case DWC3_DEPEVT_XFERNOTREADY: | |
| return "Transfer Not Ready"; | |
| case DWC3_DEPEVT_RXTXFIFOEVT: | |
| return "FIFO"; | |
| case DWC3_DEPEVT_STREAMEVT: | |
| return "Stream"; | |
| case DWC3_DEPEVT_EPCMDCMPLT: | |
| return "Endpoint Command Complete"; | |
| } | |
| return "UNKNOWN"; | |
| } | |
| /** | |
| * dwc3_gadget_event_type_string - return event name | |
| * @event: the event code | |
| */ | |
| static inline const char *dwc3_gadget_event_type_string(u8 event) | |
| { | |
| switch (event) { | |
| case DWC3_DEVICE_EVENT_DISCONNECT: | |
| return "Disconnect"; | |
| case DWC3_DEVICE_EVENT_RESET: | |
| return "Reset"; | |
| case DWC3_DEVICE_EVENT_CONNECT_DONE: | |
| return "Connect Done"; | |
| case DWC3_DEVICE_EVENT_LINK_STATUS_CHANGE: | |
| return "Link Status Change"; | |
| case DWC3_DEVICE_EVENT_WAKEUP: | |
| return "Wake-Up"; | |
| case DWC3_DEVICE_EVENT_HIBER_REQ: | |
| return "Hibernation"; | |
| case DWC3_DEVICE_EVENT_EOPF: | |
| return "End of Periodic Frame"; | |
| case DWC3_DEVICE_EVENT_SOF: | |
| return "Start of Frame"; | |
| case DWC3_DEVICE_EVENT_ERRATIC_ERROR: | |
| return "Erratic Error"; | |
| case DWC3_DEVICE_EVENT_CMD_CMPL: | |
| return "Command Complete"; | |
| case DWC3_DEVICE_EVENT_OVERFLOW: | |
| return "Overflow"; | |
| default: | |
| return "UNKNOWN"; | |
| } | |
| } | |
| void dwc3_trace(void (*trace)(struct va_format *), const char *fmt, ...); | |
| #ifdef CONFIG_DEBUG_FS | |
| extern int dwc3_debugfs_init(struct dwc3 *); | |
| extern void dwc3_debugfs_exit(struct dwc3 *); | |
| #else | |
| static inline int dwc3_debugfs_init(struct dwc3 *d) | |
| { return 0; } | |
| static inline void dwc3_debugfs_exit(struct dwc3 *d) | |
| { } | |
| #endif | |
| #endif /* __DWC3_DEBUG_H */ |