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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox