Re: [PATCH 1/9] usb: chipidea: usbmisc: Add USB Host support for i.MX25/i.MX35 CPUs

2014-03-10 Thread Fabio Estevam
Hi Denis,

On Mon, Mar 10, 2014 at 8:16 AM, Fabio Estevam  wrote:

> Denis,
>
> Could you please resend 4/9 by changing the clocks nodes in the OTG
> and Host1 ports as shown above?

Thinking more about it, it would be better to send the USB clock
change as a separate patch.

I can submit the dts changes to the linux-arm-kernel list later today.

Regards,

Fabio Estevam
--
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 1/9] usb: chipidea: usbmisc: Add USB Host support for i.MX25/i.MX35 CPUs

2014-03-10 Thread Fabio Estevam
Hi Eric,

On Mon, Mar 10, 2014 at 2:55 AM, Eric Bénard  wrote:
> Hi Fabio,

>> (Not sure why it says full-speed device. When I connect the same
>> device to a PC it says high-speed)
>>
> because i.MX25 and i.MX35 only have a full speed phy on the host port.

This makes sense, thanks.
--
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 1/9] usb: chipidea: usbmisc: Add USB Host support for i.MX25/i.MX35 CPUs

2014-03-10 Thread Fabio Estevam
Hi Alexander,

On Mon, Mar 10, 2014 at 1:58 AM, Alexander Shiyan  wrote:

> Fabio, start with to make work USB port on your board in the bootloader.
> Then with the previous driver (ehci-mxc).
> Most likely problem is a wrong (or missing) clock.
> As I mentioned earlier, DTS has incorrect clock nodes.

Yes, you are right, thanks.

If I change the usb host clocks as:

-   clocks = <&clks 9>, <&clks 70>, <&clks 8>;
-   clock-names = "ipg", "ahb", "per";
+   clocks = <&clks 70>;

Then USB host1 works fine on my mx25pdk board.

Denis,

Could you please resend 4/9 by changing the clocks nodes in the OTG
and Host1 ports as shown above?

Thanks,

Fabio Estevam
--
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 1/9] usb: chipidea: usbmisc: Add USB Host support for i.MX25/i.MX35 CPUs

2014-03-09 Thread Eric Bénard
Hi Fabio,

Le Sun, 9 Mar 2014 22:21:59 -0300,
Fabio Estevam  a écrit :
> On Fri, Mar 7, 2014 at 2:04 PM, Denis Carikli  wrote:
> 
> > +static int usbmisc_imx25_init(struct imx_usbmisc_data *data)
> > +{
> > +   void __iomem *reg = NULL;
> 
> This variable is not used and causes a warning. Please remove it.
> 
> After applying this patch things go further when I boot with a USB
> thumb connected to the USB Host1 port:
> 
> ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
> usbcore: registered new interface driver usb-storage
> 53ff4400.usb supply vbus not found, using dummy regulator
> ci_hdrc ci_hdrc.0: EHCI Host Controller
> ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
> ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
> hub 1-0:1.0: USB hub found
> hub 1-0:1.0: 1 port detected
> 
> 
> usb 1-1: new full-speed USB device number 2 using ci_hdrc
> 
> (Not sure why it says full-speed device. When I connect the same
> device to a PC it says high-speed)
> 
because i.MX25 and i.MX35 only have a full speed phy on the host port.

Eric
--
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 1/9] usb: chipidea: usbmisc: Add USB Host support for i.MX25/i.MX35 CPUs

2014-03-09 Thread Alexander Shiyan
Воскресенье,  9 марта 2014, 22:21 -03:00 от Fabio Estevam :
> Hi Denis,
> 
> On Fri, Mar 7, 2014 at 2:04 PM, Denis Carikli  wrote:
> 
> > +static int usbmisc_imx25_init(struct imx_usbmisc_data *data)
> > +{
> > +   void __iomem *reg = NULL;
> 
> This variable is not used and causes a warning. Please remove it.
> 
> After applying this patch things go further when I boot with a USB
> thumb connected to the USB Host1 port:
...
> (Not sure why it says full-speed device. When I connect the same
> device to a PC it says high-speed)
...
> (Then system hangs here).
> 
> If I boot without the USB thumb connected, then I reach the prompt,
> however after inserting the USB pen drive into USBH1 there is no
> detection.
> 
> Any ideas?

Fabio, start with to make work USB port on your board in the bootloader.
Then with the previous driver (ehci-mxc).
Most likely problem is a wrong (or missing) clock.
As I mentioned earlier, DTS has incorrect clock nodes.

---


Re: [PATCH 1/9] usb: chipidea: usbmisc: Add USB Host support for i.MX25/i.MX35 CPUs

2014-03-09 Thread Peter Chen
On Sat, Mar 08, 2014 at 09:32:15AM +0400, Alexander Shiyan wrote:
> Пятница,  7 марта 2014, 18:04 +01:00 от Denis Carikli :
> > Signed-off-by: Denis Carikli 
> > ---
> >  drivers/usb/chipidea/usbmisc_imx.c |   59 
> > 
> >  1 file changed, 59 insertions(+)
> > 
> > diff --git a/drivers/usb/chipidea/usbmisc_imx.c 
> > b/drivers/usb/chipidea/usbmisc_imx.c
> > index cd061ab..d956ad0 100644
> > --- a/drivers/usb/chipidea/usbmisc_imx.c
> > +++ b/drivers/usb/chipidea/usbmisc_imx.c
> ...
> > +   val = readl(usbmisc->base);
> > +   val &= ~(MX25_OTG_SIC_MASK | MX25_OTG_PP_BIT);
> > +   val |= (MXC_EHCI_INTERFACE_DIFF_UNI & MXC_EHCI_INTERFACE_MASK) 
> > << MX25_OTG_SIC_SHIFT;
> > +   val |= (MX25_OTG_PM_BIT | MX25_OTG_OCPOL_BIT);
> > +   writel(val, usbmisc->base);
> 
> At the moment, we only enable/disable interface and manage overcurrent option
> in the usbmisc driver.
> Is it worth it to handle type of interface here?
> 

All usb related things which are not included at chipidea core can be in
usbmisc driver.

-- 

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 1/9] usb: chipidea: usbmisc: Add USB Host support for i.MX25/i.MX35 CPUs

2014-03-09 Thread Fabio Estevam
Hi Denis,

On Fri, Mar 7, 2014 at 2:04 PM, Denis Carikli  wrote:

> +static int usbmisc_imx25_init(struct imx_usbmisc_data *data)
> +{
> +   void __iomem *reg = NULL;

This variable is not used and causes a warning. Please remove it.

After applying this patch things go further when I boot with a USB
thumb connected to the USB Host1 port:

ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
usbcore: registered new interface driver usb-storage
53ff4400.usb supply vbus not found, using dummy regulator
ci_hdrc ci_hdrc.0: EHCI Host Controller
ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected


usb 1-1: new full-speed USB device number 2 using ci_hdrc

(Not sure why it says full-speed device. When I connect the same
device to a PC it says high-speed)

usb 1-1: not running at top speed; connect to a high speed hub
usb-storage 1-1:1.0: USB Mass Storage device detected
usb-storage 1-1:1.0: Quirks match for vid 0457 pid 0151: 80
scsi0 : usb-storage 1-1:1.0
scsi 0:0:0:0: Direct-Access Ut163USB2FlashStorage 0.00 PQ: 0 ANSI: 2
sd 0:0:0:0: [sda] 248000 512-byte logical blocks: (126 MB/121 MiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Asking for cache data failed
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Asking for cache data failed
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1
sd 0:0:0:0: [sda] Asking for cache data failed
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI removable disk
fec 50038000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
Sending DHCP requests ., OK
IP-Config: Got DHCP answer from 192.168.0.1, my address is 192.168.0.8
IP-Config: Complete:
 device=eth0, hwaddr=00:04:00:00:00:00, ipaddr=192.168.0.8, mask=255.255.251
 host=192.168.0.8, domain=, nis-domain=(none)
 bootserver=192.168.0.1, rootserver=192.168.0.2, rootpath=
 nameserver0=192.168.0.1
ALSA device list:
  No soundcards found.
VFS: Mounted root (nfs filesystem) readonly on device 0:13.
devtmpfs: mounted
Freeing unused kernel memory: 276K (c0697000 - c06dc000)
starting pid 536, tty '': '/etc/rc.d/rcS'
Mounting /proc and /sys
Starting the hotplug events dispatcher udevd
Synthesizing initial hotplug events
imx-sdma 53fd4000.sdma: firmware not found

(Then system hangs here).

If I boot without the USB thumb connected, then I reach the prompt,
however after inserting the USB pen drive into USBH1 there is no
detection.

Any ideas?

Thanks,

Fabio Estevam
--
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 1/9] usb: chipidea: usbmisc: Add USB Host support for i.MX25/i.MX35 CPUs

2014-03-07 Thread Alexander Shiyan
Пятница,  7 марта 2014, 18:04 +01:00 от Denis Carikli :
> Signed-off-by: Denis Carikli 
> ---
>  drivers/usb/chipidea/usbmisc_imx.c |   59 
> 
>  1 file changed, 59 insertions(+)
> 
> diff --git a/drivers/usb/chipidea/usbmisc_imx.c 
> b/drivers/usb/chipidea/usbmisc_imx.c
> index cd061ab..d956ad0 100644
> --- a/drivers/usb/chipidea/usbmisc_imx.c
> +++ b/drivers/usb/chipidea/usbmisc_imx.c
...
> + val = readl(usbmisc->base);
> + val &= ~(MX25_OTG_SIC_MASK | MX25_OTG_PP_BIT);
> + val |= (MXC_EHCI_INTERFACE_DIFF_UNI & MXC_EHCI_INTERFACE_MASK) 
> << MX25_OTG_SIC_SHIFT;
> + val |= (MX25_OTG_PM_BIT | MX25_OTG_OCPOL_BIT);
> + writel(val, usbmisc->base);

At the moment, we only enable/disable interface and manage overcurrent option
in the usbmisc driver.
Is it worth it to handle type of interface here?

---
N�r��yb�X��ǧv�^�)޺{.n�+{��^n�r���z���h�&���G���h�(�階�ݢj"���m��z�ޖ���f���h���~�m�

Re: [PATCH 1/9] usb: chipidea: usbmisc: Add USB Host support for i.MX25/i.MX35 CPUs

2014-03-07 Thread Sergei Shtylyov

Hello.

On 03/07/2014 08:04 PM, Denis Carikli wrote:


Signed-off-by: Denis Carikli 
---
  drivers/usb/chipidea/usbmisc_imx.c |   59 
  1 file changed, 59 insertions(+)



diff --git a/drivers/usb/chipidea/usbmisc_imx.c 
b/drivers/usb/chipidea/usbmisc_imx.c
index cd061ab..d956ad0 100644
--- a/drivers/usb/chipidea/usbmisc_imx.c
+++ b/drivers/usb/chipidea/usbmisc_imx.c
@@ -21,6 +21,26 @@
  #define MX25_USB_PHY_CTRL_OFFSET  0x08
  #define MX25_BM_EXTERNAL_VBUS_DIVIDER BIT(23)

+#define MXC_EHCI_INTERFACE_SINGLE_UNI  (2 << 0)
+#define MXC_EHCI_INTERFACE_DIFF_UNI(0 << 0)
+#define MXC_EHCI_INTERFACE_MASK(0xf)
+
+#define MX25_OTG_SIC_SHIFT 29
+#define MX25_OTG_SIC_MASK  (0x3 << MX25_OTG_SIC_SHIFT)
+#define MX25_OTG_PM_BITBIT(24)
+#define MX25_OTG_PP_BITBIT(11)
+#define MX25_OTG_OCPOL_BIT (1 << 3)


   Hm, why not BIT(3). Though frankly speaking, I don't think (x << n) macros 
go together well with BIT() ones.



+
+#define MX25_H1_SIC_SHIFT  21
+#define MX25_H1_SIC_MASK   (0x3 << MX25_H1_SIC_SHIFT)
+#define MX25_H1_PP_BIT BIT(18)
+#define MX25_H1_PM_BIT BIT(16)
+#define MX25_H1_IPPUE_UP_BIT   BIT(7)
+#define MX25_H1_IPPUE_DOWN_BIT BIT(6)
+#define MX25_H1_TLL_BITBIT(5)
+#define MX25_H1_USBTE_BIT  BIT(4)
+#define MX25_H1_OCPOL_BIT  (1 << 2)


   BIT(2)?

WBR, Sergei

--
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 1/9] usb: chipidea: usbmisc: Add USB Host support for i.MX25/i.MX35 CPUs

2014-03-07 Thread Denis Carikli
Signed-off-by: Denis Carikli 
---
 drivers/usb/chipidea/usbmisc_imx.c |   59 
 1 file changed, 59 insertions(+)

diff --git a/drivers/usb/chipidea/usbmisc_imx.c 
b/drivers/usb/chipidea/usbmisc_imx.c
index cd061ab..d956ad0 100644
--- a/drivers/usb/chipidea/usbmisc_imx.c
+++ b/drivers/usb/chipidea/usbmisc_imx.c
@@ -21,6 +21,26 @@
 #define MX25_USB_PHY_CTRL_OFFSET   0x08
 #define MX25_BM_EXTERNAL_VBUS_DIVIDER  BIT(23)
 
+#define MXC_EHCI_INTERFACE_SINGLE_UNI  (2 << 0)
+#define MXC_EHCI_INTERFACE_DIFF_UNI(0 << 0)
+#define MXC_EHCI_INTERFACE_MASK(0xf)
+
+#define MX25_OTG_SIC_SHIFT 29
+#define MX25_OTG_SIC_MASK  (0x3 << MX25_OTG_SIC_SHIFT)
+#define MX25_OTG_PM_BITBIT(24)
+#define MX25_OTG_PP_BITBIT(11)
+#define MX25_OTG_OCPOL_BIT (1 << 3)
+
+#define MX25_H1_SIC_SHIFT  21
+#define MX25_H1_SIC_MASK   (0x3 << MX25_H1_SIC_SHIFT)
+#define MX25_H1_PP_BIT BIT(18)
+#define MX25_H1_PM_BIT BIT(16)
+#define MX25_H1_IPPUE_UP_BIT   BIT(7)
+#define MX25_H1_IPPUE_DOWN_BIT BIT(6)
+#define MX25_H1_TLL_BITBIT(5)
+#define MX25_H1_USBTE_BIT  BIT(4)
+#define MX25_H1_OCPOL_BIT  (1 << 2)
+
 #define MX27_H1_PM_BIT BIT(8)
 #define MX27_H2_PM_BIT BIT(16)
 #define MX27_OTG_PM_BITBIT(24)
@@ -50,6 +70,40 @@ struct imx_usbmisc {
 
 static struct imx_usbmisc *usbmisc;
 
+static int usbmisc_imx25_init(struct imx_usbmisc_data *data)
+{
+   void __iomem *reg = NULL;
+   unsigned long flags;
+   u32 val = 0;
+
+   if (data->index > 1)
+   return -EINVAL;
+
+   spin_lock_irqsave(&usbmisc->lock, flags);
+   switch (data->index) {
+   case 0:
+   val = readl(usbmisc->base);
+   val &= ~(MX25_OTG_SIC_MASK | MX25_OTG_PP_BIT);
+   val |= (MXC_EHCI_INTERFACE_DIFF_UNI & MXC_EHCI_INTERFACE_MASK) 
<< MX25_OTG_SIC_SHIFT;
+   val |= (MX25_OTG_PM_BIT | MX25_OTG_OCPOL_BIT);
+   writel(val, usbmisc->base);
+   break;
+   case 1:
+   val = readl(usbmisc->base);
+   val &= ~(MX25_H1_SIC_MASK | MX25_H1_PP_BIT |  
MX25_H1_IPPUE_UP_BIT);
+   val |= (MXC_EHCI_INTERFACE_SINGLE_UNI & 
MXC_EHCI_INTERFACE_MASK) << MX25_H1_SIC_SHIFT;
+   val |= (MX25_H1_PM_BIT | MX25_H1_OCPOL_BIT | MX25_H1_TLL_BIT |
+   MX25_H1_USBTE_BIT | MX25_H1_IPPUE_DOWN_BIT);
+
+   writel(val, usbmisc->base);
+
+   break;
+   }
+   spin_unlock_irqrestore(&usbmisc->lock, flags);
+
+   return 0;
+}
+
 static int usbmisc_imx25_post(struct imx_usbmisc_data *data)
 {
void __iomem *reg;
@@ -159,6 +213,7 @@ static int usbmisc_imx6q_init(struct imx_usbmisc_data *data)
 }
 
 static const struct usbmisc_ops imx25_usbmisc_ops = {
+   .init = usbmisc_imx25_init,
.post = usbmisc_imx25_post,
 };
 
@@ -200,6 +255,10 @@ static const struct of_device_id usbmisc_imx_dt_ids[] = {
.data = &imx25_usbmisc_ops,
},
{
+   .compatible = "fsl,imx35-usbmisc",
+   .data = &imx25_usbmisc_ops,
+   },
+   {
.compatible = "fsl,imx27-usbmisc",
.data = &imx27_usbmisc_ops,
},
-- 
1.7.9.5

--
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