1d9958306SNishad Kamdar /* SPDX-License-Identifier: GPL-2.0 */ 2c10b4f03SPeter Chen /* 35332ff1fSPeter Chen * Copyright (C) 2013-2014 Freescale Semiconductor, Inc. 4c10b4f03SPeter Chen * 5c10b4f03SPeter Chen * Author: Peter Chen 6c10b4f03SPeter Chen */ 7c10b4f03SPeter Chen 8c10b4f03SPeter Chen #ifndef __DRIVERS_USB_CHIPIDEA_OTG_H 9c10b4f03SPeter Chen #define __DRIVERS_USB_CHIPIDEA_OTG_H 10c10b4f03SPeter Chen 110c33bf78SLi Jun u32 hw_read_otgsc(struct ci_hdrc *ci, u32 mask); 120c33bf78SLi Jun void hw_write_otgsc(struct ci_hdrc *ci, u32 mask, u32 data); 13c10b4f03SPeter Chen int ci_hdrc_otg_init(struct ci_hdrc *ci); 14cbec6bd5SPeter Chen void ci_hdrc_otg_destroy(struct ci_hdrc *ci); 15cbec6bd5SPeter Chen enum ci_role ci_otg_role(struct ci_hdrc *ci); 16a107f8c5SPeter Chen void ci_handle_vbus_change(struct ci_hdrc *ci); 17*74494b33SXu Yang void ci_handle_id_switch(struct ci_hdrc *ci); ci_otg_queue_work(struct ci_hdrc * ci)18be6b0c1bSPeter Chenstatic inline void ci_otg_queue_work(struct ci_hdrc *ci) 19be6b0c1bSPeter Chen { 20be6b0c1bSPeter Chen disable_irq_nosync(ci->irq); 218b97d73cSLoic Poulain if (queue_work(ci->wq, &ci->work) == false) 228b97d73cSLoic Poulain enable_irq(ci->irq); 23be6b0c1bSPeter Chen } 24c10b4f03SPeter Chen 25c10b4f03SPeter Chen #endif /* __DRIVERS_USB_CHIPIDEA_OTG_H */ 26