From: Marek Vasut <marek.vasut.n900@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v8 4/4] Add USB support for Efika
Date: Wed, 28 Sep 2011 17:20:13 +0200 [thread overview]
Message-ID: <1317223213.3682.2.camel@konomi> (raw)
In-Reply-To: <1317222457-18412-1-git-send-email-fermata7@gmail.com>
> This commit adds USB support for EfikaMX and EfikaSB.
>
> Signed-off-by: Jana Rapava <fermata7@gmail.com>
> Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
> Cc: Remy Bohmer <linux@bohmer.net>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
> Changes for v2:
>? ? - changed to proper patch
> Changes for v3:
>? ? - merged other USB patches from u-boot-pxa/efikasb
>? ? - offset-based access changed to struct-based access
>? ? - use {clrset,clr,set}bits_le32() calls
>? ? - CodingStyle and naming cleanup
> Changes for v4:
>? ? ? - split into patchset
>? ? ? - CodingStyle and naming cleanup
>? ? ? - remove endless loops
>? ? ? - silence compiler warnings
> Changes for v5:
>? ? ? ? ? - change order of arguments in ulpi* functions
>? ? ? ? ? - change type of reg argument
>? ? ? ? ? - rename offset macro
> Changes for v6:
>? ? ? ? ? ? - rebase on top of u-boot-imx/next
>? ? ? ? ? ? - cleanup of CodingStyle and comments
>? ? ? ? ? ? - use macro machine_is_efikasb()
>? ? ? ? ? ? - introduce header file efika.h
> Changes for v7:
>? ? ? ? ? ? ? - add proper header to efika.h
>? ? ? ? ? ? ? - include efika.h into efikamx.c
>? ? ? ? ? ? ? - check return values from ulpi_wait()
> Changes for v8:
> ??? - change the return value of ulpi_wait()
> ??? - CodingStyle cleanup
> ??? - add proper header to efikamx-usb.c
Dear Jana Rapava,
[...]
> +int ulpi_wait(struct usb_ehci *ehci, u32 ulpi_bit)
> +{
> +??? int timeout = ULPI_TIMEOUT;
> +??? u32 tmp;
> +
> +??? /* Wait for the ulpi_bit to become zero. */
> +??? while (--timeout) {
> +??? ??? tmp = readl(&ehci->ulpi_viewpoint);
> +??? ??? if (!(tmp & ulpi_bit))
> +??? ??? ??? break;
> +??? ??? WATCHDOG_RESET();
> +??? }
> +
> +??? if (!timeout)
> +??? ??? return -1;
> +??? else
> +??? ??? return tmp;
> +}
Won't 'return !timeout;' be enough?
Also, can you change 'ulpi_bit' to 'ulpi_mask'? That seems more appropriate.
Maybe this can be even changed to ulpi_wait(ehci, value_to_be_written, bit_to_be_polled), then you won't need those writel()s before every write to ulpi anymore.
> +
> +void ulpi_write(struct usb_ehci *ehci, u32 reg, u32 value)
> +{
> +??? if (!(readl(&ehci->ulpi_viewpoint) & ULPI_SS)) {
> +??? ??? writel(ULPI_WU, &ehci->ulpi_viewpoint);
> +??? ??? if (ulpi_wait(ehci, ULPI_WU) == -1)
> +??? ??? ??? printf("ULPI wakeup timed out\n");
> +??? }
> +
> +??? writel(ULPI_RWRUN | ULPI_RWCTRL |
> +??? ??? reg << ULPI_ADDR_SHIFT | ulpi_write_mask(value),
> +??? ??? &ehci->ulpi_viewpoint);
> +??? if (ulpi_wait(ehci, ULPI_RWRUN) == -1)
> +??? ??? printf("ULPI write timed out\n");
> +}
aha here - if(ulpi_wait(ehci, ULPI_RWRUN | ULPI_RWCTRL ..., uLPI_RWRUN))...
> +
> +u32 ulpi_read(struct usb_ehci *ehci, u32 reg)
> +{
> +??? u32 tmp;
> +??? if (!(readl(&ehci->ulpi_viewpoint) & ULPI_SS)) {
> +??? ??? writel(ULPI_WU, &ehci->ulpi_viewpoint);
> +??? ??? if (ulpi_wait(ehci, ULPI_WU) == -1)
> +??? ??? ??? printf("ULPI wakeup timed out\n");
> +??? }
> +
> +??? writel(ULPI_RWRUN | reg << ULPI_ADDR_SHIFT, &ehci->ulpi_viewpoint);
> +??? tmp = ulpi_wait(ehci, ULPI_RWRUN);
> +??? if (tmp == -1) {
> +??? ??? printf("ULPI read timed out\n");
> +??? ??? return 0;
> +??? }
> +??? return ulpi_read_mask(tmp);
> +}
> +
> +void ulpi_init(struct usb_ehci *ehci, struct mxc_ulpi_regs *ulpi)
> +{
> +??? u32 tmp = 0;
> +??? int reg, i;
> +
> +??? /* get ID from ULPI immediate registers */
> +??? for (reg = ULPI_ID_REGS_COUNT - 1; reg >= 0; reg--)
> +??? ??? tmp |= ulpi_read(ehci, reg) << (reg * 8);
Still (three revs already) no newline here!!
> +??? /* split into vendor and product ID */
> +??? debug("Found ULPI TX, ID %04x:%04x\n", tmp >> 16, tmp & 0xffff);
cheers
next prev parent reply other threads:[~2011-09-28 15:20 UTC|newest]
Thread overview: 108+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-08 21:06 [U-Boot] some USB cleanup on EfikaMX Jana Rapava
2011-09-08 22:32 ` Wolfgang Denk
2011-09-09 10:18 ` Stefano Babic
2011-09-12 17:20 ` [U-Boot] [PATCH 1/2 v2] USB cleanup for EfikaMX Jana Rapava
2011-09-12 19:25 ` Marek Vasut
2011-09-18 2:19 ` [U-Boot] [PATCH v3] Add USB support for Efika Jana Rapava
2011-09-18 2:33 ` Marek Vasut
2011-09-19 8:43 ` Stefano Babic
2011-09-19 10:30 ` Marek Vasut
2011-09-24 15:57 ` Remy Bohmer
2011-09-24 19:07 ` Fabio Estevam
2011-09-24 19:19 ` Marek Vasut
2011-09-24 21:22 ` Fabio Estevam
2011-09-22 5:18 ` Marek Vasut
2011-09-25 11:55 ` [U-Boot] [PATCH v4 1/5] EHCI: add callback ehci_fixup Jana Rapava
2011-09-25 11:55 ` [U-Boot] [PATCH v4 2/5] Add USB support for Efika Jana Rapava
2011-09-25 11:55 ` [U-Boot] [PATCH v4 3/5] /drivers/usb/host/ehci-mxc.c: naming cleanup Jana Rapava
2011-09-25 11:55 ` [U-Boot] [PATCH v4 4/5] USB: Add usb_event_poll() to get keyboards working with EHCI Jana Rapava
2011-09-25 12:02 ` Marek Vasut
2011-09-25 11:55 ` [U-Boot] [PATCH v4 5/5] USB: move ehci.h and ehci-core.h into /include/usb/ Jana Rapava
2011-09-27 10:45 ` [U-Boot] [PATCH v5 1/4] usb: Move ehci.h and ehci-core.h to include/usb directory Jana Rapava
2011-09-27 10:57 ` Fabio Estevam
2011-09-27 11:01 ` [U-Boot] [PATCH v5 2/4] EHCI: add callback ehci_fixup Jana Rapava
2011-09-27 11:01 ` [U-Boot] [PATCH v5 3/4] EHCI: adjust for mx5 Jana Rapava
2011-09-27 11:01 ` [U-Boot] [PATCH v5 4/4] Add USB support for Efika Jana Rapava
2011-09-27 11:50 ` Marek Vasut
2011-09-27 14:12 ` Jana Rapava
2011-09-27 14:55 ` Marek Vasut
2011-09-27 18:17 ` Jana Rapava
2011-09-27 18:20 ` Marek Vasut
2011-09-28 10:26 ` Stefano Babic
2011-09-28 12:12 ` Jana Rapava
2011-09-27 11:23 ` [U-Boot] [PATCH v5 2/4] EHCI: add callback ehci_fixup Marek Vasut
2011-09-27 11:42 ` Jana Rapava
2011-09-27 19:24 ` [U-Boot] [PATCH v6 " Jana Rapava
2011-09-27 19:24 ` [U-Boot] [PATCH v6 3/4] EHCI: adjust for mx5 Jana Rapava
2011-09-27 19:41 ` Marek Vasut
2011-09-27 20:19 ` Jana Rapava
2011-09-27 20:47 ` Marek Vasut
2011-09-27 19:24 ` [U-Boot] [PATCH v6 4/4] Add USB support for Efika Jana Rapava
2011-09-27 19:47 ` Marek Vasut
2011-09-27 20:40 ` Jana Rapava
2011-09-27 20:50 ` Marek Vasut
2011-09-27 19:40 ` [U-Boot] [PATCH v6 2/4] EHCI: add callback ehci_fixup Marek Vasut
2011-09-27 22:21 ` [U-Boot] [PATCH v7 " Jana Rapava
2011-09-27 22:21 ` [U-Boot] [PATCH v7 3/4] EHCI: adjust for mx5 Jana Rapava
2011-09-27 22:21 ` [U-Boot] [PATCH v7 4/4] Add USB support for Efika Jana Rapava
2011-09-28 0:43 ` Marek Vasut
2011-09-28 12:25 ` Jana Rapava
2011-09-28 12:28 ` Marek Vasut
2011-09-28 0:46 ` [U-Boot] [PATCH v7 2/4] EHCI: add callback ehci_fixup Marek Vasut
2011-09-28 10:54 ` Marek Vasut
2011-09-28 11:52 ` Jana Rapava
2011-09-28 12:13 ` Marek Vasut
2011-09-28 15:02 ` [U-Boot] [PATCH v8 " Jana Rapava
2011-09-28 15:05 ` [U-Boot] [PATCH v8 3/4] EHCI: adjust for mx5 Jana Rapava
2011-09-28 15:07 ` [U-Boot] [PATCH v8 4/4] Add USB support for Efika Jana Rapava
2011-09-28 15:20 ` Marek Vasut [this message]
2011-09-28 18:12 ` Jana Rapava
2011-09-28 18:26 ` Marek Vasut
2011-10-06 21:18 ` Wolfgang Denk
2011-10-07 17:16 ` Jana Rapava
2011-09-28 15:21 ` [U-Boot] [PATCH v8 2/4] EHCI: add callback ehci_fixup Marek Vasut
2011-09-27 11:07 ` [U-Boot] [PATCH v5 1/4] usb: Move ehci.h and ehci-core.h to include/usb directory Fabio Estevam
2011-09-27 11:09 ` Fabio Estevam
2011-09-27 11:27 ` Jana Rapava
2011-09-27 18:44 ` [U-Boot] [PATCH v6 " Jana Rapava
2011-09-27 22:06 ` [U-Boot] [PATCH v7 " Jana Rapava
2011-09-28 14:59 ` [U-Boot] [PATCH v8 " Jana Rapava
2011-09-28 19:49 ` [U-Boot] [PATCH v9 " Jana Rapava
2011-09-28 20:36 ` Marek Vasut
2011-09-28 21:10 ` Jana Rapava
2011-09-28 21:43 ` Marek Vasut
2011-09-28 23:04 ` Jana Rapava
2011-09-28 23:05 ` Marek Vasut
2011-09-28 23:22 ` Jana Rapava
2011-09-28 19:51 ` [U-Boot] [PATCH v9 2/4] EHCI: add callback ehci_fixup Jana Rapava
2011-09-28 19:52 ` [U-Boot] [PATCH v9 3/4] EHCI: adjust for mx5 Jana Rapava
2011-09-28 19:54 ` [U-Boot] [PATCH v9 4/4] Add USB support for Efika Jana Rapava
2011-09-28 20:44 ` Marek Vasut
2011-09-28 20:36 ` [U-Boot] [PATCH v9 2/4] EHCI: add callback ehci_fixup Marek Vasut
2011-09-28 21:14 ` Jana Rapava
2011-09-28 21:26 ` Marek Vasut
2011-09-25 12:02 ` [U-Boot] [PATCH v4 1/5] " Marek Vasut
2011-09-25 17:25 ` [U-Boot] [PATCH v4 1/4] USB: move ehci.h and ehci-core.h into /include/usb/ Jana Rapava
2011-09-25 17:25 ` [U-Boot] [PATCH v4 2/4] EHCI: add callback ehci_fixup Jana Rapava
2011-09-25 17:41 ` Marek Vasut
2011-09-25 17:25 ` [U-Boot] [PATCH v4 3/4] EHCI: adjust for mx5 Jana Rapava
2011-09-25 17:38 ` Marek Vasut
2011-09-25 17:25 ` [U-Boot] [PATCH v4 4/4] Add USB support for Efika Jana Rapava
2011-09-25 17:34 ` Marek Vasut
2011-09-26 20:28 ` Jana Rapava
2011-09-26 20:42 ` Marek Vasut
2011-09-26 20:51 ` Marek Vasut
2011-09-27 11:00 ` Jana Rapava
2011-09-25 19:01 ` [U-Boot] [PATCH v4 1/4] USB: move ehci.h and ehci-core.h into /include/usb/ Fabio Estevam
2011-09-26 8:32 ` Jana Rapava
2011-10-09 18:42 ` Marek Vasut
2011-10-09 20:22 ` Jana Rapava
2011-10-14 15:49 ` Fabio Estevam
2011-10-14 16:07 ` Marek Vasut
2011-10-14 15:50 ` Marek Vasut
2011-10-06 21:33 ` [U-Boot] [PATCH 1/2 v2] USB cleanup for EfikaMX Wolfgang Denk
-- strict thread matches above, loose matches on Subject: below --
2011-11-01 19:24 [U-Boot] [PATCH v7 4/4] usb: add USB support for Efika Jana Rapava
2011-11-12 17:45 ` [U-Boot] [PATCH v8 4/4] Add " Jana Rapava
2011-11-14 8:29 ` Igor Grinberg
2011-11-14 9:21 ` Wolfgang Grandegger
2011-11-24 2:43 ` Marek Vasut
2011-11-24 11:11 ` Jana Rapava
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1317223213.3682.2.camel@konomi \
--to=marek.vasut.n900@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.