USB: isp1760: don't auto disable Port1 on ISP1761
There is no need to disable port 1 on ISP1761. That port could be used as an OTG port which would require a different init sequence. However we don't have OTG support (yet) so we can use it as a normal USB port. This patch allows port 1 to be used a normal Port on the ISP1761. Signed-off-by: Thomas Hommel <Thomas.Hommel@gefanuc.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
281b064f23
commit
42c65396d4
|
@ -435,14 +435,13 @@ static int isp1760_hc_setup(struct usb_hcd *hcd)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PORT 1 Control register of the ISP1760 is the OTG control
|
* PORT 1 Control register of the ISP1760 is the OTG control
|
||||||
* register on ISP1761.
|
* register on ISP1761. Since there is no OTG or device controller
|
||||||
|
* support in this driver, we use port 1 as a "normal" USB host port on
|
||||||
|
* both chips.
|
||||||
*/
|
*/
|
||||||
if (!(priv->devflags & ISP1760_FLAG_ISP1761) &&
|
isp1760_writel(PORT1_POWER | PORT1_INIT2,
|
||||||
!(priv->devflags & ISP1760_FLAG_PORT1_DIS)) {
|
hcd->regs + HC_PORT1_CTRL);
|
||||||
isp1760_writel(PORT1_POWER | PORT1_INIT2,
|
mdelay(10);
|
||||||
hcd->regs + HC_PORT1_CTRL);
|
|
||||||
mdelay(10);
|
|
||||||
}
|
|
||||||
|
|
||||||
priv->hcs_params = isp1760_readl(hcd->regs + HC_HCSPARAMS);
|
priv->hcs_params = isp1760_readl(hcd->regs + HC_HCSPARAMS);
|
||||||
|
|
||||||
|
|
|
@ -135,7 +135,6 @@ typedef void (packet_enqueue)(struct usb_hcd *hcd, struct isp1760_qh *qh,
|
||||||
* indicate the most "atypical" case, so that a devflags of 0 is
|
* indicate the most "atypical" case, so that a devflags of 0 is
|
||||||
* a sane default configuration.
|
* a sane default configuration.
|
||||||
*/
|
*/
|
||||||
#define ISP1760_FLAG_PORT1_DIS 0x00000001 /* Port 1 disabled */
|
|
||||||
#define ISP1760_FLAG_BUS_WIDTH_16 0x00000002 /* 16-bit data bus width */
|
#define ISP1760_FLAG_BUS_WIDTH_16 0x00000002 /* 16-bit data bus width */
|
||||||
#define ISP1760_FLAG_OTG_EN 0x00000004 /* Port 1 supports OTG */
|
#define ISP1760_FLAG_OTG_EN 0x00000004 /* Port 1 supports OTG */
|
||||||
#define ISP1760_FLAG_ANALOG_OC 0x00000008 /* Analog overcurrent */
|
#define ISP1760_FLAG_ANALOG_OC 0x00000008 /* Analog overcurrent */
|
||||||
|
|
|
@ -60,9 +60,6 @@ static int of_isp1760_probe(struct of_device *dev,
|
||||||
if (of_device_is_compatible(dp, "nxp,usb-isp1761"))
|
if (of_device_is_compatible(dp, "nxp,usb-isp1761"))
|
||||||
devflags |= ISP1760_FLAG_ISP1761;
|
devflags |= ISP1760_FLAG_ISP1761;
|
||||||
|
|
||||||
if (of_get_property(dp, "port1-disable", NULL) != NULL)
|
|
||||||
devflags |= ISP1760_FLAG_PORT1_DIS;
|
|
||||||
|
|
||||||
/* Some systems wire up only 16 of the 32 data lines */
|
/* Some systems wire up only 16 of the 32 data lines */
|
||||||
prop = of_get_property(dp, "bus-width", NULL);
|
prop = of_get_property(dp, "bus-width", NULL);
|
||||||
if (prop && *prop == 16)
|
if (prop && *prop == 16)
|
||||||
|
|
Loading…
Reference in a new issue