• Home
  • Raw
  • Download

Lines Matching +full:otg +full:- +full:rev

1 /* SPDX-License-Identifier: GPL-2.0 */
3 * ci.h - common structures, functions, and macros of the ChipIdea driver
5 * Copyright (C) 2008 Chipidea - MIPS Technologies, Inc. All rights reserved.
17 #include <linux/usb/otg-fsm.h>
18 #include <linux/usb/otg.h>
75 * struct ci_hw_ep - endpoint representation
126 * struct ci_role_driver - host/gadget role driver
140 * struct hw_bank - hardware register mapping representation
160 * struct ci_hdrc - chipidea device representation
167 * @is_otg: if the device is otg-capable
168 * @fsm: otg finite state machine
169 * @otg_fsm_hrtimer: hrtimer for otg fsm timers
170 * @hr_timeouts: time out list for active otg fsm timers
171 * @enabled_otg_timer_bits: bits of enabled otg timers
188 * @remote_wakeup: host-enabled remote wakeup
206 * @rev: The revision number for controller
217 struct usb_otg otg; member
260 enum ci_revision rev; member
266 BUG_ON(ci->role >= CI_ROLE_END || !ci->roles[ci->role]); in ci_role()
267 return ci->roles[ci->role]; in ci_role()
275 return -EINVAL; in ci_role_start()
277 if (!ci->roles[role]) in ci_role_start()
278 return -ENXIO; in ci_role_start()
280 ret = ci->roles[role]->start(ci); in ci_role_start()
282 ci->role = role; in ci_role_start()
288 enum ci_role role = ci->role; in ci_role_stop()
293 ci->role = CI_ROLE_END; in ci_role_stop()
295 ci->roles[role]->stop(ci); in ci_role_stop()
300 if (ci->role == CI_ROLE_HOST) in ci_role_to_usb_role()
302 else if (ci->role == CI_ROLE_GADGET && ci->vbus_active) in ci_role_to_usb_role()
328 return ioread32(ci->hw_bank.abs + offset) & mask; in hw_read_id_reg()
342 data = (ioread32(ci->hw_bank.abs + offset) & ~mask) in hw_write_id_reg()
345 iowrite32(data, ci->hw_bank.abs + offset); in hw_write_id_reg()
358 return ioread32(ci->hw_bank.regmap[reg]) & mask; in hw_read()
375 if (ci->imx28_write_fix) in __hw_write()
392 data = (ioread32(ci->hw_bank.regmap[reg]) & ~mask) in hw_write()
395 __hw_write(ci, data, ci->hw_bank.regmap[reg]); in hw_write()
409 u32 val = ioread32(ci->hw_bank.regmap[reg]) & mask; in hw_test_and_clear()
411 __hw_write(ci, val, ci->hw_bank.regmap[reg]); in hw_test_and_clear()
434 * ci_otg_is_fsm_mode: runtime check if otg controller
435 * is in otg fsm mode.
442 struct usb_otg_caps *otg_caps = &ci->platdata->ci_otg_caps; in ci_otg_is_fsm_mode()
444 return ci->is_otg && ci->roles[CI_ROLE_HOST] && in ci_otg_is_fsm_mode()
445 ci->roles[CI_ROLE_GADGET] && (otg_caps->srp_support || in ci_otg_is_fsm_mode()
446 otg_caps->hnp_support || otg_caps->adp_support); in ci_otg_is_fsm_mode()