mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
usb: renesas_usbhs: add extcon notifier to set mode for non-otg channel
This patch adds extcon notifier callback to set the mode of host/peripheral by using extcon state (e.g phy-rcar-gen3-usb2) for non-otg channel (e.g. R-Car D3). [Fengguang Wu: fixed sparse warning] Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> usb: renesas_usbhs: usbhs_rcar3_notifier() can be static Fixes: 3a7cce26122e ("usb: renesas_usbhs: add extcon notifier to set mode for non-otg channel") Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
This commit is contained in:
parent
cd14247d5c
commit
8ada211d03
@ -581,6 +581,15 @@ static int usbhs_probe(struct platform_device *pdev)
|
||||
break;
|
||||
case USBHS_TYPE_RCAR_GEN3_WITH_PLL:
|
||||
priv->pfunc = usbhs_rcar3_with_pll_ops;
|
||||
if (!IS_ERR_OR_NULL(priv->edev)) {
|
||||
priv->nb.notifier_call = priv->pfunc.notifier;
|
||||
ret = devm_extcon_register_notifier(&pdev->dev,
|
||||
priv->edev,
|
||||
EXTCON_USB_HOST,
|
||||
&priv->nb);
|
||||
if (ret < 0)
|
||||
dev_err(&pdev->dev, "no notifier registered\n");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (!info->platform_callback.get_id) {
|
||||
|
@ -249,6 +249,7 @@ struct usbhs_priv {
|
||||
struct platform_device *pdev;
|
||||
|
||||
struct extcon_dev *edev;
|
||||
struct notifier_block nb;
|
||||
|
||||
spinlock_t lock;
|
||||
|
||||
|
@ -112,6 +112,16 @@ static int usbhs_rcar3_get_id(struct platform_device *pdev)
|
||||
return USBHS_GADGET;
|
||||
}
|
||||
|
||||
static int usbhs_rcar3_notifier(struct notifier_block *nb, unsigned long event,
|
||||
void *data)
|
||||
{
|
||||
struct usbhs_priv *priv = container_of(nb, struct usbhs_priv, nb);
|
||||
|
||||
usbhs_rcar3_set_usbsel(priv, !!event);
|
||||
|
||||
return NOTIFY_DONE;
|
||||
}
|
||||
|
||||
const struct renesas_usbhs_platform_callback usbhs_rcar3_ops = {
|
||||
.power_ctrl = usbhs_rcar3_power_ctrl,
|
||||
.get_id = usbhs_rcar3_get_id,
|
||||
@ -120,4 +130,5 @@ const struct renesas_usbhs_platform_callback usbhs_rcar3_ops = {
|
||||
const struct renesas_usbhs_platform_callback usbhs_rcar3_with_pll_ops = {
|
||||
.power_ctrl = usbhs_rcar3_power_and_pll_ctrl,
|
||||
.get_id = usbhs_rcar3_get_id,
|
||||
.notifier = usbhs_rcar3_notifier,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user