On Mon, Nov 05, 2012 at 09:43:32AM +0900, Kuninori Morimoto wrote: > Current rcar-phy driver used iowerite32/ioread32, > but it cause compile error on some architectures. > This patch used writel/readl and HAS_IOMEM to solve this issue. > > drivers/usb/phy/rcar-phy.c: In function 'rcar_usb_phy_init': > drivers/usb/phy/rcar-phy.c:75:3: error: implicit declaration of function\ > 'iowrite32' [-Werror=implicit-function-declaration] > drivers/usb/phy/rcar-phy.c:83:4: error: implicit declaration of function\ > 'ioread32' [-Werror=implicit-function-declaration] > > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > --- > >> Felipe > > Sorry for late response. > Does this patch solve the issue ? probably, I'll leave this here for a while long and if nobody complains will apply it. > drivers/usb/phy/Kconfig | 1 + > drivers/usb/phy/rcar-phy.c | 26 +++++++++++++------------- > 2 files changed, 14 insertions(+), 13 deletions(-) > > diff --git a/drivers/usb/phy/Kconfig b/drivers/usb/phy/Kconfig > index 7eb73c5..39f920b 100644 > --- a/drivers/usb/phy/Kconfig > +++ b/drivers/usb/phy/Kconfig > @@ -36,6 +36,7 @@ config MV_U3D_PHY > config USB_RCAR_PHY > tristate "Renesas R-Car USB phy support" > depends on USB || USB_GADGET > + depends on HAS_IOMEM > select USB_OTG_UTILS > help > Say Y here to add support for the Renesas R-Car USB phy driver. > diff --git a/drivers/usb/phy/rcar-phy.c b/drivers/usb/phy/rcar-phy.c > index 792f505..0096660c 100644 > --- a/drivers/usb/phy/rcar-phy.c > +++ b/drivers/usb/phy/rcar-phy.c > @@ -72,15 +72,15 @@ static int rcar_usb_phy_init(struct usb_phy *phy) > */ > > /* (1) USB-PHY standby release */ > - iowrite32(PHY_ENB, (reg0 + USBPCTRL1)); > + writel(PHY_ENB, (reg0 + USBPCTRL1)); > > /* (2) start USB-PHY internal PLL */ > - iowrite32(PHY_ENB | PLL_ENB, (reg0 + USBPCTRL1)); > + writel(PHY_ENB | PLL_ENB, (reg0 + USBPCTRL1)); > > /* (3) USB module status check */ > for (i = 0; i < 1024; i++) { > udelay(10); > - val = ioread32(reg0 + USBST); > + val = readl(reg0 + USBST); > if (val == (ST_ACT | ST_PLL)) > break; > } > @@ -91,10 +91,10 @@ static int rcar_usb_phy_init(struct usb_phy *phy) > } > > /* (4) USB-PHY reset clear */ > - iowrite32(PHY_ENB | PLL_ENB | PHY_RST, (reg0 + USBPCTRL1)); > + writel(PHY_ENB | PLL_ENB | PHY_RST, (reg0 + USBPCTRL1)); > > /* set platform specific port settings */ > - iowrite32(0x00000000, (reg0 + USBPCTRL0)); > + writel(0x00000000, (reg0 + USBPCTRL0)); > > /* > * EHCI IP internal buffer setting > @@ -103,21 +103,21 @@ static int rcar_usb_phy_init(struct usb_phy *phy) > * These are recommended value of a datasheet > * see [USB :: EHCI internal buffer setting] > */ > - iowrite32(0x00ff0040, (reg0 + EIIBC1)); > - iowrite32(0x00ff0040, (reg1 + EIIBC1)); > + writel(0x00ff0040, (reg0 + EIIBC1)); > + writel(0x00ff0040, (reg1 + EIIBC1)); > > - iowrite32(0x00000001, (reg0 + EIIBC2)); > - iowrite32(0x00000001, (reg1 + EIIBC2)); > + writel(0x00000001, (reg0 + EIIBC2)); > + writel(0x00000001, (reg1 + EIIBC2)); > > /* > * Bus alignment settings > */ > > /* (1) EHCI bus alignment (little endian) */ > - iowrite32(0x00000000, (reg0 + USBEH0)); > + writel(0x00000000, (reg0 + USBEH0)); > > /* (1) OHCI bus alignment (little endian) */ > - iowrite32(0x00000000, (reg0 + USBOH0)); > + writel(0x00000000, (reg0 + USBOH0)); > } > > phy_init_end: > @@ -135,8 +135,8 @@ static void rcar_usb_phy_shutdown(struct usb_phy *phy) > spin_lock_irqsave(&priv->lock, flags); > > if (priv->counter-- == 1) { /* last user */ > - iowrite32(0x00000000, (reg0 + USBPCTRL0)); > - iowrite32(0x00000000, (reg0 + USBPCTRL1)); > + writel(0x00000000, (reg0 + USBPCTRL0)); > + writel(0x00000000, (reg0 + USBPCTRL1)); > } > > spin_unlock_irqrestore(&priv->lock, flags); > -- > 1.7.9.5 > -- balbi
Attachment:
signature.asc
Description: Digital signature