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

Commit 463c824b authored by Sergei Shtylyov's avatar Sergei Shtylyov Committed by Simon Horman
Browse files

phy-rcar-usb: remove EHCI internal buffer setup



Now that the EHCI internal  buffer setup is done by the platform code,  we  can
remove  such code from this driver as it  never  really belonged here.  We also
no longer need the 2nd memory region now (2nd EHCI controller is simply missing
in e.g. R8A7778 SoC).

The patch has been tested on the Marzen and BOCK-W boards.

Signed-off-by: default avatarSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Acked-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: default avatarFelipe Balbi <balbi@ti.com>
Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
parent 84a812da
Loading
Loading
Loading
Loading
+4 −24
Original line number Diff line number Diff line
@@ -23,8 +23,6 @@
#define USBEH0		0x080C
#define USBOH0		0x081C
#define USBCTL0		0x0858
#define EIIBC1		0x0094
#define EIIBC2		0x009C

/* USBPCTRL1 */
#define PHY_RST		(1 << 2)
@@ -40,7 +38,6 @@ struct rcar_usb_phy_priv {
	spinlock_t lock;

	void __iomem *reg0;
	void __iomem *reg1;
	int counter;
};

@@ -59,7 +56,6 @@ static int rcar_usb_phy_init(struct usb_phy *phy)
	struct rcar_usb_phy_priv *priv = usb_phy_to_priv(phy);
	struct device *dev = phy->dev;
	void __iomem *reg0 = priv->reg0;
	void __iomem *reg1 = priv->reg1;
	int i;
	u32 val;
	unsigned long flags;
@@ -96,19 +92,6 @@ static int rcar_usb_phy_init(struct usb_phy *phy)
		/* set platform specific port settings */
		iowrite32(0x00000000, (reg0 + USBPCTRL0));

		/*
		 * EHCI IP internal buffer setting
		 * EHCI IP internal buffer enable
		 *
		 * These are recommended value of a datasheet
		 * see [USB :: EHCI internal buffer setting]
		 */
		iowrite32(0x00ff0040, (reg0 + EIIBC1));
		iowrite32(0x00ff0040, (reg1 + EIIBC1));

		iowrite32(0x00000001, (reg0 + EIIBC2));
		iowrite32(0x00000001, (reg1 + EIIBC2));

		/*
		 * Bus alignment settings
		 */
@@ -145,14 +128,13 @@ static void rcar_usb_phy_shutdown(struct usb_phy *phy)
static int rcar_usb_phy_probe(struct platform_device *pdev)
{
	struct rcar_usb_phy_priv *priv;
	struct resource *res0, *res1;
	struct resource *res0;
	struct device *dev = &pdev->dev;
	void __iomem *reg0, *reg1;
	void __iomem *reg0;
	int ret;

	res0 = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	res1 = platform_get_resource(pdev, IORESOURCE_MEM, 1);
	if (!res0 || !res1) {
	if (!res0) {
		dev_err(dev, "Not enough platform resources\n");
		return -EINVAL;
	}
@@ -164,8 +146,7 @@ static int rcar_usb_phy_probe(struct platform_device *pdev)
	 * this driver can't use devm_request_and_ioremap(dev, res) here
	 */
	reg0 = devm_ioremap_nocache(dev, res0->start, resource_size(res0));
	reg1 = devm_ioremap_nocache(dev, res1->start, resource_size(res1));
	if (!reg0 || !reg1) {
	if (!reg0) {
		dev_err(dev, "ioremap error\n");
		return -ENOMEM;
	}
@@ -177,7 +158,6 @@ static int rcar_usb_phy_probe(struct platform_device *pdev)
	}

	priv->reg0		= reg0;
	priv->reg1		= reg1;
	priv->counter		= 0;
	priv->phy.dev		= dev;
	priv->phy.label		= dev_name(dev);