All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 1/7
@ 2009-06-25  0:34 kevin.morfitt at fearnside-systems.co.uk
  2009-06-25  0:35 ` [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 2/7 kevin.morfitt at fearnside-systems.co.uk
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: kevin.morfitt at fearnside-systems.co.uk @ 2009-06-25  0:34 UTC (permalink / raw)
  To: u-boot


Patches 1 to 4 replace "[PATCH-ARM 1/2] Add support for 
the Embest SBC2440-II Board 1/2" submitted on 19/06/2009.

This patch re-formats the code in cpu/arm920t and cpu/arm920t/23c24x0 in 
preparation for changes to add support for the Embest SBC2440-II Board.

The changes are as follows:

- re-indent the code using Lindent
- make sure register layouts are defined using a C struct, from a 
  comment by Wolfgang on 03/06/2009
- replace the upper-case typedef'ed C struct names with lower case 
  non-typedef'ed ones, from a comment by Scott on 22/06/2009
- make sure registers are accessed using the proper accessor 
  functions, from a comment by Wolfgang on 03/06/2009
- run checkpatch.pl and fix any error reports

Note that usb_ohci.c still has two lines that exceed 80 characters. 
This is because the statements on those lines lose readability when 
wrapped - the Linux coding style guidleines allows for this.

This complete series of patches assumes the following patches have 
already been applied:

- [PATCH-ARM] Bug-fix in drivers mtd nand Makefile, sent 18/06/2009
- [PATCH-ARM] CONFIG_SYS_HZ fix for ARM920T S3C24X0 Boards, sent 
  21/06/2009

Signed-off-by: Kevin Morfitt <kevin.morfitt@fearnside-systems.co.uk>
---
 cpu/arm920t/s3c24x0/speed.c    |   42 +-
 cpu/arm920t/s3c24x0/timer.c    |   80 ++--
 cpu/arm920t/s3c24x0/usb.c      |   30 +-
 cpu/arm920t/s3c24x0/usb_ohci.c | 1268 +++++++++++++++++++++-------------------
 cpu/arm920t/s3c24x0/usb_ohci.h |  187 +++---
 cpu/arm920t/start.S            |   63 +-
 6 files changed, 875 insertions(+), 795 deletions(-)

diff --git a/cpu/arm920t/s3c24x0/speed.c b/cpu/arm920t/s3c24x0/speed.c
index e0dca62..bb86335 100644
--- a/cpu/arm920t/s3c24x0/speed.c
+++ b/cpu/arm920t/s3c24x0/speed.c
@@ -32,6 +32,8 @@
 #include <common.h>
 #if defined(CONFIG_S3C2400) || defined (CONFIG_S3C2410) || defined (CONFIG_TRAB)
 
+#include <asm/io.h>
+
 #if defined(CONFIG_S3C2400)
 #include <s3c2400.h>
 #elif defined(CONFIG_S3C2410)
@@ -53,49 +55,51 @@
 
 static ulong get_PLLCLK(int pllreg)
 {
-    S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
-    ulong r, m, p, s;
+	struct s3c24x0_clock_power *clk_power = S3C24X0_GetBase_CLOCK_POWER();
+	ulong r, m, p, s;
 
-    if (pllreg == MPLL)
-	r = clk_power->MPLLCON;
-    else if (pllreg == UPLL)
-	r = clk_power->UPLLCON;
-    else
-	hang();
+	if (pllreg == MPLL)
+		r = readl(&clk_power->MPLLCON);
+	else if (pllreg == UPLL)
+		r = readl(&clk_power->UPLLCON);
+	else
+		hang();
 
-    m = ((r & 0xFF000) >> 12) + 8;
-    p = ((r & 0x003F0) >> 4) + 2;
-    s = r & 0x3;
+	m = ((r & 0xFF000) >> 12) + 8;
+	p = ((r & 0x003F0) >> 4) + 2;
+	s = r & 0x3;
 
-    return((CONFIG_SYS_CLK_FREQ * m) / (p << s));
+	return (CONFIG_SYS_CLK_FREQ * m) / (p << s);
 }
 
 /* return FCLK frequency */
 ulong get_FCLK(void)
 {
-    return(get_PLLCLK(MPLL));
+	return get_PLLCLK(MPLL);
 }
 
 /* return HCLK frequency */
 ulong get_HCLK(void)
 {
-    S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
+	struct s3c24x0_clock_power *clk_power = S3C24X0_GetBase_CLOCK_POWER();
 
-    return((clk_power->CLKDIVN & 0x2) ? get_FCLK()/2 : get_FCLK());
+	return (readl(&clk_power->CLKDIVN) & 2) ? get_FCLK() / 2 : get_FCLK();
 }
 
 /* return PCLK frequency */
 ulong get_PCLK(void)
 {
-    S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
+	struct s3c24x0_clock_power *clk_power = S3C24X0_GetBase_CLOCK_POWER();
 
-    return((clk_power->CLKDIVN & 0x1) ? get_HCLK()/2 : get_HCLK());
+	return (readl(&clk_power->CLKDIVN) & 1) ? get_HCLK() / 2 : get_HCLK();
 }
 
 /* return UCLK frequency */
 ulong get_UCLK(void)
 {
-    return(get_PLLCLK(UPLL));
+	return get_PLLCLK(UPLL);
 }
 
-#endif /* defined(CONFIG_S3C2400) || defined (CONFIG_S3C2410) || defined (CONFIG_TRAB) */
+#endif /* defined(CONFIG_S3C2400) ||
+	  defined (CONFIG_S3C2410) ||
+	  defined (CONFIG_TRAB) */
diff --git a/cpu/arm920t/s3c24x0/timer.c b/cpu/arm920t/s3c24x0/timer.c
index 8ea2e4b..0aa7947 100644
--- a/cpu/arm920t/s3c24x0/timer.c
+++ b/cpu/arm920t/s3c24x0/timer.c
@@ -30,7 +30,11 @@
  */
 
 #include <common.h>
-#if defined(CONFIG_S3C2400) || defined (CONFIG_S3C2410) || defined (CONFIG_TRAB)
+#if defined(CONFIG_S3C2400) || \
+    defined(CONFIG_S3C2410) || \
+    defined(CONFIG_TRAB)
+
+#include <asm/io.h>
 
 #if defined(CONFIG_S3C2400)
 #include <s3c2400.h>
@@ -45,9 +49,9 @@ static ulong timer_clk;
 /* macro to read the 16 bit timer */
 static inline ulong READ_TIMER(void)
 {
-	S3C24X0_TIMERS * const timers = S3C24X0_GetBase_TIMERS();
+	struct s3c24x0_timers *timers = S3C24X0_GetBase_TIMERS();
 
-	return (timers->TCNTO4 & 0xffff);
+	return readl(&timers->TCNTO4) & 0xffff;
 }
 
 static ulong timestamp;
@@ -55,27 +59,30 @@ static ulong lastdec;
 
 int timer_init (void)
 {
-	S3C24X0_TIMERS * const timers = S3C24X0_GetBase_TIMERS();
+	struct s3c24x0_timers *timers = S3C24X0_GetBase_TIMERS();
+	ulong tmr;
 
 	/* use PWM Timer 4 because it has no output */
 	/* prescaler for Timer 4 is 16 */
-	timers->TCFG0 = 0x0f00;
-	if (timer_load_val == 0)
-	{
+	writel(0x0f00, &timers->TCFG0);
+	if (timer_load_val == 0) {
 		/*
 		 * for 10 ms clock period @ PCLK with 4 bit divider = 1/2
 		 * (default) and prescaler = 16. Should be 10390
 		 * @33.25MHz and 15625 @ 50 MHz
 		 */
-		timer_load_val = get_PCLK()/(2 * 16 * 100);
+		timer_load_val = get_PCLK() / (2 * 16 * 100);
 		timer_clk = get_PCLK() / (2 * 16);
 	}
 	/* load value for 10 ms timeout */
-	lastdec = timers->TCNTB4 = timer_load_val;
+	lastdec = timer_load_val;
+	writel(timer_load_val, &timers->TCNTB4);
 	/* auto load, manual update of Timer 4 */
-	timers->TCON = (timers->TCON & ~0x0700000) | 0x600000;
+	tmr = (readl(&timers->TCON) & ~0x0700000) | 0x0600000;
+	writel(tmr, &timers->TCON);
 	/* auto load, start Timer 4 */
-	timers->TCON = (timers->TCON & ~0x0700000) | 0x500000;
+	tmr = (tmr & ~0x0700000) | 0x0500000;
+	writel(tmr, &timers->TCON);
 	timestamp = 0;
 
 	return (0);
@@ -85,22 +92,22 @@ int timer_init (void)
  * timer without interrupts
  */
 
-void reset_timer (void)
-{
-	reset_timer_masked ();
-}
+void reset_timer(void)
+ {
+	reset_timer_masked();
+ }
 
-ulong get_timer (ulong base)
+ulong get_timer(ulong base)
 {
-	return get_timer_masked () - base;
+	return get_timer_masked() - base;
 }
 
-void set_timer (ulong t)
+void set_timer(ulong t)
 {
 	timestamp = t;
 }
 
-void udelay (unsigned long usec)
+void udelay(unsigned long usec)
 {
 	ulong tmo;
 	ulong start = get_timer_raw();
@@ -113,21 +120,21 @@ void udelay (unsigned long usec)
 		/*NOP*/;
 }
 
-void reset_timer_masked (void)
+void reset_timer_masked(void)
 {
 	/* reset time */
 	lastdec = READ_TIMER();
 	timestamp = 0;
 }
 
-ulong get_timer_masked (void)
+ulong get_timer_masked(void)
 {
 	ulong tmr = get_timer_raw();
 
 	return tmr / (timer_clk / CONFIG_SYS_HZ);
 }
 
-void udelay_masked (unsigned long usec)
+void udelay_masked(unsigned long usec)
 {
 	ulong tmo;
 	ulong endtime;
@@ -139,7 +146,7 @@ void udelay_masked (unsigned long usec)
 		tmo /= 1000;
 	} else {
 		tmo = usec * (timer_load_val * 100);
-		tmo /= (1000*1000);
+		tmo /= (1000 * 1000);
 	}
 
 	endtime = get_timer_raw() + tmo;
@@ -179,7 +186,7 @@ unsigned long long get_ticks(void)
  * This function is derived from PowerPC code (timebase clock frequency).
  * On ARM it returns the number of timer ticks per second.
  */
-ulong get_tbclk (void)
+ulong get_tbclk(void)
 {
 	ulong tbclk;
 
@@ -199,28 +206,27 @@ ulong get_tbclk (void)
 /*
  * reset the cpu by setting up the watchdog timer and let him time out
  */
-void reset_cpu (ulong ignored)
+void reset_cpu(ulong ignored)
 {
-	volatile S3C24X0_WATCHDOG * watchdog;
+	struct s3c24x0_watchdog *watchdog;
 
 #ifdef CONFIG_TRAB
-	extern void disable_vfd (void);
-
 	disable_vfd();
 #endif
 
 	watchdog = S3C24X0_GetBase_WATCHDOG();
 
 	/* Disable watchdog */
-	watchdog->WTCON = 0x0000;
+	writel(0x0000, &watchdog->WTCON);
 
 	/* Initialize watchdog timer count register */
-	watchdog->WTCNT = 0x0001;
+	writel(0x0001, &watchdog->WTCNT);
 
 	/* Enable watchdog timer; assert reset at timer timeout */
-	watchdog->WTCON = 0x0021;
+	writel(0x0021, &watchdog->WTCON);
 
-	while(1);	/* loop forever and wait for reset to happen */
+	while (1)
+		/* loop forever and wait for reset to happen */;
 
 	/*NOTREACHED*/
 }
@@ -228,10 +234,12 @@ void reset_cpu (ulong ignored)
 #ifdef CONFIG_USE_IRQ
 void s3c2410_irq(void)
 {
-	S3C24X0_INTERRUPT * irq = S3C24X0_GetBase_INTERRUPT();
-	u_int32_t intpnd = irq->INTPND;
-
+	struct s3c24x0_interrupt *irq = S3C24X0_GetBase_INTERRUPT();
+	u_int32_t intpnd = readl(&irq->INTPND);
 }
 #endif /* USE_IRQ */
 
-#endif /* defined(CONFIG_S3C2400) || defined (CONFIG_S3C2410) || defined (CONFIG_TRAB) */
+#endif /* defined(CONFIG_S3C2400)  ||
+	  defined (CONFIG_S3C2410) ||
+	  defined (CONFIG_TRAB) */
+
diff --git a/cpu/arm920t/s3c24x0/usb.c b/cpu/arm920t/s3c24x0/usb.c
index 9ccf575..1f495ff 100644
--- a/cpu/arm920t/s3c24x0/usb.c
+++ b/cpu/arm920t/s3c24x0/usb.c
@@ -32,41 +32,43 @@
 # include <s3c2410.h>
 #endif
 
-int usb_cpu_init (void)
-{
+#include <asm/io.h>
 
-	S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
-	S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
+int usb_cpu_init(void)
+{
+	struct s3c24x0_clock_power *clk_power = S3C24X0_GetBase_CLOCK_POWER();
+	struct s3c24x0_gpio *gpio = S3C24X0_GetBase_GPIO();
 
 	/*
 	 * Set the 48 MHz UPLL clocking. Values are taken from
 	 * "PLL value selection guide", 6-23, s3c2400_UM.pdf.
 	 */
-	clk_power->UPLLCON = ((40 << 12) + (1 << 4) + 2);
-	gpio->MISCCR |= 0x8; /* 1 = use pads related USB for USB host */
+	writel((40 << 12) + (1 << 4) + 2, &clk_power->UPLLCON);
+	/* 1 = use pads related USB for USB host */
+	writel(readl(&gpio->MISCCR) | 0x8, &gpio->MISCCR);
 
 	/*
 	 * Enable USB host clock.
 	 */
-	clk_power->CLKCON |= (1 << 4);
+	writel(readl(&clk_power->CLKCON) | (1 << 4), &clk_power->CLKCON);
 
 	return 0;
 }
 
-int usb_cpu_stop (void)
+int usb_cpu_stop(void)
 {
-	S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
+	struct s3c24x0_clock_power *clk_power = S3C24X0_GetBase_CLOCK_POWER();
 	/* may not want to do this */
-	clk_power->CLKCON &= ~(1 << 4);
+	writel(readl(&clk_power->CLKCON) & ~(1 << 4), &clk_power->CLKCON);
 	return 0;
 }
 
-int usb_cpu_init_fail (void)
+int usb_cpu_init_fail(void)
 {
-	S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
-	clk_power->CLKCON &= ~(1 << 4);
+	struct s3c24x0_clock_power *clk_power = S3C24X0_GetBase_CLOCK_POWER();
+	writel(readl(&clk_power->CLKCON) & ~(1 << 4), &clk_power->CLKCON);
 	return 0;
 }
 
-# endif /* defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410) */
+# endif	/* defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410) */
 #endif /* defined(CONFIG_USB_OHCI_NEW) && defined(CONFIG_SYS_USB_OHCI_CPU_INIT) */
diff --git a/cpu/arm920t/s3c24x0/usb_ohci.c b/cpu/arm920t/s3c24x0/usb_ohci.c
index 7838014..fe7b533 100644
--- a/cpu/arm920t/s3c24x0/usb_ohci.c
+++ b/cpu/arm920t/s3c24x0/usb_ohci.c
@@ -44,6 +44,7 @@
 #include <s3c2410.h>
 #endif
 
+#include <asm/io.h>
 #include <malloc.h>
 #include <usb.h>
 #include "usb_ohci.h"
@@ -56,10 +57,8 @@
 #define	OHCI_CONTROL_INIT \
 	(OHCI_CTRL_CBSR & 0x3) | OHCI_CTRL_IE | OHCI_CTRL_PLE
 
-#define readl(a) (*((volatile u32 *)(a)))
-#define writel(a, b) (*((volatile u32 *)(b)) = ((volatile u32)a))
-
-#define min_t(type,x,y) ({ type __x = (x); type __y = (y); __x < __y ? __x: __y; })
+#define min_t(type, x, y) \
+	({ type __x = (x); type __y = (y); __x < __y ? __x : __y; })
 
 #undef DEBUG
 #ifdef DEBUG
@@ -109,21 +108,29 @@ int urb_finished = 0;
 			temp = readl (&hc->regs->roothub.register); \
 	temp; })
 
-static u32 roothub_a (struct ohci *hc)
-	{ return read_roothub (hc, a, 0xfc0fe000); }
-static inline u32 roothub_b (struct ohci *hc)
-	{ return readl (&hc->regs->roothub.b); }
-static inline u32 roothub_status (struct ohci *hc)
-	{ return readl (&hc->regs->roothub.status); }
-static u32 roothub_portstatus (struct ohci *hc, int i)
-	{ return read_roothub (hc, portstatus [i], 0xffe0fce0); }
-
+static u32 roothub_a(struct ohci *hc)
+{
+	return read_roothub(hc, a, 0xfc0fe000);
+}
+static inline u32 roothub_b(struct ohci *hc)
+{
+	return readl(&hc->regs->roothub.b);
+}
+static inline u32 roothub_status(struct ohci *hc)
+{
+	return readl(&hc->regs->roothub.status);
+}
+static u32 roothub_portstatus(struct ohci *hc, int i)
+{
+	return read_roothub(hc, portstatus[i], 0xffe0fce0);
+}
 
 /* forward declaration */
-static int hc_interrupt (void);
-static void
-td_submit_job (struct usb_device * dev, unsigned long pipe, void * buffer,
-	int transfer_len, struct devrequest * setup, urb_priv_t * urb, int interval);
+static int hc_interrupt(void);
+static void td_submit_job(struct usb_device *dev, unsigned long pipe,
+			  void *buffer, int transfer_len,
+			  struct devrequest *setup, urb_priv_t *urb,
+			  int interval);
 
 /*-------------------------------------------------------------------------*
  * URB support functions
@@ -131,11 +138,11 @@ td_submit_job (struct usb_device * dev, unsigned long pipe, void * buffer,
 
 /* free HCD-private data associated with this URB */
 
-static void urb_free_priv (urb_priv_t * urb)
+static void urb_free_priv(urb_priv_t *urb)
 {
-	int		i;
-	int		last;
-	struct td	* td;
+	int i;
+	int last;
+	struct td *td;
 
 	last = urb->length - 1;
 	if (last >= 0) {
@@ -152,227 +159,219 @@ static void urb_free_priv (urb_priv_t * urb)
 /*-------------------------------------------------------------------------*/
 
 #ifdef DEBUG
-static int sohci_get_current_frame_number (struct usb_device * dev);
+static int sohci_get_current_frame_number(struct usb_device *dev);
 
 /* debug| print the main components of an URB
  * small: 0) header + data packets 1) just header */
 
-static void pkt_print (struct usb_device * dev, unsigned long pipe, void * buffer,
-	int transfer_len, struct devrequest * setup, char * str, int small)
+static void pkt_print(struct usb_device *dev, unsigned long pipe, void *buffer,
+		      int transfer_len, struct devrequest *setup, char *str,
+		      int small)
 {
-	urb_priv_t * purb = &urb_priv;
+	urb_priv_t *purb = &urb_priv;
 
 	dbg("%s URB:[%4x] dev:%2d,ep:%2d-%c,type:%s,len:%d/%d stat:%#lx",
-			str,
-			sohci_get_current_frame_number (dev),
-			usb_pipedevice (pipe),
-			usb_pipeendpoint (pipe),
-			usb_pipeout (pipe)? 'O': 'I',
-			usb_pipetype (pipe) < 2? (usb_pipeint (pipe)? "INTR": "ISOC"):
-				(usb_pipecontrol (pipe)? "CTRL": "BULK"),
-			purb->actual_length,
-			transfer_len, dev->status);
+	    str,
+	    sohci_get_current_frame_number(dev),
+	    usb_pipedevice(pipe),
+	    usb_pipeendpoint(pipe),
+	    usb_pipeout(pipe) ? 'O' : 'I',
+	    usb_pipetype(pipe) < 2 ?
+		(usb_pipeint(pipe) ? "INTR" : "ISOC") :
+		(usb_pipecontrol(pipe) ? "CTRL" : "BULK"),
+	    purb->actual_length, transfer_len, dev->status);
 #ifdef	OHCI_VERBOSE_DEBUG
 	if (!small) {
 		int i, len;
 
-		if (usb_pipecontrol (pipe)) {
-			printf (__FILE__ ": cmd(8):");
-			for (i = 0; i < 8 ; i++)
-				printf (" %02x", ((__u8 *) setup) [i]);
-			printf ("\n");
+		if (usb_pipecontrol(pipe)) {
+			printf(__FILE__ ": cmd(8):");
+			for (i = 0; i < 8; i++)
+				printf(" %02x", ((__u8 *) setup)[i]);
+			printf("\n");
 		}
 		if (transfer_len > 0 && buffer) {
-			printf (__FILE__ ": data(%d/%d):",
-				purb->actual_length,
-				transfer_len);
-			len = usb_pipeout (pipe)?
-					transfer_len: purb->actual_length;
+			printf(__FILE__ ": data(%d/%d):",
+			       purb->actual_length, transfer_len);
+			len = usb_pipeout(pipe) ?
+			    transfer_len : purb->actual_length;
 			for (i = 0; i < 16 && i < len; i++)
-				printf (" %02x", ((__u8 *) buffer) [i]);
-			printf ("%s\n", i < len? "...": "");
+				printf(" %02x", ((__u8 *) buffer)[i]);
+			printf("%s\n", i < len ? "..." : "");
 		}
 	}
 #endif
 }
 
-/* just for debugging; prints non-empty branches of the int ed tree inclusive iso eds*/
-void ep_print_int_eds (ohci_t *ohci, char * str) {
+/* just for debugging; prints non-empty branches of the
+   int ed tree inclusive iso eds*/
+void ep_print_int_eds(ohci_t *ohci, char *str)
+{
 	int i, j;
-	 __u32 * ed_p;
-	for (i= 0; i < 32; i++) {
+	__u32 *ed_p;
+	for (i = 0; i < 32; i++) {
 		j = 5;
-		ed_p = &(ohci->hcca->int_table [i]);
+		ed_p = &(ohci->hcca->int_table[i]);
 		if (*ed_p == 0)
-		    continue;
-		printf (__FILE__ ": %s branch int %2d(%2x):", str, i, i);
+			continue;
+		printf(__FILE__ ": %s branch int %2d(%2x):", str, i, i);
 		while (*ed_p != 0 && j--) {
-			ed_t *ed = (ed_t *)m32_swap(ed_p);
-			printf (" ed: %4x;", ed->hwINFO);
+			ed_t *ed = (ed_t *) m32_swap(ed_p);
+			printf(" ed: %4x;", ed->hwINFO);
 			ed_p = &ed->hwNextED;
 		}
-		printf ("\n");
+		printf("\n");
 	}
 }
 
-static void ohci_dump_intr_mask (char *label, __u32 mask)
+static void ohci_dump_intr_mask(char *label, __u32 mask)
 {
-	dbg ("%s: 0x%08x%s%s%s%s%s%s%s%s%s",
-		label,
-		mask,
-		(mask & OHCI_INTR_MIE) ? " MIE" : "",
-		(mask & OHCI_INTR_OC) ? " OC" : "",
-		(mask & OHCI_INTR_RHSC) ? " RHSC" : "",
-		(mask & OHCI_INTR_FNO) ? " FNO" : "",
-		(mask & OHCI_INTR_UE) ? " UE" : "",
-		(mask & OHCI_INTR_RD) ? " RD" : "",
-		(mask & OHCI_INTR_SF) ? " SF" : "",
-		(mask & OHCI_INTR_WDH) ? " WDH" : "",
-		(mask & OHCI_INTR_SO) ? " SO" : ""
-		);
+	dbg("%s: 0x%08x%s%s%s%s%s%s%s%s%s",
+	    label,
+	    mask,
+	    (mask & OHCI_INTR_MIE) ? " MIE" : "",
+	    (mask & OHCI_INTR_OC) ? " OC" : "",
+	    (mask & OHCI_INTR_RHSC) ? " RHSC" : "",
+	    (mask & OHCI_INTR_FNO) ? " FNO" : "",
+	    (mask & OHCI_INTR_UE) ? " UE" : "",
+	    (mask & OHCI_INTR_RD) ? " RD" : "",
+	    (mask & OHCI_INTR_SF) ? " SF" : "",
+	    (mask & OHCI_INTR_WDH) ? " WDH" : "",
+	    (mask & OHCI_INTR_SO) ? " SO" : "");
 }
 
-static void maybe_print_eds (char *label, __u32 value)
+static void maybe_print_eds(char *label, __u32 value)
 {
-	ed_t *edp = (ed_t *)value;
+	ed_t *edp = (ed_t *) value;
 
 	if (value) {
-		dbg ("%s %08x", label, value);
-		dbg ("%08x", edp->hwINFO);
-		dbg ("%08x", edp->hwTailP);
-		dbg ("%08x", edp->hwHeadP);
-		dbg ("%08x", edp->hwNextED);
+		dbg("%s %08x", label, value);
+		dbg("%08x", edp->hwINFO);
+		dbg("%08x", edp->hwTailP);
+		dbg("%08x", edp->hwHeadP);
+		dbg("%08x", edp->hwNextED);
 	}
 }
 
-static char * hcfs2string (int state)
+static char *hcfs2string(int state)
 {
 	switch (state) {
-		case OHCI_USB_RESET:	return "reset";
-		case OHCI_USB_RESUME:	return "resume";
-		case OHCI_USB_OPER:	return "operational";
-		case OHCI_USB_SUSPEND:	return "suspend";
+	case OHCI_USB_RESET:
+		return "reset";
+	case OHCI_USB_RESUME:
+		return "resume";
+	case OHCI_USB_OPER:
+		return "operational";
+	case OHCI_USB_SUSPEND:
+		return "suspend";
 	}
 	return "?";
 }
 
 /* dump control and status registers */
-static void ohci_dump_status (ohci_t *controller)
+static void ohci_dump_status(ohci_t *controller)
 {
-	struct ohci_regs	*regs = controller->regs;
-	__u32			temp;
+	struct ohci_regs *regs = controller->regs;
+	__u32 temp;
 
-	temp = readl (&regs->revision) & 0xff;
+	temp = readl(&regs->revision) & 0xff;
 	if (temp != 0x10)
-		dbg ("spec %d.%d", (temp >> 4), (temp & 0x0f));
-
-	temp = readl (&regs->control);
-	dbg ("control: 0x%08x%s%s%s HCFS=%s%s%s%s%s CBSR=%d", temp,
-		(temp & OHCI_CTRL_RWE) ? " RWE" : "",
-		(temp & OHCI_CTRL_RWC) ? " RWC" : "",
-		(temp & OHCI_CTRL_IR) ? " IR" : "",
-		hcfs2string (temp & OHCI_CTRL_HCFS),
-		(temp & OHCI_CTRL_BLE) ? " BLE" : "",
-		(temp & OHCI_CTRL_CLE) ? " CLE" : "",
-		(temp & OHCI_CTRL_IE) ? " IE" : "",
-		(temp & OHCI_CTRL_PLE) ? " PLE" : "",
-		temp & OHCI_CTRL_CBSR
-		);
-
-	temp = readl (&regs->cmdstatus);
-	dbg ("cmdstatus: 0x%08x SOC=%d%s%s%s%s", temp,
-		(temp & OHCI_SOC) >> 16,
-		(temp & OHCI_OCR) ? " OCR" : "",
-		(temp & OHCI_BLF) ? " BLF" : "",
-		(temp & OHCI_CLF) ? " CLF" : "",
-		(temp & OHCI_HCR) ? " HCR" : ""
-		);
-
-	ohci_dump_intr_mask ("intrstatus", readl (&regs->intrstatus));
-	ohci_dump_intr_mask ("intrenable", readl (&regs->intrenable));
-
-	maybe_print_eds ("ed_periodcurrent", readl (&regs->ed_periodcurrent));
-
-	maybe_print_eds ("ed_controlhead", readl (&regs->ed_controlhead));
-	maybe_print_eds ("ed_controlcurrent", readl (&regs->ed_controlcurrent));
-
-	maybe_print_eds ("ed_bulkhead", readl (&regs->ed_bulkhead));
-	maybe_print_eds ("ed_bulkcurrent", readl (&regs->ed_bulkcurrent));
-
-	maybe_print_eds ("donehead", readl (&regs->donehead));
+		dbg("spec %d.%d", (temp >> 4), (temp & 0x0f));
+
+	temp = readl(&regs->control);
+	dbg("control: 0x%08x%s%s%s HCFS=%s%s%s%s%s CBSR=%d", temp,
+	    (temp & OHCI_CTRL_RWE) ? " RWE" : "",
+	    (temp & OHCI_CTRL_RWC) ? " RWC" : "",
+	    (temp & OHCI_CTRL_IR) ? " IR" : "",
+	    hcfs2string(temp & OHCI_CTRL_HCFS),
+	    (temp & OHCI_CTRL_BLE) ? " BLE" : "",
+	    (temp & OHCI_CTRL_CLE) ? " CLE" : "",
+	    (temp & OHCI_CTRL_IE) ? " IE" : "",
+	    (temp & OHCI_CTRL_PLE) ? " PLE" : "", temp & OHCI_CTRL_CBSR);
+
+	temp = readl(&regs->cmdstatus);
+	dbg("cmdstatus: 0x%08x SOC=%d%s%s%s%s", temp,
+	    (temp & OHCI_SOC) >> 16,
+	    (temp & OHCI_OCR) ? " OCR" : "",
+	    (temp & OHCI_BLF) ? " BLF" : "",
+	    (temp & OHCI_CLF) ? " CLF" : "", (temp & OHCI_HCR) ? " HCR" : "");
+
+	ohci_dump_intr_mask("intrstatus", readl(&regs->intrstatus));
+	ohci_dump_intr_mask("intrenable", readl(&regs->intrenable));
+
+	maybe_print_eds("ed_periodcurrent", readl(&regs->ed_periodcurrent));
+
+	maybe_print_eds("ed_controlhead", readl(&regs->ed_controlhead));
+	maybe_print_eds("ed_controlcurrent", readl(&regs->ed_controlcurrent));
+
+	maybe_print_eds("ed_bulkhead", readl(&regs->ed_bulkhead));
+	maybe_print_eds("ed_bulkcurrent", readl(&regs->ed_bulkcurrent));
+
+	maybe_print_eds("donehead", readl(&regs->donehead));
 }
 
-static void ohci_dump_roothub (ohci_t *controller, int verbose)
+static void ohci_dump_roothub(ohci_t *controller, int verbose)
 {
-	__u32			temp, ndp, i;
+	__u32 temp, ndp, i;
 
-	temp = roothub_a (controller);
+	temp = roothub_a(controller);
 	ndp = (temp & RH_A_NDP);
 
 	if (verbose) {
-		dbg ("roothub.a: %08x POTPGT=%d%s%s%s%s%s NDP=%d", temp,
-			((temp & RH_A_POTPGT) >> 24) & 0xff,
-			(temp & RH_A_NOCP) ? " NOCP" : "",
-			(temp & RH_A_OCPM) ? " OCPM" : "",
-			(temp & RH_A_DT) ? " DT" : "",
-			(temp & RH_A_NPS) ? " NPS" : "",
-			(temp & RH_A_PSM) ? " PSM" : "",
-			ndp
-			);
-		temp = roothub_b (controller);
-		dbg ("roothub.b: %08x PPCM=%04x DR=%04x",
-			temp,
-			(temp & RH_B_PPCM) >> 16,
-			(temp & RH_B_DR)
-			);
-		temp = roothub_status (controller);
-		dbg ("roothub.status: %08x%s%s%s%s%s%s",
-			temp,
-			(temp & RH_HS_CRWE) ? " CRWE" : "",
-			(temp & RH_HS_OCIC) ? " OCIC" : "",
-			(temp & RH_HS_LPSC) ? " LPSC" : "",
-			(temp & RH_HS_DRWE) ? " DRWE" : "",
-			(temp & RH_HS_OCI) ? " OCI" : "",
-			(temp & RH_HS_LPS) ? " LPS" : ""
-			);
+		dbg("roothub.a: %08x POTPGT=%d%s%s%s%s%s NDP=%d", temp,
+		    ((temp & RH_A_POTPGT) >> 24) & 0xff,
+		    (temp & RH_A_NOCP) ? " NOCP" : "",
+		    (temp & RH_A_OCPM) ? " OCPM" : "",
+		    (temp & RH_A_DT) ? " DT" : "",
+		    (temp & RH_A_NPS) ? " NPS" : "",
+		    (temp & RH_A_PSM) ? " PSM" : "", ndp);
+		temp = roothub_b(controller);
+		dbg("roothub.b: %08x PPCM=%04x DR=%04x",
+		    temp, (temp & RH_B_PPCM) >> 16, (temp & RH_B_DR)
+		    );
+		temp = roothub_status(controller);
+		dbg("roothub.status: %08x%s%s%s%s%s%s",
+		    temp,
+		    (temp & RH_HS_CRWE) ? " CRWE" : "",
+		    (temp & RH_HS_OCIC) ? " OCIC" : "",
+		    (temp & RH_HS_LPSC) ? " LPSC" : "",
+		    (temp & RH_HS_DRWE) ? " DRWE" : "",
+		    (temp & RH_HS_OCI) ? " OCI" : "",
+		    (temp & RH_HS_LPS) ? " LPS" : "");
 	}
 
 	for (i = 0; i < ndp; i++) {
-		temp = roothub_portstatus (controller, i);
-		dbg ("roothub.portstatus [%d] = 0x%08x%s%s%s%s%s%s%s%s%s%s%s%s",
-			i,
-			temp,
-			(temp & RH_PS_PRSC) ? " PRSC" : "",
-			(temp & RH_PS_OCIC) ? " OCIC" : "",
-			(temp & RH_PS_PSSC) ? " PSSC" : "",
-			(temp & RH_PS_PESC) ? " PESC" : "",
-			(temp & RH_PS_CSC) ? " CSC" : "",
-
-			(temp & RH_PS_LSDA) ? " LSDA" : "",
-			(temp & RH_PS_PPS) ? " PPS" : "",
-			(temp & RH_PS_PRS) ? " PRS" : "",
-			(temp & RH_PS_POCI) ? " POCI" : "",
-			(temp & RH_PS_PSS) ? " PSS" : "",
-
-			(temp & RH_PS_PES) ? " PES" : "",
-			(temp & RH_PS_CCS) ? " CCS" : ""
-			);
+		temp = roothub_portstatus(controller, i);
+		dbg("roothub.portstatus [%d] = 0x%08x%s%s%s%s%s%s%s%s%s%s%s%s",
+		    i,
+		    temp,
+		    (temp & RH_PS_PRSC) ? " PRSC" : "",
+		    (temp & RH_PS_OCIC) ? " OCIC" : "",
+		    (temp & RH_PS_PSSC) ? " PSSC" : "",
+		    (temp & RH_PS_PESC) ? " PESC" : "",
+		    (temp & RH_PS_CSC) ? " CSC" : "",
+		    (temp & RH_PS_LSDA) ? " LSDA" : "",
+		    (temp & RH_PS_PPS) ? " PPS" : "",
+		    (temp & RH_PS_PRS) ? " PRS" : "",
+		    (temp & RH_PS_POCI) ? " POCI" : "",
+		    (temp & RH_PS_PSS) ? " PSS" : "",
+		    (temp & RH_PS_PES) ? " PES" : "",
+		    (temp & RH_PS_CCS) ? " CCS" : "");
 	}
 }
 
-static void ohci_dump (ohci_t *controller, int verbose)
+static void ohci_dump(ohci_t *controller, int verbose)
 {
-	dbg ("OHCI controller usb-%s state", controller->slot_name);
+	dbg("OHCI controller usb-%s state", controller->slot_name);
 
 	/* dumps some of the state we know about */
-	ohci_dump_status (controller);
+	ohci_dump_status(controller);
 	if (verbose)
-		ep_print_int_eds (controller, "hcca");
-	dbg ("hcca frame #%04x", controller->hcca->frame_no);
-	ohci_dump_roothub (controller, 1);
+		ep_print_int_eds(controller, "hcca");
+	dbg("hcca frame #%04x", controller->hcca->frame_no);
+	ohci_dump_roothub(controller, 1);
 }
 
-
 #endif /* DEBUG */
 
 /*-------------------------------------------------------------------------*
@@ -382,10 +381,10 @@ static void ohci_dump (ohci_t *controller, int verbose)
 /* get a transfer request */
 
 int sohci_submit_job(struct usb_device *dev, unsigned long pipe, void *buffer,
-		int transfer_len, struct devrequest *setup, int interval)
+		     int transfer_len, struct devrequest *setup, int interval)
 {
 	ohci_t *ohci;
-	ed_t * ed;
+	ed_t *ed;
 	urb_priv_t *purb_priv;
 	int i, size = 0;
 
@@ -405,24 +404,27 @@ int sohci_submit_job(struct usb_device *dev, unsigned long pipe, void *buffer,
 		err("sohci_submit_job: URB NOT FINISHED");
 		return -1;
 	}
-	/* we're about to begin a new transaction here so mark the URB unfinished */
+	/* we're about to begin a new transaction here
+	   so mark the URB unfinished */
 	urb_finished = 0;
 
 	/* every endpoint has a ed, locate and fill it */
-	if (!(ed = ep_add_ed (dev, pipe))) {
+	ed = ep_add_ed(dev, pipe);
+	if (!ed) {
 		err("sohci_submit_job: ENOMEM");
 		return -1;
 	}
 
 	/* for the private part of the URB we need the number of TDs (size) */
-	switch (usb_pipetype (pipe)) {
-		case PIPE_BULK:	/* one TD for every 4096 Byte */
-			size = (transfer_len - 1) / 4096 + 1;
-			break;
-		case PIPE_CONTROL: /* 1 TD for setup, 1 for ACK and 1 for every 4096 B */
-			size = (transfer_len == 0)? 2:
-						(transfer_len - 1) / 4096 + 3;
-			break;
+	switch (usb_pipetype(pipe)) {
+	case PIPE_BULK:
+		/* one TD for every 4096 Byte */
+		size = (transfer_len - 1) / 4096 + 1;
+		break;
+	case PIPE_CONTROL:
+		/* 1 TD for setup, 1 for ACK and 1 for every 4096 B */
+		size = (transfer_len == 0) ? 2 : (transfer_len - 1) / 4096 + 3;
+		break;
 	}
 
 	if (size >= (N_URB_TD - 1)) {
@@ -440,27 +442,28 @@ int sohci_submit_job(struct usb_device *dev, unsigned long pipe, void *buffer,
 	/* allocate the TDs */
 	/* note that td[0] was allocated in ep_add_ed */
 	for (i = 0; i < size; i++) {
-		purb_priv->td[i] = td_alloc (dev);
+		purb_priv->td[i] = td_alloc(dev);
 		if (!purb_priv->td[i]) {
 			purb_priv->length = i;
-			urb_free_priv (purb_priv);
+			urb_free_priv(purb_priv);
 			err("sohci_submit_job: ENOMEM");
 			return -1;
 		}
 	}
 
 	if (ed->state == ED_NEW || (ed->state & ED_DEL)) {
-		urb_free_priv (purb_priv);
+		urb_free_priv(purb_priv);
 		err("sohci_submit_job: EINVAL");
 		return -1;
 	}
 
 	/* link the ed into a chain if is not already */
 	if (ed->state != ED_OPER)
-		ep_link (ohci, ed);
+		ep_link(ohci, ed);
 
 	/* fill the TDs and link it to the ed */
-	td_submit_job(dev, pipe, buffer, transfer_len, setup, purb_priv, interval);
+	td_submit_job(dev, pipe, buffer, transfer_len, setup, purb_priv,
+		      interval);
 
 	return 0;
 }
@@ -470,11 +473,11 @@ int sohci_submit_job(struct usb_device *dev, unsigned long pipe, void *buffer,
 #ifdef DEBUG
 /* tell us the current USB frame number */
 
-static int sohci_get_current_frame_number (struct usb_device *usb_dev)
+static int sohci_get_current_frame_number(struct usb_device *usb_dev)
 {
 	ohci_t *ohci = &gohci;
 
-	return m16_swap (ohci->hcca->frame_no);
+	return m16_swap(ohci->hcca->frame_no);
 }
 #endif
 
@@ -484,7 +487,7 @@ static int sohci_get_current_frame_number (struct usb_device *usb_dev)
 
 /* link an ed into one of the HC chains */
 
-static int ep_link (ohci_t *ohci, ed_t *edi)
+static int ep_link(ohci_t *ohci, ed_t *edi)
 {
 	volatile ed_t *ed = edi;
 
@@ -494,15 +497,15 @@ static int ep_link (ohci_t *ohci, ed_t *edi)
 	case PIPE_CONTROL:
 		ed->hwNextED = 0;
 		if (ohci->ed_controltail == NULL) {
-			writel (ed, &ohci->regs->ed_controlhead);
+			writel((u32)ed, &ohci->regs->ed_controlhead);
 		} else {
-			ohci->ed_controltail->hwNextED = (__u32)m32_swap (ed);
+			ohci->ed_controltail->hwNextED = (__u32) m32_swap(ed);
 		}
 		ed->ed_prev = ohci->ed_controltail;
 		if (!ohci->ed_controltail && !ohci->ed_rm_list[0] &&
-			!ohci->ed_rm_list[1] && !ohci->sleeping) {
+		    !ohci->ed_rm_list[1] && !ohci->sleeping) {
 			ohci->hc_control |= OHCI_CTRL_CLE;
-			writel (ohci->hc_control, &ohci->regs->control);
+			writel(ohci->hc_control, &ohci->regs->control);
 		}
 		ohci->ed_controltail = edi;
 		break;
@@ -510,15 +513,15 @@ static int ep_link (ohci_t *ohci, ed_t *edi)
 	case PIPE_BULK:
 		ed->hwNextED = 0;
 		if (ohci->ed_bulktail == NULL) {
-			writel (ed, &ohci->regs->ed_bulkhead);
+			writel((u32)ed, &ohci->regs->ed_bulkhead);
 		} else {
-			ohci->ed_bulktail->hwNextED = (__u32)m32_swap (ed);
+			ohci->ed_bulktail->hwNextED = (__u32) m32_swap(ed);
 		}
 		ed->ed_prev = ohci->ed_bulktail;
 		if (!ohci->ed_bulktail && !ohci->ed_rm_list[0] &&
-			!ohci->ed_rm_list[1] && !ohci->sleeping) {
+		    !ohci->ed_rm_list[1] && !ohci->sleeping) {
 			ohci->hc_control |= OHCI_CTRL_BLE;
-			writel (ohci->hc_control, &ohci->regs->control);
+			writel(ohci->hc_control, &ohci->regs->control);
 		}
 		ohci->ed_bulktail = edi;
 		break;
@@ -533,25 +536,27 @@ static int ep_link (ohci_t *ohci, ed_t *edi)
  * the link from the ed still points to another operational ed or 0
  * so the HC can eventually finish the processing of the unlinked ed */
 
-static int ep_unlink (ohci_t *ohci, ed_t *ed)
+static int ep_unlink(ohci_t *ohci, ed_t *ed)
 {
-	ed->hwINFO |= m32_swap (OHCI_ED_SKIP);
+	ed->hwINFO |= m32_swap(OHCI_ED_SKIP);
 
 	switch (ed->type) {
 	case PIPE_CONTROL:
 		if (ed->ed_prev == NULL) {
 			if (!ed->hwNextED) {
 				ohci->hc_control &= ~OHCI_CTRL_CLE;
-				writel (ohci->hc_control, &ohci->regs->control);
+				writel(ohci->hc_control, &ohci->regs->control);
 			}
-			writel (m32_swap (*((__u32 *)&ed->hwNextED)), &ohci->regs->ed_controlhead);
+			writel(m32_swap(*((__u32 *) &ed->hwNextED)),
+			       &ohci->regs->ed_controlhead);
 		} else {
 			ed->ed_prev->hwNextED = ed->hwNextED;
 		}
 		if (ohci->ed_controltail == ed) {
 			ohci->ed_controltail = ed->ed_prev;
 		} else {
-			((ed_t *)m32_swap (*((__u32 *)&ed->hwNextED)))->ed_prev = ed->ed_prev;
+			((ed_t *)m32_swap(*((__u32 *)&ed->hwNextED)))->ed_prev =
+						ed->ed_prev;
 		}
 		break;
 
@@ -559,16 +564,18 @@ static int ep_unlink (ohci_t *ohci, ed_t *ed)
 		if (ed->ed_prev == NULL) {
 			if (!ed->hwNextED) {
 				ohci->hc_control &= ~OHCI_CTRL_BLE;
-				writel (ohci->hc_control, &ohci->regs->control);
+				writel(ohci->hc_control, &ohci->regs->control);
 			}
-			writel (m32_swap (*((__u32 *)&ed->hwNextED)), &ohci->regs->ed_bulkhead);
+			writel(m32_swap(*((__u32 *) &ed->hwNextED)),
+			       &ohci->regs->ed_bulkhead);
 		} else {
 			ed->ed_prev->hwNextED = ed->hwNextED;
 		}
 		if (ohci->ed_bulktail == ed) {
 			ohci->ed_bulktail = ed->ed_prev;
 		} else {
-			((ed_t *)m32_swap (*((__u32 *)&ed->hwNextED)))->ed_prev = ed->ed_prev;
+			((ed_t *)m32_swap(*((__u32 *)&ed->hwNextED)))->ed_prev =
+						ed->ed_prev;
 		}
 		break;
 	}
@@ -576,23 +583,24 @@ static int ep_unlink (ohci_t *ohci, ed_t *ed)
 	return 0;
 }
 
-
 /*-------------------------------------------------------------------------*/
 
-/* add/reinit an endpoint; this should be done once at the usb_set_configuration command,
- * but the USB stack is a little bit stateless  so we do it at every transaction
- * if the state of the ed is ED_NEW then a dummy td is added and the state is changed to ED_UNLINK
- * in all other cases the state is left unchanged
- * the ed info fields are setted anyway even though most of them should not change */
+/* add/reinit an endpoint; this should be done once at the usb_set_configuration
+ * command, but the USB stack is a little bit stateless  so we do it at every
+ * transaction. If the state of the ed is ED_NEW then a dummy td is added and
+ * the state is changed to ED_UNLINK. In all other cases the state is left
+ * unchanged. The ed info fields are setted anyway even though most of them
+ * should not change */
 
-static ed_t * ep_add_ed (struct usb_device *usb_dev, unsigned long pipe)
+static ed_t *ep_add_ed(struct usb_device *usb_dev, unsigned long pipe)
 {
 	td_t *td;
 	ed_t *ed_ret;
 	volatile ed_t *ed;
 
-	ed = ed_ret = &ohci_dev.ed[(usb_pipeendpoint (pipe) << 1) |
-			(usb_pipecontrol (pipe)? 0: usb_pipeout (pipe))];
+	ed = ed_ret = &ohci_dev.ed[(usb_pipeendpoint(pipe) << 1) |
+				   (usb_pipecontrol(pipe) ? 0 :
+				    usb_pipeout(pipe))];
 
 	if ((ed->state & ED_DEL) || (ed->state & ED_URB_DEL)) {
 		err("ep_add_ed: pending delete");
@@ -601,22 +609,23 @@ static ed_t * ep_add_ed (struct usb_device *usb_dev, unsigned long pipe)
 	}
 
 	if (ed->state == ED_NEW) {
-		ed->hwINFO = m32_swap (OHCI_ED_SKIP); /* skip ed */
+		ed->hwINFO = m32_swap(OHCI_ED_SKIP);	/* skip ed */
 		/* dummy td; end of td list for ed */
-		td = td_alloc (usb_dev);
-		ed->hwTailP = (__u32)m32_swap (td);
+		td = td_alloc(usb_dev);
+		ed->hwTailP = (__u32) m32_swap(td);
 		ed->hwHeadP = ed->hwTailP;
 		ed->state = ED_UNLINK;
-		ed->type = usb_pipetype (pipe);
+		ed->type = usb_pipetype(pipe);
 		ohci_dev.ed_cnt++;
 	}
 
-	ed->hwINFO = m32_swap (usb_pipedevice (pipe)
-			| usb_pipeendpoint (pipe) << 7
-			| (usb_pipeisoc (pipe)? 0x8000: 0)
-			| (usb_pipecontrol (pipe)? 0: (usb_pipeout (pipe)? 0x800: 0x1000))
-			| usb_pipeslow (pipe) << 13
-			| usb_maxpacket (usb_dev, pipe) << 16);
+	ed->hwINFO = m32_swap(usb_pipedevice(pipe)
+			      | usb_pipeendpoint(pipe) << 7
+			      | (usb_pipeisoc(pipe) ? 0x8000 : 0)
+			      | (usb_pipecontrol(pipe) ? 0 :
+				 (usb_pipeout(pipe) ? 0x800 : 0x1000))
+			      | usb_pipeslow(pipe) << 13 |
+			      usb_maxpacket(usb_dev, pipe) << 16);
 
 	return ed_ret;
 }
@@ -627,11 +636,10 @@ static ed_t * ep_add_ed (struct usb_device *usb_dev, unsigned long pipe)
 
 /* enqueue next TD for this URB (OHCI spec 5.2.8.2) */
 
-static void td_fill (ohci_t *ohci, unsigned int info,
-	void *data, int len,
-	struct usb_device *dev, int index, urb_priv_t *urb_priv)
+static void td_fill(ohci_t *ohci, unsigned int info, void *data, int len,
+		    struct usb_device *dev, int index, urb_priv_t *urb_priv)
 {
-	volatile td_t  *td, *td_pt;
+	volatile td_t *td, *td_pt;
 #ifdef OHCI_FILL_TRACE
 	int i;
 #endif
@@ -641,33 +649,35 @@ static void td_fill (ohci_t *ohci, unsigned int info,
 		return;
 	}
 	/* use this td as the next dummy */
-	td_pt = urb_priv->td [index];
+	td_pt = urb_priv->td[index];
 	td_pt->hwNextTD = 0;
 
 	/* fill the old dummy TD */
-	td = urb_priv->td [index] = (td_t *)(m32_swap (urb_priv->ed->hwTailP) & ~0xf);
+	td = urb_priv->td[index] =
+	    (td_t *) (m32_swap(urb_priv->ed->hwTailP) & ~0xf);
 
 	td->ed = urb_priv->ed;
 	td->next_dl_td = NULL;
 	td->index = index;
-	td->data = (__u32)data;
+	td->data = (__u32) data;
 #ifdef OHCI_FILL_TRACE
 	if (usb_pipebulk(urb_priv->pipe) && usb_pipeout(urb_priv->pipe)) {
 		for (i = 0; i < len; i++)
-		printf("td->data[%d] %#2x ",i, ((unsigned char *)td->data)[i]);
+			printf("td->data[%d] %#2x ", i,
+			       ((unsigned char *)td->data)[i]);
 		printf("\n");
 	}
 #endif
 	if (!len)
 		data = 0;
 
-	td->hwINFO = (__u32)m32_swap (info);
-	td->hwCBP = (__u32)m32_swap (data);
+	td->hwINFO = (__u32) m32_swap(info);
+	td->hwCBP = (__u32) m32_swap(data);
 	if (data)
-		td->hwBE = (__u32)m32_swap (data + len - 1);
+		td->hwBE = (__u32) m32_swap(data + len - 1);
 	else
 		td->hwBE = 0;
-	td->hwNextTD = (__u32)m32_swap (td_pt);
+	td->hwNextTD = (__u32) m32_swap(td_pt);
 
 	/* append to queue */
 	td->ed->hwTailP = td->hwNextTD;
@@ -677,8 +687,10 @@ static void td_fill (ohci_t *ohci, unsigned int info,
 
 /* prepare all TDs of a transfer */
 
-static void td_submit_job (struct usb_device *dev, unsigned long pipe, void *buffer,
-	int transfer_len, struct devrequest *setup, urb_priv_t *urb, int interval)
+static void td_submit_job(struct usb_device *dev, unsigned long pipe,
+			  void *buffer, int transfer_len,
+			  struct devrequest *setup, urb_priv_t *urb,
+			  int interval)
 {
 	ohci_t *ohci = &gohci;
 	int data_len = transfer_len;
@@ -687,12 +699,14 @@ static void td_submit_job (struct usb_device *dev, unsigned long pipe, void *buf
 	__u32 info = 0;
 	unsigned int toggle = 0;
 
-	/* OHCI handles the DATA-toggles itself, we just use the USB-toggle bits for reseting */
-	if(usb_gettoggle(dev, usb_pipeendpoint(pipe), usb_pipeout(pipe))) {
+	/* OHCI handles the DATA-toggles itself, we just
+	   use the USB-toggle bits for reseting */
+	if (usb_gettoggle(dev, usb_pipeendpoint(pipe), usb_pipeout(pipe))) {
 		toggle = TD_T_TOGGLE;
 	} else {
 		toggle = TD_T_DATA0;
-		usb_settoggle(dev, usb_pipeendpoint(pipe), usb_pipeout(pipe), 1);
+		usb_settoggle(dev, usb_pipeendpoint(pipe), usb_pipeout(pipe),
+			      1);
 	}
 	urb->td_cnt = 0;
 	if (data_len)
@@ -700,37 +714,45 @@ static void td_submit_job (struct usb_device *dev, unsigned long pipe, void *buf
 	else
 		data = 0;
 
-	switch (usb_pipetype (pipe)) {
+	switch (usb_pipetype(pipe)) {
 	case PIPE_BULK:
-		info = usb_pipeout (pipe)?
-			TD_CC | TD_DP_OUT : TD_CC | TD_DP_IN ;
-		while(data_len > 4096) {
-			td_fill (ohci, info | (cnt? TD_T_TOGGLE:toggle), data, 4096, dev, cnt, urb);
-			data += 4096; data_len -= 4096; cnt++;
+		info = usb_pipeout(pipe) ? TD_CC | TD_DP_OUT : TD_CC | TD_DP_IN;
+		while (data_len > 4096) {
+			td_fill(ohci, info | (cnt ? TD_T_TOGGLE : toggle), data,
+				4096, dev, cnt, urb);
+			data += 4096;
+			data_len -= 4096;
+			cnt++;
 		}
-		info = usb_pipeout (pipe)?
-			TD_CC | TD_DP_OUT : TD_CC | TD_R | TD_DP_IN ;
-		td_fill (ohci, info | (cnt? TD_T_TOGGLE:toggle), data, data_len, dev, cnt, urb);
+		info = usb_pipeout(pipe) ?
+				TD_CC | TD_DP_OUT :
+				TD_CC | TD_R | TD_DP_IN;
+		td_fill(ohci, info | (cnt ? TD_T_TOGGLE : toggle), data,
+			data_len, dev, cnt, urb);
 		cnt++;
 
 		if (!ohci->sleeping)
-			writel (OHCI_BLF, &ohci->regs->cmdstatus); /* start bulk list */
+			/* start bulk list */
+			writel(OHCI_BLF, &ohci->regs->cmdstatus);
 		break;
 
 	case PIPE_CONTROL:
 		info = TD_CC | TD_DP_SETUP | TD_T_DATA0;
-		td_fill (ohci, info, setup, 8, dev, cnt++, urb);
+		td_fill(ohci, info, setup, 8, dev, cnt++, urb);
 		if (data_len > 0) {
-			info = usb_pipeout (pipe)?
-				TD_CC | TD_R | TD_DP_OUT | TD_T_DATA1 : TD_CC | TD_R | TD_DP_IN | TD_T_DATA1;
+			info = usb_pipeout(pipe) ?
+			    TD_CC | TD_R | TD_DP_OUT | TD_T_DATA1 :
+			    TD_CC | TD_R | TD_DP_IN | TD_T_DATA1;
 			/* NOTE:  mishandles transfers >8K, some >4K */
-			td_fill (ohci, info, data, data_len, dev, cnt++, urb);
+			td_fill(ohci, info, data, data_len, dev, cnt++, urb);
 		}
-		info = usb_pipeout (pipe)?
-			TD_CC | TD_DP_IN | TD_T_DATA1: TD_CC | TD_DP_OUT | TD_T_DATA1;
-		td_fill (ohci, info, data, 0, dev, cnt++, urb);
+		info = usb_pipeout(pipe) ?
+		    TD_CC | TD_DP_IN | TD_T_DATA1 :
+		    TD_CC | TD_DP_OUT | TD_T_DATA1;
+		td_fill(ohci, info, data, 0, dev, cnt++, urb);
 		if (!ohci->sleeping)
-			writel (OHCI_CLF, &ohci->regs->cmdstatus); /* start Control list */
+			/* start Control list */
+			writel(OHCI_CLF, &ohci->regs->cmdstatus);
 		break;
 	}
 	if (urb->length != cnt)
@@ -749,13 +771,12 @@ static void dl_transfer_length(td_t * td)
 	__u32 tdINFO, tdBE, tdCBP;
 	urb_priv_t *lurb_priv = &urb_priv;
 
-	tdINFO = m32_swap (td->hwINFO);
-	tdBE   = m32_swap (td->hwBE);
-	tdCBP  = m32_swap (td->hwCBP);
-
+	tdINFO = m32_swap(td->hwINFO);
+	tdBE = m32_swap(td->hwBE);
+	tdCBP = m32_swap(td->hwCBP);
 
 	if (!(usb_pipecontrol(lurb_priv->pipe) &&
-	    ((td->index == 0) || (td->index == lurb_priv->length - 1)))) {
+	      ((td->index == 0) || (td->index == lurb_priv->length - 1)))) {
 		if (tdBE != 0) {
 			if (td->hwCBP == 0)
 				lurb_priv->actual_length += tdBE - td->data + 1;
@@ -770,37 +791,39 @@ static void dl_transfer_length(td_t * td)
 /* replies to the request have to be on a FIFO basis so
  * we reverse the reversed done-list */
 
-static td_t * dl_reverse_done_list (ohci_t *ohci)
+static td_t *dl_reverse_done_list(ohci_t *ohci)
 {
 	__u32 td_list_hc;
 	td_t *td_rev = NULL;
 	td_t *td_list = NULL;
 	urb_priv_t *lurb_priv = NULL;
 
-	td_list_hc = m32_swap (ohci->hcca->done_head) & 0xfffffff0;
+	td_list_hc = m32_swap(ohci->hcca->done_head) & 0xfffffff0;
 	ohci->hcca->done_head = 0;
 
 	while (td_list_hc) {
-		td_list = (td_t *)td_list_hc;
+		td_list = (td_t *) td_list_hc;
 
-		if (TD_CC_GET (m32_swap (td_list->hwINFO))) {
+		if (TD_CC_GET(m32_swap(td_list->hwINFO))) {
 			lurb_priv = &urb_priv;
 			dbg(" USB-error/status: %x : %p",
-					TD_CC_GET (m32_swap (td_list->hwINFO)), td_list);
-			if (td_list->ed->hwHeadP & m32_swap (0x1)) {
+			    TD_CC_GET(m32_swap(td_list->hwINFO)), td_list);
+			if (td_list->ed->hwHeadP & m32_swap(0x1)) {
 				if (lurb_priv && ((td_list->index + 1) < lurb_priv->length)) {
 					td_list->ed->hwHeadP =
-						(lurb_priv->td[lurb_priv->length - 1]->hwNextTD & m32_swap (0xfffffff0)) |
-									(td_list->ed->hwHeadP & m32_swap (0x2));
+						(lurb_priv->td[lurb_priv->length-1]->hwNextTD &
+						 m32_swap(0xfffffff0)) |
+						 (td_list->ed->hwHeadP & m32_swap(0x2));
 					lurb_priv->td_cnt += lurb_priv->length - td_list->index - 1;
 				} else
-					td_list->ed->hwHeadP &= m32_swap (0xfffffff2);
+					td_list->ed->hwHeadP &=
+					    m32_swap(0xfffffff2);
 			}
 		}
 
 		td_list->next_dl_td = td_rev;
 		td_rev = td_list;
-		td_list_hc = m32_swap (td_list->hwNextTD) & 0xfffffff0;
+		td_list_hc = m32_swap(td_list->hwNextTD) & 0xfffffff0;
 	}
 
 	return td_list;
@@ -809,7 +832,7 @@ static td_t * dl_reverse_done_list (ohci_t *ohci)
 /*-------------------------------------------------------------------------*/
 
 /* td done list */
-static int dl_done_list (ohci_t *ohci, td_t *td_list)
+static int dl_done_list(ohci_t *ohci, td_t *td_list)
 {
 	td_t *td_list_next = NULL;
 	ed_t *ed;
@@ -823,14 +846,14 @@ static int dl_done_list (ohci_t *ohci, td_t *td_list)
 		td_list_next = td_list->next_dl_td;
 
 		lurb_priv = &urb_priv;
-		tdINFO = m32_swap (td_list->hwINFO);
+		tdINFO = m32_swap(td_list->hwINFO);
 
 		ed = td_list->ed;
 
 		dl_transfer_length(td_list);
 
 		/* error code of transfer */
-		cc = TD_CC_GET (tdINFO);
+		cc = TD_CC_GET(tdINFO);
 		if (cc != 0) {
 			dbg("ConditionCode %#x", cc);
 			stat = cc_to_error[cc];
@@ -842,18 +865,19 @@ static int dl_done_list (ohci_t *ohci, td_t *td_list)
 			if ((ed->state & (ED_OPER | ED_UNLINK)))
 				urb_finished = 1;
 			else
-				dbg("dl_done_list: strange.., ED state %x, ed->state\n");
+				dbg("dl_done_list: strange.., ED state %x, "
+				    "ed->state\n");
 		} else
-			dbg("dl_done_list: processing TD %x, len %x\n", lurb_priv->td_cnt,
-				lurb_priv->length);
+			dbg("dl_done_list: processing TD %x, len %x\n",
+			    lurb_priv->td_cnt, lurb_priv->length);
 
 		if (ed->state != ED_NEW) {
-			edHeadP = m32_swap (ed->hwHeadP) & 0xfffffff0;
-			edTailP = m32_swap (ed->hwTailP);
+			edHeadP = m32_swap(ed->hwHeadP) & 0xfffffff0;
+			edTailP = m32_swap(ed->hwTailP);
 
 			/* unlink eds if they are not busy */
 			if ((edHeadP == edTailP) && (ed->state == ED_OPER))
-				ep_unlink (ohci, ed);
+				ep_unlink(ohci, ed);
 		}
 
 		td_list = td_list_next;
@@ -866,102 +890,98 @@ static int dl_done_list (ohci_t *ohci, td_t *td_list)
  *-------------------------------------------------------------------------*/
 
 /* Device descriptor */
-static __u8 root_hub_dev_des[] =
-{
-	0x12,       /*  __u8  bLength; */
-	0x01,       /*  __u8  bDescriptorType; Device */
-	0x10,	    /*  __u16 bcdUSB; v1.1 */
+static __u8 root_hub_dev_des[] = {
+	0x12,	/*  __u8  bLength; */
+	0x01,	/*  __u8  bDescriptorType; Device */
+	0x10,	/*  __u16 bcdUSB; v1.1 */
 	0x01,
-	0x09,	    /*  __u8  bDeviceClass; HUB_CLASSCODE */
-	0x00,	    /*  __u8  bDeviceSubClass; */
-	0x00,       /*  __u8  bDeviceProtocol; */
-	0x08,       /*  __u8  bMaxPacketSize0; 8 Bytes */
-	0x00,       /*  __u16 idVendor; */
+	0x09,	/*  __u8  bDeviceClass; HUB_CLASSCODE */
+	0x00,	/*  __u8  bDeviceSubClass; */
+	0x00,	/*  __u8  bDeviceProtocol; */
+	0x08,	/*  __u8  bMaxPacketSize0; 8 Bytes */
+	0x00,	/*  __u16 idVendor; */
 	0x00,
-	0x00,       /*  __u16 idProduct; */
+	0x00,	/*  __u16 idProduct; */
 	0x00,
-	0x00,       /*  __u16 bcdDevice; */
+	0x00,	/*  __u16 bcdDevice; */
 	0x00,
-	0x00,       /*  __u8  iManufacturer; */
-	0x01,       /*  __u8  iProduct; */
-	0x00,       /*  __u8  iSerialNumber; */
-	0x01        /*  __u8  bNumConfigurations; */
+	0x00,	/*  __u8  iManufacturer; */
+	0x01,	/*  __u8  iProduct; */
+	0x00,	/*  __u8  iSerialNumber; */
+	0x01	/*  __u8  bNumConfigurations; */
 };
 
-
 /* Configuration descriptor */
-static __u8 root_hub_config_des[] =
-{
-	0x09,       /*  __u8  bLength; */
-	0x02,       /*  __u8  bDescriptorType; Configuration */
-	0x19,       /*  __u16 wTotalLength; */
+static __u8 root_hub_config_des[] = {
+	0x09,	/*  __u8  bLength; */
+	0x02,	/*  __u8  bDescriptorType; Configuration */
+	0x19,	/*  __u16 wTotalLength; */
 	0x00,
-	0x01,       /*  __u8  bNumInterfaces; */
-	0x01,       /*  __u8  bConfigurationValue; */
-	0x00,       /*  __u8  iConfiguration; */
-	0x40,       /*  __u8  bmAttributes;
-		 Bit 7: Bus-powered, 6: Self-powered, 5 Remote-wakwup, 4..0: resvd */
-	0x00,       /*  __u8  MaxPower; */
+	0x01,	/*  __u8  bNumInterfaces; */
+	0x01,	/*  __u8  bConfigurationValue; */
+	0x00,	/*  __u8  iConfiguration; */
+	0x40,	/*  __u8  bmAttributes;
+		   Bit 7: Bus-powered, 6: Self-powered,
+		   5 Remote-wakwup, 4..0: resvd */
+	0x00,	/*  __u8  MaxPower; */
 
 	/* interface */
-	0x09,       /*  __u8  if_bLength; */
-	0x04,       /*  __u8  if_bDescriptorType; Interface */
-	0x00,       /*  __u8  if_bInterfaceNumber; */
-	0x00,       /*  __u8  if_bAlternateSetting; */
-	0x01,       /*  __u8  if_bNumEndpoints; */
-	0x09,       /*  __u8  if_bInterfaceClass; HUB_CLASSCODE */
-	0x00,       /*  __u8  if_bInterfaceSubClass; */
-	0x00,       /*  __u8  if_bInterfaceProtocol; */
-	0x00,       /*  __u8  if_iInterface; */
+	0x09,	/*  __u8  if_bLength; */
+	0x04,	/*  __u8  if_bDescriptorType; Interface */
+	0x00,	/*  __u8  if_bInterfaceNumber; */
+	0x00,	/*  __u8  if_bAlternateSetting; */
+	0x01,	/*  __u8  if_bNumEndpoints; */
+	0x09,	/*  __u8  if_bInterfaceClass; HUB_CLASSCODE */
+	0x00,	/*  __u8  if_bInterfaceSubClass; */
+	0x00,	/*  __u8  if_bInterfaceProtocol; */
+	0x00,	/*  __u8  if_iInterface; */
 
 	/* endpoint */
-	0x07,       /*  __u8  ep_bLength; */
-	0x05,       /*  __u8  ep_bDescriptorType; Endpoint */
-	0x81,       /*  __u8  ep_bEndpointAddress; IN Endpoint 1 */
-	0x03,       /*  __u8  ep_bmAttributes; Interrupt */
-	0x02,       /*  __u16 ep_wMaxPacketSize; ((MAX_ROOT_PORTS + 1) / 8 */
+	0x07,	/*  __u8  ep_bLength; */
+	0x05,	/*  __u8  ep_bDescriptorType; Endpoint */
+	0x81,	/*  __u8  ep_bEndpointAddress; IN Endpoint 1 */
+	0x03,	/*  __u8  ep_bmAttributes; Interrupt */
+	0x02,	/*  __u16 ep_wMaxPacketSize; ((MAX_ROOT_PORTS + 1) / 8 */
 	0x00,
-	0xff        /*  __u8  ep_bInterval; 255 ms */
+	0xff	/*  __u8  ep_bInterval; 255 ms */
 };
 
-static unsigned char root_hub_str_index0[] =
-{
-	0x04,			/*  __u8  bLength; */
-	0x03,			/*  __u8  bDescriptorType; String-descriptor */
-	0x09,			/*  __u8  lang ID */
-	0x04,			/*  __u8  lang ID */
+static unsigned char root_hub_str_index0[] = {
+	0x04,	/*  __u8  bLength; */
+	0x03,	/*  __u8  bDescriptorType; String-descriptor */
+	0x09,	/*  __u8  lang ID */
+	0x04,	/*  __u8  lang ID */
 };
 
-static unsigned char root_hub_str_index1[] =
-{
-	28,			/*  __u8  bLength; */
-	0x03,			/*  __u8  bDescriptorType; String-descriptor */
-	'O',			/*  __u8  Unicode */
-	0,				/*  __u8  Unicode */
-	'H',			/*  __u8  Unicode */
-	0,				/*  __u8  Unicode */
-	'C',			/*  __u8  Unicode */
-	0,				/*  __u8  Unicode */
-	'I',			/*  __u8  Unicode */
-	0,				/*  __u8  Unicode */
-	' ',			/*  __u8  Unicode */
-	0,				/*  __u8  Unicode */
-	'R',			/*  __u8  Unicode */
-	0,				/*  __u8  Unicode */
-	'o',			/*  __u8  Unicode */
-	0,				/*  __u8  Unicode */
-	'o',			/*  __u8  Unicode */
-	0,				/*  __u8  Unicode */
-	't',			/*  __u8  Unicode */
-	0,				/*  __u8  Unicode */
-	' ',			/*  __u8  Unicode */
-	0,				/*  __u8  Unicode */
-	'H',			/*  __u8  Unicode */
-	0,				/*  __u8  Unicode */
-	'u',			/*  __u8  Unicode */
-	0,				/*  __u8  Unicode */
-	'b',			/*  __u8  Unicode */
-	0,				/*  __u8  Unicode */
+static unsigned char root_hub_str_index1[] = {
+	28,	/*  __u8  bLength; */
+	0x03,	/*  __u8  bDescriptorType; String-descriptor */
+	'O',	/*  __u8  Unicode */
+	0,	/*  __u8  Unicode */
+	'H',	/*  __u8  Unicode */
+	0,	/*  __u8  Unicode */
+	'C',	/*  __u8  Unicode */
+	0,	/*  __u8  Unicode */
+	'I',	/*  __u8  Unicode */
+	0,	/*  __u8  Unicode */
+	' ',	/*  __u8  Unicode */
+	0,	/*  __u8  Unicode */
+	'R',	/*  __u8  Unicode */
+	0,	/*  __u8  Unicode */
+	'o',	/*  __u8  Unicode */
+	0,	/*  __u8  Unicode */
+	'o',	/*  __u8  Unicode */
+	0,	/*  __u8  Unicode */
+	't',	/*  __u8  Unicode */
+	0,	/*  __u8  Unicode */
+	' ',	/*  __u8  Unicode */
+	0,	/*  __u8  Unicode */
+	'H',	/*  __u8  Unicode */
+	0,	/*  __u8  Unicode */
+	'u',	/*  __u8  Unicode */
+	0,	/*  __u8  Unicode */
+	'b',	/*  __u8  Unicode */
+	0,	/*  __u8  Unicode */
 };
 
 /* Hub class-specific descriptor is constructed dynamically */
@@ -971,14 +991,24 @@ static unsigned char root_hub_str_index1[] =
 
 #define OK(x)			len = (x); break
 #ifdef DEBUG
-#define WR_RH_STAT(x)		{info("WR:status %#8x", (x));writel((x), &gohci.regs->roothub.status);}
-#define WR_RH_PORTSTAT(x)	{info("WR:portstatus[%d] %#8x", wIndex-1, (x));writel((x), &gohci.regs->roothub.portstatus[wIndex-1]);}
+#define WR_RH_STAT(x) \
+{ \
+	info("WR:status %#8x", (x)); \
+	writel((x), &gohci.regs->roothub.status); \
+}
+#define WR_RH_PORTSTAT(x) \
+{ \
+	info("WR:portstatus[%d] %#8x", wIndex-1, (x)); \
+	writel((x), &gohci.regs->roothub.portstatus[wIndex-1]); \
+}
 #else
-#define WR_RH_STAT(x)		writel((x), &gohci.regs->roothub.status)
-#define WR_RH_PORTSTAT(x)	writel((x), &gohci.regs->roothub.portstatus[wIndex-1])
+#define WR_RH_STAT(x) \
+	writel((x), &gohci.regs->roothub.status)
+#define WR_RH_PORTSTAT(x)\
+	writel((x), &gohci.regs->roothub.portstatus[wIndex-1])
 #endif
-#define RD_RH_STAT		roothub_status(&gohci)
-#define RD_RH_PORTSTAT		roothub_portstatus(&gohci,wIndex-1)
+#define RD_RH_STAT	roothub_status(&gohci)
+#define RD_RH_PORTSTAT	roothub_portstatus(&gohci, wIndex-1)
 
 /* request to virtual root hub */
 
@@ -988,14 +1018,13 @@ int rh_check_port_status(ohci_t *controller)
 	int res;
 
 	res = -1;
-	temp = roothub_a (controller);
+	temp = roothub_a(controller);
 	ndp = (temp & RH_A_NDP);
 	for (i = 0; i < ndp; i++) {
-		temp = roothub_portstatus (controller, i);
+		temp = roothub_portstatus(controller, i);
 		/* check for a device disconnect */
 		if (((temp & (RH_PS_PESC | RH_PS_CSC)) ==
-			(RH_PS_PESC | RH_PS_CSC)) &&
-			((temp & RH_PS_CCS) == 0)) {
+		     (RH_PS_PESC | RH_PS_CSC)) && ((temp & RH_PS_CCS) == 0)) {
 			res = i;
 			break;
 		}
@@ -1004,22 +1033,24 @@ int rh_check_port_status(ohci_t *controller)
 }
 
 static int ohci_submit_rh_msg(struct usb_device *dev, unsigned long pipe,
-		void *buffer, int transfer_len, struct devrequest *cmd)
+			      void *buffer, int transfer_len,
+			      struct devrequest *cmd)
 {
-	void * data = buffer;
+	void *data = buffer;
 	int leni = transfer_len;
 	int len = 0;
 	int stat = 0;
 	__u32 datab[4];
-	__u8 *data_buf = (__u8 *)datab;
+	__u8 *data_buf = (__u8 *) datab;
 	__u16 bmRType_bReq;
 	__u16 wValue;
 	__u16 wIndex;
 	__u16 wLength;
 
 #ifdef DEBUG
-urb_priv.actual_length = 0;
-pkt_print(dev, pipe, buffer, transfer_len, cmd, "SUB(rh)", usb_pipein(pipe));
+	urb_priv.actual_length = 0;
+	pkt_print(dev, pipe, buffer, transfer_len, cmd, "SUB(rh)",
+		  usb_pipein(pipe));
 #else
 	wait_ms(1);
 #endif
@@ -1028,189 +1059,216 @@ pkt_print(dev, pipe, buffer, transfer_len, cmd, "SUB(rh)", usb_pipein(pipe));
 		return 0;
 	}
 
-	bmRType_bReq  = cmd->requesttype | (cmd->request << 8);
-	wValue        = m16_swap (cmd->value);
-	wIndex        = m16_swap (cmd->index);
-	wLength       = m16_swap (cmd->length);
+	bmRType_bReq = cmd->requesttype | (cmd->request << 8);
+	wValue = m16_swap(cmd->value);
+	wIndex = m16_swap(cmd->index);
+	wLength = m16_swap(cmd->length);
 
 	info("Root-Hub: adr: %2x cmd(%1x): %08x %04x %04x %04x",
-		dev->devnum, 8, bmRType_bReq, wValue, wIndex, wLength);
+	     dev->devnum, 8, bmRType_bReq, wValue, wIndex, wLength);
 
 	switch (bmRType_bReq) {
-	/* Request Destination:
-	   without flags: Device,
-	   RH_INTERFACE: interface,
-	   RH_ENDPOINT: endpoint,
-	   RH_CLASS means HUB here,
-	   RH_OTHER | RH_CLASS  almost ever means HUB_PORT here
-	*/
+		/* Request Destination:
+		   without flags: Device,
+		   RH_INTERFACE: interface,
+		   RH_ENDPOINT: endpoint,
+		   RH_CLASS means HUB here,
+		   RH_OTHER | RH_CLASS  almost ever means HUB_PORT here
+		 */
 
 	case RH_GET_STATUS:
-			*(__u16 *) data_buf = m16_swap (1); OK (2);
+		*(__u16 *) data_buf = m16_swap(1);
+		OK(2);
 	case RH_GET_STATUS | RH_INTERFACE:
-			*(__u16 *) data_buf = m16_swap (0); OK (2);
+		*(__u16 *) data_buf = m16_swap(0);
+		OK(2);
 	case RH_GET_STATUS | RH_ENDPOINT:
-			*(__u16 *) data_buf = m16_swap (0); OK (2);
+		*(__u16 *) data_buf = m16_swap(0);
+		OK(2);
 	case RH_GET_STATUS | RH_CLASS:
-			*(__u32 *) data_buf = m32_swap (
-				RD_RH_STAT & ~(RH_HS_CRWE | RH_HS_DRWE));
-			OK (4);
+		*(__u32 *) data_buf =
+		    m32_swap(RD_RH_STAT & ~(RH_HS_CRWE | RH_HS_DRWE));
+		OK(4);
 	case RH_GET_STATUS | RH_OTHER | RH_CLASS:
-			*(__u32 *) data_buf = m32_swap (RD_RH_PORTSTAT); OK (4);
+		*(__u32 *) data_buf = m32_swap(RD_RH_PORTSTAT);
+		OK(4);
 
 	case RH_CLEAR_FEATURE | RH_ENDPOINT:
 		switch (wValue) {
-			case (RH_ENDPOINT_STALL): OK (0);
+		case (RH_ENDPOINT_STALL):
+			OK(0);
 		}
 		break;
 
 	case RH_CLEAR_FEATURE | RH_CLASS:
 		switch (wValue) {
-			case RH_C_HUB_LOCAL_POWER:
-				OK(0);
-			case (RH_C_HUB_OVER_CURRENT):
-					WR_RH_STAT(RH_HS_OCIC); OK (0);
+		case RH_C_HUB_LOCAL_POWER:
+			OK(0);
+		case (RH_C_HUB_OVER_CURRENT):
+			WR_RH_STAT(RH_HS_OCIC);
+			OK(0);
 		}
 		break;
 
 	case RH_CLEAR_FEATURE | RH_OTHER | RH_CLASS:
 		switch (wValue) {
-			case (RH_PORT_ENABLE):
-					WR_RH_PORTSTAT (RH_PS_CCS ); OK (0);
-			case (RH_PORT_SUSPEND):
-					WR_RH_PORTSTAT (RH_PS_POCI); OK (0);
-			case (RH_PORT_POWER):
-					WR_RH_PORTSTAT (RH_PS_LSDA); OK (0);
-			case (RH_C_PORT_CONNECTION):
-					WR_RH_PORTSTAT (RH_PS_CSC ); OK (0);
-			case (RH_C_PORT_ENABLE):
-					WR_RH_PORTSTAT (RH_PS_PESC); OK (0);
-			case (RH_C_PORT_SUSPEND):
-					WR_RH_PORTSTAT (RH_PS_PSSC); OK (0);
-			case (RH_C_PORT_OVER_CURRENT):
-					WR_RH_PORTSTAT (RH_PS_OCIC); OK (0);
-			case (RH_C_PORT_RESET):
-					WR_RH_PORTSTAT (RH_PS_PRSC); OK (0);
+		case (RH_PORT_ENABLE):
+			WR_RH_PORTSTAT(RH_PS_CCS);
+			OK(0);
+		case (RH_PORT_SUSPEND):
+			WR_RH_PORTSTAT(RH_PS_POCI);
+			OK(0);
+		case (RH_PORT_POWER):
+			WR_RH_PORTSTAT(RH_PS_LSDA);
+			OK(0);
+		case (RH_C_PORT_CONNECTION):
+			WR_RH_PORTSTAT(RH_PS_CSC);
+			OK(0);
+		case (RH_C_PORT_ENABLE):
+			WR_RH_PORTSTAT(RH_PS_PESC);
+			OK(0);
+		case (RH_C_PORT_SUSPEND):
+			WR_RH_PORTSTAT(RH_PS_PSSC);
+			OK(0);
+		case (RH_C_PORT_OVER_CURRENT):
+			WR_RH_PORTSTAT(RH_PS_OCIC);
+			OK(0);
+		case (RH_C_PORT_RESET):
+			WR_RH_PORTSTAT(RH_PS_PRSC);
+			OK(0);
 		}
 		break;
 
 	case RH_SET_FEATURE | RH_OTHER | RH_CLASS:
 		switch (wValue) {
-			case (RH_PORT_SUSPEND):
-					WR_RH_PORTSTAT (RH_PS_PSS ); OK (0);
-			case (RH_PORT_RESET): /* BUG IN HUP CODE *********/
-					if (RD_RH_PORTSTAT & RH_PS_CCS)
-					    WR_RH_PORTSTAT (RH_PS_PRS);
-					OK (0);
-			case (RH_PORT_POWER):
-					WR_RH_PORTSTAT (RH_PS_PPS ); OK (0);
-			case (RH_PORT_ENABLE): /* BUG IN HUP CODE *********/
-					if (RD_RH_PORTSTAT & RH_PS_CCS)
-					    WR_RH_PORTSTAT (RH_PS_PES );
-					OK (0);
+		case (RH_PORT_SUSPEND):
+			WR_RH_PORTSTAT(RH_PS_PSS);
+			OK(0);
+		case (RH_PORT_RESET):	/* BUG IN HUP CODE ******** */
+			if (RD_RH_PORTSTAT & RH_PS_CCS)
+				WR_RH_PORTSTAT(RH_PS_PRS);
+			OK(0);
+		case (RH_PORT_POWER):
+			WR_RH_PORTSTAT(RH_PS_PPS);
+			OK(0);
+		case (RH_PORT_ENABLE):	/* BUG IN HUP CODE ******** */
+			if (RD_RH_PORTSTAT & RH_PS_CCS)
+				WR_RH_PORTSTAT(RH_PS_PES);
+			OK(0);
 		}
 		break;
 
-	case RH_SET_ADDRESS: gohci.rh.devnum = wValue; OK(0);
+	case RH_SET_ADDRESS:
+		gohci.rh.devnum = wValue;
+		OK(0);
 
 	case RH_GET_DESCRIPTOR:
 		switch ((wValue & 0xff00) >> 8) {
-			case (0x01): /* device descriptor */
+		case (0x01):	/* device descriptor */
+			len = min_t(unsigned int,
+				    leni,
+				    min_t(unsigned int,
+					  sizeof(root_hub_dev_des), wLength));
+			data_buf = root_hub_dev_des;
+			OK(len);
+		case (0x02):	/* configuration descriptor */
+			len = min_t(unsigned int,
+				    leni,
+				    min_t(unsigned int,
+					  sizeof(root_hub_config_des),
+					  wLength));
+			data_buf = root_hub_config_des;
+			OK(len);
+		case (0x03):	/* string descriptors */
+			if (wValue == 0x0300) {
 				len = min_t(unsigned int,
-					  leni,
-					  min_t(unsigned int,
-					      sizeof (root_hub_dev_des),
-					      wLength));
-				data_buf = root_hub_dev_des; OK(len);
-			case (0x02): /* configuration descriptor */
+					    leni,
+					    min_t(unsigned int,
+						  sizeof(root_hub_str_index0),
+						  wLength));
+				data_buf = root_hub_str_index0;
+				OK(len);
+			}
+			if (wValue == 0x0301) {
 				len = min_t(unsigned int,
-					  leni,
-					  min_t(unsigned int,
-					      sizeof (root_hub_config_des),
-					      wLength));
-				data_buf = root_hub_config_des; OK(len);
-			case (0x03): /* string descriptors */
-				if(wValue==0x0300) {
-					len = min_t(unsigned int,
-						  leni,
-						  min_t(unsigned int,
-						      sizeof (root_hub_str_index0),
-						      wLength));
-					data_buf = root_hub_str_index0;
-					OK(len);
-				}
-				if(wValue==0x0301) {
-					len = min_t(unsigned int,
-						  leni,
-						  min_t(unsigned int,
-						      sizeof (root_hub_str_index1),
-						      wLength));
-					data_buf = root_hub_str_index1;
-					OK(len);
+					    leni,
+					    min_t(unsigned int,
+						  sizeof(root_hub_str_index1),
+						  wLength));
+				data_buf = root_hub_str_index1;
+				OK(len);
 			}
-			default:
-				stat = USB_ST_STALLED;
+		default:
+			stat = USB_ST_STALLED;
 		}
 		break;
 
 	case RH_GET_DESCRIPTOR | RH_CLASS:
-	    {
-		    __u32 temp = roothub_a (&gohci);
-
-		    data_buf [0] = 9;		/* min length; */
-		    data_buf [1] = 0x29;
-		    data_buf [2] = temp & RH_A_NDP;
-		    data_buf [3] = 0;
-		    if (temp & RH_A_PSM)	/* per-port power switching? */
-			data_buf [3] |= 0x1;
-		    if (temp & RH_A_NOCP)	/* no overcurrent reporting? */
-			data_buf [3] |= 0x10;
-		    else if (temp & RH_A_OCPM)	/* per-port overcurrent reporting? */
-			data_buf [3] |= 0x8;
-
-		    /* corresponds to data_buf[4-7] */
-		    datab [1] = 0;
-		    data_buf [5] = (temp & RH_A_POTPGT) >> 24;
-		    temp = roothub_b (&gohci);
-		    data_buf [7] = temp & RH_B_DR;
-		    if (data_buf [2] < 7) {
-			data_buf [8] = 0xff;
-		    } else {
-			data_buf [0] += 2;
-			data_buf [8] = (temp & RH_B_DR) >> 8;
-			data_buf [10] = data_buf [9] = 0xff;
-		    }
-
-		    len = min_t(unsigned int, leni,
-			      min_t(unsigned int, data_buf [0], wLength));
-		    OK (len);
+		{
+			__u32 temp = roothub_a(&gohci);
+
+			data_buf[0] = 9;	/* min length; */
+			data_buf[1] = 0x29;
+			data_buf[2] = temp & RH_A_NDP;
+			data_buf[3] = 0;
+			if (temp & RH_A_PSM)
+				/* per-port power switching? */
+				data_buf[3] |= 0x1;
+			if (temp & RH_A_NOCP)
+				/* no overcurrent reporting? */
+				data_buf[3] |= 0x10;
+			else if (temp & RH_A_OCPM)
+				/* per-port overcurrent reporting? */
+				data_buf[3] |= 0x8;
+
+			/* corresponds to data_buf[4-7] */
+			datab[1] = 0;
+			data_buf[5] = (temp & RH_A_POTPGT) >> 24;
+			temp = roothub_b(&gohci);
+			data_buf[7] = temp & RH_B_DR;
+			if (data_buf[2] < 7) {
+				data_buf[8] = 0xff;
+			} else {
+				data_buf[0] += 2;
+				data_buf[8] = (temp & RH_B_DR) >> 8;
+				data_buf[10] = data_buf[9] = 0xff;
+			}
+
+			len = min_t(unsigned int, leni,
+				    min_t(unsigned int, data_buf[0], wLength));
+			OK(len);
 		}
 
-	case RH_GET_CONFIGURATION:	*(__u8 *) data_buf = 0x01; OK (1);
+	case RH_GET_CONFIGURATION:
+		*(__u8 *) data_buf = 0x01;
+		OK(1);
 
-	case RH_SET_CONFIGURATION:	WR_RH_STAT (0x10000); OK (0);
+	case RH_SET_CONFIGURATION:
+		WR_RH_STAT(0x10000);
+		OK(0);
 
 	default:
-		dbg ("unsupported root hub command");
+		dbg("unsupported root hub command");
 		stat = USB_ST_STALLED;
 	}
 
 #ifdef	DEBUG
-	ohci_dump_roothub (&gohci, 1);
+	ohci_dump_roothub(&gohci, 1);
 #else
 	wait_ms(1);
 #endif
 
 	len = min_t(int, len, leni);
 	if (data != data_buf)
-	    memcpy (data, data_buf, len);
+		memcpy(data, data_buf, len);
 	dev->act_len = len;
 	dev->status = stat;
 
 #ifdef DEBUG
 	if (transfer_len)
 		urb_priv.actual_length = transfer_len;
-	pkt_print(dev, pipe, buffer, transfer_len, cmd, "RET(rh)", 0/*usb_pipein(pipe)*/);
+	pkt_print(dev, pipe, buffer, transfer_len, cmd, "RET(rh)",
+		  0 /*usb_pipein(pipe) */);
 #else
 	wait_ms(1);
 #endif
@@ -1223,7 +1281,7 @@ pkt_print(dev, pipe, buffer, transfer_len, cmd, "SUB(rh)", usb_pipein(pipe));
 /* common code for handling submit messages - used for all but root hub */
 /* accesses. */
 int submit_common_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
-		int transfer_len, struct devrequest *setup, int interval)
+		      int transfer_len, struct devrequest *setup, int interval)
 {
 	int stat = 0;
 	int maxsize = usb_maxpacket(dev, pipe);
@@ -1234,20 +1292,21 @@ int submit_common_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
 		dev->status = USB_ST_CRC_ERR;
 		return 0;
 	}
-
 #ifdef DEBUG
 	urb_priv.actual_length = 0;
-	pkt_print(dev, pipe, buffer, transfer_len, setup, "SUB", usb_pipein(pipe));
+	pkt_print(dev, pipe, buffer, transfer_len, setup, "SUB",
+		  usb_pipein(pipe));
 #else
 	wait_ms(1);
 #endif
 	if (!maxsize) {
 		err("submit_common_message: pipesize for pipe %lx is zero",
-			pipe);
+		    pipe);
 		return -1;
 	}
 
-	if (sohci_submit_job(dev, pipe, buffer, transfer_len, setup, interval) < 0) {
+	if (sohci_submit_job(dev, pipe, buffer, transfer_len, setup, interval) <
+	    0) {
 		err("sohci_submit_job failed");
 		return -1;
 	}
@@ -1256,7 +1315,7 @@ int submit_common_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
 	/* ohci_dump_status(&gohci); */
 
 	/* allow more time for a BULK device to react - some are slow */
-#define BULK_TO	 5000	/* timeout in milliseconds */
+#define BULK_TO	 5000		/* timeout in milliseconds */
 	if (usb_pipebulk(pipe))
 		timeout = BULK_TO;
 	else
@@ -1304,13 +1363,14 @@ int submit_common_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
 	/* we got an Root Hub Status Change interrupt */
 	if (got_rhsc) {
 #ifdef DEBUG
-		ohci_dump_roothub (&gohci, 1);
+		ohci_dump_roothub(&gohci, 1);
 #endif
 		got_rhsc = 0;
 		/* abuse timeout */
 		timeout = rh_check_port_status(&gohci);
 		if (timeout >= 0) {
-#if 0 /* this does nothing useful, but leave it here in case that changes */
+#if 0			/* this does nothing useful, but leave it here
+			   in case that changes */
 			/* the called routine adds 1 to the passed value */
 			usb_hub_port_connect_change(gohci.rh.dev, timeout - 1);
 #endif
@@ -1328,53 +1388,55 @@ int submit_common_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
 	dev->act_len = transfer_len;
 
 #ifdef DEBUG
-	pkt_print(dev, pipe, buffer, transfer_len, setup, "RET(ctlr)", usb_pipein(pipe));
+	pkt_print(dev, pipe, buffer, transfer_len, setup, "RET(ctlr)",
+		  usb_pipein(pipe));
 #else
 	wait_ms(1);
 #endif
 
 	/* free TDs in urb_priv */
-	urb_free_priv (&urb_priv);
+	urb_free_priv(&urb_priv);
 	return 0;
 }
 
 /* submit routines called from usb.c */
 int submit_bulk_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
-		int transfer_len)
+		    int transfer_len)
 {
 	info("submit_bulk_msg");
 	return submit_common_msg(dev, pipe, buffer, transfer_len, NULL, 0);
 }
 
 int submit_control_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
-		int transfer_len, struct devrequest *setup)
+		       int transfer_len, struct devrequest *setup)
 {
 	int maxsize = usb_maxpacket(dev, pipe);
 
 	info("submit_control_msg");
 #ifdef DEBUG
 	urb_priv.actual_length = 0;
-	pkt_print(dev, pipe, buffer, transfer_len, setup, "SUB", usb_pipein(pipe));
+	pkt_print(dev, pipe, buffer, transfer_len, setup, "SUB",
+		  usb_pipein(pipe));
 #else
 	wait_ms(1);
 #endif
 	if (!maxsize) {
 		err("submit_control_message: pipesize for pipe %lx is zero",
-			pipe);
+		    pipe);
 		return -1;
 	}
 	if (((pipe >> 8) & 0x7f) == gohci.rh.devnum) {
 		gohci.rh.dev = dev;
 		/* root hub - redirect */
 		return ohci_submit_rh_msg(dev, pipe, buffer, transfer_len,
-			setup);
+					  setup);
 	}
 
 	return submit_common_msg(dev, pipe, buffer, transfer_len, setup, 0);
 }
 
 int submit_int_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
-		int transfer_len, int interval)
+		   int transfer_len, int interval)
 {
 	info("submit_int_msg");
 	return -1;
@@ -1386,16 +1448,17 @@ int submit_int_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
 
 /* reset the HC and BUS */
 
-static int hc_reset (ohci_t *ohci)
+static int hc_reset(ohci_t *ohci)
 {
 	int timeout = 30;
-	int smm_timeout = 50; /* 0,5 sec */
+	int smm_timeout = 50;	/* 0,5 sec */
 
-	if (readl (&ohci->regs->control) & OHCI_CTRL_IR) { /* SMM owns the HC */
-		writel (OHCI_OCR, &ohci->regs->cmdstatus); /* request ownership */
+	if (readl(&ohci->regs->control) & OHCI_CTRL_IR) {
+		/* SMM owns the HC - request ownership */
+		writel(OHCI_OCR, &ohci->regs->cmdstatus);
 		info("USB HC TakeOver from SMM");
-		while (readl (&ohci->regs->control) & OHCI_CTRL_IR) {
-			wait_ms (10);
+		while (readl(&ohci->regs->control) & OHCI_CTRL_IR) {
+			wait_ms(10);
 			if (--smm_timeout == 0) {
 				err("USB HC TakeOver failed!");
 				return -1;
@@ -1404,23 +1467,22 @@ static int hc_reset (ohci_t *ohci)
 	}
 
 	/* Disable HC interrupts */
-	writel (OHCI_INTR_MIE, &ohci->regs->intrdisable);
+	writel(OHCI_INTR_MIE, &ohci->regs->intrdisable);
 
 	dbg("USB HC reset_hc usb-%s: ctrl = 0x%X ;",
-		ohci->slot_name,
-		readl (&ohci->regs->control));
+	    ohci->slot_name, readl(&ohci->regs->control));
 
 	/* Reset USB (needed by some controllers) */
-	writel (0, &ohci->regs->control);
+	writel(0, &ohci->regs->control);
 
 	/* HC Reset requires max 10 us delay */
-	writel (OHCI_HCR,  &ohci->regs->cmdstatus);
-	while ((readl (&ohci->regs->cmdstatus) & OHCI_HCR) != 0) {
+	writel(OHCI_HCR, &ohci->regs->cmdstatus);
+	while ((readl(&ohci->regs->cmdstatus) & OHCI_HCR) != 0) {
 		if (--timeout == 0) {
 			err("USB HC reset timed out!");
 			return -1;
 		}
-		udelay (1);
+		udelay(1);
 	}
 	return 0;
 }
@@ -1431,7 +1493,7 @@ static int hc_reset (ohci_t *ohci)
  * enable interrupts
  * connect the virtual root hub */
 
-static int hc_start (ohci_t * ohci)
+static int hc_start(ohci_t *ohci)
 {
 	__u32 mask;
 	unsigned int fminterval;
@@ -1441,44 +1503,45 @@ static int hc_start (ohci_t * ohci)
 	/* Tell the controller where the control and bulk lists are
 	 * The lists are empty now. */
 
-	writel (0, &ohci->regs->ed_controlhead);
-	writel (0, &ohci->regs->ed_bulkhead);
+	writel(0, &ohci->regs->ed_controlhead);
+	writel(0, &ohci->regs->ed_bulkhead);
 
-	writel ((__u32)ohci->hcca, &ohci->regs->hcca); /* a reset clears this */
+	/* a reset clears this */
+	writel((__u32) ohci->hcca, &ohci->regs->hcca);
 
 	fminterval = 0x2edf;
-	writel ((fminterval * 9) / 10, &ohci->regs->periodicstart);
+	writel((fminterval * 9) / 10, &ohci->regs->periodicstart);
 	fminterval |= ((((fminterval - 210) * 6) / 7) << 16);
-	writel (fminterval, &ohci->regs->fminterval);
-	writel (0x628, &ohci->regs->lsthresh);
+	writel(fminterval, &ohci->regs->fminterval);
+	writel(0x628, &ohci->regs->lsthresh);
 
 	/* start controller operations */
 	ohci->hc_control = OHCI_CONTROL_INIT | OHCI_USB_OPER;
 	ohci->disabled = 0;
-	writel (ohci->hc_control, &ohci->regs->control);
+	writel(ohci->hc_control, &ohci->regs->control);
 
 	/* disable all interrupts */
 	mask = (OHCI_INTR_SO | OHCI_INTR_WDH | OHCI_INTR_SF | OHCI_INTR_RD |
-			OHCI_INTR_UE | OHCI_INTR_FNO | OHCI_INTR_RHSC |
-			OHCI_INTR_OC | OHCI_INTR_MIE);
-	writel (mask, &ohci->regs->intrdisable);
+		OHCI_INTR_UE | OHCI_INTR_FNO | OHCI_INTR_RHSC |
+		OHCI_INTR_OC | OHCI_INTR_MIE);
+	writel(mask, &ohci->regs->intrdisable);
 	/* clear all interrupts */
 	mask &= ~OHCI_INTR_MIE;
-	writel (mask, &ohci->regs->intrstatus);
+	writel(mask, &ohci->regs->intrstatus);
 	/* Choose the interrupts we care about now  - but w/o MIE */
 	mask = OHCI_INTR_RHSC | OHCI_INTR_UE | OHCI_INTR_WDH | OHCI_INTR_SO;
-	writel (mask, &ohci->regs->intrenable);
+	writel(mask, &ohci->regs->intrenable);
 
 #ifdef	OHCI_USE_NPS
 	/* required for AMD-756 and some Mac platforms */
-	writel ((roothub_a (ohci) | RH_A_NPS) & ~RH_A_PSM,
-		&ohci->regs->roothub.a);
-	writel (RH_HS_LPSC, &ohci->regs->roothub.status);
-#endif	/* OHCI_USE_NPS */
+	writel((roothub_a(ohci) | RH_A_NPS) & ~RH_A_PSM,
+	       &ohci->regs->roothub.a);
+	writel(RH_HS_LPSC, &ohci->regs->roothub.status);
+#endif /* OHCI_USE_NPS */
 
 #define mdelay(n) ({unsigned long msec=(n); while (msec--) udelay(1000);})
 	/* POTPGT delay is bits 24-31, in 2 ms units. */
-	mdelay ((roothub_a (ohci) >> 23) & 0x1fe);
+	mdelay((roothub_a(ohci) >> 23) & 0x1fe);
 
 	/* connect the virtual root hub */
 	ohci->rh.devnum = 0;
@@ -1490,8 +1553,7 @@ static int hc_start (ohci_t * ohci)
 
 /* an interrupt happens */
 
-static int
-hc_interrupt (void)
+static int hc_interrupt(void)
 {
 	ohci_t *ohci = &gohci;
 	struct ohci_regs *regs = ohci->regs;
@@ -1499,21 +1561,26 @@ hc_interrupt (void)
 	int stat = -1;
 
 	if ((ohci->hcca->done_head != 0) &&
-	     !(m32_swap (ohci->hcca->done_head) & 0x01)) {
+	    !(m32_swap(ohci->hcca->done_head) & 0x01)) {
 
-		ints =  OHCI_INTR_WDH;
+		ints = OHCI_INTR_WDH;
 
-	} else if ((ints = readl (&regs->intrstatus)) == ~(u32)0) {
-		ohci->disabled++;
-		err ("%s device removed!", ohci->slot_name);
-		return -1;
-
-	} else if ((ints &= readl (&regs->intrenable)) == 0) {
-		dbg("hc_interrupt: returning..\n");
-		return 0xff;
+	} else {
+		ints = readl(&regs->intrstatus);
+		if (ints == ~(u32) 0) {
+			ohci->disabled++;
+			err("%s device removed!", ohci->slot_name);
+			return -1;
+		}
+		ints &= readl(&regs->intrenable);
+		if (ints == 0) {
+			dbg("hc_interrupt: returning..\n");
+			return 0xff;
+		}
 	}
 
-	/* dbg("Interrupt: %x frame: %x", ints, le16_to_cpu (ohci->hcca->frame_no)); */
+	/* dbg("Interrupt: %x frame: %x", ints,
+	    le16_to_cpu(ohci->hcca->frame_no)); */
 
 	if (ints & OHCI_INTR_RHSC) {
 		got_rhsc = 1;
@@ -1522,48 +1589,48 @@ hc_interrupt (void)
 
 	if (ints & OHCI_INTR_UE) {
 		ohci->disabled++;
-		err ("OHCI Unrecoverable Error, controller usb-%s disabled",
-			ohci->slot_name);
+		err("OHCI Unrecoverable Error, controller usb-%s disabled",
+		    ohci->slot_name);
 		/* e.g. due to PCI Master/Target Abort */
 
 #ifdef	DEBUG
-		ohci_dump (ohci, 1);
+		ohci_dump(ohci, 1);
 #else
-	wait_ms(1);
+		wait_ms(1);
 #endif
 		/* FIXME: be optimistic, hope that bug won't repeat often. */
 		/* Make some non-interrupt context restart the controller. */
 		/* Count and limit the retries though; either hardware or */
 		/* software errors can go forever... */
-		hc_reset (ohci);
+		hc_reset(ohci);
 		return -1;
 	}
 
 	if (ints & OHCI_INTR_WDH) {
 		wait_ms(1);
 
-		writel (OHCI_INTR_WDH, &regs->intrdisable);
-		stat = dl_done_list (&gohci, dl_reverse_done_list (&gohci));
-		writel (OHCI_INTR_WDH, &regs->intrenable);
+		writel(OHCI_INTR_WDH, &regs->intrdisable);
+		stat = dl_done_list(&gohci, dl_reverse_done_list(&gohci));
+		writel(OHCI_INTR_WDH, &regs->intrenable);
 	}
 
 	if (ints & OHCI_INTR_SO) {
 		dbg("USB Schedule overrun\n");
-		writel (OHCI_INTR_SO, &regs->intrenable);
+		writel(OHCI_INTR_SO, &regs->intrenable);
 		stat = -1;
 	}
 
 	/* FIXME:  this assumes SOF (1/ms) interrupts don't get lost... */
 	if (ints & OHCI_INTR_SF) {
-		unsigned int frame = m16_swap (ohci->hcca->frame_no) & 1;
+		unsigned int frame = m16_swap(ohci->hcca->frame_no) & 1;
 		wait_ms(1);
-		writel (OHCI_INTR_SF, &regs->intrdisable);
+		writel(OHCI_INTR_SF, &regs->intrdisable);
 		if (ohci->ed_rm_list[frame] != NULL)
-			writel (OHCI_INTR_SF, &regs->intrenable);
+			writel(OHCI_INTR_SF, &regs->intrenable);
 		stat = 0xff;
 	}
 
-	writel (ints, &regs->intrstatus);
+	writel(ints, &regs->intrstatus);
 	return stat;
 }
 
@@ -1573,12 +1640,12 @@ hc_interrupt (void)
 
 /* De-allocate all resources.. */
 
-static void hc_release_ohci (ohci_t *ohci)
+static void hc_release_ohci(ohci_t *ohci)
 {
-	dbg ("USB HC release ohci usb-%s", ohci->slot_name);
+	dbg("USB HC release ohci usb-%s", ohci->slot_name);
 
 	if (!ohci->disabled)
-		hc_reset (ohci);
+		hc_reset(ohci);
 }
 
 /*-------------------------------------------------------------------------*/
@@ -1590,44 +1657,44 @@ static char ohci_inited = 0;
 
 int usb_lowlevel_init(void)
 {
-	S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
-	S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
+	struct s3c24x0_clock_power *clk_power = S3C24X0_GetBase_CLOCK_POWER();
+	struct s3c24x0_gpio *gpio = S3C24X0_GetBase_GPIO();
 
 	/*
 	 * Set the 48 MHz UPLL clocking. Values are taken from
 	 * "PLL value selection guide", 6-23, s3c2400_UM.pdf.
 	 */
 	clk_power->UPLLCON = ((40 << 12) + (1 << 4) + 2);
-	gpio->MISCCR |= 0x8; /* 1 = use pads related USB for USB host */
+	gpio->MISCCR |= 0x8;	/* 1 = use pads related USB for USB host */
 
 	/*
 	 * Enable USB host clock.
 	 */
 	clk_power->CLKCON |= (1 << 4);
 
-	memset (&gohci, 0, sizeof (ohci_t));
-	memset (&urb_priv, 0, sizeof (urb_priv_t));
+	memset(&gohci, 0, sizeof(ohci_t));
+	memset(&urb_priv, 0, sizeof(urb_priv_t));
 
 	/* align the storage */
-	if ((__u32)&ghcca[0] & 0xff) {
+	if ((__u32) &ghcca[0] & 0xff) {
 		err("HCCA not aligned!!");
 		return -1;
 	}
 	phcca = &ghcca[0];
 	info("aligned ghcca %p", phcca);
 	memset(&ohci_dev, 0, sizeof(struct ohci_device));
-	if ((__u32)&ohci_dev.ed[0] & 0x7) {
+	if ((__u32) &ohci_dev.ed[0] & 0x7) {
 		err("EDs not aligned!!");
 		return -1;
 	}
 	memset(gtd, 0, sizeof(td_t) * (NUM_TD + 1));
-	if ((__u32)gtd & 0x7) {
+	if ((__u32) gtd & 0x7) {
 		err("TDs not aligned!!");
 		return -1;
 	}
 	ptd = gtd;
 	gohci.hcca = phcca;
-	memset (phcca, 0, sizeof (struct ohci_hcca));
+	memset(phcca, 0, sizeof(struct ohci_hcca));
 
 	gohci.disabled = 1;
 	gohci.sleeping = 0;
@@ -1637,8 +1704,8 @@ int usb_lowlevel_init(void)
 	gohci.flags = 0;
 	gohci.slot_name = "s3c2400";
 
-	if (hc_reset (&gohci) < 0) {
-		hc_release_ohci (&gohci);
+	if (hc_reset(&gohci) < 0) {
+		hc_release_ohci(&gohci);
 		/* Initialization failed */
 		clk_power->CLKCON &= ~(1 << 4);
 		return -1;
@@ -1646,19 +1713,18 @@ int usb_lowlevel_init(void)
 
 	/* FIXME this is a second HC reset; why?? */
 	gohci.hc_control = OHCI_USB_RESET;
-	writel (gohci.hc_control, &gohci.regs->control);
-	wait_ms (10);
+	writel(gohci.hc_control, &gohci.regs->control);
+	wait_ms(10);
 
-	if (hc_start (&gohci) < 0) {
-		err ("can't start usb-%s", gohci.slot_name);
-		hc_release_ohci (&gohci);
+	if (hc_start(&gohci) < 0) {
+		err("can't start usb-%s", gohci.slot_name);
+		hc_release_ohci(&gohci);
 		/* Initialization failed */
 		clk_power->CLKCON &= ~(1 << 4);
 		return -1;
 	}
-
 #ifdef	DEBUG
-	ohci_dump (&gohci, 1);
+	ohci_dump(&gohci, 1);
 #else
 	wait_ms(1);
 #endif
@@ -1670,7 +1736,7 @@ int usb_lowlevel_init(void)
 
 int usb_lowlevel_stop(void)
 {
-	S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
+	struct s3c24x0_clock_power *clk_power = S3C24X0_GetBase_CLOCK_POWER();
 
 	/* this gets called really early - before the controller has */
 	/* even been initialized! */
@@ -1678,7 +1744,7 @@ int usb_lowlevel_stop(void)
 		return 0;
 	/* TODO release any interrupts, etc. */
 	/* call hc_release_ohci() here ? */
-	hc_reset (&gohci);
+	hc_reset(&gohci);
 	/* may not want to do this */
 	clk_power->CLKCON &= ~(1 << 4);
 	return 0;
diff --git a/cpu/arm920t/s3c24x0/usb_ohci.h b/cpu/arm920t/s3c24x0/usb_ohci.h
index 8e093fb..6ae1716 100644
--- a/cpu/arm920t/s3c24x0/usb_ohci.h
+++ b/cpu/arm920t/s3c24x0/usb_ohci.h
@@ -11,22 +11,22 @@
 static int cc_to_error[16] = {
 
 /* mapping of the OHCI CC status to error codes */
-	/* No  Error  */	       0,
-	/* CRC Error  */	       USB_ST_CRC_ERR,
-	/* Bit Stuff  */	       USB_ST_BIT_ERR,
-	/* Data Togg  */	       USB_ST_CRC_ERR,
-	/* Stall      */	       USB_ST_STALLED,
-	/* DevNotResp */	       -1,
-	/* PIDCheck   */	       USB_ST_BIT_ERR,
-	/* UnExpPID   */	       USB_ST_BIT_ERR,
-	/* DataOver   */	       USB_ST_BUF_ERR,
-	/* DataUnder  */	       USB_ST_BUF_ERR,
-	/* reservd    */	       -1,
-	/* reservd    */	       -1,
-	/* BufferOver */	       USB_ST_BUF_ERR,
-	/* BuffUnder  */	       USB_ST_BUF_ERR,
-	/* Not Access */	       -1,
-	/* Not Access */	       -1
+	/* No  Error  */ 0,
+	/* CRC Error  */ USB_ST_CRC_ERR,
+	/* Bit Stuff  */ USB_ST_BIT_ERR,
+	/* Data Togg  */ USB_ST_CRC_ERR,
+	/* Stall      */ USB_ST_STALLED,
+	/* DevNotResp */ -1,
+	/* PIDCheck   */ USB_ST_BIT_ERR,
+	/* UnExpPID   */ USB_ST_BIT_ERR,
+	/* DataOver   */ USB_ST_BUF_ERR,
+	/* DataUnder  */ USB_ST_BUF_ERR,
+	/* reservd    */ -1,
+	/* reservd    */ -1,
+	/* BufferOver */ USB_ST_BUF_ERR,
+	/* BuffUnder  */ USB_ST_BUF_ERR,
+	/* Not Access */ -1,
+	/* Not Access */ -1
 };
 
 /* ED States */
@@ -55,14 +55,14 @@ struct ed {
 
 	struct usb_device *usb_dev;
 	__u32 unused[3];
-} __attribute__((aligned(16)));
+} __attribute__ ((aligned(16)));
 typedef struct ed ed_t;
 
-
 /* TD info field */
 #define TD_CC			0xf0000000
-#define TD_CC_GET(td_p)		((td_p >>28) & 0x0f)
-#define TD_CC_SET(td_p, cc)	(td_p) = ((td_p) & 0x0fffffff) | (((cc) & 0x0f) << 28)
+#define TD_CC_GET(td_p)		(((td_p) >> 28) & 0x0f)
+#define TD_CC_SET(td_p, cc) \
+	{(td_p) = ((td_p) & 0x0fffffff) | (((cc) & 0x0f) << 28)}
 #define TD_EC			0x0C000000
 #define TD_T			0x03000000
 #define TD_T_DATA0		0x02000000
@@ -112,7 +112,7 @@ struct td {
 	__u32 data;
 
 	__u32 unused2[2];
-} __attribute__((aligned(32)));
+} __attribute__ ((aligned(32)));
 typedef struct td td_t;
 
 #define OHCI_ED_SKIP	(1 << 14)
@@ -123,15 +123,14 @@ typedef struct td td_t;
  * told the base address of.  It must be 256-byte aligned.
  */
 
-#define NUM_INTS 32	/* part of the OHCI standard */
+#define NUM_INTS 32		/* part of the OHCI standard */
 struct ohci_hcca {
-	__u32	int_table[NUM_INTS];	/* Interrupt ED table */
-	__u16	frame_no;		/* current frame number */
-	__u16	pad1;			/* set to 0 on each frame_no change */
-	__u32	done_head;		/* info returned for an interrupt */
-	u8	reserved_for_hc[116];
-} __attribute__((aligned(256)));
-
+	__u32 int_table[NUM_INTS];	/* Interrupt ED table */
+	__u16 frame_no;		/* current frame number */
+	__u16 pad1;		/* set to 0 on each frame_no change */
+	__u32 done_head;	/* info returned for an interrupt */
+	u8 reserved_for_hc[116];
+} __attribute__ ((aligned(256)));
 
 /*
  * Maximum number of root hub ports.
@@ -145,35 +144,34 @@ struct ohci_hcca {
  */
 struct ohci_regs {
 	/* control and status registers */
-	__u32	revision;
-	__u32	control;
-	__u32	cmdstatus;
-	__u32	intrstatus;
-	__u32	intrenable;
-	__u32	intrdisable;
+	__u32 revision;
+	__u32 control;
+	__u32 cmdstatus;
+	__u32 intrstatus;
+	__u32 intrenable;
+	__u32 intrdisable;
 	/* memory pointers */
-	__u32	hcca;
-	__u32	ed_periodcurrent;
-	__u32	ed_controlhead;
-	__u32	ed_controlcurrent;
-	__u32	ed_bulkhead;
-	__u32	ed_bulkcurrent;
-	__u32	donehead;
+	__u32 hcca;
+	__u32 ed_periodcurrent;
+	__u32 ed_controlhead;
+	__u32 ed_controlcurrent;
+	__u32 ed_bulkhead;
+	__u32 ed_bulkcurrent;
+	__u32 donehead;
 	/* frame counters */
-	__u32	fminterval;
-	__u32	fmremaining;
-	__u32	fmnumber;
-	__u32	periodicstart;
-	__u32	lsthresh;
+	__u32 fminterval;
+	__u32 fmremaining;
+	__u32 fmnumber;
+	__u32 periodicstart;
+	__u32 lsthresh;
 	/* Root hub ports */
-	struct	ohci_roothub_regs {
-		__u32	a;
-		__u32	b;
-		__u32	status;
-		__u32	portstatus[MAX_ROOT_PORTS];
+	struct ohci_roothub_regs {
+		__u32 a;
+		__u32 b;
+		__u32 status;
+		__u32 portstatus[MAX_ROOT_PORTS];
 	} roothub;
-} __attribute__((aligned(32)));
-
+} __attribute__ ((aligned(32)));
 
 /* OHCI CONTROL AND STATUS REGISTER MASKS */
 
@@ -221,11 +219,10 @@ struct ohci_regs {
 #define OHCI_INTR_OC	(1 << 30)	/* ownership change */
 #define OHCI_INTR_MIE	(1 << 31)	/* master interrupt enable */
 
-
 /* Virtual Root HUB */
 struct virt_root_hub {
-	int devnum; /* Address of Root Hub endpoint */
-	void *dev;  /* was urb */
+	int devnum;		/* Address of Root Hub endpoint */
+	void *dev;		/* was urb */
 	void *int_addr;
 	int send;
 	int interval;
@@ -288,51 +285,51 @@ struct virt_root_hub {
 /* OHCI ROOT HUB REGISTER MASKS */
 
 /* roothub.portstatus [i] bits */
-#define RH_PS_CCS		0x00000001	/* current connect status */
-#define RH_PS_PES		0x00000002	/* port enable status*/
-#define RH_PS_PSS		0x00000004	/* port suspend status */
-#define RH_PS_POCI		0x00000008	/* port over current indicator */
-#define RH_PS_PRS		0x00000010	/* port reset status */
-#define RH_PS_PPS		0x00000100	/* port power status */
-#define RH_PS_LSDA		0x00000200	/* low speed device attached */
-#define RH_PS_CSC		0x00010000	/* connect status change */
-#define RH_PS_PESC		0x00020000	/* port enable status change */
-#define RH_PS_PSSC		0x00040000	/* port suspend status change */
-#define RH_PS_OCIC		0x00080000	/* over current indicator change */
-#define RH_PS_PRSC		0x00100000	/* port reset status change */
+#define RH_PS_CCS		0x00000001 /* current connect status */
+#define RH_PS_PES		0x00000002 /* port enable status */
+#define RH_PS_PSS		0x00000004 /* port suspend status */
+#define RH_PS_POCI		0x00000008 /* port over current indicator */
+#define RH_PS_PRS		0x00000010 /* port reset status */
+#define RH_PS_PPS		0x00000100 /* port power status */
+#define RH_PS_LSDA		0x00000200 /* low speed device attached */
+#define RH_PS_CSC		0x00010000 /* connect status change */
+#define RH_PS_PESC		0x00020000 /* port enable status change */
+#define RH_PS_PSSC		0x00040000 /* port suspend status change */
+#define RH_PS_OCIC		0x00080000 /* over current indicator change */
+#define RH_PS_PRSC		0x00100000 /* port reset status change */
 
 /* roothub.status bits */
-#define RH_HS_LPS		0x00000001	/* local power status */
-#define RH_HS_OCI		0x00000002	/* over current indicator */
-#define RH_HS_DRWE		0x00008000	/* device remote wakeup enable */
-#define RH_HS_LPSC		0x00010000	/* local power status change */
-#define RH_HS_OCIC		0x00020000	/* over current indicator change */
-#define RH_HS_CRWE		0x80000000	/* clear remote wakeup enable */
+#define RH_HS_LPS		0x00000001 /* local power status */
+#define RH_HS_OCI		0x00000002 /* over current indicator */
+#define RH_HS_DRWE		0x00008000 /* device remote wakeup enable */
+#define RH_HS_LPSC		0x00010000 /* local power status change */
+#define RH_HS_OCIC		0x00020000 /* over current indicator change */
+#define RH_HS_CRWE		0x80000000 /* clear remote wakeup enable */
 
 /* roothub.b masks */
-#define RH_B_DR			0x0000ffff	/* device removable flags */
-#define RH_B_PPCM		0xffff0000	/* port power control mask */
+#define RH_B_DR			0x0000ffff /* device removable flags */
+#define RH_B_PPCM		0xffff0000 /* port power control mask */
 
 /* roothub.a masks */
-#define	RH_A_NDP		(0xff << 0)	/* number of downstream ports */
-#define	RH_A_PSM		(1 << 8)	/* power switching mode */
-#define	RH_A_NPS		(1 << 9)	/* no power switching */
-#define	RH_A_DT			(1 << 10)	/* device type (mbz) */
-#define	RH_A_OCPM		(1 << 11)	/* over current protection mode */
-#define	RH_A_NOCP		(1 << 12)	/* no over current protection */
-#define	RH_A_POTPGT		(0xff << 24)	/* power on to power good time */
+#define	RH_A_NDP		(0xff << 0)  /* number of downstream ports */
+#define	RH_A_PSM		(1 << 8)     /* power switching mode */
+#define	RH_A_NPS		(1 << 9)     /* no power switching */
+#define	RH_A_DT			(1 << 10)    /* device type (mbz) */
+#define	RH_A_OCPM		(1 << 11)    /* over current protection mode */
+#define	RH_A_NOCP		(1 << 12)    /* no over current protection */
+#define	RH_A_POTPGT		(0xff << 24) /* power on to power good time */
 
 /* urb */
 #define N_URB_TD 48
-typedef struct
-{
+typedef struct {
 	ed_t *ed;
-	__u16 length;	/* number of tds associated with this request */
-	__u16 td_cnt;	/* number of tds already serviced */
-	int   state;
+	__u16 length;		/* number of tds associated with this request */
+	__u16 td_cnt;		/* number of tds already serviced */
+	int state;
 	unsigned long pipe;
 	int actual_length;
-	td_t *td[N_URB_TD];	/* list pointer to all corresponding TDs associated with this request */
+	td_t *td[N_URB_TD];	/* list pointer to all corresponding TDs
+				   associated with this request */
 } urb_priv_t;
 #define URB_DEL 1
 
@@ -375,9 +372,9 @@ struct ohci_device {
 
 /* hcd */
 /* endpoint */
-static int ep_link (ohci_t * ohci, ed_t * ed);
-static int ep_unlink (ohci_t * ohci, ed_t * ed);
-static ed_t *ep_add_ed (struct usb_device *usb_dev, unsigned long pipe);
+static int ep_link(ohci_t *ohci, ed_t *ed);
+static int ep_unlink(ohci_t *ohci, ed_t *ed);
+static ed_t *ep_add_ed(struct usb_device *usb_dev, unsigned long pipe);
 
 /*-------------------------------------------------------------------------*/
 
@@ -391,7 +388,7 @@ td_t gtd[NUM_TD + 1];
 td_t *ptd;
 
 /* TDs ... */
-static inline struct td *td_alloc (struct usb_device *usb_dev)
+static inline struct td *td_alloc(struct usb_device *usb_dev)
 {
 	int i;
 	struct td *td;
@@ -408,7 +405,7 @@ static inline struct td *td_alloc (struct usb_device *usb_dev)
 	return td;
 }
 
-static inline void ed_free (struct ed *ed)
+static inline void ed_free(struct ed *ed)
 {
 	ed->usb_dev = NULL;
 }
diff --git a/cpu/arm920t/start.S b/cpu/arm920t/start.S
index 475cdaf..c19df61 100644
--- a/cpu/arm920t/start.S
+++ b/cpu/arm920t/start.S
@@ -38,7 +38,7 @@
 
 
 .globl _start
-_start:	b       start_code
+_start:	b	start_code
 	ldr	pc, _undefined_instruction
 	ldr	pc, _software_interrupt
 	ldr	pc, _prefetch_abort
@@ -110,13 +110,13 @@ start_code:
 	/*
 	 * set the cpu to SVC32 mode
 	 */
-	mrs	r0,cpsr
-	bic	r0,r0,#0x1f
-	orr	r0,r0,#0xd3
-	msr	cpsr,r0
+	mrs	r0, cpsr
+	bic	r0, r0, #0x1f
+	orr	r0, r0, #0xd3
+	msr	cpsr, r0
 
-	bl coloured_LED_init
-	bl red_LED_on
+	bl	coloured_LED_init
+	bl	red_LED_on
 
 #if	defined(CONFIG_AT91RM9200DK) || defined(CONFIG_AT91RM9200EK)
 	/*
@@ -136,19 +136,19 @@ copyex:
 	/* turn off the watchdog */
 
 # if defined(CONFIG_S3C2400)
-#  define pWTCON		0x15300000
-#  define INTMSK		0x14400008	/* Interupt-Controller base addresses */
+#  define pWTCON	0x15300000
+#  define INTMSK	0x14400008	/* Interupt-Controller base addresses */
 #  define CLKDIVN	0x14800014	/* clock divisor register */
 #else
-#  define pWTCON		0x53000000
-#  define INTMSK		0x4A000008	/* Interupt-Controller base addresses */
+#  define pWTCON	0x53000000
+#  define INTMSK	0x4A000008	/* Interupt-Controller base addresses */
 #  define INTSUBMSK	0x4A00001C
 #  define CLKDIVN	0x4C000014	/* clock divisor register */
 # endif
 
-	ldr     r0, =pWTCON
-	mov     r1, #0x0
-	str     r1, [r0]
+	ldr	r0, =pWTCON
+	mov	r1, #0x0
+	str	r1, [r0]
 
 	/*
 	 * mask all IRQs by setting all bits in the INTMR - default
@@ -181,8 +181,8 @@ copyex:
 relocate:				/* relocate U-Boot to RAM	    */
 	adr	r0, _start		/* r0 <- current position of code   */
 	ldr	r1, _TEXT_BASE		/* test if we run from flash or RAM */
-	cmp     r0, r1                  /* don't reloc during debug         */
-	beq     stack_setup
+	cmp	r0, r1			/* don't reloc during debug         */
+	beq	stack_setup
 
 	ldr	r2, _armboot_start
 	ldr	r3, _bss_start
@@ -199,8 +199,8 @@ copy_loop:
 	/* Set up the stack						    */
 stack_setup:
 	ldr	r0, _TEXT_BASE		/* upper 128 KiB: relocated uboot   */
-	sub	r0, r0, #CONFIG_SYS_MALLOC_LEN	/* malloc area                      */
-	sub	r0, r0, #CONFIG_SYS_GBL_DATA_SIZE /* bdinfo                        */
+	sub	r0, r0, #CONFIG_SYS_MALLOC_LEN	/* malloc area              */
+	sub	r0, r0, #CONFIG_SYS_GBL_DATA_SIZE /* bdinfo                 */
 #ifdef CONFIG_USE_IRQ
 	sub	r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ)
 #endif
@@ -298,8 +298,8 @@ cpu_init_crit:
 #define S_R1		4
 #define S_R0		0
 
-#define MODE_SVC 0x13
-#define I_BIT	 0x80
+#define MODE_SVC	0x13
+#define I_BIT		0x80
 
 /*
  * use bad_save_user_regs for abort/prefetch/undef/swi ...
@@ -312,7 +312,8 @@ cpu_init_crit:
 	ldr	r2, _armboot_start
 	sub	r2, r2, #(CONFIG_STACKSIZE)
 	sub	r2, r2, #(CONFIG_SYS_MALLOC_LEN)
-	sub	r2, r2, #(CONFIG_SYS_GBL_DATA_SIZE+8)  @ set base 2 words into abort stack
+	/* set base 2 words into abort stack */
+	sub	r2, r2, #(CONFIG_SYS_GBL_DATA_SIZE+8)
 	ldmia	r2, {r2 - r3}			@ get pc, cpsr
 	add	r0, sp, #S_FRAME_SIZE		@ restore sp_SVC
 
@@ -325,12 +326,12 @@ cpu_init_crit:
 	.macro	irq_save_user_regs
 	sub	sp, sp, #S_FRAME_SIZE
 	stmia	sp, {r0 - r12}			@ Calling r0-r12
-	add     r7, sp, #S_PC
-	stmdb   r7, {sp, lr}^                   @ Calling SP, LR
-	str     lr, [r7, #0]                    @ Save calling PC
-	mrs     r6, spsr
-	str     r6, [r7, #4]                    @ Save CPSR
-	str     r0, [r7, #8]                    @ Save OLD_R0
+	add	r7, sp, #S_PC
+	stmdb	r7, {sp, lr}^			@ Calling SP, LR
+	str	lr, [r7, #0]			@ Save calling PC
+	mrs	r6, spsr
+	str	r6, [r7, #4]			@ Save CPSR
+	str	r0, [r7, #8]			@ Save OLD_R0
 	mov	r0, sp
 	.endm
 
@@ -339,18 +340,20 @@ cpu_init_crit:
 	mov	r0, r0
 	ldr	lr, [sp, #S_PC]			@ Get PC
 	add	sp, sp, #S_FRAME_SIZE
-	subs	pc, lr, #4			@ return & move spsr_svc into cpsr
+	/* return & move spsr_svc into cpsr */
+	subs	pc, lr, #4
 	.endm
 
 	.macro get_bad_stack
 	ldr	r13, _armboot_start		@ setup our mode stack
 	sub	r13, r13, #(CONFIG_STACKSIZE)
 	sub	r13, r13, #(CONFIG_SYS_MALLOC_LEN)
-	sub	r13, r13, #(CONFIG_SYS_GBL_DATA_SIZE+8) @ reserved a couple spots in abort stack
+	/* reserve a couple spots in abort stack */
+	sub	r13, r13, #(CONFIG_SYS_GBL_DATA_SIZE+8)
 
 	str	lr, [r13]			@ save caller lr / spsr
 	mrs	lr, spsr
-	str     lr, [r13, #4]
+	str	lr, [r13, #4]
 
 	mov	r13, #MODE_SVC			@ prepare SVC-Mode
 	@ msr	spsr_c, r13
-- 
1.6.1.2

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 2/7
@ 2009-06-25  0:35 ` kevin.morfitt at fearnside-systems.co.uk
  2009-07-08 20:50   ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 1 reply; 8+ messages in thread
From: kevin.morfitt at fearnside-systems.co.uk @ 2009-06-25  0:35 UTC (permalink / raw)
  To: u-boot


This patch re-formats the s3c24x0 header files in preparation for changes 
to add support for the Embest SBC2440-II Board.

The changes are as follows:

- re-indent the code using Lindent
- make sure register layouts are defined using a C struct, from a 
  comment by Wolfgang on 03/06/2009
- replace the upper-case typedef'ed C struct names with lower case 
  non-typedef'ed ones, from a comment by Scott on 22/06/2009
- make sure registers are accessed using the proper accessor 
  functions, from a comment by Wolfgang on 03/06/2009
- run checkpatch.pl and fix any error reports

Signed-off-by: Kevin Morfitt <kevin.morfitt@fearnside-systems.co.uk>
---
 include/s3c2400.h |  493 ++++----------------------------------------
 include/s3c2410.h |  158 ++++-----------
 include/s3c24x0.h |  595 +++++------------------------------------------------
 3 files changed, 130 insertions(+), 1116 deletions(-)

diff --git a/include/s3c2400.h b/include/s3c2400.h
index 4fdc62e..89027fa 100644
--- a/include/s3c2400.h
+++ b/include/s3c2400.h
@@ -35,12 +35,12 @@
 #define S3C24X0_SPI_CHANNELS	1
 #define PALETTE			(0x14A00400)	/* SJS */
 
-typedef enum {
+enum s3c24x0_uarts_nr {
 	S3C24X0_UART0,
 	S3C24X0_UART1,
-} S3C24X0_UARTS_NR;
+};
 
-/* S3C2400 device base addresses */
+/*S3C2400 device base addresses */
 #define S3C24X0_MEMCTL_BASE		0x14000000
 #define S3C24X0_USB_HOST_BASE		0x14200000
 #define S3C24X0_INTERRUPT_BASE		0x14400000
@@ -63,492 +63,73 @@ typedef enum {
 #include <s3c24x0.h>
 
 
-static inline S3C24X0_MEMCTL * S3C24X0_GetBase_MEMCTL(void)
+static inline struct s3c24x0_memctl *S3C24X0_GetBase_MEMCTL(void)
 {
-	return (S3C24X0_MEMCTL * const)S3C24X0_MEMCTL_BASE;
+	return (struct s3c24x0_memctl *)S3C24X0_MEMCTL_BASE;
 }
-static inline S3C24X0_USB_HOST * S3C24X0_GetBase_USB_HOST(void)
+static inline struct s3c24x0_usb_host *S3C24X0_GetBase_USB_HOST(void)
 {
-	return (S3C24X0_USB_HOST * const)S3C24X0_USB_HOST_BASE;
+	return (struct s3c24x0_usb_host *)S3C24X0_USB_HOST_BASE;
 }
-static inline S3C24X0_INTERRUPT * S3C24X0_GetBase_INTERRUPT(void)
+static inline struct s3c24x0_interrupt *S3C24X0_GetBase_INTERRUPT(void)
 {
-	return (S3C24X0_INTERRUPT * const)S3C24X0_INTERRUPT_BASE;
+	return (struct s3c24x0_interrupt *)S3C24X0_INTERRUPT_BASE;
 }
-static inline S3C24X0_DMAS * S3C24X0_GetBase_DMAS(void)
+static inline struct s3c24x0_dmas *S3C24X0_GetBase_DMAS(void)
 {
-	return (S3C24X0_DMAS * const)S3C24X0_DMA_BASE;
+	return (struct s3c24x0_dmas *)S3C24X0_DMA_BASE;
 }
-static inline S3C24X0_CLOCK_POWER * S3C24X0_GetBase_CLOCK_POWER(void)
+static inline struct s3c24x0_clock_power *S3C24X0_GetBase_CLOCK_POWER(void)
 {
-	return (S3C24X0_CLOCK_POWER * const)S3C24X0_CLOCK_POWER_BASE;
+	return (struct s3c24x0_clock_power *)S3C24X0_CLOCK_POWER_BASE;
 }
-static inline S3C24X0_LCD * S3C24X0_GetBase_LCD(void)
+static inline struct s3c24x0_lcd *S3C24X0_GetBase_LCD(void)
 {
-	return (S3C24X0_LCD * const)S3C24X0_LCD_BASE;
+	return (struct s3c24x0_lcd *)S3C24X0_LCD_BASE;
 }
-static inline S3C24X0_UART * S3C24X0_GetBase_UART(S3C24X0_UARTS_NR nr)
+static inline struct s3c24x0_uart *S3C24X0_GetBase_UART(enum s3c24x0_uarts_nr n)
 {
-	return (S3C24X0_UART * const)(S3C24X0_UART_BASE + (nr * 0x4000));
+	return (struct s3c24x0_uart *)(S3C24X0_UART_BASE + (n * 0x4000));
 }
-static inline S3C24X0_TIMERS * S3C24X0_GetBase_TIMERS(void)
+static inline struct s3c24x0_timers *S3C24X0_GetBase_TIMERS(void)
 {
-	return (S3C24X0_TIMERS * const)S3C24X0_TIMER_BASE;
+	return (struct s3c24x0_timers *)S3C24X0_TIMER_BASE;
 }
-static inline S3C24X0_USB_DEVICE * S3C24X0_GetBase_USB_DEVICE(void)
+static inline struct s3c24x0_usb_device *S3C24X0_GetBase_USB_DEVICE(void)
 {
-	return (S3C24X0_USB_DEVICE * const)S3C24X0_USB_DEVICE_BASE;
+	return (struct s3c24x0_usb_device *)S3C24X0_USB_DEVICE_BASE;
 }
-static inline S3C24X0_WATCHDOG * S3C24X0_GetBase_WATCHDOG(void)
+static inline struct s3c24x0_watchdog *S3C24X0_GetBase_WATCHDOG(void)
 {
-	return (S3C24X0_WATCHDOG * const)S3C24X0_WATCHDOG_BASE;
+	return (struct s3c24x0_watchdog *)S3C24X0_WATCHDOG_BASE;
 }
-static inline S3C24X0_I2C * S3C24X0_GetBase_I2C(void)
+static inline struct s3c24x0_i2c *S3C24X0_GetBase_I2C(void)
 {
-	return (S3C24X0_I2C * const)S3C24X0_I2C_BASE;
+	return (struct s3c24x0_i2c *)S3C24X0_I2C_BASE;
 }
-static inline S3C24X0_I2S * S3C24X0_GetBase_I2S(void)
+static inline struct s3c24x0_i2s *S3C24X0_GetBase_I2S(void)
 {
-	return (S3C24X0_I2S * const)S3C24X0_I2S_BASE;
+	return (struct s3c24x0_i2s *)S3C24X0_I2S_BASE;
 }
-static inline S3C24X0_GPIO * S3C24X0_GetBase_GPIO(void)
+static inline struct s3c24x0_gpio *S3C24X0_GetBase_GPIO(void)
 {
-	return (S3C24X0_GPIO * const)S3C24X0_GPIO_BASE;
+	return (struct s3c24x0_gpio *)S3C24X0_GPIO_BASE;
 }
-static inline S3C24X0_RTC * S3C24X0_GetBase_RTC(void)
+static inline struct s3c24x0_rtc *S3C24X0_GetBase_RTC(void)
 {
-	return (S3C24X0_RTC * const)S3C24X0_RTC_BASE;
+	return (struct s3c24x0_rtc *)S3C24X0_RTC_BASE;
 }
-static inline S3C2400_ADC * S3C2400_GetBase_ADC(void)
+static inline struct s3c2400_adc *S3C2400_GetBase_ADC(void)
 {
-	return (S3C2400_ADC * const)S3C24X0_ADC_BASE;
+	return (struct s3c2400_adc *)S3C24X0_ADC_BASE;
 }
-static inline S3C24X0_SPI * S3C24X0_GetBase_SPI(void)
+static inline struct s3c24x0_spi *S3C24X0_GetBase_SPI(void)
 {
-	return (S3C24X0_SPI * const)S3C24X0_SPI_BASE;
+	return (struct s3c24x0_spi *)S3C24X0_SPI_BASE;
 }
-static inline S3C2400_MMC * S3C2400_GetBase_MMC(void)
+static inline struct s3c2400_mmc *S3C2400_GetBase_MMC(void)
 {
-	return (S3C2400_MMC * const)S3C2400_MMC_BASE;
+	return (struct s3c2400_mmc *)S3C2400_MMC_BASE;
 }
 
-#if 0
-/* Memory control */
-#define rBWSCON		(*(volatile unsigned *)0x14000000)
-#define rBANKCON0	(*(volatile unsigned *)0x14000004)
-#define rBANKCON1	(*(volatile unsigned *)0x14000008)
-#define rBANKCON2	(*(volatile unsigned *)0x1400000C)
-#define rBANKCON3	(*(volatile unsigned *)0x14000010)
-#define rBANKCON4	(*(volatile unsigned *)0x14000014)
-#define rBANKCON5	(*(volatile unsigned *)0x14000018)
-#define rBANKCON6	(*(volatile unsigned *)0x1400001C)
-#define rBANKCON7	(*(volatile unsigned *)0x14000020)
-#define rREFRESH	(*(volatile unsigned *)0x14000024)
-#define rBANKSIZE	(*(volatile unsigned *)0x14000028)
-#define rMRSRB6		(*(volatile unsigned *)0x1400002C)
-#define rMRSRB7		(*(volatile unsigned *)0x14000030)
-
-
-/* INTERRUPT */
-#define rSRCPND		(*(volatile unsigned *)0x14400000)
-#define rINTMOD		(*(volatile unsigned *)0x14400004)
-#define rINTMSK		(*(volatile unsigned *)0x14400008)
-#define rPRIORITY	(*(volatile unsigned *)0x1440000C)
-#define rINTPND		(*(volatile unsigned *)0x14400010)
-#define rINTOFFSET	(*(volatile unsigned *)0x14400014)
-
-
-/* DMA */
-#define rDISRC0		(*(volatile unsigned *)0x14600000)
-#define rDIDST0		(*(volatile unsigned *)0x14600004)
-#define rDCON0		(*(volatile unsigned *)0x14600008)
-#define rDSTAT0		(*(volatile unsigned *)0x1460000C)
-#define rDCSRC0		(*(volatile unsigned *)0x14600010)
-#define rDCDST0		(*(volatile unsigned *)0x14600014)
-#define rDMASKTRIG0	(*(volatile unsigned *)0x14600018)
-#define rDISRC1		(*(volatile unsigned *)0x14600020)
-#define rDIDST1		(*(volatile unsigned *)0x14600024)
-#define rDCON1		(*(volatile unsigned *)0x14600028)
-#define rDSTAT1		(*(volatile unsigned *)0x1460002C)
-#define rDCSRC1		(*(volatile unsigned *)0x14600030)
-#define rDCDST1		(*(volatile unsigned *)0x14600034)
-#define rDMASKTRIG1	(*(volatile unsigned *)0x14600038)
-#define rDISRC2		(*(volatile unsigned *)0x14600040)
-#define rDIDST2		(*(volatile unsigned *)0x14600044)
-#define rDCON2		(*(volatile unsigned *)0x14600048)
-#define rDSTAT2		(*(volatile unsigned *)0x1460004C)
-#define rDCSRC2		(*(volatile unsigned *)0x14600050)
-#define rDCDST2		(*(volatile unsigned *)0x14600054)
-#define rDMASKTRIG2	(*(volatile unsigned *)0x14600058)
-#define rDISRC3		(*(volatile unsigned *)0x14600060)
-#define rDIDST3		(*(volatile unsigned *)0x14600064)
-#define rDCON3		(*(volatile unsigned *)0x14600068)
-#define rDSTAT3		(*(volatile unsigned *)0x1460006C)
-#define rDCSRC3		(*(volatile unsigned *)0x14600070)
-#define rDCDST3		(*(volatile unsigned *)0x14600074)
-#define rDMASKTRIG3	(*(volatile unsigned *)0x14600078)
-
-
-/* CLOCK & POWER MANAGEMENT */
-#define rLOCKTIME	(*(volatile unsigned *)0x14800000)
-#define rMPLLCON	(*(volatile unsigned *)0x14800004)
-#define rUPLLCON	(*(volatile unsigned *)0x14800008)
-#define rCLKCON		(*(volatile unsigned *)0x1480000C)
-#define rCLKSLOW	(*(volatile unsigned *)0x14800010)
-#define rCLKDIVN	(*(volatile unsigned *)0x14800014)
-
-
-/* LCD CONTROLLER */
-#define rLCDCON1	(*(volatile unsigned *)0x14A00000)
-#define rLCDCON2	(*(volatile unsigned *)0x14A00004)
-#define rLCDCON3	(*(volatile unsigned *)0x14A00008)
-#define rLCDCON4	(*(volatile unsigned *)0x14A0000C)
-#define rLCDCON5	(*(volatile unsigned *)0x14A00010)
-#define rLCDSADDR1	(*(volatile unsigned *)0x14A00014)
-#define rLCDSADDR2	(*(volatile unsigned *)0x14A00018)
-#define rLCDSADDR3	(*(volatile unsigned *)0x14A0001C)
-#define rREDLUT		(*(volatile unsigned *)0x14A00020)
-#define rGREENLUT	(*(volatile unsigned *)0x14A00024)
-#define rBLUELUT	(*(volatile unsigned *)0x14A00028)
-#define rDP1_2		(*(volatile unsigned *)0x14A0002C)
-#define rDP4_7		(*(volatile unsigned *)0x14A00030)
-#define rDP3_5		(*(volatile unsigned *)0x14A00034)
-#define rDP2_3		(*(volatile unsigned *)0x14A00038)
-#define rDP5_7		(*(volatile unsigned *)0x14A0003c)
-#define rDP3_4		(*(volatile unsigned *)0x14A00040)
-#define rDP4_5		(*(volatile unsigned *)0x14A00044)
-#define rDP6_7		(*(volatile unsigned *)0x14A00048)
-#define rDITHMODE	(*(volatile unsigned *)0x14A0004C)
-#define rTPAL		(*(volatile unsigned *)0x14A00050)
-#define PALETTE		(0x14A00400)	/* SJS */
-
-
-/* UART */
-#define rULCON0		(*(volatile unsigned char *)0x15000000)
-#define rUCON0		(*(volatile unsigned short *)0x15000004)
-#define rUFCON0		(*(volatile unsigned char *)0x15000008)
-#define rUMCON0		(*(volatile unsigned char *)0x1500000C)
-#define rUTRSTAT0	(*(volatile unsigned char *)0x15000010)
-#define rUERSTAT0	(*(volatile unsigned char *)0x15000014)
-#define rUFSTAT0	(*(volatile unsigned short *)0x15000018)
-#define rUMSTAT0	(*(volatile unsigned char *)0x1500001C)
-#define rUBRDIV0	(*(volatile unsigned short *)0x15000028)
-
-#define rULCON1		(*(volatile unsigned char *)0x15004000)
-#define rUCON1		(*(volatile unsigned short *)0x15004004)
-#define rUFCON1		(*(volatile unsigned char *)0x15004008)
-#define rUMCON1		(*(volatile unsigned char *)0x1500400C)
-#define rUTRSTAT1	(*(volatile unsigned char *)0x15004010)
-#define rUERSTAT1	(*(volatile unsigned char *)0x15004014)
-#define rUFSTAT1	(*(volatile unsigned short *)0x15004018)
-#define rUMSTAT1	(*(volatile unsigned char *)0x1500401C)
-#define rUBRDIV1	(*(volatile unsigned short *)0x15004028)
-
-#ifdef __BIG_ENDIAN
-#define rUTXH0		(*(volatile unsigned char *)0x15000023)
-#define rURXH0		(*(volatile unsigned char *)0x15000027)
-#define rUTXH1		(*(volatile unsigned char *)0x15004023)
-#define rURXH1		(*(volatile unsigned char *)0x15004027)
-
-#define WrUTXH0(ch)	(*(volatile unsigned char *)0x15000023)=(unsigned char)(ch)
-#define RdURXH0()	(*(volatile unsigned char *)0x15000027)
-#define WrUTXH1(ch)	(*(volatile unsigned char *)0x15004023)=(unsigned char)(ch)
-#define RdURXH1()	(*(volatile unsigned char *)0x15004027)
-
-#define UTXH0		(0x15000020+3)  /* byte_access address by DMA */
-#define URXH0		(0x15000024+3)
-#define UTXH1		(0x15004020+3)
-#define URXH1		(0x15004024+3)
-
-#else /* Little Endian */
-#define rUTXH0		(*(volatile unsigned char *)0x15000020)
-#define rURXH0		(*(volatile unsigned char *)0x15000024)
-#define rUTXH1		(*(volatile unsigned char *)0x15004020)
-#define rURXH1		(*(volatile unsigned char *)0x15004024)
-
-#define WrUTXH0(ch)	(*(volatile unsigned char *)0x15000020)=(unsigned char)(ch)
-#define RdURXH0()	(*(volatile unsigned char *)0x15000024)
-#define WrUTXH1(ch)	(*(volatile unsigned char *)0x15004020)=(unsigned char)(ch)
-#define RdURXH1()	(*(volatile unsigned char *)0x15004024)
-
-#define UTXH0		(0x15000020)    /* byte_access address by DMA */
-#define URXH0		(0x15000024)
-#define UTXH1		(0x15004020)
-#define URXH1		(0x15004024)
-#endif
-
-
-/* PWM TIMER */
-#define rTCFG0		(*(volatile unsigned *)0x15100000)
-#define rTCFG1		(*(volatile unsigned *)0x15100004)
-#define rTCON		(*(volatile unsigned *)0x15100008)
-#define rTCNTB0		(*(volatile unsigned *)0x1510000C)
-#define rTCMPB0		(*(volatile unsigned *)0x15100010)
-#define rTCNTO0		(*(volatile unsigned *)0x15100014)
-#define rTCNTB1		(*(volatile unsigned *)0x15100018)
-#define rTCMPB1		(*(volatile unsigned *)0x1510001C)
-#define rTCNTO1		(*(volatile unsigned *)0x15100020)
-#define rTCNTB2		(*(volatile unsigned *)0x15100024)
-#define rTCMPB2		(*(volatile unsigned *)0x15100028)
-#define rTCNTO2		(*(volatile unsigned *)0x1510002C)
-#define rTCNTB3		(*(volatile unsigned *)0x15100030)
-#define rTCMPB3		(*(volatile unsigned *)0x15100034)
-#define rTCNTO3		(*(volatile unsigned *)0x15100038)
-#define rTCNTB4		(*(volatile unsigned *)0x1510003C)
-#define rTCNTO4		(*(volatile unsigned *)0x15100040)
-
-
-/* USB DEVICE */
-#define rFUNC_ADDR_REG	(*(volatile unsigned *)0x15200140)
-#define rPWR_REG	(*(volatile unsigned *)0x15200144)
-#define rINT_REG	(*(volatile unsigned *)0x15200148)
-#define rINT_MASK_REG	(*(volatile unsigned *)0x1520014C)
-#define rFRAME_NUM_REG	(*(volatile unsigned *)0x15200150)
-#define rRESUME_CON_REG	(*(volatile unsigned *)0x15200154)
-#define rEP0_CSR	(*(volatile unsigned *)0x15200160)
-#define rEP0_MAXP	(*(volatile unsigned *)0x15200164)
-#define rEP0_OUT_CNT	(*(volatile unsigned *)0x15200168)
-#define rEP0_FIFO	(*(volatile unsigned *)0x1520016C)
-#define rEP1_IN_CSR	(*(volatile unsigned *)0x15200180)
-#define rEP1_IN_MAXP	(*(volatile unsigned *)0x15200184)
-#define rEP1_FIFO	(*(volatile unsigned *)0x15200188)
-#define rEP2_IN_CSR	(*(volatile unsigned *)0x15200190)
-#define rEP2_IN_MAXP	(*(volatile unsigned *)0x15200194)
-#define rEP2_FIFO	(*(volatile unsigned *)0x15200198)
-#define rEP3_OUT_CSR	(*(volatile unsigned *)0x152001A0)
-#define rEP3_OUT_MAXP	(*(volatile unsigned *)0x152001A4)
-#define rEP3_OUT_CNT	(*(volatile unsigned *)0x152001A8)
-#define rEP3_FIFO	(*(volatile unsigned *)0x152001AC)
-#define rEP4_OUT_CSR	(*(volatile unsigned *)0x152001B0)
-#define rEP4_OUT_MAXP	(*(volatile unsigned *)0x152001B4)
-#define rEP4_OUT_CNT	(*(volatile unsigned *)0x152001B8)
-#define rEP4_FIFO	(*(volatile unsigned *)0x152001BC)
-#define rDMA_CON	(*(volatile unsigned *)0x152001C0)
-#define rDMA_UNIT	(*(volatile unsigned *)0x152001C4)
-#define rDMA_FIFO	(*(volatile unsigned *)0x152001C8)
-#define rDMA_TX		(*(volatile unsigned *)0x152001CC)
-#define rTEST_MODE	(*(volatile unsigned *)0x152001F4)
-#define rIN_CON_REG	(*(volatile unsigned *)0x152001F8)
-
-
-/* WATCH DOG TIMER */
-#define rWTCON		(*(volatile unsigned *)0x15300000)
-#define rWTDAT		(*(volatile unsigned *)0x15300004)
-#define rWTCNT		(*(volatile unsigned *)0x15300008)
-
-
-/* IIC */
-#define rIICCON		(*(volatile unsigned *)0x15400000)
-#define rIICSTAT	(*(volatile unsigned *)0x15400004)
-#define rIICADD		(*(volatile unsigned *)0x15400008)
-#define rIICDS		(*(volatile unsigned *)0x1540000C)
-
-
-/* IIS */
-#define rIISCON		(*(volatile unsigned *)0x15508000)
-#define rIISMOD		(*(volatile unsigned *)0x15508004)
-#define rIISPSR		(*(volatile unsigned *)0x15508008)
-#define rIISFIFCON	(*(volatile unsigned *)0x1550800C)
-
-#ifdef __BIG_ENDIAN
-#define IISFIF		((volatile unsigned short *)0x15508012)
-
-#else /* Little Endian */
-#define IISFIF		((volatile unsigned short *)0x15508010)
-#endif
-
-
-/* I/O PORT */
-#define rPACON		(*(volatile unsigned *)0x15600000)
-#define rPADAT		(*(volatile unsigned *)0x15600004)
-
-#define rPBCON		(*(volatile unsigned *)0x15600008)
-#define rPBDAT		(*(volatile unsigned *)0x1560000C)
-#define rPBUP		(*(volatile unsigned *)0x15600010)
-
-#define rPCCON		(*(volatile unsigned *)0x15600014)
-#define rPCDAT		(*(volatile unsigned *)0x15600018)
-#define rPCUP		(*(volatile unsigned *)0x1560001C)
-
-#define rPDCON		(*(volatile unsigned *)0x15600020)
-#define rPDDAT		(*(volatile unsigned *)0x15600024)
-#define rPDUP		(*(volatile unsigned *)0x15600028)
-
-#define rPECON		(*(volatile unsigned *)0x1560002C)
-#define rPEDAT		(*(volatile unsigned *)0x15600030)
-#define rPEUP		(*(volatile unsigned *)0x15600034)
-
-#define rPFCON		(*(volatile unsigned *)0x15600038)
-#define rPFDAT		(*(volatile unsigned *)0x1560003C)
-#define rPFUP		(*(volatile unsigned *)0x15600040)
-
-#define rPGCON		(*(volatile unsigned *)0x15600044)
-#define rPGDAT		(*(volatile unsigned *)0x15600048)
-#define rPGUP		(*(volatile unsigned *)0x1560004C)
-
-#define rOPENCR		(*(volatile unsigned *)0x15600050)
-#define rMISCCR		(*(volatile unsigned *)0x15600054)
-#define rEXTINT		(*(volatile unsigned *)0x15600058)
-
-
-/* RTC */
-#ifdef __BIG_ENDIAN
-#define rRTCCON		(*(volatile unsigned char *)0x15700043)
-#define rRTCALM		(*(volatile unsigned char *)0x15700053)
-#define rALMSEC		(*(volatile unsigned char *)0x15700057)
-#define rALMMIN		(*(volatile unsigned char *)0x1570005B)
-#define rALMHOUR	(*(volatile unsigned char *)0x1570005F)
-#define rALMDAY		(*(volatile unsigned char *)0x15700063)
-#define rALMMON		(*(volatile unsigned char *)0x15700067)
-#define rALMYEAR	(*(volatile unsigned char *)0x1570006B)
-#define rRTCRST		(*(volatile unsigned char *)0x1570006F)
-#define rBCDSEC		(*(volatile unsigned char *)0x15700073)
-#define rBCDMIN		(*(volatile unsigned char *)0x15700077)
-#define rBCDHOUR	(*(volatile unsigned char *)0x1570007B)
-#define rBCDDAY		(*(volatile unsigned char *)0x1570007F)
-#define rBCDDATE	(*(volatile unsigned char *)0x15700083)
-#define rBCDMON		(*(volatile unsigned char *)0x15700087)
-#define rBCDYEAR	(*(volatile unsigned char *)0x1570008B)
-#define rTICINT		(*(volatile unsigned char *)0x15700047)
-
-#else /* Little Endian */
-#define rRTCCON		(*(volatile unsigned char *)0x15700040)
-#define rRTCALM		(*(volatile unsigned char *)0x15700050)
-#define rALMSEC		(*(volatile unsigned char *)0x15700054)
-#define rALMMIN		(*(volatile unsigned char *)0x15700058)
-#define rALMHOUR	(*(volatile unsigned char *)0x1570005C)
-#define rALMDAY		(*(volatile unsigned char *)0x15700060)
-#define rALMMON		(*(volatile unsigned char *)0x15700064)
-#define rALMYEAR	(*(volatile unsigned char *)0x15700068)
-#define rRTCRST		(*(volatile unsigned char *)0x1570006C)
-#define rBCDSEC		(*(volatile unsigned char *)0x15700070)
-#define rBCDMIN		(*(volatile unsigned char *)0x15700074)
-#define rBCDHOUR	(*(volatile unsigned char *)0x15700078)
-#define rBCDDAY		(*(volatile unsigned char *)0x1570007C)
-#define rBCDDATE	(*(volatile unsigned char *)0x15700080)
-#define rBCDMON		(*(volatile unsigned char *)0x15700084)
-#define rBCDYEAR	(*(volatile unsigned char *)0x15700088)
-#define rTICINT		(*(volatile unsigned char *)0x15700044)
-#endif
-
-
-/* ADC */
-#define rADCCON		(*(volatile unsigned *)0x15800000)
-#define rADCDAT		(*(volatile unsigned *)0x15800004)
-
-
-/* SPI */
-#define rSPCON		(*(volatile unsigned *)0x15900000)
-#define rSPSTA		(*(volatile unsigned *)0x15900004)
-#define rSPPIN		(*(volatile unsigned *)0x15900008)
-#define rSPPRE		(*(volatile unsigned *)0x1590000C)
-#define rSPTDAT		(*(volatile unsigned *)0x15900010)
-#define rSPRDAT		(*(volatile unsigned *)0x15900014)
-
-
-/* MMC INTERFACE */
-#define rMMCON		(*(volatile unsigned *)0x15a00000)
-#define rMMCRR		(*(volatile unsigned *)0x15a00004)
-#define rMMFCON		(*(volatile unsigned *)0x15a00008)
-#define rMMSTA		(*(volatile unsigned *)0x15a0000C)
-#define rMMFSTA		(*(volatile unsigned *)0x15a00010)
-#define rMMPRE		(*(volatile unsigned *)0x15a00014)
-#define rMMLEN		(*(volatile unsigned *)0x15a00018)
-#define rMMCR7		(*(volatile unsigned *)0x15a0001C)
-#define rMMRSP0		(*(volatile unsigned *)0x15a00020)
-#define rMMRSP1		(*(volatile unsigned *)0x15a00024)
-#define rMMRSP2		(*(volatile unsigned *)0x15a00028)
-#define rMMRSP3		(*(volatile unsigned *)0x15a0002C)
-#define rMMCMD0		(*(volatile unsigned *)0x15a00030)
-#define rMMCMD1		(*(volatile unsigned *)0x15a00034)
-#define rMMCR16		(*(volatile unsigned *)0x15a00038)
-#define rMMDAT		(*(volatile unsigned *)0x15a0003C)
-
-
-/* ISR */
-#define pISR_RESET	(*(unsigned *)(_ISR_STARTADDRESS+0x0))
-#define pISR_UNDEF	(*(unsigned *)(_ISR_STARTADDRESS+0x4))
-#define pISR_SWI	(*(unsigned *)(_ISR_STARTADDRESS+0x8))
-#define pISR_PABORT	(*(unsigned *)(_ISR_STARTADDRESS+0xC))
-#define pISR_DABORT	(*(unsigned *)(_ISR_STARTADDRESS+0x10))
-#define pISR_RESERVED	(*(unsigned *)(_ISR_STARTADDRESS+0x14))
-#define pISR_IRQ	(*(unsigned *)(_ISR_STARTADDRESS+0x18))
-#define pISR_FIQ	(*(unsigned *)(_ISR_STARTADDRESS+0x1C))
-
-#define pISR_EINT0	(*(unsigned *)(_ISR_STARTADDRESS+0x20))
-#define pISR_EINT1	(*(unsigned *)(_ISR_STARTADDRESS+0x24))
-#define pISR_EINT2	(*(unsigned *)(_ISR_STARTADDRESS+0x28))
-#define pISR_EINT3	(*(unsigned *)(_ISR_STARTADDRESS+0x2C))
-#define pISR_EINT4	(*(unsigned *)(_ISR_STARTADDRESS+0x30))
-#define pISR_EINT5	(*(unsigned *)(_ISR_STARTADDRESS+0x34))
-#define pISR_EINT6	(*(unsigned *)(_ISR_STARTADDRESS+0x38))
-#define pISR_EINT7	(*(unsigned *)(_ISR_STARTADDRESS+0x3C))
-#define pISR_TICK	(*(unsigned *)(_ISR_STARTADDRESS+0x40))
-#define pISR_WDT	(*(unsigned *)(_ISR_STARTADDRESS+0x44))
-#define pISR_TIMER0	(*(unsigned *)(_ISR_STARTADDRESS+0x48))
-#define pISR_TIMER1	(*(unsigned *)(_ISR_STARTADDRESS+0x4C))
-#define pISR_TIMER2	(*(unsigned *)(_ISR_STARTADDRESS+0x50))
-#define pISR_TIMER3	(*(unsigned *)(_ISR_STARTADDRESS+0x54))
-#define pISR_TIMER4	(*(unsigned *)(_ISR_STARTADDRESS+0x58))
-#define pISR_UERR01	(*(unsigned *)(_ISR_STARTADDRESS+0x5C))
-#define pISR_NOTUSED	(*(unsigned *)(_ISR_STARTADDRESS+0x60))
-#define pISR_DMA0	(*(unsigned *)(_ISR_STARTADDRESS+0x64))
-#define pISR_DMA1	(*(unsigned *)(_ISR_STARTADDRESS+0x68))
-#define pISR_DMA2	(*(unsigned *)(_ISR_STARTADDRESS+0x6C))
-#define pISR_DMA3	(*(unsigned *)(_ISR_STARTADDRESS+0x70))
-#define pISR_MMC	(*(unsigned *)(_ISR_STARTADDRESS+0x74))
-#define pISR_SPI	(*(unsigned *)(_ISR_STARTADDRESS+0x78))
-#define pISR_URXD0	(*(unsigned *)(_ISR_STARTADDRESS+0x7C))
-#define pISR_URXD1	(*(unsigned *)(_ISR_STARTADDRESS+0x80))
-#define pISR_USBD	(*(unsigned *)(_ISR_STARTADDRESS+0x84))
-#define pISR_USBH	(*(unsigned *)(_ISR_STARTADDRESS+0x88))
-#define pISR_IIC	(*(unsigned *)(_ISR_STARTADDRESS+0x8C))
-#define pISR_UTXD0	(*(unsigned *)(_ISR_STARTADDRESS+0x90))
-#define pISR_UTXD1	(*(unsigned *)(_ISR_STARTADDRESS+0x94))
-#define pISR_RTC	(*(unsigned *)(_ISR_STARTADDRESS+0x98))
-#define pISR_ADC	(*(unsigned *)(_ISR_STARTADDRESS+0xA0))
-
-
-/* PENDING BIT */
-#define BIT_EINT0	(0x1)
-#define BIT_EINT1	(0x1<<1)
-#define BIT_EINT2	(0x1<<2)
-#define BIT_EINT3	(0x1<<3)
-#define BIT_EINT4	(0x1<<4)
-#define BIT_EINT5	(0x1<<5)
-#define BIT_EINT6	(0x1<<6)
-#define BIT_EINT7	(0x1<<7)
-#define BIT_TICK	(0x1<<8)
-#define BIT_WDT		(0x1<<9)
-#define BIT_TIMER0	(0x1<<10)
-#define BIT_TIMER1	(0x1<<11)
-#define BIT_TIMER2	(0x1<<12)
-#define BIT_TIMER3	(0x1<<13)
-#define BIT_TIMER4	(0x1<<14)
-#define BIT_UERR01	(0x1<<15)
-#define BIT_NOTUSED	(0x1<<16)
-#define BIT_DMA0	(0x1<<17)
-#define BIT_DMA1	(0x1<<18)
-#define BIT_DMA2	(0x1<<19)
-#define BIT_DMA3	(0x1<<20)
-#define BIT_MMC		(0x1<<21)
-#define BIT_SPI		(0x1<<22)
-#define BIT_URXD0	(0x1<<23)
-#define BIT_URXD1	(0x1<<24)
-#define BIT_USBD	(0x1<<25)
-#define BIT_USBH	(0x1<<26)
-#define BIT_IIC		(0x1<<27)
-#define BIT_UTXD0	(0x1<<28)
-#define BIT_UTXD1	(0x1<<29)
-#define BIT_RTC		(0x1<<30)
-#define BIT_ADC		(0x1<<31)
-#define BIT_ALLMSK	(0xFFFFFFFF)
-
-#define ClearPending(bit) {\
-		 rSRCPND = bit;\
-		 rINTPND = bit;\
-		 rINTPND;\
-		 }
-/* Wait until rINTPND is changed for the case that the ISR is very short. */
-#endif
 #endif /*__S3C2400_H__*/
diff --git a/include/s3c2410.h b/include/s3c2410.h
index 87135b4..763418e 100644
--- a/include/s3c2410.h
+++ b/include/s3c2410.h
@@ -38,11 +38,11 @@
 #define S3C2410_ECCSIZE		512
 #define S3C2410_ECCBYTES	3
 
-typedef enum {
+enum s3c24x0_uarts_nr {
 	S3C24X0_UART0,
 	S3C24X0_UART1,
 	S3C24X0_UART2
-} S3C24X0_UARTS_NR;
+};
 
 /* S3C2410 device base addresses */
 #define S3C24X0_MEMCTL_BASE		0x48000000
@@ -69,159 +69,77 @@ typedef enum {
 #include <s3c24x0.h>
 
 
-static inline S3C24X0_MEMCTL * S3C24X0_GetBase_MEMCTL(void)
+static inline struct s3c24x0_memctl *S3C24X0_GetBase_MEMCTL(void)
 {
-	return (S3C24X0_MEMCTL * const)S3C24X0_MEMCTL_BASE;
+	return (struct s3c24x0_memctl *)S3C24X0_MEMCTL_BASE;
 }
-static inline S3C24X0_USB_HOST * S3C24X0_GetBase_USB_HOST(void)
+static inline struct s3c24x0_usb_host *S3C24X0_GetBase_USB_HOST(void)
 {
-	return (S3C24X0_USB_HOST * const)S3C24X0_USB_HOST_BASE;
+	return (struct s3c24x0_usb_host *)S3C24X0_USB_HOST_BASE;
 }
-static inline S3C24X0_INTERRUPT * S3C24X0_GetBase_INTERRUPT(void)
+static inline struct s3c24x0_interrupt *S3C24X0_GetBase_INTERRUPT(void)
 {
-	return (S3C24X0_INTERRUPT * const)S3C24X0_INTERRUPT_BASE;
+	return (struct s3c24x0_interrupt *)S3C24X0_INTERRUPT_BASE;
 }
-static inline S3C24X0_DMAS * S3C24X0_GetBase_DMAS(void)
+static inline struct s3c24x0_dmas *S3C24X0_GetBase_DMAS(void)
 {
-	return (S3C24X0_DMAS * const)S3C24X0_DMA_BASE;
+	return (struct s3c24x0_dmas *)S3C24X0_DMA_BASE;
 }
-static inline S3C24X0_CLOCK_POWER * S3C24X0_GetBase_CLOCK_POWER(void)
+static inline struct s3c24x0_clock_power *S3C24X0_GetBase_CLOCK_POWER(void)
 {
-	return (S3C24X0_CLOCK_POWER * const)S3C24X0_CLOCK_POWER_BASE;
+	return (struct s3c24x0_clock_power *)S3C24X0_CLOCK_POWER_BASE;
 }
-static inline S3C24X0_LCD * S3C24X0_GetBase_LCD(void)
+static inline struct s3c24x0_lcd *S3C24X0_GetBase_LCD(void)
 {
-	return (S3C24X0_LCD * const)S3C24X0_LCD_BASE;
+	return (struct s3c24x0_lcd *)S3C24X0_LCD_BASE;
 }
-static inline S3C2410_NAND * S3C2410_GetBase_NAND(void)
+static inline struct s3c2410_nand *S3C2410_GetBase_NAND(void)
 {
-	return (S3C2410_NAND * const)S3C2410_NAND_BASE;
+	return (struct s3c2410_nand *)S3C2410_NAND_BASE;
 }
-static inline S3C24X0_UART * S3C24X0_GetBase_UART(S3C24X0_UARTS_NR nr)
+static inline struct s3c24x0_uart *S3C24X0_GetBase_UART(enum s3c24x0_uarts_nr n)
 {
-	return (S3C24X0_UART * const)(S3C24X0_UART_BASE + (nr * 0x4000));
+	return (struct s3c24x0_uart *)(S3C24X0_UART_BASE + (n * 0x4000));
 }
-static inline S3C24X0_TIMERS * S3C24X0_GetBase_TIMERS(void)
+static inline struct s3c24x0_timers *S3C24X0_GetBase_TIMERS(void)
 {
-	return (S3C24X0_TIMERS * const)S3C24X0_TIMER_BASE;
+	return (struct s3c24x0_timers *)S3C24X0_TIMER_BASE;
 }
-static inline S3C24X0_USB_DEVICE * S3C24X0_GetBase_USB_DEVICE(void)
+static inline struct s3c24x0_usb_device *S3C24X0_GetBase_USB_DEVICE(void)
 {
-	return (S3C24X0_USB_DEVICE * const)S3C24X0_USB_DEVICE_BASE;
+	return (struct s3c24x0_usb_device *)S3C24X0_USB_DEVICE_BASE;
 }
-static inline S3C24X0_WATCHDOG * S3C24X0_GetBase_WATCHDOG(void)
+static inline struct s3c24x0_watchdog *S3C24X0_GetBase_WATCHDOG(void)
 {
-	return (S3C24X0_WATCHDOG * const)S3C24X0_WATCHDOG_BASE;
+	return (struct s3c24x0_watchdog *)S3C24X0_WATCHDOG_BASE;
 }
-static inline S3C24X0_I2C * S3C24X0_GetBase_I2C(void)
+static inline struct s3c24x0_i2c *S3C24X0_GetBase_I2C(void)
 {
-	return (S3C24X0_I2C * const)S3C24X0_I2C_BASE;
+	return (struct s3c24x0_i2c *)S3C24X0_I2C_BASE;
 }
-static inline S3C24X0_I2S * S3C24X0_GetBase_I2S(void)
+static inline struct s3c24x0_i2s *S3C24X0_GetBase_I2S(void)
 {
-	return (S3C24X0_I2S * const)S3C24X0_I2S_BASE;
+	return (struct s3c24x0_i2s *)S3C24X0_I2S_BASE;
 }
-static inline S3C24X0_GPIO * S3C24X0_GetBase_GPIO(void)
+static inline struct s3c24x0_gpio *S3C24X0_GetBase_GPIO(void)
 {
-	return (S3C24X0_GPIO * const)S3C24X0_GPIO_BASE;
+	return (struct s3c24x0_gpio *)S3C24X0_GPIO_BASE;
 }
-static inline S3C24X0_RTC * S3C24X0_GetBase_RTC(void)
+static inline struct s3c24x0_rtc *S3C24X0_GetBase_RTC(void)
 {
-	return (S3C24X0_RTC * const)S3C24X0_RTC_BASE;
+	return (struct s3c24x0_rtc *)S3C24X0_RTC_BASE;
 }
-static inline S3C2410_ADC * S3C2410_GetBase_ADC(void)
+static inline struct s3c2410_adc *S3C2410_GetBase_ADC(void)
 {
-	return (S3C2410_ADC * const)S3C2410_ADC_BASE;
+	return (struct s3c2410_adc *)S3C2410_ADC_BASE;
 }
-static inline S3C24X0_SPI * S3C24X0_GetBase_SPI(void)
+static inline struct s3c24x0_spi *S3C24X0_GetBase_SPI(void)
 {
-	return (S3C24X0_SPI * const)S3C24X0_SPI_BASE;
+	return (struct s3c24x0_spi *)S3C24X0_SPI_BASE;
 }
-static inline S3C2410_SDI * S3C2410_GetBase_SDI(void)
+static inline struct s3c2410_sdi *S3C2410_GetBase_SDI(void)
 {
-	return (S3C2410_SDI * const)S3C2410_SDI_BASE;
+	return (struct s3c2410_sdi *)S3C2410_SDI_BASE;
 }
 
-
-/* ISR */
-#define pISR_RESET		(*(unsigned *)(_ISR_STARTADDRESS+0x0))
-#define pISR_UNDEF		(*(unsigned *)(_ISR_STARTADDRESS+0x4))
-#define pISR_SWI		(*(unsigned *)(_ISR_STARTADDRESS+0x8))
-#define pISR_PABORT		(*(unsigned *)(_ISR_STARTADDRESS+0xC))
-#define pISR_DABORT		(*(unsigned *)(_ISR_STARTADDRESS+0x10))
-#define pISR_RESERVED		(*(unsigned *)(_ISR_STARTADDRESS+0x14))
-#define pISR_IRQ		(*(unsigned *)(_ISR_STARTADDRESS+0x18))
-#define pISR_FIQ		(*(unsigned *)(_ISR_STARTADDRESS+0x1C))
-
-#define pISR_EINT0		(*(unsigned *)(_ISR_STARTADDRESS+0x20))
-#define pISR_EINT1		(*(unsigned *)(_ISR_STARTADDRESS+0x24))
-#define pISR_EINT2		(*(unsigned *)(_ISR_STARTADDRESS+0x28))
-#define pISR_EINT3		(*(unsigned *)(_ISR_STARTADDRESS+0x2C))
-#define pISR_EINT4_7		(*(unsigned *)(_ISR_STARTADDRESS+0x30))
-#define pISR_EINT8_23		(*(unsigned *)(_ISR_STARTADDRESS+0x34))
-#define pISR_BAT_FLT		(*(unsigned *)(_ISR_STARTADDRESS+0x3C))
-#define pISR_TICK		(*(unsigned *)(_ISR_STARTADDRESS+0x40))
-#define pISR_WDT		(*(unsigned *)(_ISR_STARTADDRESS+0x44))
-#define pISR_TIMER0		(*(unsigned *)(_ISR_STARTADDRESS+0x48))
-#define pISR_TIMER1		(*(unsigned *)(_ISR_STARTADDRESS+0x4C))
-#define pISR_TIMER2		(*(unsigned *)(_ISR_STARTADDRESS+0x50))
-#define pISR_TIMER3		(*(unsigned *)(_ISR_STARTADDRESS+0x54))
-#define pISR_TIMER4		(*(unsigned *)(_ISR_STARTADDRESS+0x58))
-#define pISR_UART2		(*(unsigned *)(_ISR_STARTADDRESS+0x5C))
-#define pISR_NOTUSED		(*(unsigned *)(_ISR_STARTADDRESS+0x60))
-#define pISR_DMA0		(*(unsigned *)(_ISR_STARTADDRESS+0x64))
-#define pISR_DMA1		(*(unsigned *)(_ISR_STARTADDRESS+0x68))
-#define pISR_DMA2		(*(unsigned *)(_ISR_STARTADDRESS+0x6C))
-#define pISR_DMA3		(*(unsigned *)(_ISR_STARTADDRESS+0x70))
-#define pISR_SDI		(*(unsigned *)(_ISR_STARTADDRESS+0x74))
-#define pISR_SPI0		(*(unsigned *)(_ISR_STARTADDRESS+0x78))
-#define pISR_UART1		(*(unsigned *)(_ISR_STARTADDRESS+0x7C))
-#define pISR_USBD		(*(unsigned *)(_ISR_STARTADDRESS+0x84))
-#define pISR_USBH		(*(unsigned *)(_ISR_STARTADDRESS+0x88))
-#define pISR_IIC		(*(unsigned *)(_ISR_STARTADDRESS+0x8C))
-#define pISR_UART0		(*(unsigned *)(_ISR_STARTADDRESS+0x90))
-#define pISR_SPI1		(*(unsigned *)(_ISR_STARTADDRESS+0x94))
-#define pISR_RTC		(*(unsigned *)(_ISR_STARTADDRESS+0x98))
-#define pISR_ADC		(*(unsigned *)(_ISR_STARTADDRESS+0xA0))
-
-
-/* PENDING BIT */
-#define BIT_EINT0		(0x1)
-#define BIT_EINT1		(0x1<<1)
-#define BIT_EINT2		(0x1<<2)
-#define BIT_EINT3		(0x1<<3)
-#define BIT_EINT4_7		(0x1<<4)
-#define BIT_EINT8_23		(0x1<<5)
-#define BIT_BAT_FLT		(0x1<<7)
-#define BIT_TICK		(0x1<<8)
-#define BIT_WDT			(0x1<<9)
-#define BIT_TIMER0		(0x1<<10)
-#define BIT_TIMER1		(0x1<<11)
-#define BIT_TIMER2		(0x1<<12)
-#define BIT_TIMER3		(0x1<<13)
-#define BIT_TIMER4		(0x1<<14)
-#define BIT_UART2		(0x1<<15)
-#define BIT_LCD			(0x1<<16)
-#define BIT_DMA0		(0x1<<17)
-#define BIT_DMA1		(0x1<<18)
-#define BIT_DMA2		(0x1<<19)
-#define BIT_DMA3		(0x1<<20)
-#define BIT_SDI			(0x1<<21)
-#define BIT_SPI0		(0x1<<22)
-#define BIT_UART1		(0x1<<23)
-#define BIT_USBD		(0x1<<25)
-#define BIT_USBH		(0x1<<26)
-#define BIT_IIC			(0x1<<27)
-#define BIT_UART0		(0x1<<28)
-#define BIT_SPI1		(0x1<<29)
-#define BIT_RTC			(0x1<<30)
-#define BIT_ADC			(0x1<<31)
-#define BIT_ALLMSK		(0xFFFFFFFF)
-
-#define ClearPending(bit) {\
-		 rSRCPND = bit;\
-		 rINTPND = bit;\
-		 rINTPND;\
-		 }
-/* Wait until rINTPND is changed for the case that the ISR is very short. */
 #endif /*__S3C2410_H__*/
diff --git a/include/s3c24x0.h b/include/s3c24x0.h
index 71f35a5..b34c880 100644
--- a/include/s3c24x0.h
+++ b/include/s3c24x0.h
@@ -36,18 +36,18 @@ typedef volatile u16	S3C24X0_REG16;
 typedef volatile u32	S3C24X0_REG32;
 
 /* Memory controller (see manual chapter 5) */
-typedef struct {
+struct s3c24x0_memctl {
 	S3C24X0_REG32	BWSCON;
 	S3C24X0_REG32	BANKCON[8];
 	S3C24X0_REG32	REFRESH;
 	S3C24X0_REG32	BANKSIZE;
 	S3C24X0_REG32	MRSRB6;
 	S3C24X0_REG32	MRSRB7;
-} /*__attribute__((__packed__))*/ S3C24X0_MEMCTL;
+};
 
 
 /* USB HOST (see manual chapter 12) */
-typedef struct {
+struct s3c24x0_usb_host {
 	S3C24X0_REG32	HcRevision;
 	S3C24X0_REG32	HcControl;
 	S3C24X0_REG32	HcCommonStatus;
@@ -71,11 +71,11 @@ typedef struct {
 	S3C24X0_REG32	HcRhStatus;
 	S3C24X0_REG32	HcRhPortStatus1;
 	S3C24X0_REG32	HcRhPortStatus2;
-} /*__attribute__((__packed__))*/ S3C24X0_USB_HOST;
+};
 
 
 /* INTERRUPT (see manual chapter 14) */
-typedef struct {
+struct s3c24x0_interrupt {
 	S3C24X0_REG32	SRCPND;
 	S3C24X0_REG32	INTMOD;
 	S3C24X0_REG32	INTMSK;
@@ -86,11 +86,11 @@ typedef struct {
 	S3C24X0_REG32	SUBSRCPND;
 	S3C24X0_REG32	INTSUBMSK;
 #endif
-} /*__attribute__((__packed__))*/ S3C24X0_INTERRUPT;
+};
 
 
 /* DMAS (see manual chapter 8) */
-typedef struct {
+struct s3c24x0_dma {
 	S3C24X0_REG32	DISRC;
 #ifdef CONFIG_S3C2410
 	S3C24X0_REG32	DISRCC;
@@ -110,27 +110,27 @@ typedef struct {
 #ifdef CONFIG_S3C2410
 	S3C24X0_REG32	res[7];
 #endif
-} /*__attribute__((__packed__))*/ S3C24X0_DMA;
+};
 
-typedef struct {
-	S3C24X0_DMA	dma[4];
-} /*__attribute__((__packed__))*/ S3C24X0_DMAS;
+struct s3c24x0_dmas {
+	struct s3c24x0_dma	dma[4];
+};
 
 
 /* CLOCK & POWER MANAGEMENT (see S3C2400 manual chapter 6) */
 /*                          (see S3C2410 manual chapter 7) */
-typedef struct {
+struct s3c24x0_clock_power {
 	S3C24X0_REG32	LOCKTIME;
 	S3C24X0_REG32	MPLLCON;
 	S3C24X0_REG32	UPLLCON;
 	S3C24X0_REG32	CLKCON;
 	S3C24X0_REG32	CLKSLOW;
 	S3C24X0_REG32	CLKDIVN;
-} /*__attribute__((__packed__))*/ S3C24X0_CLOCK_POWER;
+};
 
 
 /* LCD CONTROLLER (see manual chapter 15) */
-typedef struct {
+struct s3c24x0_lcd {
 	S3C24X0_REG32	LCDCON1;
 	S3C24X0_REG32	LCDCON2;
 	S3C24X0_REG32	LCDCON3;
@@ -151,22 +151,22 @@ typedef struct {
 	S3C24X0_REG32	LCDINTMSK;
 	S3C24X0_REG32	LPCSEL;
 #endif
-} /*__attribute__((__packed__))*/ S3C24X0_LCD;
+};
 
 
 /* NAND FLASH (see S3C2410 manual chapter 6) */
-typedef struct {
+struct s3c2410_nand {
 	S3C24X0_REG32	NFCONF;
 	S3C24X0_REG32	NFCMD;
 	S3C24X0_REG32	NFADDR;
 	S3C24X0_REG32	NFDATA;
 	S3C24X0_REG32	NFSTAT;
 	S3C24X0_REG32	NFECC;
-} /*__attribute__((__packed__))*/ S3C2410_NAND;
+};
 
 
 /* UART (see manual chapter 11) */
-typedef struct {
+struct s3c24x0_uart {
 	S3C24X0_REG32	ULCON;
 	S3C24X0_REG32	UCON;
 	S3C24X0_REG32	UFCON;
@@ -187,28 +187,28 @@ typedef struct {
 	S3C24X0_REG8	res2[3];
 #endif
 	S3C24X0_REG32	UBRDIV;
-} /*__attribute__((__packed__))*/ S3C24X0_UART;
+};
 
 
 /* PWM TIMER (see manual chapter 10) */
-typedef struct {
+struct s3c24x0_timer {
 	S3C24X0_REG32	TCNTB;
 	S3C24X0_REG32	TCMPB;
 	S3C24X0_REG32	TCNTO;
-} /*__attribute__((__packed__))*/ S3C24X0_TIMER;
+};
 
-typedef struct {
+struct s3c24x0_timers {
 	S3C24X0_REG32	TCFG0;
 	S3C24X0_REG32	TCFG1;
 	S3C24X0_REG32	TCON;
-	S3C24X0_TIMER	ch[4];
+	struct s3c24x0_timer	ch[4];
 	S3C24X0_REG32	TCNTB4;
 	S3C24X0_REG32	TCNTO4;
-} /*__attribute__((__packed__))*/ S3C24X0_TIMERS;
+};
 
 
 /* USB DEVICE (see manual chapter 13) */
-typedef struct {
+struct s3c24x0_usb_dev_fifos {
 #ifdef __BIG_ENDIAN
 	S3C24X0_REG8	res[3];
 	S3C24X0_REG8	EP_FIFO_REG;
@@ -216,9 +216,9 @@ typedef struct {
 	S3C24X0_REG8	EP_FIFO_REG;
 	S3C24X0_REG8	res[3];
 #endif
-} /*__attribute__((__packed__))*/ S3C24X0_USB_DEV_FIFOS;
+};
 
-typedef struct {
+struct s3c24x0_usb_dev_dmas {
 #ifdef __BIG_ENDIAN
 	S3C24X0_REG8	res1[3];
 	S3C24X0_REG8	EP_DMA_CON;
@@ -246,9 +246,9 @@ typedef struct {
 	S3C24X0_REG8	EP_DMA_TTC_H;
 	S3C24X0_REG8	res6[3];
 #endif
-} /*__attribute__((__packed__))*/ S3C24X0_USB_DEV_DMAS;
+};
 
-typedef struct {
+struct s3c24x0_usb_device {
 #ifdef __BIG_ENDIAN
 	S3C24X0_REG8	res1[3];
 	S3C24X0_REG8	FUNC_ADDR_REG;
@@ -316,30 +316,30 @@ typedef struct {
 	S3C24X0_REG8	OUT_FIFO_CNT2_REG;
 	S3C24X0_REG8	res16[3];
 #endif /*  __BIG_ENDIAN */
-	S3C24X0_USB_DEV_FIFOS	fifo[5];
-	S3C24X0_USB_DEV_DMAS	dma[5];
-} /*__attribute__((__packed__))*/ S3C24X0_USB_DEVICE;
+	struct s3c24x0_usb_dev_fifos	fifo[5];
+	struct s3c24x0_usb_dev_dmas	dma[5];
+};
 
 
 /* WATCH DOG TIMER (see manual chapter 18) */
-typedef struct {
+struct s3c24x0_watchdog {
 	S3C24X0_REG32	WTCON;
 	S3C24X0_REG32	WTDAT;
 	S3C24X0_REG32	WTCNT;
-} /*__attribute__((__packed__))*/ S3C24X0_WATCHDOG;
+};
 
 
 /* IIC (see manual chapter 20) */
-typedef struct {
+struct s3c24x0_i2c {
 	S3C24X0_REG32	IICCON;
 	S3C24X0_REG32	IICSTAT;
 	S3C24X0_REG32	IICADD;
 	S3C24X0_REG32	IICDS;
-} /*__attribute__((__packed__))*/ S3C24X0_I2C;
+};
 
 
 /* IIS (see manual chapter 21) */
-typedef struct {
+struct s3c24x0_i2s {
 #ifdef __BIG_ENDIAN
 	S3C24X0_REG16	res1;
 	S3C24X0_REG16	IISCON;
@@ -363,11 +363,11 @@ typedef struct {
 	S3C24X0_REG16	IISFIFO;
 	S3C24X0_REG16	res5;
 #endif
-} /*__attribute__((__packed__))*/ S3C24X0_I2S;
+};
 
 
 /* I/O PORT (see manual chapter 9) */
-typedef struct {
+struct s3c24x0_gpio {
 #ifdef CONFIG_S3C2400
 	S3C24X0_REG32	PACON;
 	S3C24X0_REG32	PADAT;
@@ -451,11 +451,11 @@ typedef struct {
 	S3C24X0_REG32	GSTATUS3;
 	S3C24X0_REG32	GSTATUS4;
 #endif
-} /*__attribute__((__packed__))*/ S3C24X0_GPIO;
+};
 
 
 /* RTC (see manual chapter 17) */
-typedef struct {
+struct s3c24x0_rtc {
 #ifdef __BIG_ENDIAN
 	S3C24X0_REG8	res1[67];
 	S3C24X0_REG8	RTCCON;
@@ -528,28 +528,28 @@ typedef struct {
 	S3C24X0_REG8	BCDYEAR;
 	S3C24X0_REG8	res17[3];
 #endif
-} /*__attribute__((__packed__))*/ S3C24X0_RTC;
+};
 
 
 /* ADC (see manual chapter 16) */
-typedef struct {
+struct s3c2400_adc {
 	S3C24X0_REG32	ADCCON;
 	S3C24X0_REG32	ADCDAT;
-} /*__attribute__((__packed__))*/ S3C2400_ADC;
+};
 
 
 /* ADC (see manual chapter 16) */
-typedef struct {
+struct s3c2410_adc {
 	S3C24X0_REG32	ADCCON;
 	S3C24X0_REG32	ADCTSC;
 	S3C24X0_REG32	ADCDLY;
 	S3C24X0_REG32	ADCDAT0;
 	S3C24X0_REG32	ADCDAT1;
-} /*__attribute__((__packed__))*/ S3C2410_ADC;
+};
 
 
 /* SPI (see manual chapter 22) */
-typedef struct {
+struct s3c24x0_spi_channel {
 	S3C24X0_REG32	SPCON;
 	S3C24X0_REG32	SPSTA;
 	S3C24X0_REG32	SPPIN;
@@ -557,15 +557,15 @@ typedef struct {
 	S3C24X0_REG32	SPTDAT;
 	S3C24X0_REG32	SPRDAT;
 	S3C24X0_REG32	res[2];
-} __attribute__((__packed__)) S3C24X0_SPI_CHANNEL;
+};
 
-typedef struct {
-	S3C24X0_SPI_CHANNEL	ch[S3C24X0_SPI_CHANNELS];
-} /*__attribute__((__packed__))*/ S3C24X0_SPI;
+struct s3c24x0_spi {
+	struct s3c24x0_spi_channel	ch[S3C24X0_SPI_CHANNELS];
+};
 
 
 /* MMC INTERFACE (see S3C2400 manual chapter 19) */
-typedef struct {
+struct s3c2400_mmc {
 #ifdef __BIG_ENDIAN
 	S3C24X0_REG8	res1[3];
 	S3C24X0_REG8	MMCON;
@@ -617,11 +617,11 @@ typedef struct {
 	S3C24X0_REG8	MMDAT;
 	S3C24X0_REG8	res11[3];
 #endif
-} /*__attribute__((__packed__))*/ S3C2400_MMC;
+};
 
 
 /* SD INTERFACE (see S3C2410 manual chapter 19) */
-typedef struct {
+struct s3c2410_sdi {
 	S3C24X0_REG32	SDICON;
 	S3C24X0_REG32	SDIPRE;
 	S3C24X0_REG32	SDICARG;
@@ -645,491 +645,6 @@ typedef struct {
 	S3C24X0_REG8	res[3];
 #endif
 	S3C24X0_REG32	SDIIMSK;
-} /*__attribute__((__packed__))*/ S3C2410_SDI;
-
-
-#if 0
-/* Memory control */
-#define rBWSCON			(*(volatile unsigned *)0x48000000)
-#define rBANKCON0		(*(volatile unsigned *)0x48000004)
-#define rBANKCON1		(*(volatile unsigned *)0x48000008)
-#define rBANKCON2		(*(volatile unsigned *)0x4800000C)
-#define rBANKCON3		(*(volatile unsigned *)0x48000010)
-#define rBANKCON4		(*(volatile unsigned *)0x48000014)
-#define rBANKCON5		(*(volatile unsigned *)0x48000018)
-#define rBANKCON6		(*(volatile unsigned *)0x4800001C)
-#define rBANKCON7		(*(volatile unsigned *)0x48000020)
-#define rREFRESH		(*(volatile unsigned *)0x48000024)
-#define rBANKSIZE		(*(volatile unsigned *)0x48000028)
-#define rMRSRB6			(*(volatile unsigned *)0x4800002C)
-#define rMRSRB7			(*(volatile unsigned *)0x48000030)
-
-
-/* USB HOST */
-#define rHcRevision		(*(volatile unsigned *)0x49000000)
-#define rHcControl		(*(volatile unsigned *)0x49000004)
-#define rHcCommonStatus		(*(volatile unsigned *)0x49000008)
-#define rHcInterruptStatus	(*(volatile unsigned *)0x4900000C)
-#define rHcInterruptEnable	(*(volatile unsigned *)0x49000010)
-#define rHcInterruptDisable	(*(volatile unsigned *)0x49000014)
-#define rHcHCCA			(*(volatile unsigned *)0x49000018)
-#define rHcPeriodCuttendED	(*(volatile unsigned *)0x4900001C)
-#define rHcControlHeadED	(*(volatile unsigned *)0x49000020)
-#define rHcControlCurrentED	(*(volatile unsigned *)0x49000024)
-#define rHcBulkHeadED		(*(volatile unsigned *)0x49000028)
-#define rHcBuldCurrentED	(*(volatile unsigned *)0x4900002C)
-#define rHcDoneHead		(*(volatile unsigned *)0x49000030)
-#define rHcRmInterval		(*(volatile unsigned *)0x49000034)
-#define rHcFmRemaining		(*(volatile unsigned *)0x49000038)
-#define rHcFmNumber		(*(volatile unsigned *)0x4900003C)
-#define rHcPeriodicStart	(*(volatile unsigned *)0x49000040)
-#define rHcLSThreshold		(*(volatile unsigned *)0x49000044)
-#define rHcRhDescriptorA	(*(volatile unsigned *)0x49000048)
-#define rHcRhDescriptorB	(*(volatile unsigned *)0x4900004C)
-#define rHcRhStatus		(*(volatile unsigned *)0x49000050)
-#define rHcRhPortStatus1	(*(volatile unsigned *)0x49000054)
-#define rHcRhPortStatus2	(*(volatile unsigned *)0x49000058)
-
-
-/* INTERRUPT */
-#define rSRCPND			(*(volatile unsigned *)0x4A000000)
-#define rINTMOD			(*(volatile unsigned *)0x4A000004)
-#define rINTMSK			(*(volatile unsigned *)0x4A000008)
-#define rPRIORITY		(*(volatile unsigned *)0x4A00000C)
-#define rINTPND			(*(volatile unsigned *)0x4A000010)
-#define rINTOFFSET		(*(volatile unsigned *)0x4A000014)
-#define rSUBSRCPND		(*(volatile unsigned *)0x4A000018)
-#define rINTSUBMSK		(*(volatile unsigned *)0x4A00001C)
-
-
-/* DMA */
-#define rDISRC0			(*(volatile unsigned *)0x4B000000)
-#define rDISRCC0		(*(volatile unsigned *)0x4B000004)
-#define rDIDST0			(*(volatile unsigned *)0x4B000008)
-#define rDIDSTC0		(*(volatile unsigned *)0x4B00000C)
-#define rDCON0			(*(volatile unsigned *)0x4B000010)
-#define rDSTAT0			(*(volatile unsigned *)0x4B000014)
-#define rDCSRC0			(*(volatile unsigned *)0x4B000018)
-#define rDCDST0			(*(volatile unsigned *)0x4B00001C)
-#define rDMASKTRIG0		(*(volatile unsigned *)0x4B000020)
-#define rDISRC1			(*(volatile unsigned *)0x4B000040)
-#define rDISRCC1		(*(volatile unsigned *)0x4B000044)
-#define rDIDST1			(*(volatile unsigned *)0x4B000048)
-#define rDIDSTC1		(*(volatile unsigned *)0x4B00004C)
-#define rDCON1			(*(volatile unsigned *)0x4B000050)
-#define rDSTAT1			(*(volatile unsigned *)0x4B000054)
-#define rDCSRC1			(*(volatile unsigned *)0x4B000058)
-#define rDCDST1			(*(volatile unsigned *)0x4B00005C)
-#define rDMASKTRIG1		(*(volatile unsigned *)0x4B000060)
-#define rDISRC2			(*(volatile unsigned *)0x4B000080)
-#define rDISRCC2		(*(volatile unsigned *)0x4B000084)
-#define rDIDST2			(*(volatile unsigned *)0x4B000088)
-#define rDIDSTC2		(*(volatile unsigned *)0x4B00008C)
-#define rDCON2			(*(volatile unsigned *)0x4B000090)
-#define rDSTAT2			(*(volatile unsigned *)0x4B000094)
-#define rDCSRC2			(*(volatile unsigned *)0x4B000098)
-#define rDCDST2			(*(volatile unsigned *)0x4B00009C)
-#define rDMASKTRIG2		(*(volatile unsigned *)0x4B0000A0)
-#define rDISRC3			(*(volatile unsigned *)0x4B0000C0)
-#define rDISRCC3		(*(volatile unsigned *)0x4B0000C4)
-#define rDIDST3			(*(volatile unsigned *)0x4B0000C8)
-#define rDIDSTC3		(*(volatile unsigned *)0x4B0000CC)
-#define rDCON3			(*(volatile unsigned *)0x4B0000D0)
-#define rDSTAT3			(*(volatile unsigned *)0x4B0000D4)
-#define rDCSRC3			(*(volatile unsigned *)0x4B0000D8)
-#define rDCDST3			(*(volatile unsigned *)0x4B0000DC)
-#define rDMASKTRIG3		(*(volatile unsigned *)0x4B0000E0)
-
-
-/* CLOCK & POWER MANAGEMENT */
-#define rLOCKTIME		(*(volatile unsigned *)0x4C000000)
-#define rMPLLCON		(*(volatile unsigned *)0x4C000004)
-#define rUPLLCON		(*(volatile unsigned *)0x4C000008)
-#define rCLKCON			(*(volatile unsigned *)0x4C00000C)
-#define rCLKSLOW		(*(volatile unsigned *)0x4C000010)
-#define rCLKDIVN		(*(volatile unsigned *)0x4C000014)
-
-
-/* LCD CONTROLLER */
-#define rLCDCON1		(*(volatile unsigned *)0x4D000000)
-#define rLCDCON2		(*(volatile unsigned *)0x4D000004)
-#define rLCDCON3		(*(volatile unsigned *)0x4D000008)
-#define rLCDCON4		(*(volatile unsigned *)0x4D00000C)
-#define rLCDCON5		(*(volatile unsigned *)0x4D000010)
-#define rLCDSADDR1		(*(volatile unsigned *)0x4D000014)
-#define rLCDSADDR2		(*(volatile unsigned *)0x4D000018)
-#define rLCDSADDR3		(*(volatile unsigned *)0x4D00001C)
-#define rREDLUT			(*(volatile unsigned *)0x4D000020)
-#define rGREENLUT		(*(volatile unsigned *)0x4D000024)
-#define rBLUELUT		(*(volatile unsigned *)0x4D000028)
-#define rDITHMODE		(*(volatile unsigned *)0x4D00004C)
-#define rTPAL			(*(volatile unsigned *)0x4D000050)
-#define rLCDINTPND		(*(volatile unsigned *)0x4D000054)
-#define rLCDSRCPND		(*(volatile unsigned *)0x4D000058)
-#define rLCDINTMSK		(*(volatile unsigned *)0x4D00005C)
-
-
-/* NAND FLASH */
-#define rNFCONF			(*(volatile unsigned *)0x4E000000)
-#define rNFCMD			(*(volatile unsigned *)0x4E000004)
-#define rNFADDR			(*(volatile unsigned *)0x4E000008)
-#define rNFDATA			(*(volatile unsigned *)0x4E00000C)
-#define rNFSTAT			(*(volatile unsigned *)0x4E000010)
-#define rNFECC			(*(volatile unsigned *)0x4E000014)
-
-
-/* UART */
-#define rULCON0			(*(volatile unsigned *)0x50000000)
-#define rUCON0			(*(volatile unsigned *)0x50000004)
-#define rUFCON0			(*(volatile unsigned *)0x50000008)
-#define rUMCON0			(*(volatile unsigned *)0x5000000C)
-#define rUTRSTAT0		(*(volatile unsigned *)0x50000010)
-#define rUERSTAT0		(*(volatile unsigned *)0x50000014)
-#define rUFSTAT0		(*(volatile unsigned *)0x50000018)
-#define rUMSTAT0		(*(volatile unsigned *)0x5000001C)
-#define rUBRDIV0		(*(volatile unsigned *)0x50000028)
-
-#define rULCON1			(*(volatile unsigned *)0x50004000)
-#define rUCON1			(*(volatile unsigned *)0x50004004)
-#define rUFCON1			(*(volatile unsigned *)0x50004008)
-#define rUMCON1			(*(volatile unsigned *)0x5000400C)
-#define rUTRSTAT1		(*(volatile unsigned *)0x50004010)
-#define rUERSTAT1		(*(volatile unsigned *)0x50004014)
-#define rUFSTAT1		(*(volatile unsigned *)0x50004018)
-#define rUMSTAT1		(*(volatile unsigned *)0x5000401C)
-#define rUBRDIV1		(*(volatile unsigned *)0x50004028)
-
-#define rULCON2			(*(volatile unsigned *)0x50008000)
-#define rUCON2			(*(volatile unsigned *)0x50008004)
-#define rUFCON2			(*(volatile unsigned *)0x50008008)
-#define rUTRSTAT2		(*(volatile unsigned *)0x50008010)
-#define rUERSTAT2		(*(volatile unsigned *)0x50008014)
-#define rUFSTAT2		(*(volatile unsigned *)0x50008018)
-#define rUBRDIV2		(*(volatile unsigned *)0x50008028)
-
-#ifdef __BIG_ENDIAN
-#define rUTXH0			(*(volatile unsigned char *)0x50000023)
-#define rURXH0			(*(volatile unsigned char *)0x50000027)
-#define rUTXH1			(*(volatile unsigned char *)0x50004023)
-#define rURXH1			(*(volatile unsigned char *)0x50004027)
-#define rUTXH2			(*(volatile unsigned char *)0x50008023)
-#define rURXH2			(*(volatile unsigned char *)0x50008027)
-
-#define WrUTXH0(ch)		(*(volatile unsigned char *)0x50000023)=(unsigned char)(ch)
-#define RdURXH0()		(*(volatile unsigned char *)0x50000027)
-#define WrUTXH1(ch)		(*(volatile unsigned char *)0x50004023)=(unsigned char)(ch)
-#define RdURXH1()		(*(volatile unsigned char *)0x50004027)
-#define WrUTXH2(ch)		(*(volatile unsigned char *)0x50008023)=(unsigned char)(ch)
-#define RdURXH2()		(*(volatile unsigned char *)0x50008027)
-
-#define UTXH0			(0x50000020+3)  /* byte_access address by DMA */
-#define URXH0			(0x50000024+3)
-#define UTXH1			(0x50004020+3)
-#define URXH1			(0x50004024+3)
-#define UTXH2			(0x50008020+3)
-#define URXH2			(0x50008024+3)
-
-#else /* Little Endian */
-#define rUTXH0			(*(volatile unsigned char *)0x50000020)
-#define rURXH0			(*(volatile unsigned char *)0x50000024)
-#define rUTXH1			(*(volatile unsigned char *)0x50004020)
-#define rURXH1			(*(volatile unsigned char *)0x50004024)
-#define rUTXH2			(*(volatile unsigned char *)0x50008020)
-#define rURXH2			(*(volatile unsigned char *)0x50008024)
-
-#define WrUTXH0(ch)		(*(volatile unsigned char *)0x50000020)=(unsigned char)(ch)
-#define RdURXH0()		(*(volatile unsigned char *)0x50000024)
-#define WrUTXH1(ch)		(*(volatile unsigned char *)0x50004020)=(unsigned char)(ch)
-#define RdURXH1()		(*(volatile unsigned char *)0x50004024)
-#define WrUTXH2(ch)		(*(volatile unsigned char *)0x50008020)=(unsigned char)(ch)
-#define RdURXH2()		(*(volatile unsigned char *)0x50008024)
-
-#define UTXH0			(0x50000020)    /* byte_access address by DMA */
-#define URXH0			(0x50000024)
-#define UTXH1			(0x50004020)
-#define URXH1			(0x50004024)
-#define UTXH2			(0x50008020)
-#define URXH2			(0x50008024)
-#endif
-
-
-/* PWM TIMER */
-#define rTCFG0			(*(volatile unsigned *)0x51000000)
-#define rTCFG1			(*(volatile unsigned *)0x51000004)
-#define rTCON			(*(volatile unsigned *)0x51000008)
-#define rTCNTB0			(*(volatile unsigned *)0x5100000C)
-#define rTCMPB0			(*(volatile unsigned *)0x51000010)
-#define rTCNTO0			(*(volatile unsigned *)0x51000014)
-#define rTCNTB1			(*(volatile unsigned *)0x51000018)
-#define rTCMPB1			(*(volatile unsigned *)0x5100001C)
-#define rTCNTO1			(*(volatile unsigned *)0x51000020)
-#define rTCNTB2			(*(volatile unsigned *)0x51000024)
-#define rTCMPB2			(*(volatile unsigned *)0x51000028)
-#define rTCNTO2			(*(volatile unsigned *)0x5100002C)
-#define rTCNTB3			(*(volatile unsigned *)0x51000030)
-#define rTCMPB3			(*(volatile unsigned *)0x51000034)
-#define rTCNTO3			(*(volatile unsigned *)0x51000038)
-#define rTCNTB4			(*(volatile unsigned *)0x5100003C)
-#define rTCNTO4			(*(volatile unsigned *)0x51000040)
-
-
-/* USB DEVICE */
-#ifdef __BIG_ENDIAN
-#define rFUNC_ADDR_REG		(*(volatile unsigned char *)0x52000143)
-#define rPWR_REG		(*(volatile unsigned char *)0x52000147)
-#define rEP_INT_REG		(*(volatile unsigned char *)0x5200014B)
-#define rUSB_INT_REG		(*(volatile unsigned char *)0x5200015B)
-#define rEP_INT_EN_REG		(*(volatile unsigned char *)0x5200015F)
-#define rUSB_INT_EN_REG		(*(volatile unsigned char *)0x5200016F)
-#define rFRAME_NUM1_REG		(*(volatile unsigned char *)0x52000173)
-#define rFRAME_NUM2_REG		(*(volatile unsigned char *)0x52000177)
-#define rINDEX_REG		(*(volatile unsigned char *)0x5200017B)
-#define rMAXP_REG		(*(volatile unsigned char *)0x52000183)
-#define rEP0_CSR		(*(volatile unsigned char *)0x52000187)
-#define rIN_CSR1_REG		(*(volatile unsigned char *)0x52000187)
-#define rIN_CSR2_REG		(*(volatile unsigned char *)0x5200018B)
-#define rOUT_CSR1_REG		(*(volatile unsigned char *)0x52000193)
-#define rOUT_CSR2_REG		(*(volatile unsigned char *)0x52000197)
-#define rOUT_FIFO_CNT1_REG	(*(volatile unsigned char *)0x5200019B)
-#define rOUT_FIFO_CNT2_REG	(*(volatile unsigned char *)0x5200019F)
-#define rEP0_FIFO		(*(volatile unsigned char *)0x520001C3)
-#define rEP1_FIFO		(*(volatile unsigned char *)0x520001C7)
-#define rEP2_FIFO		(*(volatile unsigned char *)0x520001CB)
-#define rEP3_FIFO		(*(volatile unsigned char *)0x520001CF)
-#define rEP4_FIFO		(*(volatile unsigned char *)0x520001D3)
-#define rEP1_DMA_CON		(*(volatile unsigned char *)0x52000203)
-#define rEP1_DMA_UNIT		(*(volatile unsigned char *)0x52000207)
-#define rEP1_DMA_FIFO		(*(volatile unsigned char *)0x5200020B)
-#define rEP1_DMA_TX_LO		(*(volatile unsigned char *)0x5200020F)
-#define rEP1_DMA_TX_MD		(*(volatile unsigned char *)0x52000213)
-#define rEP1_DMA_TX_HI		(*(volatile unsigned char *)0x52000217)
-#define rEP2_DMA_CON		(*(volatile unsigned char *)0x5200021B)
-#define rEP2_DMA_UNIT		(*(volatile unsigned char *)0x5200021F)
-#define rEP2_DMA_FIFO		(*(volatile unsigned char *)0x52000223)
-#define rEP2_DMA_TX_LO		(*(volatile unsigned char *)0x52000227)
-#define rEP2_DMA_TX_MD		(*(volatile unsigned char *)0x5200022B)
-#define rEP2_DMA_TX_HI		(*(volatile unsigned char *)0x5200022F)
-#define rEP3_DMA_CON		(*(volatile unsigned char *)0x52000243)
-#define rEP3_DMA_UNIT		(*(volatile unsigned char *)0x52000247)
-#define rEP3_DMA_FIFO		(*(volatile unsigned char *)0x5200024B)
-#define rEP3_DMA_TX_LO		(*(volatile unsigned char *)0x5200024F)
-#define rEP3_DMA_TX_MD		(*(volatile unsigned char *)0x52000253)
-#define rEP3_DMA_TX_HI		(*(volatile unsigned char *)0x52000257)
-#define rEP4_DMA_CON		(*(volatile unsigned char *)0x5200025B)
-#define rEP4_DMA_UNIT		(*(volatile unsigned char *)0x5200025F)
-#define rEP4_DMA_FIFO		(*(volatile unsigned char *)0x52000263)
-#define rEP4_DMA_TX_LO		(*(volatile unsigned char *)0x52000267)
-#define rEP4_DMA_TX_MD		(*(volatile unsigned char *)0x5200026B)
-#define rEP4_DMA_TX_HI		(*(volatile unsigned char *)0x5200026F)
-#else /*  little endian */
-#define rFUNC_ADDR_REG		(*(volatile unsigned char *)0x52000140)
-#define rPWR_REG		(*(volatile unsigned char *)0x52000144)
-#define rEP_INT_REG		(*(volatile unsigned char *)0x52000148)
-#define rUSB_INT_REG		(*(volatile unsigned char *)0x52000158)
-#define rEP_INT_EN_REG		(*(volatile unsigned char *)0x5200015C)
-#define rUSB_INT_EN_REG		(*(volatile unsigned char *)0x5200016C)
-#define rFRAME_NUM1_REG		(*(volatile unsigned char *)0x52000170)
-#define rFRAME_NUM2_REG		(*(volatile unsigned char *)0x52000174)
-#define rINDEX_REG		(*(volatile unsigned char *)0x52000178)
-#define rMAXP_REG		(*(volatile unsigned char *)0x52000180)
-#define rEP0_CSR		(*(volatile unsigned char *)0x52000184)
-#define rIN_CSR1_REG		(*(volatile unsigned char *)0x52000184)
-#define rIN_CSR2_REG		(*(volatile unsigned char *)0x52000188)
-#define rOUT_CSR1_REG		(*(volatile unsigned char *)0x52000190)
-#define rOUT_CSR2_REG		(*(volatile unsigned char *)0x52000194)
-#define rOUT_FIFO_CNT1_REG	(*(volatile unsigned char *)0x52000198)
-#define rOUT_FIFO_CNT2_REG	(*(volatile unsigned char *)0x5200019C)
-#define rEP0_FIFO		(*(volatile unsigned char *)0x520001C0)
-#define rEP1_FIFO		(*(volatile unsigned char *)0x520001C4)
-#define rEP2_FIFO		(*(volatile unsigned char *)0x520001C8)
-#define rEP3_FIFO		(*(volatile unsigned char *)0x520001CC)
-#define rEP4_FIFO		(*(volatile unsigned char *)0x520001D0)
-#define rEP1_DMA_CON		(*(volatile unsigned char *)0x52000200)
-#define rEP1_DMA_UNIT		(*(volatile unsigned char *)0x52000204)
-#define rEP1_DMA_FIFO		(*(volatile unsigned char *)0x52000208)
-#define rEP1_DMA_TX_LO		(*(volatile unsigned char *)0x5200020C)
-#define rEP1_DMA_TX_MD		(*(volatile unsigned char *)0x52000210)
-#define rEP1_DMA_TX_HI		(*(volatile unsigned char *)0x52000214)
-#define rEP2_DMA_CON		(*(volatile unsigned char *)0x52000218)
-#define rEP2_DMA_UNIT		(*(volatile unsigned char *)0x5200021C)
-#define rEP2_DMA_FIFO		(*(volatile unsigned char *)0x52000220)
-#define rEP2_DMA_TX_LO		(*(volatile unsigned char *)0x52000224)
-#define rEP2_DMA_TX_MD		(*(volatile unsigned char *)0x52000228)
-#define rEP2_DMA_TX_HI		(*(volatile unsigned char *)0x5200022C)
-#define rEP3_DMA_CON		(*(volatile unsigned char *)0x52000240)
-#define rEP3_DMA_UNIT		(*(volatile unsigned char *)0x52000244)
-#define rEP3_DMA_FIFO		(*(volatile unsigned char *)0x52000248)
-#define rEP3_DMA_TX_LO		(*(volatile unsigned char *)0x5200024C)
-#define rEP3_DMA_TX_MD		(*(volatile unsigned char *)0x52000250)
-#define rEP3_DMA_TX_HI		(*(volatile unsigned char *)0x52000254)
-#define rEP4_DMA_CON		(*(volatile unsigned char *)0x52000258)
-#define rEP4_DMA_UNIT		(*(volatile unsigned char *)0x5200025C)
-#define rEP4_DMA_FIFO		(*(volatile unsigned char *)0x52000260)
-#define rEP4_DMA_TX_LO		(*(volatile unsigned char *)0x52000264)
-#define rEP4_DMA_TX_MD		(*(volatile unsigned char *)0x52000268)
-#define rEP4_DMA_TX_HI		(*(volatile unsigned char *)0x5200026C)
-#endif /*  __BIG_ENDIAN */
-
-
-/* WATCH DOG TIMER */
-#define rWTCON			(*(volatile unsigned *)0x53000000)
-#define rWTDAT			(*(volatile unsigned *)0x53000004)
-#define rWTCNT			(*(volatile unsigned *)0x53000008)
-
-
-/* IIC */
-#define rIICCON			(*(volatile unsigned *)0x54000000)
-#define rIICSTAT		(*(volatile unsigned *)0x54000004)
-#define rIICADD			(*(volatile unsigned *)0x54000008)
-#define rIICDS			(*(volatile unsigned *)0x5400000C)
-
-
-/* IIS */
-#define rIISCON			(*(volatile unsigned *)0x55000000)
-#define rIISMOD			(*(volatile unsigned *)0x55000004)
-#define rIISPSR			(*(volatile unsigned *)0x55000008)
-#define rIISFCON		(*(volatile unsigned *)0x5500000C)
-
-#ifdef __BIG_ENDIAN
-#define IISFIF			((volatile unsigned short *)0x55000012)
-#else /*  little endian */
-#define IISFIF			((volatile unsigned short *)0x55000010)
-#endif
-
-
-/* I/O PORT */
-#define rGPACON			(*(volatile unsigned *)0x56000000)
-#define rGPADAT			(*(volatile unsigned *)0x56000004)
-
-#define rGPBCON			(*(volatile unsigned *)0x56000010)
-#define rGPBDAT			(*(volatile unsigned *)0x56000014)
-#define rGPBUP			(*(volatile unsigned *)0x56000018)
-
-#define rGPCCON			(*(volatile unsigned *)0x56000020)
-#define rGPCDAT			(*(volatile unsigned *)0x56000024)
-#define rGPCUP			(*(volatile unsigned *)0x56000028)
-
-#define rGPDCON			(*(volatile unsigned *)0x56000030)
-#define rGPDDAT			(*(volatile unsigned *)0x56000034)
-#define rGPDUP			(*(volatile unsigned *)0x56000038)
-
-#define rGPECON			(*(volatile unsigned *)0x56000040)
-#define rGPEDAT			(*(volatile unsigned *)0x56000044)
-#define rGPEUP			(*(volatile unsigned *)0x56000048)
-
-#define rGPFCON			(*(volatile unsigned *)0x56000050)
-#define rGPFDAT			(*(volatile unsigned *)0x56000054)
-#define rGPFUP			(*(volatile unsigned *)0x56000058)
-
-#define rGPGCON			(*(volatile unsigned *)0x56000060)
-#define rGPGDAT			(*(volatile unsigned *)0x56000064)
-#define rGPGUP			(*(volatile unsigned *)0x56000068)
-
-#define rGPHCON			(*(volatile unsigned *)0x56000070)
-#define rGPHDAT			(*(volatile unsigned *)0x56000074)
-#define rGPHUP			(*(volatile unsigned *)0x56000078)
-
-#define rMISCCR			(*(volatile unsigned *)0x56000080)
-#define rDCLKCON		(*(volatile unsigned *)0x56000084)
-#define rEXTINT0		(*(volatile unsigned *)0x56000088)
-#define rEXTINT1		(*(volatile unsigned *)0x5600008C)
-#define rEXTINT2		(*(volatile unsigned *)0x56000090)
-#define rEINTFLT0		(*(volatile unsigned *)0x56000094)
-#define rEINTFLT1		(*(volatile unsigned *)0x56000098)
-#define rEINTFLT2		(*(volatile unsigned *)0x5600009C)
-#define rEINTFLT3		(*(volatile unsigned *)0x560000A0)
-#define rEINTMASK		(*(volatile unsigned *)0x560000A4)
-#define rEINTPEND		(*(volatile unsigned *)0x560000A8)
-#define rGSTATUS0		(*(volatile unsigned *)0x560000AC)
-#define rGSTATUS1		(*(volatile unsigned *)0x560000B0)
-
-
-/* RTC */
-#ifdef __BIG_ENDIAN
-#define rRTCCON			(*(volatile unsigned char *)0x57000043)
-#define rTICNT			(*(volatile unsigned char *)0x57000047)
-#define rRTCALM			(*(volatile unsigned char *)0x57000053)
-#define rALMSEC			(*(volatile unsigned char *)0x57000057)
-#define rALMMIN			(*(volatile unsigned char *)0x5700005B)
-#define rALMHOUR		(*(volatile unsigned char *)0x5700005F)
-#define rALMDATE		(*(volatile unsigned char *)0x57000063)
-#define rALMMON			(*(volatile unsigned char *)0x57000067)
-#define rALMYEAR		(*(volatile unsigned char *)0x5700006B)
-#define rRTCRST			(*(volatile unsigned char *)0x5700006F)
-#define rBCDSEC			(*(volatile unsigned char *)0x57000073)
-#define rBCDMIN			(*(volatile unsigned char *)0x57000077)
-#define rBCDHOUR		(*(volatile unsigned char *)0x5700007B)
-#define rBCDDATE		(*(volatile unsigned char *)0x5700007F)
-#define rBCDDAY			(*(volatile unsigned char *)0x57000083)
-#define rBCDMON			(*(volatile unsigned char *)0x57000087)
-#define rBCDYEAR		(*(volatile unsigned char *)0x5700008B)
-#else /*  little endian */
-#define rRTCCON			(*(volatile unsigned char *)0x57000040)
-#define rTICNT			(*(volatile unsigned char *)0x57000044)
-#define rRTCALM			(*(volatile unsigned char *)0x57000050)
-#define rALMSEC			(*(volatile unsigned char *)0x57000054)
-#define rALMMIN			(*(volatile unsigned char *)0x57000058)
-#define rALMHOUR		(*(volatile unsigned char *)0x5700005C)
-#define rALMDATE		(*(volatile unsigned char *)0x57000060)
-#define rALMMON			(*(volatile unsigned char *)0x57000064)
-#define rALMYEAR		(*(volatile unsigned char *)0x57000068)
-#define rRTCRST			(*(volatile unsigned char *)0x5700006C)
-#define rBCDSEC			(*(volatile unsigned char *)0x57000070)
-#define rBCDMIN			(*(volatile unsigned char *)0x57000074)
-#define rBCDHOUR		(*(volatile unsigned char *)0x57000078)
-#define rBCDDATE		(*(volatile unsigned char *)0x5700007C)
-#define rBCDDAY			(*(volatile unsigned char *)0x57000080)
-#define rBCDMON			(*(volatile unsigned char *)0x57000084)
-#define rBCDYEAR		(*(volatile unsigned char *)0x57000088)
-#endif
-
-
-/* ADC */
-#define rADCCON			(*(volatile unsigned *)0x58000000)
-#define rADCTSC			(*(volatile unsigned *)0x58000004)
-#define rADCDLY			(*(volatile unsigned *)0x58000008)
-#define rADCDAT0		(*(volatile unsigned *)0x5800000C)
-#define rADCDAT1		(*(volatile unsigned *)0x58000010)
-
-
-/* SPI */
-#define rSPCON0			(*(volatile unsigned *)0x59000000)
-#define rSPSTA0			(*(volatile unsigned *)0x59000004)
-#define rSPPIN0			(*(volatile unsigned *)0x59000008)
-#define rSPPRE0			(*(volatile unsigned *)0x5900000C)
-#define rSPTDAT0		(*(volatile unsigned *)0x59000010)
-#define rSPRDAT0		(*(volatile unsigned *)0x59000014)
-#define rSPCON1			(*(volatile unsigned *)0x59000020)
-#define rSPSTA1			(*(volatile unsigned *)0x59000024)
-#define rSPPIN1			(*(volatile unsigned *)0x59000028)
-#define rSPPRE1			(*(volatile unsigned *)0x5900002C)
-#define rSPTDAT1		(*(volatile unsigned *)0x59000030)
-#define rSPRDAT1		(*(volatile unsigned *)0x59000034)
-
-
-/* SD INTERFACE */
-#define rSDICON			(*(volatile unsigned *)0x5A000000)
-#define rSDIPRE			(*(volatile unsigned *)0x5A000004)
-#define rSDICmdArg		(*(volatile unsigned *)0x5A000008)
-#define rSDICmdCon		(*(volatile unsigned *)0x5A00000C)
-#define rSDICmdSta		(*(volatile unsigned *)0x5A000010)
-#define rSDIRSP0		(*(volatile unsigned *)0x5A000014)
-#define rSDIRSP1		(*(volatile unsigned *)0x5A000018)
-#define rSDIRSP2		(*(volatile unsigned *)0x5A00001C)
-#define rSDIRSP3		(*(volatile unsigned *)0x5A000020)
-#define rSDIDTimer		(*(volatile unsigned *)0x5A000024)
-#define rSDIBSize		(*(volatile unsigned *)0x5A000028)
-#define rSDIDatCon		(*(volatile unsigned *)0x5A00002C)
-#define rSDIDatCnt		(*(volatile unsigned *)0x5A000030)
-#define rSDIDatSta		(*(volatile unsigned *)0x5A000034)
-#define rSDIFSTA		(*(volatile unsigned *)0x5A000038)
-#ifdef __BIG_ENDIAN
-#define rSDIDAT			(*(volatile unsigned char *)0x5A00003F)
-#else
-#define rSDIDAT			(*(volatile unsigned char *)0x5A00003C)
-#endif
-#define rSDIIntMsk		(*(volatile unsigned *)0x5A000040)
-
-#endif
+};
 
 #endif /*__S3C24X0_H__*/
-- 
1.6.1.2

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 1/7
  2009-06-25  0:34 [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 1/7 kevin.morfitt at fearnside-systems.co.uk
  2009-06-25  0:35 ` [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 2/7 kevin.morfitt at fearnside-systems.co.uk
@ 2009-06-26 17:29 ` Scott Wood
  2009-07-08 20:19 ` Remy Bohmer
  2 siblings, 0 replies; 8+ messages in thread
From: Scott Wood @ 2009-06-26 17:29 UTC (permalink / raw)
  To: u-boot

On Thu, Jun 25, 2009 at 01:34:51AM +0100, kevin.morfitt at fearnside-systems.co.uk wrote:
> 
> Patches 1 to 4 replace "[PATCH-ARM 1/2] Add support for 
> the Embest SBC2440-II Board 1/2" submitted on 19/06/2009.
> 
> This patch re-formats the code in cpu/arm920t and cpu/arm920t/23c24x0 in 
> preparation for changes to add support for the Embest SBC2440-II Board.

Please use subject names that describe what each patch does, rather than
1/7, 2/7, etc (which should go inside the [PATCH] so that git strips it
when committing). 

-Scott

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 1/7
  2009-06-25  0:34 [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 1/7 kevin.morfitt at fearnside-systems.co.uk
  2009-06-25  0:35 ` [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 2/7 kevin.morfitt at fearnside-systems.co.uk
  2009-06-26 17:29 ` [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 1/7 Scott Wood
@ 2009-07-08 20:19 ` Remy Bohmer
  2009-07-09 18:38   ` kevin.morfitt at fearnside-systems.co.uk
  2 siblings, 1 reply; 8+ messages in thread
From: Remy Bohmer @ 2009-07-08 20:19 UTC (permalink / raw)
  To: u-boot

Hello Kevin,

2009/6/25 kevin.morfitt at fearnside-systems.co.uk
<kevin.morfitt@fearnside-systems.co.uk>:
>
> Patches 1 to 4 replace "[PATCH-ARM 1/2] Add support for
> the Embest SBC2440-II Board 1/2" submitted on 19/06/2009.
>
> This patch re-formats the code in cpu/arm920t and cpu/arm920t/23c24x0 in
> preparation for changes to add support for the Embest SBC2440-II Board.
>
> The changes are as follows:
>
> - re-indent the code using Lindent
> - make sure register layouts are defined using a C struct, from a
> ?comment by Wolfgang on 03/06/2009
> - replace the upper-case typedef'ed C struct names with lower case
> ?non-typedef'ed ones, from a comment by Scott on 22/06/2009
> - make sure registers are accessed using the proper accessor
> ?functions, from a comment by Wolfgang on 03/06/2009
> - run checkpatch.pl and fix any error reports
>
> Note that usb_ohci.c still has two lines that exceed 80 characters.
> This is because the statements on those lines lose readability when
> wrapped - the Linux coding style guidleines allows for this.
>
> This complete series of patches assumes the following patches have
> already been applied:
>
> - [PATCH-ARM] Bug-fix in drivers mtd nand Makefile, sent 18/06/2009
> - [PATCH-ARM] CONFIG_SYS_HZ fix for ARM920T S3C24X0 Boards, sent
> ?21/06/2009
>
> Signed-off-by: Kevin Morfitt <kevin.morfitt@fearnside-systems.co.uk>
> ---
> ?cpu/arm920t/s3c24x0/usb_ohci.c | 1268 +++++++++++++++++++++-------------------

Why are these files put in the cpu section, and not in the drivers/usb
section where it belongs.
Could it be merged into the existing ohci code, especially if it
contains improvements compared to the existing code?
I do not think it is okay to copy similar code to different places in u-boot.

Kind regards,

Remy

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 2/7
  2009-06-25  0:35 ` [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 2/7 kevin.morfitt at fearnside-systems.co.uk
@ 2009-07-08 20:50   ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 0 replies; 8+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-07-08 20:50 UTC (permalink / raw)
  To: u-boot

On 01:35 Thu 25 Jun     , kevin.morfitt at fearnside-systems.co.uk wrote:
> 
> This patch re-formats the s3c24x0 header files in preparation for changes 
> to add support for the Embest SBC2440-II Board.
> 
> The changes are as follows:
> 
> - re-indent the code using Lindent
> - make sure register layouts are defined using a C struct, from a 
>   comment by Wolfgang on 03/06/2009
> - replace the upper-case typedef'ed C struct names with lower case 
>   non-typedef'ed ones, from a comment by Scott on 22/06/2009
> - make sure registers are accessed using the proper accessor 
>   functions, from a comment by Wolfgang on 03/06/2009
> - run checkpatch.pl and fix any error reports
> 
> Signed-off-by: Kevin Morfitt <kevin.morfitt@fearnside-systems.co.uk>
> ---
>  include/s3c2400.h |  493 ++++----------------------------------------
>  include/s3c2410.h |  158 ++++-----------
>  include/s3c24x0.h |  595 +++++------------------------------------------------
>  3 files changed, 130 insertions(+), 1116 deletions(-)
> 
> diff --git a/include/s3c2400.h b/include/s3c2400.h
> index 4fdc62e..89027fa 100644
> --- a/include/s3c2400.h
> +++ b/include/s3c2400.h
> @@ -35,12 +35,12 @@
>  #define S3C24X0_SPI_CHANNELS	1
>  #define PALETTE			(0x14A00400)	/* SJS */
>  
> -typedef enum {
> +enum s3c24x0_uarts_nr {
>  	S3C24X0_UART0,
>  	S3C24X0_UART1,
> -} S3C24X0_UARTS_NR;
> +};
>  
> -/* S3C2400 device base addresses */
> +/*S3C2400 device base addresses */
>  #define S3C24X0_MEMCTL_BASE		0x14000000
>  #define S3C24X0_USB_HOST_BASE		0x14200000
>  #define S3C24X0_INTERRUPT_BASE		0x14400000
> @@ -63,492 +63,73 @@ typedef enum {
>  #include <s3c24x0.h>
>  
>  
> -static inline S3C24X0_MEMCTL * S3C24X0_GetBase_MEMCTL(void)
> +static inline struct s3c24x0_memctl *S3C24X0_GetBase_MEMCTL(void)
please no uppercase in the function name
>  {
> -	return (S3C24X0_MEMCTL * const)S3C24X0_MEMCTL_BASE;
> +	return (struct s3c24x0_memctl *)S3C24X0_MEMCTL_BASE;
>  }

> diff --git a/include/s3c24x0.h b/include/s3c24x0.h
> index 71f35a5..b34c880 100644
> --- a/include/s3c24x0.h
> +++ b/include/s3c24x0.h
> @@ -36,18 +36,18 @@ typedef volatile u16	S3C24X0_REG16;
>  typedef volatile u32	S3C24X0_REG32;
>  
>  /* Memory controller (see manual chapter 5) */
> -typedef struct {
> +struct s3c24x0_memctl {
>  	S3C24X0_REG32	BWSCON;
please remove the S3C24X0_REG32
please use u32 or other proper type
please no uppercase in entry name too
>  	S3C24X0_REG32	BANKCON[8];
>  	S3C24X0_REG32	REFRESH;
>  	S3C24X0_REG32	BANKSIZE;
>  	S3C24X0_REG32	MRSRB6;
>  	S3C24X0_REG32	MRSRB7;

Best Regards,
J.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 1/7
  2009-07-08 20:19 ` Remy Bohmer
@ 2009-07-09 18:38   ` kevin.morfitt at fearnside-systems.co.uk
  2009-07-11 10:00     ` Remy Bohmer
  0 siblings, 1 reply; 8+ messages in thread
From: kevin.morfitt at fearnside-systems.co.uk @ 2009-07-09 18:38 UTC (permalink / raw)
  To: u-boot

Hi Remy

Remy Bohmer wrote:
> Hello Kevin,
> 
> 2009/6/25 kevin.morfitt at fearnside-systems.co.uk
> <kevin.morfitt@fearnside-systems.co.uk>:
>> Patches 1 to 4 replace "[PATCH-ARM 1/2] Add support for
>> the Embest SBC2440-II Board 1/2" submitted on 19/06/2009.
>>
>> This patch re-formats the code in cpu/arm920t and cpu/arm920t/23c24x0 in
>> preparation for changes to add support for the Embest SBC2440-II Board.
>>
>> The changes are as follows:
>>
>> - re-indent the code using Lindent
>> - make sure register layouts are defined using a C struct, from a
>>  comment by Wolfgang on 03/06/2009
>> - replace the upper-case typedef'ed C struct names with lower case
>>  non-typedef'ed ones, from a comment by Scott on 22/06/2009
>> - make sure registers are accessed using the proper accessor
>>  functions, from a comment by Wolfgang on 03/06/2009
>> - run checkpatch.pl and fix any error reports
>>
>> Note that usb_ohci.c still has two lines that exceed 80 characters.
>> This is because the statements on those lines lose readability when
>> wrapped - the Linux coding style guidleines allows for this.
>>
>> This complete series of patches assumes the following patches have
>> already been applied:
>>
>> - [PATCH-ARM] Bug-fix in drivers mtd nand Makefile, sent 18/06/2009
>> - [PATCH-ARM] CONFIG_SYS_HZ fix for ARM920T S3C24X0 Boards, sent
>>  21/06/2009
>>
>> Signed-off-by: Kevin Morfitt <kevin.morfitt@fearnside-systems.co.uk>
>> ---
>>  cpu/arm920t/s3c24x0/usb_ohci.c | 1268 +++++++++++++++++++++-------------------
> 
> Why are these files put in the cpu section, and not in the drivers/usb
> section where it belongs.

This code has always been in the cpu section - this used to contain all
s3c24x0 drivers but all except the usb driver were moved to the drivers 
directories in the last release. I'm not sure why the usb driver wasn't 
moved at the same time though. It could be moved to the drivers directory
though it would need renaming to make it clear it specific to the s3c24x0
processors. 

> Could it be merged into the existing ohci code, especially if it
> contains improvements compared to the existing code?
> I do not think it is okay to copy similar code to different places in u-boot.

The changes in this patch are only to make the code style meet the u-boot
format more closely - they don't implement any changes in functionality, 
and the code is also specific to the s3c24x0 processors. The code does 
control a standard OHCI host controller though so it might be possible to 
develop a more generic version that could be used to support other 
processors but I guess we'd need to look at how the USB host drivers of 
other processors work before we could decide if it's feasible. At the 
moment, I just want to make the minimum changes necessary to be able to
add support for the Embest SBC2440-II Board.

Regards
Kevin
> 
> Kind regards,
> 
> Remy
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 1/7
  2009-07-09 18:38   ` kevin.morfitt at fearnside-systems.co.uk
@ 2009-07-11 10:00     ` Remy Bohmer
  0 siblings, 0 replies; 8+ messages in thread
From: Remy Bohmer @ 2009-07-11 10:00 UTC (permalink / raw)
  To: u-boot

Hi Kevin,

2009/7/9 kevin.morfitt at fearnside-systems.co.uk
<kevin.morfitt@fearnside-systems.co.uk>:
> Hi Remy
>
>>> This patch re-formats the code in cpu/arm920t and cpu/arm920t/23c24x0 in
>>> preparation for changes to add support for the Embest SBC2440-II Board.
>>>
>>> The changes are as follows:
>>>
>>> - re-indent the code using Lindent
>>> - make sure register layouts are defined using a C struct, from a
>>> ?comment by Wolfgang on 03/06/2009
>>> - replace the upper-case typedef'ed C struct names with lower case
>>> ?non-typedef'ed ones, from a comment by Scott on 22/06/2009
>>> - make sure registers are accessed using the proper accessor
>>> ?functions, from a comment by Wolfgang on 03/06/2009
>>> - run checkpatch.pl and fix any error reports
>>>
>>> Note that usb_ohci.c still has two lines that exceed 80 characters.
>>> This is because the statements on those lines lose readability when
>>> wrapped - the Linux coding style guidleines allows for this.
>>>
>>> This complete series of patches assumes the following patches have
>>> already been applied:
>>>
>>> - [PATCH-ARM] Bug-fix in drivers mtd nand Makefile, sent 18/06/2009
>>> - [PATCH-ARM] CONFIG_SYS_HZ fix for ARM920T S3C24X0 Boards, sent
>>> ?21/06/2009
>>>
>>> Signed-off-by: Kevin Morfitt <kevin.morfitt@fearnside-systems.co.uk>
>>> ---
>>> ?cpu/arm920t/s3c24x0/usb_ohci.c | 1268 +++++++++++++++++++++-------------------
>>
>> Why are these files put in the cpu section, and not in the drivers/usb
>> section where it belongs.
>
> This code has always been in the cpu section - this used to contain all

That is no excuse for keeping on doing the bad thing ;-)

> s3c24x0 drivers but all except the usb driver were moved to the drivers
> directories in the last release. I'm not sure why the usb driver wasn't
> moved at the same time though. It could be moved to the drivers directory
> though it would need renaming to make it clear it specific to the s3c24x0
> processors.

Moving it to the drivers section is step 1.
Merging it back to the original ohci code (where it was copied from)
would be step 2.
It is clearly copied code from the code in the drivers section and I
believe it could be merged pretty easy.

> The changes in this patch are only to make the code style meet the u-boot
> format more closely - they don't implement any changes in functionality,
> and the code is also specific to the s3c24x0 processors. The code does

Well, It might contain s3c24x0 specific code, but that does not make
the whole file s3c24x0 specific.

> control a standard OHCI host controller though so it might be possible to
> develop a more generic version that could be used to support other
> processors but I guess we'd need to look at how the USB host drivers of
> other processors work before we could decide if it's feasible. At the
> moment, I just want to make the minimum changes necessary to be able to
> add support for the Embest SBC2440-II Board.

Minimal changes are okay, but I still would really like to see this
file to be moved to the drivers section as well. (it does not have to
be merged though, that can be done later.)

Kind Regards,

Remy

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 1/7
@ 2009-08-02 17:55 Gaye Abdoulaye Walsimou
  0 siblings, 0 replies; 8+ messages in thread
From: Gaye Abdoulaye Walsimou @ 2009-08-02 17:55 UTC (permalink / raw)
  To: u-boot

Hello list and Kevin,
What about all these patches, did they apply with head?
I have a s3c2440 based board and will be happy to test them.

Thanks

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2009-08-02 17:55 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-06-25  0:34 [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 1/7 kevin.morfitt at fearnside-systems.co.uk
2009-06-25  0:35 ` [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 2/7 kevin.morfitt at fearnside-systems.co.uk
2009-07-08 20:50   ` Jean-Christophe PLAGNIOL-VILLARD
2009-06-26 17:29 ` [U-Boot] [PATCH-ARM] Add support for Embest SBC2440-II Board 1/7 Scott Wood
2009-07-08 20:19 ` Remy Bohmer
2009-07-09 18:38   ` kevin.morfitt at fearnside-systems.co.uk
2009-07-11 10:00     ` Remy Bohmer
2009-08-02 17:55 Gaye Abdoulaye Walsimou

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.