Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
  1/*
  2 * Copyright (C) 2014 Freescale Semiconductor, Inc.
  3 *
  4 * Author: Jun Li
  5 *
  6 * This program is free software; you can redistribute it and/or modify
  7 * it under the terms of the GNU General Public License version 2 as
  8 * published by the Free Software Foundation.
  9 */
 10
 11#ifndef __DRIVERS_USB_CHIPIDEA_OTG_FSM_H
 12#define __DRIVERS_USB_CHIPIDEA_OTG_FSM_H
 13
 14#include <linux/usb/otg-fsm.h>
 15
 16/*
 17 *  A-DEVICE timing  constants
 18 */
 19
 20/* Wait for VBUS Rise  */
 21#define TA_WAIT_VRISE        (100)	/* a_wait_vrise: section 7.1.2
 22					 * a_wait_vrise_tmr: section 7.4.5.1
 23					 * TA_VBUS_RISE <= 100ms, section 4.4
 24					 * Table 4-1: Electrical Characteristics
 25					 * ->DC Electrical Timing
 26					 */
 27/* Wait for VBUS Fall  */
 28#define TA_WAIT_VFALL        (1000)	/* a_wait_vfall: section 7.1.7
 29					 * a_wait_vfall_tmr: section: 7.4.5.2
 30					 */
 31/* Wait for B-Connect */
 32#define TA_WAIT_BCON         (10000)	/* a_wait_bcon: section 7.1.3
 33					 * TA_WAIT_BCON: should be between 1100
 34					 * and 30000 ms, section 5.5, Table 5-1
 35					 */
 36/* A-Idle to B-Disconnect */
 37#define TA_AIDL_BDIS         (5000)	/* a_suspend min 200 ms, section 5.2.1
 38					 * TA_AIDL_BDIS: section 5.5, Table 5-1
 39					 */
 40/* B-Idle to A-Disconnect */
 41#define TA_BIDL_ADIS         (500)	/* TA_BIDL_ADIS: section 5.2.1
 42					 * 500ms is used for B switch to host
 43					 * for safe
 44					 */
 45
 46/*
 47 * B-device timing constants
 48 */
 49
 50/* Data-Line Pulse Time*/
 51#define TB_DATA_PLS          (10)	/* b_srp_init,continue 5~10ms
 52					 * section:5.1.3
 53					 */
 54/* SRP Fail Time  */
 55#define TB_SRP_FAIL          (6000)	/* b_srp_init,fail time 5~6s
 56					 * section:5.1.6
 57					 */
 58/* A-SE0 to B-Reset  */
 59#define TB_ASE0_BRST         (155)	/* minimum 155 ms, section:5.3.1 */
 60/* SE0 Time Before SRP */
 61#define TB_SE0_SRP           (1000)	/* b_idle,minimum 1s, section:5.1.2 */
 62/* SSEND time before SRP */
 63#define TB_SSEND_SRP         (1500)	/* minimum 1.5 sec, section:5.1.2 */
 64
 65#define TB_AIDL_BDIS         (20)	/* 4ms ~ 150ms, section 5.2.1 */
 66
 67#if IS_ENABLED(CONFIG_USB_OTG_FSM)
 68
 69int ci_hdrc_otg_fsm_init(struct ci_hdrc *ci);
 70int ci_otg_fsm_work(struct ci_hdrc *ci);
 71irqreturn_t ci_otg_fsm_irq(struct ci_hdrc *ci);
 72void ci_hdrc_otg_fsm_start(struct ci_hdrc *ci);
 73void ci_hdrc_otg_fsm_remove(struct ci_hdrc *ci);
 74
 75#else
 76
 77static inline int ci_hdrc_otg_fsm_init(struct ci_hdrc *ci)
 78{
 79	return 0;
 80}
 81
 82static inline int ci_otg_fsm_work(struct ci_hdrc *ci)
 83{
 84	return -ENXIO;
 85}
 86
 87static inline irqreturn_t ci_otg_fsm_irq(struct ci_hdrc *ci)
 88{
 89	return IRQ_NONE;
 90}
 91
 92static inline void ci_hdrc_otg_fsm_start(struct ci_hdrc *ci)
 93{
 94
 95}
 96
 97static inline void ci_hdrc_otg_fsm_remove(struct ci_hdrc *ci)
 98{
 99
100}
101
102#endif
103
104#endif /* __DRIVERS_USB_CHIPIDEA_OTG_FSM_H */