Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c84d364f authored by Felipe Balbi's avatar Felipe Balbi
Browse files

usb: xceiv: nop: let it work as USB2 and USB3 phy



We add a platform_data to pass the desired mode
for the nop-xceiv so it can work on USB2 and USB3
modes.

Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 78c289f8
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -95,7 +95,9 @@ static int nop_set_host(struct usb_otg *otg, struct usb_bus *host)

static int __devinit nop_usb_xceiv_probe(struct platform_device *pdev)
{
	struct nop_usb_xceiv_platform_data *pdata = pdev->dev.platform_data;
	struct nop_usb_xceiv	*nop;
	enum usb_phy_type	type = USB_PHY_TYPE_USB2;
	int err;

	nop = kzalloc(sizeof *nop, GFP_KERNEL);
@@ -108,6 +110,9 @@ static int __devinit nop_usb_xceiv_probe(struct platform_device *pdev)
		return -ENOMEM;
	}

	if (pdata)
		type = pdata->type;

	nop->dev		= &pdev->dev;
	nop->phy.dev		= nop->dev;
	nop->phy.label		= "nop-xceiv";
@@ -118,7 +123,7 @@ static int __devinit nop_usb_xceiv_probe(struct platform_device *pdev)
	nop->phy.otg->set_host		= nop_set_host;
	nop->phy.otg->set_peripheral	= nop_set_peripheral;

	err = usb_add_phy(&nop->phy, USB_PHY_TYPE_USB2);
	err = usb_add_phy(&nop->phy, type);
	if (err) {
		dev_err(&pdev->dev, "can't register transceiver, err: %d\n",
			err);
+6 −0
Original line number Diff line number Diff line
#ifndef __LINUX_USB_NOP_XCEIV_H
#define __LINUX_USB_NOP_XCEIV_H

#include <linux/usb/otg.h>

struct nop_usb_xceiv_platform_data {
	enum usb_phy_type type;
};

#if defined(CONFIG_NOP_USB_XCEIV) || (defined(CONFIG_NOP_USB_XCEIV_MODULE) && defined(MODULE))
/* sometimes transceivers are accessed only through e.g. ULPI */
extern void usb_nop_xceiv_register(void);