From: Felipe Balbi <felipe.balbi@nokia.com> To: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Anton Vorontsov <avorontsov@ru.mvista.com>, Grazvydas Ignotas <notasas@gmail.com>, Madhusudhan Chikkature <madhu.cr@ti.com>, linux-omap@vger.kernel.org, Greg Kroah-Hartman <gregkh@suse.de>, David Brownell <dbrownell@users.sourceforge.net>, Felipe Balbi <felipe.balbi@nokia.com> Subject: [RFC/PATCH 3/5] usb: musb: add support for ulpi block Date: Fri, 11 Dec 2009 13:31:24 +0200 [thread overview] Message-ID: <1260531086-23857-4-git-send-email-felipe.balbi@nokia.com> (raw) In-Reply-To: <6ed0b2680912101251jeec28e6i216dfc51caab13aa@mail.gmail.com> add register definitions and musb_ulpi_readb/writeb support. Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> --- drivers/usb/musb/musb_regs.h | 62 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 62 insertions(+), 0 deletions(-) diff --git a/drivers/usb/musb/musb_regs.h b/drivers/usb/musb/musb_regs.h index 473a94e..7e6e68e 100644 --- a/drivers/usb/musb/musb_regs.h +++ b/drivers/usb/musb/musb_regs.h @@ -72,6 +72,11 @@ #define MUSB_DEVCTL_HR 0x02 #define MUSB_DEVCTL_SESSION 0x01 +/* ULPI_REG_CONTROL */ +#define ULPI_REG_REQ (1 << 0) +#define ULPI_REG_CMPLT (1 << 1) +#define ULPI_RDN_WR (1 << 2) + /* TESTMODE */ #define MUSB_TEST_FORCE_HOST 0x80 #define MUSB_TEST_FIFO_ACCESS 0x40 @@ -247,6 +252,16 @@ /* REVISIT: vctrl/vstatus: optional vendor utmi+phy register at 0x68 */ #define MUSB_HWVERS 0x6C /* 8 bit */ +/* ULPI Registers */ +#define ULPI_VBUS_CONTROL 0x70 /* 8 bit */ +#define ULPI_CARKIT_CONTROL 0x71 /* 8 bit */ +#define ULPI_INT_MASK 0x72 /* 8 bit */ +#define ULPI_INT_SRC 0x73 /* 8 bit */ +#define ULPI_REG_DATA 0x74 /* 8 bit */ +#define ULPI_REG_ADDR 0x75 /* 8 bit */ +#define ULPI_REG_CONTROL 0x76 /* 8 bit */ +#define ULPI_RAW_DATA 0x77 /* 8 bit */ + #define MUSB_EPINFO 0x78 /* 8 bit */ #define MUSB_RAMINFO 0x79 /* 8 bit */ #define MUSB_LINKINFO 0x7a /* 8 bit */ @@ -502,4 +517,51 @@ static inline void musb_write_txhubport(void __iomem *mbase, u8 epnum, #endif /* CONFIG_BLACKFIN */ +/* ULPI read/write support */ +static inline u8 musb_ulpi_readb(void __iomem *addr, u8 offset) +{ + int i = 0; + u8 r; + + musb_writeb(addr, ULPI_REG_ADDR, offset); + musb_writeb(addr, ULPI_REG_CONTROL, ULPI_REG_REQ | ULPI_RDN_WR); + + while (!(musb_readb(addr, ULPI_REG_CONTROL) & ULPI_REG_CMPLT)) { + i++; + if (i == 10000) { + DBG(3, "ULPI read timed out\n"); + return 0; + } + + } + r = musb_readb(addr, ULPI_REG_CONTROL); + r &= ~ULPI_REG_CMPLT; + musb_writeb(addr, ULPI_REG_CONTROL, r); + + return musb_readb(addr, ULPI_REG_DATA); +} + +static inline void musb_ulpi_writeb(void __iomem *addr, + u8 offset, u8 data) +{ + int i = 0; + u8 r = 0; + + musb_writeb(addr, ULPI_REG_ADDR, offset); + musb_writeb(addr, ULPI_REG_DATA, data); + musb_writeb(addr, ULPI_REG_CONTROL, ULPI_REG_REQ); + + while(!(musb_readb(addr, ULPI_REG_CONTROL) & ULPI_REG_CMPLT)) { + i++; + if (i == 10000) { + DBG(3, "ULPI write timed out\n"); + return; + } + } + + r = musb_readb(addr, ULPI_REG_CONTROL); + r &= ~ULPI_REG_CMPLT; + musb_writeb(addr, ULPI_REG_CONTROL, r); +} + #endif /* __MUSB_REGS_H__ */ -- 1.6.6.rc0
WARNING: multiple messages have this Message-ID (diff)
From: Felipe Balbi <felipe.balbi-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> To: linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: Anton Vorontsov <avorontsov-hkdhdckH98+B+jHODAdFcQ@public.gmane.org>, Grazvydas Ignotas <notasas-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, Madhusudhan Chikkature <madhu.cr-l0cyMroinI0@public.gmane.org>, linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Greg Kroah-Hartman <gregkh-l3A5Bk7waGM@public.gmane.org>, David Brownell <dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>, Felipe Balbi <felipe.balbi-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> Subject: [RFC/PATCH 3/5] usb: musb: add support for ulpi block Date: Fri, 11 Dec 2009 13:31:24 +0200 [thread overview] Message-ID: <1260531086-23857-4-git-send-email-felipe.balbi@nokia.com> (raw) In-Reply-To: <6ed0b2680912101251jeec28e6i216dfc51caab13aa-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> add register definitions and musb_ulpi_readb/writeb support. Signed-off-by: Felipe Balbi <felipe.balbi-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org> --- drivers/usb/musb/musb_regs.h | 62 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 62 insertions(+), 0 deletions(-) diff --git a/drivers/usb/musb/musb_regs.h b/drivers/usb/musb/musb_regs.h index 473a94e..7e6e68e 100644 --- a/drivers/usb/musb/musb_regs.h +++ b/drivers/usb/musb/musb_regs.h @@ -72,6 +72,11 @@ #define MUSB_DEVCTL_HR 0x02 #define MUSB_DEVCTL_SESSION 0x01 +/* ULPI_REG_CONTROL */ +#define ULPI_REG_REQ (1 << 0) +#define ULPI_REG_CMPLT (1 << 1) +#define ULPI_RDN_WR (1 << 2) + /* TESTMODE */ #define MUSB_TEST_FORCE_HOST 0x80 #define MUSB_TEST_FIFO_ACCESS 0x40 @@ -247,6 +252,16 @@ /* REVISIT: vctrl/vstatus: optional vendor utmi+phy register at 0x68 */ #define MUSB_HWVERS 0x6C /* 8 bit */ +/* ULPI Registers */ +#define ULPI_VBUS_CONTROL 0x70 /* 8 bit */ +#define ULPI_CARKIT_CONTROL 0x71 /* 8 bit */ +#define ULPI_INT_MASK 0x72 /* 8 bit */ +#define ULPI_INT_SRC 0x73 /* 8 bit */ +#define ULPI_REG_DATA 0x74 /* 8 bit */ +#define ULPI_REG_ADDR 0x75 /* 8 bit */ +#define ULPI_REG_CONTROL 0x76 /* 8 bit */ +#define ULPI_RAW_DATA 0x77 /* 8 bit */ + #define MUSB_EPINFO 0x78 /* 8 bit */ #define MUSB_RAMINFO 0x79 /* 8 bit */ #define MUSB_LINKINFO 0x7a /* 8 bit */ @@ -502,4 +517,51 @@ static inline void musb_write_txhubport(void __iomem *mbase, u8 epnum, #endif /* CONFIG_BLACKFIN */ +/* ULPI read/write support */ +static inline u8 musb_ulpi_readb(void __iomem *addr, u8 offset) +{ + int i = 0; + u8 r; + + musb_writeb(addr, ULPI_REG_ADDR, offset); + musb_writeb(addr, ULPI_REG_CONTROL, ULPI_REG_REQ | ULPI_RDN_WR); + + while (!(musb_readb(addr, ULPI_REG_CONTROL) & ULPI_REG_CMPLT)) { + i++; + if (i == 10000) { + DBG(3, "ULPI read timed out\n"); + return 0; + } + + } + r = musb_readb(addr, ULPI_REG_CONTROL); + r &= ~ULPI_REG_CMPLT; + musb_writeb(addr, ULPI_REG_CONTROL, r); + + return musb_readb(addr, ULPI_REG_DATA); +} + +static inline void musb_ulpi_writeb(void __iomem *addr, + u8 offset, u8 data) +{ + int i = 0; + u8 r = 0; + + musb_writeb(addr, ULPI_REG_ADDR, offset); + musb_writeb(addr, ULPI_REG_DATA, data); + musb_writeb(addr, ULPI_REG_CONTROL, ULPI_REG_REQ); + + while(!(musb_readb(addr, ULPI_REG_CONTROL) & ULPI_REG_CMPLT)) { + i++; + if (i == 10000) { + DBG(3, "ULPI write timed out\n"); + return; + } + } + + r = musb_readb(addr, ULPI_REG_CONTROL); + r &= ~ULPI_REG_CMPLT; + musb_writeb(addr, ULPI_REG_CONTROL, r); +} + #endif /* __MUSB_REGS_H__ */ -- 1.6.6.rc0 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2009-12-11 11:32 UTC|newest] Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top 2009-11-27 14:44 [PATCH] power_supply: Add driver for TWL4030/TPS65950 BCI charger Grazvydas Ignotas 2009-11-27 14:44 ` Grazvydas Ignotas 2009-11-27 14:54 ` Anton Vorontsov 2009-11-27 15:47 ` Grazvydas Ignotas 2009-11-27 16:23 ` Mark Brown 2009-11-30 18:45 ` Madhusudhan 2009-11-30 18:45 ` Madhusudhan 2009-11-30 18:58 ` Anton Vorontsov 2009-12-02 20:38 ` Grazvydas Ignotas 2009-12-02 20:38 ` Grazvydas Ignotas 2009-12-02 21:27 ` Anton Vorontsov 2009-12-02 21:27 ` Anton Vorontsov 2009-12-02 21:32 ` Grazvydas Ignotas 2009-11-30 21:33 ` Grazvydas Ignotas 2009-12-02 16:59 ` Madhusudhan 2009-12-02 16:59 ` Madhusudhan 2009-12-02 17:33 ` Felipe Balbi 2009-12-02 20:34 ` Grazvydas Ignotas 2009-12-02 20:49 ` Felipe Balbi 2009-12-02 20:49 ` Felipe Balbi 2009-12-02 21:29 ` Grazvydas Ignotas 2009-12-02 21:29 ` Grazvydas Ignotas 2009-12-02 21:54 ` Anton Vorontsov 2009-12-02 22:31 ` Felipe Balbi 2009-12-02 22:59 ` Anton Vorontsov 2009-12-03 8:39 ` Felipe Balbi 2009-12-03 10:55 ` Grazvydas Ignotas 2009-12-03 11:03 ` Felipe Balbi 2009-12-10 14:09 ` Grazvydas Ignotas 2009-12-10 14:18 ` Anton Vorontsov 2009-12-10 14:21 ` Felipe Balbi 2009-12-10 14:44 ` Anton Vorontsov 2009-12-10 16:51 ` Felipe Balbi 2009-12-10 20:51 ` Grazvydas Ignotas 2009-12-11 11:31 ` [RFC/PATCH 0/5] usb transceiver notifier Felipe Balbi 2009-12-11 11:31 ` Felipe Balbi 2009-12-11 11:31 ` [RFC/PATCH 1/5] usb: otg: add notifier support Felipe Balbi 2009-12-11 11:55 ` Mark Brown 2009-12-11 11:55 ` Mark Brown 2009-12-11 11:58 ` Felipe Balbi 2010-01-26 11:16 ` David Brownell 2010-01-26 13:11 ` Mark Brown 2010-01-26 13:35 ` David Brownell 2010-01-26 14:14 ` Felipe Balbi 2010-01-26 14:24 ` Oliver Neukum 2010-01-26 14:30 ` Felipe Balbi 2010-01-26 14:30 ` Felipe Balbi 2010-01-26 15:16 ` David Brownell 2010-01-26 15:21 ` David Brownell 2010-01-26 18:50 ` Felipe Balbi 2010-01-26 14:21 ` Mark Brown 2010-01-26 14:21 ` Mark Brown 2010-01-26 15:44 ` David Brownell 2010-01-26 16:13 ` Mark Brown 2010-01-26 14:10 ` Felipe Balbi 2010-01-26 14:19 ` Felipe Balbi 2010-01-26 15:33 ` David Brownell 2010-01-26 15:33 ` David Brownell 2010-01-26 15:07 ` David Brownell 2010-01-26 15:07 ` David Brownell 2010-01-26 19:09 ` Felipe Balbi 2010-01-26 19:15 ` Felipe Balbi 2010-01-26 19:15 ` Felipe Balbi 2009-12-11 11:31 ` [RFC/PATCH 2/5] usb: otg: twl4030: add support for notifier Felipe Balbi 2009-12-11 17:22 ` sai pavan 2009-12-11 17:22 ` sai pavan 2009-12-11 20:40 ` Felipe Balbi 2009-12-11 20:40 ` Felipe Balbi 2009-12-12 18:34 ` Mark Brown 2009-12-14 10:30 ` [RFC/PATCH 0/4] twl4030 threaded_irq support Felipe Balbi 2010-01-26 7:06 ` David Brownell 2010-01-26 7:06 ` David Brownell 2010-01-26 7:36 ` David Brownell 2010-01-26 7:36 ` David Brownell 2010-01-26 10:07 ` Mark Brown 2010-01-26 11:02 ` Felipe Balbi 2010-01-26 12:18 ` David Brownell 2010-01-26 12:18 ` David Brownell 2009-12-14 10:30 ` [RFC/PATCH 1/4] input: keyboard: twl4030: move to request_threaded_irq Felipe Balbi 2009-12-14 10:30 ` Felipe Balbi 2009-12-14 10:30 ` [RFC/PATCH 2/4] input: misc: " Felipe Balbi 2009-12-14 10:30 ` Felipe Balbi 2009-12-14 11:31 ` Shilimkar, Santosh 2009-12-14 11:40 ` Felipe Balbi 2009-12-14 13:16 ` Shilimkar, Santosh 2009-12-14 10:30 ` [RFC/PATCH 3/4] rtc: " Felipe Balbi 2009-12-14 10:30 ` [RFC/PATCH 4/4] usb: otg: " Felipe Balbi 2009-12-14 10:30 ` Felipe Balbi 2009-12-11 11:31 ` Felipe Balbi [this message] 2009-12-11 11:31 ` [RFC/PATCH 3/5] usb: musb: add support for ulpi block Felipe Balbi 2009-12-11 11:31 ` [RFC/PATCH 4/5] usb: musb: isp1704: add registers from isp1704 Felipe Balbi 2009-12-11 11:31 ` Felipe Balbi 2009-12-11 12:35 ` Krogerus Heikki (EXT-Teleca/Helsinki) 2009-12-11 12:35 ` Krogerus Heikki (EXT-Teleca/Helsinki) 2009-12-11 12:57 ` Felipe Balbi 2009-12-11 12:57 ` Felipe Balbi 2009-12-11 11:31 ` [RFC/PATCH 5/5] usb: musb: musb supports otg notifier Felipe Balbi 2009-12-11 11:40 ` Felipe Balbi 2009-12-11 11:40 ` Felipe Balbi 2009-12-30 19:07 ` [PATCH] power_supply: Add driver for TWL4030/TPS65950 BCI charger Madhusudhan 2009-12-30 19:07 ` Madhusudhan 2009-12-10 14:19 ` Felipe Balbi
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=1260531086-23857-4-git-send-email-felipe.balbi@nokia.com \ --to=felipe.balbi@nokia.com \ --cc=avorontsov@ru.mvista.com \ --cc=dbrownell@users.sourceforge.net \ --cc=gregkh@suse.de \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-omap@vger.kernel.org \ --cc=linux-usb@vger.kernel.org \ --cc=madhu.cr@ti.com \ --cc=notasas@gmail.com \ /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: linkBe 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.