Re: [PATCH v2 1/2] usb: chipidea: usbmisc: Add support for i.MX27/i.MX31 CPUs

2013-12-04 Thread Peter Chen
On Tue, Nov 26, 2013 at 07:36:49PM +0400, Alexander Shiyan wrote:
 This adds i.MX27 and i.MX31 as the next user of the usbmisc driver.
 
 Signed-off-by: Alexander Shiyan shc_w...@mail.ru
 ---
  drivers/usb/chipidea/usbmisc_imx.c | 42 
 ++
  1 file changed, 42 insertions(+)
 
 diff --git a/drivers/usb/chipidea/usbmisc_imx.c 
 b/drivers/usb/chipidea/usbmisc_imx.c
 index 8a1094b..4381c5a6 100644
 --- a/drivers/usb/chipidea/usbmisc_imx.c
 +++ b/drivers/usb/chipidea/usbmisc_imx.c
 @@ -21,6 +21,10 @@
  #define MX25_USB_PHY_CTRL_OFFSET 0x08
  #define MX25_BM_EXTERNAL_VBUS_DIVIDERBIT(23)
  
 +#define MX27_H1_PM_BIT   BIT(8)
 +#define MX27_H2_PM_BIT   BIT(16)
 +#define MX27_OTG_PM_BIT  BIT(24)
 +
  #define MX53_USB_OTG_PHY_CTRL_0_OFFSET   0x08
  #define MX53_USB_UH2_CTRL_OFFSET 0x14
  #define MX53_USB_UH3_CTRL_OFFSET 0x18
 @@ -68,6 +72,36 @@ static int usbmisc_imx25_post(struct imx_usbmisc_data 
 *data)
   return 0;
  }
  
 +static int usbmisc_imx27_init(struct imx_usbmisc_data *data)
 +{
 + unsigned long flags;
 + u32 val;
 +
 + switch (data-index) {
 + case 0:
 + val = MX27_OTG_PM_BIT;
 + break;
 + case 1:
 + val = MX27_H1_PM_BIT;
 + break;
 + case 2:
 + val = MX27_H2_PM_BIT;
 + break;
 + default:
 + return -EINVAL;
 + };
 +
 + spin_lock_irqsave(usbmisc-lock, flags);
 + if (data-disable_oc)
 + val = readl(usbmisc-base) | val;
 + else
 + val = readl(usbmisc-base)  ~val;
 + writel(val, usbmisc-base);
 + spin_unlock_irqrestore(usbmisc-lock, flags);
 +
 + return 0;
 +}
 +
  static int usbmisc_imx53_init(struct imx_usbmisc_data *data)
  {
   void __iomem *reg = NULL;
 @@ -128,6 +162,10 @@ static const struct usbmisc_ops imx25_usbmisc_ops = {
   .post = usbmisc_imx25_post,
  };
  
 +static const struct usbmisc_ops imx27_usbmisc_ops = {
 + .init = usbmisc_imx27_init,
 +};
 +
  static const struct usbmisc_ops imx53_usbmisc_ops = {
   .init = usbmisc_imx53_init,
  };
 @@ -162,6 +200,10 @@ static const struct of_device_id usbmisc_imx_dt_ids[] = {
   .data = imx25_usbmisc_ops,
   },
   {
 + .compatible = fsl,imx27-usbmisc,
 + .data = imx27_usbmisc_ops,
 + },
 + {
   .compatible = fsl,imx53-usbmisc,
   .data = imx53_usbmisc_ops,
   },
 -- 
 1.8.3.2
 
 

Applied, thanks.

-- 

Best Regards,
Peter Chen

--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH v2 1/2] usb: chipidea: usbmisc: Add support for i.MX27/i.MX31 CPUs

2013-11-29 Thread Peter Chen

 
 
 This adds i.MX27 and i.MX31 as the next user of the usbmisc driver.
 
 Signed-off-by: Alexander Shiyan shc_w...@mail.ru
 ---
  drivers/usb/chipidea/usbmisc_imx.c | 42
 ++
  1 file changed, 42 insertions(+)
 
 diff --git a/drivers/usb/chipidea/usbmisc_imx.c
 b/drivers/usb/chipidea/usbmisc_imx.c
 index 8a1094b..4381c5a6 100644
 --- a/drivers/usb/chipidea/usbmisc_imx.c
 +++ b/drivers/usb/chipidea/usbmisc_imx.c
 @@ -21,6 +21,10 @@
  #define MX25_USB_PHY_CTRL_OFFSET 0x08
  #define MX25_BM_EXTERNAL_VBUS_DIVIDERBIT(23)
 
 +#define MX27_H1_PM_BIT   BIT(8)
 +#define MX27_H2_PM_BIT   BIT(16)
 +#define MX27_OTG_PM_BIT  BIT(24)
 +
  #define MX53_USB_OTG_PHY_CTRL_0_OFFSET   0x08
  #define MX53_USB_UH2_CTRL_OFFSET 0x14
  #define MX53_USB_UH3_CTRL_OFFSET 0x18
 @@ -68,6 +72,36 @@ static int usbmisc_imx25_post(struct imx_usbmisc_data
 *data)
   return 0;
  }
 
 +static int usbmisc_imx27_init(struct imx_usbmisc_data *data)
 +{
 + unsigned long flags;
 + u32 val;
 +
 + switch (data-index) {
 + case 0:
 + val = MX27_OTG_PM_BIT;
 + break;
 + case 1:
 + val = MX27_H1_PM_BIT;
 + break;
 + case 2:
 + val = MX27_H2_PM_BIT;
 + break;
 + default:
 + return -EINVAL;
 + };
 +
 + spin_lock_irqsave(usbmisc-lock, flags);
 + if (data-disable_oc)
 + val = readl(usbmisc-base) | val;
 + else
 + val = readl(usbmisc-base)  ~val;
 + writel(val, usbmisc-base);
 + spin_unlock_irqrestore(usbmisc-lock, flags);
 +
 + return 0;
 +}
 +
  static int usbmisc_imx53_init(struct imx_usbmisc_data *data)
  {
   void __iomem *reg = NULL;
 @@ -128,6 +162,10 @@ static const struct usbmisc_ops imx25_usbmisc_ops =
 {
   .post = usbmisc_imx25_post,
  };
 
 +static const struct usbmisc_ops imx27_usbmisc_ops = {
 + .init = usbmisc_imx27_init,
 +};
 +
  static const struct usbmisc_ops imx53_usbmisc_ops = {
   .init = usbmisc_imx53_init,
  };
 @@ -162,6 +200,10 @@ static const struct of_device_id usbmisc_imx_dt_ids[]
 = {
   .data = imx25_usbmisc_ops,
   },
   {
 + .compatible = fsl,imx27-usbmisc,
 + .data = imx27_usbmisc_ops,
 + },
 + {
   .compatible = fsl,imx53-usbmisc,
   .data = imx53_usbmisc_ops,
   },
 --
Acked-by: Peter Chen peter.c...@freescale.com

Peter

--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/2] usb: chipidea: usbmisc: Add support for i.MX27/i.MX31 CPUs

2013-11-29 Thread Chris Ruehl



On Tuesday, November 26, 2013 11:36 PM, Alexander Shiyan wrote:

This adds i.MX27 and i.MX31 as the next user of the usbmisc driver.

Signed-off-by: Alexander Shiyanshc_w...@mail.ru
---
  drivers/usb/chipidea/usbmisc_imx.c | 42 ++
  1 file changed, 42 insertions(+)

diff --git a/drivers/usb/chipidea/usbmisc_imx.c 
b/drivers/usb/chipidea/usbmisc_imx.c
index 8a1094b..4381c5a6 100644
--- a/drivers/usb/chipidea/usbmisc_imx.c
+++ b/drivers/usb/chipidea/usbmisc_imx.c
@@ -21,6 +21,10 @@
  #define MX25_USB_PHY_CTRL_OFFSET  0x08
  #define MX25_BM_EXTERNAL_VBUS_DIVIDER BIT(23)

+#define MX27_H1_PM_BIT BIT(8)
+#define MX27_H2_PM_BIT BIT(16)
+#define MX27_OTG_PM_BITBIT(24)
+
  #define MX53_USB_OTG_PHY_CTRL_0_OFFSET0x08
  #define MX53_USB_UH2_CTRL_OFFSET  0x14
  #define MX53_USB_UH3_CTRL_OFFSET  0x18
@@ -68,6 +72,36 @@ static int usbmisc_imx25_post(struct imx_usbmisc_data *data)
return 0;
  }

+static int usbmisc_imx27_init(struct imx_usbmisc_data *data)
+{
+   unsigned long flags;
+   u32 val;
+
+   switch (data-index) {
+   case 0:
+   val = MX27_OTG_PM_BIT;
+   break;
+   case 1:
+   val = MX27_H1_PM_BIT;
+   break;
+   case 2:
+   val = MX27_H2_PM_BIT;
+   break;
+   default:
+   return -EINVAL;
+   };
+
+   spin_lock_irqsave(usbmisc-lock, flags);
+   if (data-disable_oc)
+   val = readl(usbmisc-base) | val;
+   else
+   val = readl(usbmisc-base)  ~val;
+   writel(val, usbmisc-base);
+   spin_unlock_irqrestore(usbmisc-lock, flags);
+
+   return 0;
+}
+
  static int usbmisc_imx53_init(struct imx_usbmisc_data *data)
  {
void __iomem *reg = NULL;
@@ -128,6 +162,10 @@ static const struct usbmisc_ops imx25_usbmisc_ops = {
.post = usbmisc_imx25_post,
  };

+static const struct usbmisc_ops imx27_usbmisc_ops = {
+   .init = usbmisc_imx27_init,
+};
+
  static const struct usbmisc_ops imx53_usbmisc_ops = {
.init = usbmisc_imx53_init,
  };
@@ -162,6 +200,10 @@ static const struct of_device_id usbmisc_imx_dt_ids[] = {
.data =imx25_usbmisc_ops,
},
{
+   .compatible = fsl,imx27-usbmisc,
+   .data =imx27_usbmisc_ops,
+   },
+   {
.compatible = fsl,imx53-usbmisc,
.data =imx53_usbmisc_ops,
},


Tested and works fine.

Acked-by: Chris Ruehl chris.ru...@gtsys.com.hk

Regards
Chris
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 1/2] usb: chipidea: usbmisc: Add support for i.MX27/i.MX31 CPUs

2013-11-26 Thread Alexander Shiyan
This adds i.MX27 and i.MX31 as the next user of the usbmisc driver.

Signed-off-by: Alexander Shiyan shc_w...@mail.ru
---
 drivers/usb/chipidea/usbmisc_imx.c | 42 ++
 1 file changed, 42 insertions(+)

diff --git a/drivers/usb/chipidea/usbmisc_imx.c 
b/drivers/usb/chipidea/usbmisc_imx.c
index 8a1094b..4381c5a6 100644
--- a/drivers/usb/chipidea/usbmisc_imx.c
+++ b/drivers/usb/chipidea/usbmisc_imx.c
@@ -21,6 +21,10 @@
 #define MX25_USB_PHY_CTRL_OFFSET   0x08
 #define MX25_BM_EXTERNAL_VBUS_DIVIDER  BIT(23)
 
+#define MX27_H1_PM_BIT BIT(8)
+#define MX27_H2_PM_BIT BIT(16)
+#define MX27_OTG_PM_BITBIT(24)
+
 #define MX53_USB_OTG_PHY_CTRL_0_OFFSET 0x08
 #define MX53_USB_UH2_CTRL_OFFSET   0x14
 #define MX53_USB_UH3_CTRL_OFFSET   0x18
@@ -68,6 +72,36 @@ static int usbmisc_imx25_post(struct imx_usbmisc_data *data)
return 0;
 }
 
+static int usbmisc_imx27_init(struct imx_usbmisc_data *data)
+{
+   unsigned long flags;
+   u32 val;
+
+   switch (data-index) {
+   case 0:
+   val = MX27_OTG_PM_BIT;
+   break;
+   case 1:
+   val = MX27_H1_PM_BIT;
+   break;
+   case 2:
+   val = MX27_H2_PM_BIT;
+   break;
+   default:
+   return -EINVAL;
+   };
+
+   spin_lock_irqsave(usbmisc-lock, flags);
+   if (data-disable_oc)
+   val = readl(usbmisc-base) | val;
+   else
+   val = readl(usbmisc-base)  ~val;
+   writel(val, usbmisc-base);
+   spin_unlock_irqrestore(usbmisc-lock, flags);
+
+   return 0;
+}
+
 static int usbmisc_imx53_init(struct imx_usbmisc_data *data)
 {
void __iomem *reg = NULL;
@@ -128,6 +162,10 @@ static const struct usbmisc_ops imx25_usbmisc_ops = {
.post = usbmisc_imx25_post,
 };
 
+static const struct usbmisc_ops imx27_usbmisc_ops = {
+   .init = usbmisc_imx27_init,
+};
+
 static const struct usbmisc_ops imx53_usbmisc_ops = {
.init = usbmisc_imx53_init,
 };
@@ -162,6 +200,10 @@ static const struct of_device_id usbmisc_imx_dt_ids[] = {
.data = imx25_usbmisc_ops,
},
{
+   .compatible = fsl,imx27-usbmisc,
+   .data = imx27_usbmisc_ops,
+   },
+   {
.compatible = fsl,imx53-usbmisc,
.data = imx53_usbmisc_ops,
},
-- 
1.8.3.2

--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html