static void ssusb_rscs_exit(struct ssusb_mtk *ssusb) { ssusb_clks_disable(ssusb); regulator_disable(ssusb->vusb33); ssusb_phy_power_off(ssusb); ssusb_phy_exit(ssusb); }
/* * when support dual-role mode, we reject suspend when * it works as device mode; */ static int __maybe_unused mtu3_suspend(struct device *dev) { struct ssusb_mtk *ssusb = dev_get_drvdata(dev); dev_dbg(dev, "%s\n", __func__); /* REVISIT: disconnect it for only device mode? */ if (!ssusb->is_host) return 0; ssusb_host_disable(ssusb, true); ssusb_phy_power_off(ssusb); ssusb_clks_disable(ssusb); ssusb_wakeup_set(ssusb, true); return 0; }