Commit 1a76b634 authored by Xu Yang's avatar Xu Yang Committed by Greg Kroah-Hartman
Browse files

usb: chipidea: imx: add imx_usbmisc_pullup() hook



It's used to do other pullup related operations if needs.

Signed-off-by: default avatarXu Yang <xu.yang_2@nxp.com>
Acked-by: default avatarPeter Chen <peter.chen@kernel.org>
Link: https://lore.kernel.org/r/20250614125645.207732-3-xu.yang_2@nxp.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 78c76554
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -37,5 +37,6 @@ int imx_usbmisc_hsic_set_connect(struct imx_usbmisc_data *data);
int imx_usbmisc_charger_detection(struct imx_usbmisc_data *data, bool connect);
int imx_usbmisc_suspend(struct imx_usbmisc_data *data, bool wakeup);
int imx_usbmisc_resume(struct imx_usbmisc_data *data, bool wakeup);
int imx_usbmisc_pullup(struct imx_usbmisc_data *data, bool on);

#endif /* __DRIVER_USB_CHIPIDEA_CI_HDRC_IMX_H */
+18 −0
Original line number Diff line number Diff line
@@ -170,6 +170,9 @@ struct usbmisc_ops {
	int (*charger_detection)(struct imx_usbmisc_data *data);
	/* It's called when system resume from usb power lost */
	int (*power_lost_check)(struct imx_usbmisc_data *data);
	/* It's called when device controller changed pullup status */
	void (*pullup)(struct imx_usbmisc_data *data, bool on);
	/* It's called during suspend/resume to save power */
	void (*vbus_comparator_on)(struct imx_usbmisc_data *data, bool on);
};

@@ -1225,6 +1228,21 @@ int imx_usbmisc_charger_detection(struct imx_usbmisc_data *data, bool connect)
}
EXPORT_SYMBOL_GPL(imx_usbmisc_charger_detection);

int imx_usbmisc_pullup(struct imx_usbmisc_data *data, bool on)
{
	struct imx_usbmisc *usbmisc;

	if (!data)
		return 0;

	usbmisc = dev_get_drvdata(data->dev);
	if (usbmisc->ops->pullup)
		usbmisc->ops->pullup(data, on);

	return 0;
}
EXPORT_SYMBOL_GPL(imx_usbmisc_pullup);

int imx_usbmisc_suspend(struct imx_usbmisc_data *data, bool wakeup)
{
	struct imx_usbmisc *usbmisc;