[U-Boot] [PATCH ARM 3/3] s3c24x0 code style changes

kevin.morfitt at fearnside-systems.co.uk kevin.morfitt at fearnside-systems.co.uk
Sun Dec 13 21:05:19 CET 2009


Cleans up the s3c24x0 header files by changing the upper case members
of the s3c24x0 register structures to lower case and changing all code
that uses these register structures.

Signed-off-by: Kevin Morfitt <kevin.morfitt at fearnside-systems.co.uk>
---
 board/trab/trab.c     |   83 +++--
 board/trab/trab_fkt.c | 1055 ++++++++++++++++++++++++-------------------------
 board/trab/tsc2000.c  |  234 ++++++-----
 board/trab/tsc2000.h  |   90 ++---
 board/trab/vfd.c      |  550 +++++++++++++++-----------
 5 files changed, 1038 insertions(+), 974 deletions(-)

diff --git a/board/trab/trab.c b/board/trab/trab.c
index 71fd22c..31f425f 100644
--- a/board/trab/trab.c
+++ b/board/trab/trab.c
@@ -27,6 +27,7 @@
 #include <netdev.h>
 #include <malloc.h>
 #include <asm/arch/s3c24x0_cpu.h>
+#include <asm/io.h>
 #include <command.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -77,36 +78,39 @@ int board_init ()
 #ifdef CONFIG_TRAB_50MHZ
 	/* change the clock to be 50 MHz 1:1:1 */
 	/* MDIV:0x5c PDIV:4 SDIV:2 */
-	clk_power->MPLLCON = 0x5c042;
-	clk_power->CLKDIVN = 0;
+	writel(0x5c042, &clk_power->mpllcon);
+	writel(0, &clk_power->clkdivn);
 #else
 	/* change the clock to be 133 MHz 1:2:4 */
 	/* MDIV:0x7d PDIV:4 SDIV:1 */
-	clk_power->MPLLCON = 0x7d041;
-	clk_power->CLKDIVN = 3;
+	writel(0x7d041, &clk_power->mpllcon);
+	writel(3, &clk_power->clkdivn);
 #endif
 
 	/* set up the I/O ports */
-	gpio->PACON = 0x3ffff;
-	gpio->PBCON = 0xaaaaaaaa;
-	gpio->PBUP  = 0xffff;
+	writel(0x3ffff, &gpio->pacon);
+	writel(0xaaaaaaaa, &gpio->pbcon);
+	writel(0xffff, &gpio->pbup);
 	/* INPUT nCTS0 nRTS0 TXD[1] TXD[0] RXD[1] RXD[0]	*/
 	/*  00,    10,      10,      10,      10,      10,      10	*/
-	gpio->PFCON = (2<<0) | (2<<2) | (2<<4) | (2<<6) | (2<<8) | (2<<10);
+	writel((2<<0) | (2<<2) | (2<<4) | (2<<6) | (2<<8) | (2<<10),
+	       &gpio->pfcon);
 #ifdef CONFIG_HWFLOW
 	/* do not pull up RXD0, RXD1, TXD0, TXD1, CTS0, RTS0 */
-	gpio->PFUP  = (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5);
+	writel((1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5),
+	       &gpio->pfup);
 #else
 	/* do not pull up RXD0, RXD1, TXD0, TXD1 */
-	gpio->PFUP  = (1<<0) | (1<<1) | (1<<2) | (1<<3);
+	writel((1<<0) | (1<<1) | (1<<2) | (1<<3),
+	       &gpio->pfup);
 #endif
-	gpio->PGCON = 0x0;
-	gpio->PGUP  = 0x0;
-	gpio->OPENCR= 0x0;
+	writel(0x0, &gpio->pgcon);
+	writel(0x0, &gpio->pgup);
+	writel(0x0, &gpio->opencr);
 
 	/* suppress flicker of the VFDs */
-	gpio->MISCCR = 0x40;
-	gpio->PFCON |= (2<<12);
+	writel(0x40, &gpio->misccr);
+	writel(readl(&gpio->pfcon) | (2 << 12), &gpio->pfcon);
 
 	gd->bd->bi_arch_number = MACH_TYPE_TRAB;
 
@@ -114,8 +118,8 @@ int board_init ()
 	gd->bd->bi_boot_params = 0x0c000100;
 
 	/* Make sure both buzzers are turned off */
-	gpio->PDCON |= 0x5400;
-	gpio->PDDAT &= ~0xE0;
+	writel(readl(&gpio->pdcon) | 0x5400, &gpio->pdcon);
+	writel(readl(&gpio->pddat) & ~0xE0, &gpio->pddat);
 
 #ifdef CONFIG_VFD
 	vfd_init_clocks();
@@ -132,7 +136,7 @@ int board_init ()
 
 #ifdef CONFIG_DRIVER_S3C24X0_I2C
 	/* Configure I/O ports PG5 und PG6 for I2C */
-	gpio->PGCON = (gpio->PGCON & 0x003c00) | 0x003c00;
+	writel((readl(&gpio->pgcon) & 0x003c00) | 0x003c00, &gpio->pgcon);
 #endif /* CONFIG_DRIVER_S3C24X0_I2C */
 
 	return 0;
@@ -337,18 +341,18 @@ static int key_pressed(void)
 
 #ifdef CONFIG_SYS_BRIGHTNESS
 
-static inline void SET_CS_TOUCH(void)
+static inline void set_cs_touch(void)
 {
 	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
 
-	gpio->PDDAT &= 0x5FF;
+	writel(readl(&gpio->pddat) & 0x5FF, &gpio->pddat);
 }
 
-static inline void CLR_CS_TOUCH(void)
+static inline void clr_cs_touch(void)
 {
 	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
 
-	gpio->PDDAT |= 0x200;
+	writel(readl(&gpio->pddat) | 0x200, &gpio->pddat);
 }
 
 static void spi_init(void)
@@ -358,20 +362,23 @@ static void spi_init(void)
 	int i;
 
 	/* Configure I/O ports. */
-	gpio->PDCON = (gpio->PDCON & 0xF3FFFF) | 0x040000;
-	gpio->PGCON = (gpio->PGCON & 0x0F3FFF) | 0x008000;
-	gpio->PGCON = (gpio->PGCON & 0x0CFFFF) | 0x020000;
-	gpio->PGCON = (gpio->PGCON & 0x03FFFF) | 0x080000;
+	writel((readl(&gpio->pdcon) & 0xF3FFFF) | 0x040000, &gpio->pdcon);
+	writel((readl(&gpio->pgcon) & 0x0F3FFF) | 0x008000, &gpio->pgcon);
+	writel((readl(&gpio->pgcon) & 0x0CFFFF) | 0x020000, &gpio->pgcon);
+	writel((readl(&gpio->pgcon) & 0x03FFFF) | 0x080000, &gpio->pgcon);
 
-	CLR_CS_TOUCH();
+	clr_cs_touch();
 
-	spi->ch[0].SPPRE = 0x1F; /* Baudrate ca. 514kHz */
-	spi->ch[0].SPPIN = 0x01;  /* SPI-MOSI holds Level after last bit */
-	spi->ch[0].SPCON = 0x1A;  /* Polling, Prescaler, Master, CPOL=0, CPHA=1 */
+	/* Baudrate ca. 514kHz */
+	writel(0x1F, &spi->ch[0].sppre);
+	/* SPI-MOSI holds Level after last bit */
+	writel(0x01, &spi->ch[0].sppin);
+	/* Polling, Prescaler, Master, CPOL=0, CPHA=1 */
+	writel(0x1A, &spi->ch[0].spcon);
 
 	/* Dummy byte ensures clock to be low. */
 	for (i = 0; i < 10; i++) {
-		spi->ch[0].SPTDAT = 0xFF;
+		writel(0xFF, &spi->ch[0].sptdat);
 	}
 	wait_transmit_done();
 }
@@ -380,7 +387,7 @@ static void wait_transmit_done(void)
 {
 	struct s3c24x0_spi * const spi = s3c24x0_get_base_spi();
 
-	while (!(spi->ch[0].SPSTA & 0x01)); /* wait until transfer is done */
+	while (!(readl(&spi->ch[0].spsta) & 0x01)); /* wait until transfer is done */
 }
 
 static void tsc2000_write(unsigned int page, unsigned int reg,
@@ -389,21 +396,21 @@ static void tsc2000_write(unsigned int page, unsigned int reg,
 	struct s3c24x0_spi * const spi = s3c24x0_get_base_spi();
 	unsigned int command;
 
-	SET_CS_TOUCH();
+	set_cs_touch();
 	command = 0x0000;
 	command |= (page << 11);
 	command |= (reg << 5);
 
-	spi->ch[0].SPTDAT = (command & 0xFF00) >> 8;
+	writel((command & 0xFF00) >> 8, &spi->ch[0].sptdat);
 	wait_transmit_done();
-	spi->ch[0].SPTDAT = (command & 0x00FF);
+	writel(command & 0x00FF, &spi->ch[0].sptdat);
 	wait_transmit_done();
-	spi->ch[0].SPTDAT = (data & 0xFF00) >> 8;
+	writel((data & 0xFF00) >> 8, &spi->ch[0].sptdat);
 	wait_transmit_done();
-	spi->ch[0].SPTDAT = (data & 0x00FF);
+	writel(data & 0x00FF, &spi->ch[0].sptdat);
 	wait_transmit_done();
 
-	CLR_CS_TOUCH();
+	clr_cs_touch();
 }
 
 static void tsc2000_set_brightness(void)
diff --git a/board/trab/trab_fkt.c b/board/trab/trab_fkt.c
index 2df9a04..ddf8280 100644
--- a/board/trab/trab_fkt.c
+++ b/board/trab/trab_fkt.c
@@ -27,6 +27,7 @@
 #include <exports.h>
 #include <timestamp.h>
 #include <asm/arch/s3c24x0_cpu.h>
+#include <asm/io.h>
 #include "tsc2000.h"
 #include "rs485.h"
 
@@ -64,16 +65,15 @@
 #define RELOAD3         (1 << 19)
 
 #define PCLK		66000000
-#define BUZZER_FREQ     1000    /* frequency in Hz */
+#define BUZZER_FREQ     1000	/* frequency in Hz */
 #define PWM_FREQ        500
 
-
 /* definitions of I2C EEPROM device address */
 #define I2C_EEPROM_DEV_ADDR     0x54
 
 /* definition for touch panel calibration points */
-#define CALIB_TL 0              /* calibration point in (T)op (L)eft corner */
-#define CALIB_DR 1              /* calibration point in (D)own (R)ight corner */
+#define CALIB_TL 0		/* calibration point in (T)op (L)eft corner */
+#define CALIB_DR 1		/* calibration point in (D)own (R)ight corner */
 
 /* EEPROM address map */
 #define SERIAL_NUMBER           8
@@ -105,57 +105,56 @@
 #define ADC_ECFLG            0x8000
 
 /* function test functions */
-int do_dip (void);
-int do_info (void);
-int do_vcc5v (void);
-int do_vcc12v (void);
-int do_buttons (void);
-int do_fill_level (void);
-int do_rotary_switch (void);
-int do_pressure (void);
-int do_v_bat (void);
-int do_vfd_id (void);
-int do_buzzer (char **);
-int do_led (char **);
-int do_full_bridge (char **);
-int do_dac (char **);
-int do_motor_contact (void);
-int do_motor (char **);
-int do_pwm (char **);
-int do_thermo (char **);
-int do_touch (char **);
-int do_rs485 (char **);
-int do_serial_number (char **);
-int do_crc16 (void);
-int do_power_switch (void);
-int do_gain (char **);
-int do_eeprom (char **);
+int do_dip(void);
+int do_info(void);
+int do_vcc5v(void);
+int do_vcc12v(void);
+int do_buttons(void);
+int do_fill_level(void);
+int do_rotary_switch(void);
+int do_pressure(void);
+int do_v_bat(void);
+int do_vfd_id(void);
+int do_buzzer(char **);
+int do_led(char **);
+int do_full_bridge(char **);
+int do_dac(char **);
+int do_motor_contact(void);
+int do_motor(char **);
+int do_pwm(char **);
+int do_thermo(char **);
+int do_touch(char **);
+int do_rs485(char **);
+int do_serial_number(char **);
+int do_crc16(void);
+int do_power_switch(void);
+int do_gain(char **);
+int do_eeprom(char **);
 
 /* helper functions */
-static void adc_init (void);
-static int adc_read (unsigned int channel);
-static void print_identifier (void);
+static void adc_init(void);
+static int adc_read(unsigned int channel);
+static void print_identifier(void);
 
 #ifdef CONFIG_TOUCH_WAIT_PRESSED
-static void touch_wait_pressed (void);
+static void touch_wait_pressed(void);
 #else
-static int touch_check_pressed (void);
+static int touch_check_pressed(void);
 #endif /* CONFIG_TOUCH_WAIT_PRESSED */
 
-static void touch_read_x_y (int *x, int *y);
-static int touch_write_clibration_values (int calib_point, int x, int y);
-static int rs485_send_line (const char *data);
-static int rs485_receive_chars (char *data, int timeout);
+static void touch_read_x_y(int *x, int *y);
+static int touch_write_clibration_values(int calib_point, int x, int y);
+static int rs485_send_line(const char *data);
+static int rs485_receive_chars(char *data, int timeout);
 static unsigned short updcrc(unsigned short icrc, unsigned char *icp,
 			     unsigned int icnt);
 
 #if defined(CONFIG_CMD_I2C)
-static int trab_eeprom_read (char **argv);
-static int trab_eeprom_write (char **argv);
-int i2c_write_multiple (uchar chip, uint addr, int alen, uchar *buffer,
-			int len);
-int i2c_read_multiple ( uchar chip, uint addr, int alen, uchar *buffer,
-			int len);
+static int trab_eeprom_read(char **argv);
+static int trab_eeprom_write(char **argv);
+int i2c_write_multiple(uchar chip, uint addr, int alen, uchar * buffer,
+		       int len);
+int i2c_read_multiple(uchar chip, uint addr, int alen, uchar * buffer, int len);
 #endif
 
 /*
@@ -163,26 +162,26 @@ int i2c_read_multiple ( uchar chip, uint addr, int alen, uchar *buffer,
  * test.
  */
 
-int trab_fkt (int argc, char *argv[])
+int trab_fkt(int argc, char *argv[])
 {
 	int i;
 
 	app_startup(argv);
-	if (get_version () != XF_VERSION) {
-		printf ("Wrong XF_VERSION. Please re-compile with actual "
-			"u-boot sources\n");
-		printf ("Example expects ABI version %d\n", XF_VERSION);
-		printf ("Actual U-Boot ABI version %d\n", (int)get_version());
+	if (get_version() != XF_VERSION) {
+		printf("Wrong XF_VERSION. Please re-compile with actual "
+		       "u-boot sources\n");
+		printf("Example expects ABI version %d\n", XF_VERSION);
+		printf("Actual U-Boot ABI version %d\n", (int)get_version());
 		return 1;
 	}
 
-	debug ("argc = %d\n", argc);
+	debug("argc = %d\n", argc);
 
-	for (i=0; i<=argc; ++i) {
-		debug ("argv[%d] = \"%s\"\n", i, argv[i] ? argv[i] : "<NULL>");
+	for (i = 0; i <= argc; ++i) {
+		debug("argv[%d] = \"%s\"\n", i, argv[i] ? argv[i] : "<NULL>");
 	}
 
-	adc_init ();
+	adc_init();
 
 	switch (argc) {
 
@@ -191,98 +190,98 @@ int trab_fkt (int argc, char *argv[])
 		break;
 
 	case 2:
-		if (strcmp (argv[1], "info") == 0) {
-			return (do_info ());
+		if (strcmp(argv[1], "info") == 0) {
+			return (do_info());
 		}
-		if (strcmp (argv[1], "dip") == 0) {
-			return (do_dip ());
+		if (strcmp(argv[1], "dip") == 0) {
+			return (do_dip());
 		}
-		if (strcmp (argv[1], "vcc5v") == 0) {
-			return (do_vcc5v ());
+		if (strcmp(argv[1], "vcc5v") == 0) {
+			return (do_vcc5v());
 		}
-		if (strcmp (argv[1], "vcc12v") == 0) {
-			return (do_vcc12v ());
+		if (strcmp(argv[1], "vcc12v") == 0) {
+			return (do_vcc12v());
 		}
-		if (strcmp (argv[1], "buttons") == 0) {
-			return (do_buttons ());
+		if (strcmp(argv[1], "buttons") == 0) {
+			return (do_buttons());
 		}
-		if (strcmp (argv[1], "fill_level") == 0) {
-			return (do_fill_level ());
+		if (strcmp(argv[1], "fill_level") == 0) {
+			return (do_fill_level());
 		}
-		if (strcmp (argv[1], "rotary_switch") == 0) {
-			return (do_rotary_switch ());
+		if (strcmp(argv[1], "rotary_switch") == 0) {
+			return (do_rotary_switch());
 		}
-		if (strcmp (argv[1], "pressure") == 0) {
-			return (do_pressure ());
+		if (strcmp(argv[1], "pressure") == 0) {
+			return (do_pressure());
 		}
-		if (strcmp (argv[1], "v_bat") == 0) {
-			return (do_v_bat ());
+		if (strcmp(argv[1], "v_bat") == 0) {
+			return (do_v_bat());
 		}
-		if (strcmp (argv[1], "vfd_id") == 0) {
-			return (do_vfd_id ());
+		if (strcmp(argv[1], "vfd_id") == 0) {
+			return (do_vfd_id());
 		}
-		if (strcmp (argv[1], "motor_contact") == 0) {
-			return (do_motor_contact ());
+		if (strcmp(argv[1], "motor_contact") == 0) {
+			return (do_motor_contact());
 		}
-		if (strcmp (argv[1], "crc16") == 0) {
-			return (do_crc16 ());
+		if (strcmp(argv[1], "crc16") == 0) {
+			return (do_crc16());
 		}
-		if (strcmp (argv[1], "power_switch") == 0) {
-			return (do_power_switch ());
+		if (strcmp(argv[1], "power_switch") == 0) {
+			return (do_power_switch());
 		}
 		break;
 
 	case 3:
-		if (strcmp (argv[1], "full_bridge") == 0) {
-			return (do_full_bridge (argv));
+		if (strcmp(argv[1], "full_bridge") == 0) {
+			return (do_full_bridge(argv));
 		}
-		if (strcmp (argv[1], "dac") == 0) {
-			return (do_dac (argv));
+		if (strcmp(argv[1], "dac") == 0) {
+			return (do_dac(argv));
 		}
-		if (strcmp (argv[1], "motor") == 0) {
-			return (do_motor (argv));
+		if (strcmp(argv[1], "motor") == 0) {
+			return (do_motor(argv));
 		}
-		if (strcmp (argv[1], "pwm") == 0) {
-			return (do_pwm (argv));
+		if (strcmp(argv[1], "pwm") == 0) {
+			return (do_pwm(argv));
 		}
-		if (strcmp (argv[1], "thermo") == 0) {
-			return (do_thermo (argv));
+		if (strcmp(argv[1], "thermo") == 0) {
+			return (do_thermo(argv));
 		}
-		if (strcmp (argv[1], "touch") == 0) {
-			return (do_touch (argv));
+		if (strcmp(argv[1], "touch") == 0) {
+			return (do_touch(argv));
 		}
-		if (strcmp (argv[1], "serial_number") == 0) {
-			return (do_serial_number (argv));
+		if (strcmp(argv[1], "serial_number") == 0) {
+			return (do_serial_number(argv));
 		}
-		if (strcmp (argv[1], "buzzer") == 0) {
-			return (do_buzzer (argv));
+		if (strcmp(argv[1], "buzzer") == 0) {
+			return (do_buzzer(argv));
 		}
-		if (strcmp (argv[1], "gain") == 0) {
-			return (do_gain (argv));
+		if (strcmp(argv[1], "gain") == 0) {
+			return (do_gain(argv));
 		}
 		break;
 
 	case 4:
-		if (strcmp (argv[1], "led") == 0) {
-			return (do_led (argv));
+		if (strcmp(argv[1], "led") == 0) {
+			return (do_led(argv));
 		}
-		if (strcmp (argv[1], "rs485") == 0) {
-			return (do_rs485 (argv));
+		if (strcmp(argv[1], "rs485") == 0) {
+			return (do_rs485(argv));
 		}
-		if (strcmp (argv[1], "serial_number") == 0) {
-			return (do_serial_number (argv));
+		if (strcmp(argv[1], "serial_number") == 0) {
+			return (do_serial_number(argv));
 		}
 		break;
 
 	case 5:
-		if (strcmp (argv[1], "eeprom") == 0) {
-			return (do_eeprom (argv));
+		if (strcmp(argv[1], "eeprom") == 0) {
+			return (do_eeprom(argv));
 		}
 		break;
 
 	case 6:
-		if (strcmp (argv[1], "eeprom") == 0) {
-			return (do_eeprom (argv));
+		if (strcmp(argv[1], "eeprom") == 0) {
+			return (do_eeprom(argv));
 		}
 		break;
 
@@ -290,25 +289,25 @@ int trab_fkt (int argc, char *argv[])
 		break;
 	}
 
-	printf ("Usage:\n<command> <parameter1> <parameter2> ...\n");
+	printf("Usage:\n<command> <parameter1> <parameter2> ...\n");
 	return 1;
 }
 
-void hang (void)
+void hang(void)
 {
-	puts ("### ERROR ### Please RESET the board ###\n");
-	for (;;);
+	puts("### ERROR ### Please RESET the board ###\n");
+	for (;;) ;
 }
 
-int do_info (void)
+int do_info(void)
 {
-	printf ("Stand-alone application for TRAB board function test\n");
-	printf ("Built: %s at %s\n", U_BOOT_DATE, U_BOOT_TIME);
+	printf("Stand-alone application for TRAB board function test\n");
+	printf("Built: %s at %s\n", U_BOOT_DATE, U_BOOT_TIME);
 
 	return 0;
 }
 
-int do_dip (void)
+int do_dip(void)
 {
 	unsigned int result = 0;
 	int adc_val;
@@ -327,8 +326,8 @@ int do_dip (void)
 
 	for (i = 7; i > 3; i--) {
 
-		if ((adc_val = adc_read (i)) == -1) {
-			printf ("Channel %d could not be read\n", i);
+		if ((adc_val = adc_read(i)) == -1) {
+			printf("Channel %d could not be read\n", i);
 			return 1;
 		}
 
@@ -338,11 +337,11 @@ int do_dip (void)
 		 * Set trigger at halve that value.
 		 */
 		if (adc_val < 368)
-			result |= (1 << (i-4));
+			result |= (1 << (i - 4));
 	}
 
 	/* print result to console */
-	print_identifier ();
+	print_identifier();
 	for (i = 0; i < 4; i++) {
 		if ((result & (1 << i)) == 0)
 			printf("0");
@@ -354,15 +353,14 @@ int do_dip (void)
 	return 0;
 }
 
-
-int do_vcc5v (void)
+int do_vcc5v(void)
 {
 	int result;
 
 	/* VCC5V is connected to channel 2 */
 
-	if ((result = adc_read (VCC5V)) == -1) {
-		printf ("VCC5V could not be read\n");
+	if ((result = adc_read(VCC5V)) == -1) {
+		printf("VCC5V could not be read\n");
 		return 1;
 	}
 
@@ -371,22 +369,21 @@ int do_vcc5v (void)
 	 * floating point support.  VCC5V is connected over an resistor divider:
 	 * VCC5V=ADCval*2,5V/1023*(10K+30K)/10K.
 	 */
-	print_identifier ();
-	printf ("%d", (result & 0x3FF)* 10 / 1023);
-	printf (".%d", ((result & 0x3FF)* 10 % 1023)* 10 / 1023);
-	printf ("%d V\n", (((result & 0x3FF) * 10 % 1023 ) * 10 % 1023)
-		* 10 / 1024);
+	print_identifier();
+	printf("%d", (result & 0x3FF) * 10 / 1023);
+	printf(".%d", ((result & 0x3FF) * 10 % 1023) * 10 / 1023);
+	printf("%d V\n", (((result & 0x3FF) * 10 % 1023) * 10 % 1023)
+	       * 10 / 1024);
 
 	return 0;
 }
 
-
-int do_vcc12v (void)
+int do_vcc12v(void)
 {
 	int result;
 
-	if ((result = adc_read (VCC12V)) == -1) {
-		printf ("VCC12V could not be read\n");
+	if ((result = adc_read(VCC12V)) == -1) {
+		printf("VCC12V could not be read\n");
 		return 1;
 	}
 
@@ -395,63 +392,69 @@ int do_vcc12v (void)
 	 * floating point support.  VCC5V is connected over an resistor divider:
 	 * VCC12V=ADCval*2,5V/1023*(30K+270K)/30K.
 	 */
-	print_identifier ();
-	printf ("%d", (result & 0x3FF)* 25 / 1023);
-	printf (".%d V\n", ((result & 0x3FF)* 25 % 1023) * 10 / 1023);
+	print_identifier();
+	printf("%d", (result & 0x3FF) * 25 / 1023);
+	printf(".%d V\n", ((result & 0x3FF) * 25 % 1023) * 10 / 1023);
 
 	return 0;
 }
 
-static int adc_read (unsigned int channel)
+static int adc_read(unsigned int channel)
 {
-	int j = 1000; /* timeout value for wait loop in us */
+	int j = 1000;		/* timeout value for wait loop in us */
 	int result;
 	struct s3c2400_adc *padc;
 
 	padc = s3c2400_get_base_adc();
 	channel &= 0x7;
 
-	padc->ADCCON &= ~ADC_STDBM; /* select normal mode */
-	padc->ADCCON &= ~(0x7 << 3); /* clear the channel bits */
-	padc->ADCCON |= ((channel << 3) | ADC_ENABLE_START);
+	/* select normal mode */
+	writel(readl(&padc->adccon) & ~ADC_STDBM, &padc->adccon);
+	/* clear the channel bits */
+	writel(readl(&padc->adccon) & ~(0x7 << 3), &padc->adccon);
+	writel(readl(&padc->adccon) | ((channel << 3) | ADC_ENABLE_START),
+	       &padc->adccon);
 
 	while (j--) {
-		if ((padc->ADCCON & ADC_ENABLE_START) == 0)
+		if ((readl(&padc->adccon) & ADC_ENABLE_START) == 0)
 			break;
-		udelay (1);
+		udelay(1);
 	}
 
 	if (j == 0) {
 		printf("%s: ADC timeout\n", __FUNCTION__);
-		padc->ADCCON |= ADC_STDBM; /* select standby mode */
+		/* select standby mode */
+		writel(readl(&padc->adccon) | ADC_STDBM, &padc->adccon);
 		return -1;
 	}
 
-	result = padc->ADCDAT & 0x3FF;
+	result = readl(&padc->adcdat) & 0x3FF;
 
-	padc->ADCCON |= ADC_STDBM; /* select standby mode */
+	/* select standby mode */
+	writel(readl(&padc->adccon) | ADC_STDBM, &padc->adccon);
 
-	debug ("%s: channel %d, result[DIGIT]=%d\n", __FUNCTION__,
-	       (padc->ADCCON >> 3) & 0x7, result);
+	debug("%s: channel %d, result[DIGIT]=%d\n", __FUNCTION__,
+	      (readl(&padc->adccon) >> 3) & 0x7, result);
 
 	/*
 	 * Wait for ADC to be ready for next conversion. This delay value was
 	 * estimated, because the datasheet does not specify a value.
 	 */
-	udelay (1000);
+	udelay(1000);
 
 	return (result);
 }
 
-
-static void adc_init (void)
+static void adc_init(void)
 {
 	struct s3c2400_adc *padc;
 
 	padc = s3c2400_get_base_adc();
 
-	padc->ADCCON &= ~(0xff << 6); /* clear prescaler bits */
-	padc->ADCCON |= ((65 << 6) | ADC_PRSCEN); /* set prescaler */
+	/* clear prescaler bits */
+	writel(readl(&padc->adccon) & ~(0xff << 6), &padc->adccon);
+	/* set prescaler */
+	writel(readl(&padc->adccon) | ((65 << 6) | ADC_PRSCEN), &padc->adccon);
 
 	/*
 	 * Wait some time to avoid problem with very first call of
@@ -459,22 +462,21 @@ static void adc_init (void)
 	 * value is 0. Perhaps because the * adjustment of prescaler takes
 	 * some clock cycles?
 	 */
-	udelay (1000);
+	udelay(1000);
 
 	return;
 }
 
-
-int do_buttons (void)
+int do_buttons(void)
 {
 	int result;
 	int i;
 
-	result = *CPLD_BUTTONS; /* read CPLD */
-	debug ("%s: cpld_taster (32 bit) %#x\n", __FUNCTION__, result);
+	result = *CPLD_BUTTONS;	/* read CPLD */
+	debug("%s: cpld_taster (32 bit) %#x\n", __FUNCTION__, result);
 
 	/* print result to console */
-	print_identifier ();
+	print_identifier();
 	for (i = 16; i <= 19; i++) {
 		if ((result & (1 << i)) == 0)
 			printf("0");
@@ -485,34 +487,32 @@ int do_buttons (void)
 	return 0;
 }
 
-
-int do_power_switch (void)
+int do_power_switch(void)
 {
 	int result;
 
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
 
 	/* configure GPE7 as input */
-	gpio->PECON &= ~(0x3 << (2 * 7));
+	writel(readl(&gpio->pecon) & ~(0x3 << (2 * 7)), &gpio->pecon);
 
 	/* signal GPE7 from power switch is low active: 0=on , 1=off */
-	result = ((gpio->PEDAT & (1 << 7)) == (1 << 7)) ? 0 : 1;
+	result = ((readl(&gpio->pedat) & (1 << 7)) == (1 << 7)) ? 0 : 1;
 
-	print_identifier ();
+	print_identifier();
 	printf("%d\n", result);
 	return 0;
 }
 
-
-int do_fill_level (void)
+int do_fill_level(void)
 {
 	int result;
 
-	result = *CPLD_FILL_LEVEL; /* read CPLD */
-	debug ("%s: cpld_fuellstand (32 bit) %#x\n", __FUNCTION__, result);
+	result = *CPLD_FILL_LEVEL;	/* read CPLD */
+	debug("%s: cpld_fuellstand (32 bit) %#x\n", __FUNCTION__, result);
 
 	/* print result to console */
-	print_identifier ();
+	print_identifier();
 	if ((result & (1 << 16)) == 0)
 		printf("0\n");
 	else
@@ -520,8 +520,7 @@ int do_fill_level (void)
 	return 0;
 }
 
-
-int do_rotary_switch (void)
+int do_rotary_switch(void)
 {
 	int result;
 	/*
@@ -531,13 +530,13 @@ int do_rotary_switch (void)
 	 * proper values.
 	 */
 
-	result = *CPLD_ROTARY_SWITCH; /* read CPLD */
-	debug ("%s: cpld_inc (32 bit) %#x\n", __FUNCTION__, result);
+	result = *CPLD_ROTARY_SWITCH;	/* read CPLD */
+	debug("%s: cpld_inc (32 bit) %#x\n", __FUNCTION__, result);
 
-	*CPLD_ROTARY_SWITCH |= (3 << 16); /* clear direction bits in CPLD */
+	*CPLD_ROTARY_SWITCH |= (3 << 16);	/* clear direction bits in CPLD */
 
 	/* print result to console */
-	print_identifier ();
+	print_identifier();
 	if ((result & (1 << 16)) == (1 << 16))
 		printf("R");
 	if ((result & (1 << 17)) == (1 << 17))
@@ -551,30 +550,29 @@ int do_rotary_switch (void)
 	return 0;
 }
 
-
-int do_vfd_id (void)
+int do_vfd_id(void)
 {
 	int i;
 	long int pcup_old, pccon_old;
 	int vfd_board_id;
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
 
 	/* try to red vfd board id from the value defined by pull-ups */
 
-	pcup_old = gpio->PCUP;
-	pccon_old = gpio->PCCON;
+	pcup_old = gpio->pcup;
+	pccon_old = gpio->pccon;
 
-	gpio->PCUP = (gpio->PCUP & 0xFFF0); /* activate  GPC0...GPC3 pull-ups */
-	gpio->PCCON = (gpio->PCCON & 0xFFFFFF00); /* configure GPC0...GPC3 as
-						   * inputs */
-	udelay (10);            /* allow signals to settle */
-	vfd_board_id = (~gpio->PCDAT) & 0x000F;	/* read GPC0...GPC3 port pins */
+	gpio->pcup = (gpio->pcup & 0xFFF0);	/* activate  GPC0...GPC3 pull-ups */
+	gpio->pccon = (gpio->pccon & 0xFFFFFF00);	/* configure GPC0...GPC3 as
+							 * inputs */
+	udelay(10);		/* allow signals to settle */
+	vfd_board_id = (~gpio->pcdat) & 0x000F;	/* read GPC0...GPC3 port pins */
 
-	gpio->PCCON = pccon_old;
-	gpio->PCUP = pcup_old;
+	gpio->pccon = pccon_old;
+	gpio->pcup = pcup_old;
 
 	/* print vfd_board_id to console */
-	print_identifier ();
+	print_identifier();
 	for (i = 0; i < 4; i++) {
 		if ((vfd_board_id & (1 << i)) == 0)
 			printf("0");
@@ -585,67 +583,66 @@ int do_vfd_id (void)
 	return 0;
 }
 
-int do_buzzer (char **argv)
+int do_buzzer(char **argv)
 {
 	int counter;
 
-	struct s3c24x0_timers * const timers = s3c24x0_get_base_timers();
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_timers *const timers = s3c24x0_get_base_timers();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
 
 	/* set prescaler for timer 2, 3 and 4 */
-	timers->TCFG0 &= ~0xFF00;
-	timers->TCFG0 |=  0x0F00;
+	writel(readl(&timers->tcfg0) & ~0xFF00, &timers->tcfg0);
+	writel(readl(&timers->tcfg0) | 0x0F00, &timers->tcfg0);
 
 	/* set divider for timer 2 */
-	timers->TCFG1 &= ~0xF00;
-	timers->TCFG1 |=  0x300;
+	writel(readl(&timers->tcfg1) & ~0xF00, &timers->tcfg1);
+	writel(readl(&timers->tcfg1) | 0x300, &timers->tcfg1);
 
 	/* set frequency */
 	counter = (PCLK / BUZZER_FREQ) >> 9;
-	timers->ch[2].TCNTB = counter;
-	timers->ch[2].TCMPB = counter / 2;
+	writel(counter, &timers->ch[2].tcntb);
+	writel(counter / 2, &timers->ch[2].tcmpb);
 
-	if (strcmp (argv[2], "on") == 0) {
-		debug ("%s: frequency: %d\n", __FUNCTION__,
-		       BUZZER_FREQ);
+	if (strcmp(argv[2], "on") == 0) {
+		debug("%s: frequency: %d\n", __FUNCTION__, BUZZER_FREQ);
 
 		/* configure pin GPD7 as TOUT2 */
-		gpio->PDCON &= ~0xC000;
-		gpio->PDCON |= 0x8000;
+		writel(readl(&gpio->pdcon) & ~0xC000, &gpio->pdcon);
+		writel(readl(&gpio->pdcon) | 0x8000, &gpio->pdcon);
 
 		/* start */
-		timers->TCON = (timers->TCON | UPDATE2 | RELOAD2) &
-				~INVERT2;
-		timers->TCON = (timers->TCON | START2) & ~UPDATE2;
+		writel((readl(&timers->tcon) | UPDATE2 | RELOAD2) & ~INVERT2,
+		       &timers->tcon);
+		writel((readl(&timers->tcon) | START2) & ~UPDATE2,
+		       &timers->tcon);
 		return (0);
-	}
-	else if (strcmp (argv[2], "off") == 0) {
+	} else if (strcmp(argv[2], "off") == 0) {
 		/* stop */
-		timers->TCON &= ~(START2 | RELOAD2);
+		writel(readl(&timers->tcon) & ~(START2 | RELOAD2),
+		       &timers->tcon);
 
 		/* configure GPD7 as output and set to low */
-		gpio->PDCON &= ~0xC000;
-		gpio->PDCON |= 0x4000;
-		gpio->PDDAT &= ~0x80;
+		writel(readl(&gpio->pdcon) & ~0xC000, &gpio->pdcon);
+		writel(readl(&gpio->pdcon) | 0x4000, &gpio->pdcon);
+		writel(readl(&gpio->pddat) & ~0x80, &gpio->pddat);
 		return (0);
 	}
 
-	printf ("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
+	printf("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
 	return 1;
 }
 
-
-int do_led (char **argv)
+int do_led(char **argv)
 {
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
 
 	/* configure PC14 and PC15 as output */
-	gpio->PCCON &= ~(0xF << 28);
-	gpio->PCCON |= (0x5 << 28);
+	writel(readl(&gpio->pccon) & ~(0xF << 28), &gpio->pccon);
+	writel(readl(&gpio->pccon) | (0x5 << 28), &gpio->pccon);
 
 	/* configure PD0 and PD4 as output */
-	gpio->PDCON &= ~((0x3 << 8) | 0x3);
-	gpio->PDCON |= ((0x1 << 8) | 0x1);
+	writel(readl(&gpio->pccon) & ~((0x3 << 8) | 0x3), &gpio->pdcon);
+	writel(readl(&gpio->pccon) | ((0x1 << 8) | 0x1), &gpio->pdcon);
 
 	switch (simple_strtoul(argv[2], NULL, 10)) {
 
@@ -654,101 +651,98 @@ int do_led (char **argv)
 		break;
 
 	case 2:
-		if (strcmp (argv[3], "on") == 0)
-			gpio->PCDAT |= (1 << 14);
+		if (strcmp(argv[3], "on") == 0)
+			writel(readl(&gpio->pcdat) | (1 << 14), &gpio->pcdat);
 		else
-			gpio->PCDAT &= ~(1 << 14);
+			writel(readl(&gpio->pcdat) & ~(1 << 14), &gpio->pcdat);
 		return 0;
 
 	case 3:
-		if (strcmp (argv[3], "on") == 0)
-			gpio->PCDAT |= (1 << 15);
+		if (strcmp(argv[3], "on") == 0)
+			writel(readl(&gpio->pcdat) | (1 << 15), &gpio->pcdat);
 		else
-			gpio->PCDAT &= ~(1 << 15);
+			writel(readl(&gpio->pcdat) & ~(1 << 15), &gpio->pcdat);
 		return 0;
 
 	case 4:
-		if (strcmp (argv[3], "on") == 0)
-			gpio->PDDAT |= (1 << 0);
+		if (strcmp(argv[3], "on") == 0)
+			writel(readl(&gpio->pddat) | (1 << 0), &gpio->pddat);
 		else
-			gpio->PDDAT &= ~(1 << 0);
+			writel(readl(&gpio->pddat) & ~(1 << 0), &gpio->pddat);
 		return 0;
 
 	case 5:
-		if (strcmp (argv[3], "on") == 0)
-			gpio->PDDAT |= (1 << 4);
+		if (strcmp(argv[3], "on") == 0)
+			writel(readl(&gpio->pddat) | (1 << 4), &gpio->pddat);
 		else
-			gpio->PDDAT &= ~(1 << 4);
+			writel(readl(&gpio->pddat) & ~(1 << 4), &gpio->pddat);
 		return 0;
 
 	default:
 		break;
 
 	}
-	printf ("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
+	printf("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
 	return 1;
 }
 
-
-int do_full_bridge (char **argv)
+int do_full_bridge(char **argv)
 {
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
 
 	/* configure PD5 and PD6 as output */
-	gpio->PDCON &= ~((0x3 << 5*2) | (0x3 << 6*2));
-	gpio->PDCON |= ((0x1 << 5*2) | (0x1 << 6*2));
-
-	if (strcmp (argv[2], "+") == 0) {
-	      gpio->PDDAT |= (1 << 5);
-	      gpio->PDDAT |= (1 << 6);
-	      return 0;
-	}
-	else if (strcmp (argv[2], "-") == 0) {
-		gpio->PDDAT &= ~(1 << 5);
-		gpio->PDDAT |= (1 << 6);
+	writel(readl(&gpio->pdcon) & ~((0x3 << 5 * 2) | (0x3 << 6 * 2)),
+	       &gpio->pdcon);
+	writel(readl(&gpio->pdcon) | ((0x1 << 5 * 2) | (0x1 << 6 * 2)),
+	       &gpio->pdcon);
+
+	if (strcmp(argv[2], "+") == 0) {
+		writel(readl(&gpio->pddat) | (1 << 5), &gpio->pddat);
+		writel(readl(&gpio->pddat) | (1 << 6), &gpio->pddat);
 		return 0;
-	}
-	else if (strcmp (argv[2], "off") == 0) {
-		gpio->PDDAT &= ~(1 << 5);
-		gpio->PDDAT &= ~(1 << 6);
+	} else if (strcmp(argv[2], "-") == 0) {
+		writel(readl(&gpio->pddat) & ~(1 << 5), &gpio->pddat);
+		writel(readl(&gpio->pddat) | (1 << 6), &gpio->pddat);
+		return 0;
+	} else if (strcmp(argv[2], "off") == 0) {
+		writel(readl(&gpio->pddat) & ~(1 << 5), &gpio->pddat);
+		writel(readl(&gpio->pddat) & ~(1 << 6), &gpio->pddat);
 		return 0;
 	}
-	printf ("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
+	printf("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
 	return 1;
 }
 
 /* val must be in [0, 4095] */
-static inline unsigned long tsc2000_to_uv (u16 val)
+static inline unsigned long tsc2000_to_uv(u16 val)
 {
 	return ((250000 * val) / 4096) * 10;
 }
 
-
-int do_dac (char **argv)
+int do_dac(char **argv)
 {
 	int brightness;
 
 	/* initialize SPI */
-	tsc2000_spi_init ();
+	tsc2000_spi_init();
 
-	if  (((brightness = simple_strtoul (argv[2], NULL, 10)) < 0) ||
-	     (brightness > 255)) {
-		printf ("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
+	if (((brightness = simple_strtoul(argv[2], NULL, 10)) < 0) ||
+	    (brightness > 255)) {
+		printf("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
 		return 1;
 	}
-	tsc2000_write(TSC2000_REG_DACCTL, 0x0); /* Power up DAC */
+	tsc2000_write(TSC2000_REG_DACCTL, 0x0);	/* Power up DAC */
 	tsc2000_write(TSC2000_REG_DAC, brightness & 0xff);
 
 	return 0;
 }
 
-
-int do_v_bat (void)
+int do_v_bat(void)
 {
 	unsigned long ret, res;
 
 	/* initialize SPI */
-	spi_init ();
+	spi_init();
 
 	tsc2000_write(TSC2000_REG_ADC, 0x1836);
 
@@ -759,39 +753,37 @@ int do_v_bat (void)
 	res = (tsc2000_to_uv(ret) + 1250) / 2500;
 	res += (ERROR_BATTERY * res) / 1000;
 
-	print_identifier ();
-	printf ("%ld", (res / 100));
-	printf (".%ld", ((res % 100) / 10));
-	printf ("%ld V\n", (res % 10));
+	print_identifier();
+	printf("%ld", (res / 100));
+	printf(".%ld", ((res % 100) / 10));
+	printf("%ld V\n", (res % 10));
 	return 0;
 }
 
-
-int do_pressure (void)
+int do_pressure(void)
 {
 	/* initialize SPI */
-	spi_init ();
+	spi_init();
 
 	tsc2000_write(TSC2000_REG_ADC, 0x2436);
 
 	/* now wait for data available */
 	adc_wait_conversion_done();
 
-	print_identifier ();
-	printf ("%d\n", tsc2000_read(TSC2000_REG_AUX2));
+	print_identifier();
+	printf("%d\n", tsc2000_read(TSC2000_REG_AUX2));
 	return 0;
 }
 
-
-int do_motor_contact (void)
+int do_motor_contact(void)
 {
 	int result;
 
-	result = *CPLD_FILL_LEVEL; /* read CPLD */
-	debug ("%s: cpld_fuellstand (32 bit) %#x\n", __FUNCTION__, result);
+	result = *CPLD_FILL_LEVEL;	/* read CPLD */
+	debug("%s: cpld_fuellstand (32 bit) %#x\n", __FUNCTION__, result);
 
 	/* print result to console */
-	print_identifier ();
+	print_identifier();
 	if ((result & (1 << 17)) == 0)
 		printf("0\n");
 	else
@@ -799,241 +791,235 @@ int do_motor_contact (void)
 	return 0;
 }
 
-int do_motor (char **argv)
+int do_motor(char **argv)
 {
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
 
 	/* Configure I/O port */
-	gpio->PGCON &= ~(0x3 << 0);
-	gpio->PGCON |= (0x1 << 0);
+	writel(readl(&gpio->pgcon) & ~(0x3 << 0), &gpio->pgcon);
+	writel(readl(&gpio->pgcon) | (0x1 << 0), &gpio->pgcon);
 
-	if (strcmp (argv[2], "on") == 0) {
-		gpio->PGDAT &= ~(1 << 0);
+	if (strcmp(argv[2], "on") == 0) {
+		writel(readl(&gpio->pgdat) & ~(1 << 0), &gpio->pgdat);
 		return 0;
 	}
-	if (strcmp (argv[2], "off") == 0) {
-		gpio->PGDAT |= (1 << 0);
+	if (strcmp(argv[2], "off") == 0) {
+		writel(readl(&gpio->pgdat) | (1 << 0), &gpio->pgdat);
 		return 0;
 	}
-	printf ("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
+	printf("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
 	return 1;
 }
 
-static void print_identifier (void)
+static void print_identifier(void)
 {
-	printf ("## FKT: ");
+	printf("## FKT: ");
 }
 
-int do_pwm (char **argv)
+int do_pwm(char **argv)
 {
 	int counter;
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
-	struct s3c24x0_timers * const timers = s3c24x0_get_base_timers();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_timers *const timers = s3c24x0_get_base_timers();
 
-	if (strcmp (argv[2], "on") == 0) {
+	if (strcmp(argv[2], "on") == 0) {
 		/* configure pin GPD8 as TOUT3 */
-		gpio->PDCON &= ~(0x3 << 8*2);
-		gpio->PDCON |= (0x2 << 8*2);
+		writel(readl(&gpio->pdcon) & ~(0x3 << 8 * 2), &gpio->pdcon);
+		writel(readl(&gpio->pdcon) | (0x2 << 8 * 2), &gpio->pdcon);
 
 		/* set prescaler for timer 2, 3 and 4 */
-		timers->TCFG0 &= ~0xFF00;
-		timers->TCFG0 |= 0x0F00;
+		writel(readl(&timers->tcfg0) & ~0xFF00, &timers->tcfg0);
+		writel(readl(&timers->tcfg0) | 0x0F00, &timers->tcfg0);
 
 		/* set divider for timer 3 */
-		timers->TCFG1 &= ~(0xf << 12);
-		timers->TCFG1 |= (0x3 << 12);
+		writel(readl(&timers->tcfg1) & ~(0xf << 12), &timers->tcfg1);
+		writel(readl(&timers->tcfg1) | (0x3 << 12), &timers->tcfg1);
 
 		/* set frequency */
 		counter = (PCLK / PWM_FREQ) >> 9;
-		timers->ch[3].TCNTB = counter;
-		timers->ch[3].TCMPB = counter / 2;
+		writel(counter, &timers->ch[3].tcntb);
+		writel(counter / 2, &timers->ch[3].tcmpb);
 
 		/* start timer */
-		timers->TCON = (timers->TCON | UPDATE3 | RELOAD3) & ~INVERT3;
-		timers->TCON = (timers->TCON | START3) & ~UPDATE3;
+		writel((readl(&timers->tcon) | UPDATE3 | RELOAD3) & ~INVERT3, &timers->tcon);
+		writel((readl(&timers->tcon) | START3) & ~UPDATE3, &timers->tcon);
 		return 0;
 	}
-	if (strcmp (argv[2], "off") == 0) {
+	if (strcmp(argv[2], "off") == 0) {
 
 		/* stop timer */
-		timers->TCON &= ~(START2 | RELOAD2);
+		writel(readl(&timers->tcon) & ~(START2 | RELOAD2), &timers->tcon);
 
 		/* configure pin GPD8 as output and set to 0 */
-		gpio->PDCON &= ~(0x3 << 8*2);
-		gpio->PDCON |= (0x1 << 8*2);
-		gpio->PDDAT &= ~(1 << 8);
+		writel(readl(&gpio->pdcon) & ~(0x3 << 8 * 2), &gpio->pdcon);
+		writel(readl(&gpio->pdcon) | (0x1 << 8 * 2), &gpio->pdcon);
+		writel(readl(&gpio->pddat) & ~(1 << 8), &gpio->pddat);
 		return 0;
 	}
-	printf ("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
+	printf("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
 	return 1;
 }
 
-
-int do_thermo (char **argv)
+int do_thermo(char **argv)
 {
-	int     channel, res;
+	int channel, res;
 
-	tsc2000_reg_init ();
+	tsc2000_reg_init();
 
-	if (strcmp (argv[2], "all") == 0) {
+	if (strcmp(argv[2], "all") == 0) {
 		int i;
-		for (i=0; i <= 15; i++) {
+		for (i = 0; i <= 15; i++) {
 			res = tsc2000_read_channel(i);
-			print_identifier ();
-			printf ("c%d: %d\n", i, res);
+			print_identifier();
+			printf("c%d: %d\n", i, res);
 		}
 		return 0;
 	}
-	channel = simple_strtoul (argv[2], NULL, 10);
+	channel = simple_strtoul(argv[2], NULL, 10);
 	res = tsc2000_read_channel(channel);
-	print_identifier ();
-	printf ("%d\n", res);
-	return 0;                 /* return OK */
+	print_identifier();
+	printf("%d\n", res);
+	return 0;		/* return OK */
 }
 
-
-int do_touch (char **argv)
+int do_touch(char **argv)
 {
-	int     x, y;
+	int x, y;
 
-	if (strcmp (argv[2], "tl") == 0) {
+	if (strcmp(argv[2], "tl") == 0) {
 #ifdef CONFIG_TOUCH_WAIT_PRESSED
 		touch_wait_pressed();
 #else
 		{
 			int i;
 			for (i = 0; i < (TOUCH_TIMEOUT * 1000); i++) {
-				if (touch_check_pressed ()) {
+				if (touch_check_pressed()) {
 					break;
 				}
-				udelay (1000);  /* pause 1 ms */
+				udelay(1000);	/* pause 1 ms */
 			}
 		}
 		if (!touch_check_pressed()) {
-			print_identifier ();
-			printf ("error: touch not pressed\n");
+			print_identifier();
+			printf("error: touch not pressed\n");
 			return 1;
 		}
 #endif /* CONFIG_TOUCH_WAIT_PRESSED */
-		touch_read_x_y (&x, &y);
+		touch_read_x_y(&x, &y);
 
-		print_identifier ();
-		printf ("x=%d y=%d\n", x, y);
-		return touch_write_clibration_values (CALIB_TL, x, y);
-	}
-	else if (strcmp (argv[2], "dr") == 0) {
+		print_identifier();
+		printf("x=%d y=%d\n", x, y);
+		return touch_write_clibration_values(CALIB_TL, x, y);
+	} else if (strcmp(argv[2], "dr") == 0) {
 #ifdef CONFIG_TOUCH_WAIT_PRESSED
 		touch_wait_pressed();
 #else
 		{
 			int i;
 			for (i = 0; i < (TOUCH_TIMEOUT * 1000); i++) {
-				if (touch_check_pressed ()) {
+				if (touch_check_pressed()) {
 					break;
 				}
-				udelay (1000);  /* pause 1 ms */
+				udelay(1000);	/* pause 1 ms */
 			}
 		}
 		if (!touch_check_pressed()) {
-			print_identifier ();
-			printf ("error: touch not pressed\n");
+			print_identifier();
+			printf("error: touch not pressed\n");
 			return 1;
 		}
 #endif /* CONFIG_TOUCH_WAIT_PRESSED */
-		touch_read_x_y (&x, &y);
+		touch_read_x_y(&x, &y);
 
-		print_identifier ();
-		printf ("x=%d y=%d\n", x, y);
+		print_identifier();
+		printf("x=%d y=%d\n", x, y);
 
-		return touch_write_clibration_values (CALIB_DR, x, y);
+		return touch_write_clibration_values(CALIB_DR, x, y);
 	}
-	return 1;                 /* not "tl", nor "dr", so return error */
+	return 1;		/* not "tl", nor "dr", so return error */
 }
 
-
 #ifdef CONFIG_TOUCH_WAIT_PRESSED
-static void touch_wait_pressed (void)
+static void touch_wait_pressed(void)
 {
-	while (!(tsc2000_read(TSC2000_REG_ADC) & TC_PSM));
+	while (!(tsc2000_read(TSC2000_REG_ADC) & TC_PSM)) ;
 }
 
 #else
-static int touch_check_pressed (void)
+static int touch_check_pressed(void)
 {
 	return (tsc2000_read(TSC2000_REG_ADC) & TC_PSM);
 }
 #endif /* CONFIG_TOUCH_WAIT_PRESSED */
 
-static int touch_write_clibration_values (int calib_point, int x, int y)
+static int touch_write_clibration_values(int calib_point, int x, int y)
 {
 #if defined(CONFIG_CMD_I2C)
 	int x_verify = 0;
 	int y_verify = 0;
 
-	tsc2000_reg_init ();
+	tsc2000_reg_init();
 
 	if (calib_point == CALIB_TL) {
-		if (i2c_write_multiple (I2C_EEPROM_DEV_ADDR, TOUCH_X0, 1,
-			       (unsigned char *)&x, 2)) {
+		if (i2c_write_multiple(I2C_EEPROM_DEV_ADDR, TOUCH_X0, 1,
+				       (unsigned char *)&x, 2)) {
 			return 1;
 		}
-		if (i2c_write_multiple (I2C_EEPROM_DEV_ADDR, TOUCH_Y0, 1,
-			       (unsigned char *)&y, 2)) {
+		if (i2c_write_multiple(I2C_EEPROM_DEV_ADDR, TOUCH_Y0, 1,
+				       (unsigned char *)&y, 2)) {
 			return 1;
 		}
 
 		/* verify written values */
-		if (i2c_read_multiple (I2C_EEPROM_DEV_ADDR, TOUCH_X0, 1,
-			      (unsigned char *)&x_verify, 2)) {
+		if (i2c_read_multiple(I2C_EEPROM_DEV_ADDR, TOUCH_X0, 1,
+				      (unsigned char *)&x_verify, 2)) {
 			return 1;
 		}
-		if (i2c_read_multiple (I2C_EEPROM_DEV_ADDR, TOUCH_Y0, 1,
-			       (unsigned char *)&y_verify, 2)) {
+		if (i2c_read_multiple(I2C_EEPROM_DEV_ADDR, TOUCH_Y0, 1,
+				      (unsigned char *)&y_verify, 2)) {
 			return 1;
 		}
 		if ((y != y_verify) || (x != x_verify)) {
-			print_identifier ();
-			printf ("error: verify error\n");
+			print_identifier();
+			printf("error: verify error\n");
 			return 1;
 		}
-		return 0;       /* no error */
-	}
-	else if (calib_point == CALIB_DR) {
-		  if (i2c_write_multiple (I2C_EEPROM_DEV_ADDR, TOUCH_X1, 1,
-			       (unsigned char *)&x, 2)) {
+		return 0;	/* no error */
+	} else if (calib_point == CALIB_DR) {
+		if (i2c_write_multiple(I2C_EEPROM_DEV_ADDR, TOUCH_X1, 1,
+				       (unsigned char *)&x, 2)) {
 			return 1;
-		  }
-		if (i2c_write_multiple (I2C_EEPROM_DEV_ADDR, TOUCH_Y1, 1,
-			       (unsigned char *)&y, 2)) {
+		}
+		if (i2c_write_multiple(I2C_EEPROM_DEV_ADDR, TOUCH_Y1, 1,
+				       (unsigned char *)&y, 2)) {
 			return 1;
 		}
 
 		/* verify written values */
-		if (i2c_read_multiple (I2C_EEPROM_DEV_ADDR, TOUCH_X1, 1,
-				       (unsigned char *)&x_verify, 2)) {
+		if (i2c_read_multiple(I2C_EEPROM_DEV_ADDR, TOUCH_X1, 1,
+				      (unsigned char *)&x_verify, 2)) {
 			return 1;
 		}
-		if (i2c_read_multiple (I2C_EEPROM_DEV_ADDR, TOUCH_Y1, 1,
-			       (unsigned char *)&y_verify, 2)) {
+		if (i2c_read_multiple(I2C_EEPROM_DEV_ADDR, TOUCH_Y1, 1,
+				      (unsigned char *)&y_verify, 2)) {
 			return 1;
 		}
 		if ((y != y_verify) || (x != x_verify)) {
-			print_identifier ();
-			printf ("error: verify error\n");
+			print_identifier();
+			printf("error: verify error\n");
 			return 1;
 		}
 		return 0;
 	}
 	return 1;
 #else
-	printf ("No I2C support enabled (CONFIG_CMD_I2C), could not write "
-		"to EEPROM\n");
+	printf("No I2C support enabled (CONFIG_CMD_I2C), could not write "
+	       "to EEPROM\n");
 	return (1);
 #endif
 }
 
-
-static void touch_read_x_y (int *px, int *py)
+static void touch_read_x_y(int *px, int *py)
 {
 	tsc2000_write(TSC2000_REG_ADC, DEFAULT_ADC | TC_AD0 | TC_AD1);
 	adc_wait_conversion_done();
@@ -1044,64 +1030,59 @@ static void touch_read_x_y (int *px, int *py)
 	*py = tsc2000_read(TSC2000_REG_Y);
 }
 
-
-int do_rs485 (char **argv)
+int do_rs485(char **argv)
 {
 	int timeout;
 	char data[RS485_MAX_RECEIVE_BUF_LEN];
 
-	if (strcmp (argv[2], "send") == 0) {
-		return (rs485_send_line (argv[3]));
-	}
-	else if (strcmp (argv[2], "receive") == 0) {
+	if (strcmp(argv[2], "send") == 0) {
+		return (rs485_send_line(argv[3]));
+	} else if (strcmp(argv[2], "receive") == 0) {
 		timeout = simple_strtoul(argv[3], NULL, 10);
-		if (rs485_receive_chars (data, timeout) != 0) {
-			print_identifier ();
-			printf ("## nothing received\n");
+		if (rs485_receive_chars(data, timeout) != 0) {
+			print_identifier();
+			printf("## nothing received\n");
 			return (1);
-		}
-		else {
-			print_identifier ();
-			printf ("%s\n", data);
+		} else {
+			print_identifier();
+			printf("%s\n", data);
 			return (0);
 		}
 	}
-	printf ("%s: unknown command %s\n", __FUNCTION__, argv[2]);
-	return (1);             /* unknown command, return error */
+	printf("%s: unknown command %s\n", __FUNCTION__, argv[2]);
+	return (1);		/* unknown command, return error */
 }
 
-
-static int rs485_send_line (const char *data)
+static int rs485_send_line(const char *data)
 {
-	rs485_init ();
-	trab_rs485_enable_tx ();
-	rs485_puts (data);
-	rs485_putc ('\n');
+	rs485_init();
+	trab_rs485_enable_tx();
+	rs485_puts(data);
+	rs485_putc('\n');
 
 	return (0);
 }
 
-
-static int rs485_receive_chars (char *data, int timeout)
+static int rs485_receive_chars(char *data, int timeout)
 {
 	int i;
 	int receive_count = 0;
 
-	rs485_init ();
-	trab_rs485_enable_rx ();
+	rs485_init();
+	trab_rs485_enable_rx();
 
 	/* test every 1 ms for received characters to avoid a receive FIFO
 	 * overrun (@ 38.400 Baud) */
 	for (i = 0; i < (timeout * 1000); i++) {
-		while (rs485_tstc ()) {
-			if (receive_count >= RS485_MAX_RECEIVE_BUF_LEN-1)
+		while (rs485_tstc()) {
+			if (receive_count >= RS485_MAX_RECEIVE_BUF_LEN - 1)
 				break;
-			*data++ = rs485_getc ();
+			*data++ = rs485_getc();
 			receive_count++;
 		}
-		udelay (1000);  /* pause 1 ms */
+		udelay(1000);	/* pause 1 ms */
 	}
-	*data = '\0';           /* terminate string */
+	*data = '\0';		/* terminate string */
 
 	if (receive_count == 0)
 		return (1);
@@ -1109,71 +1090,67 @@ static int rs485_receive_chars (char *data, int timeout)
 		return (0);
 }
 
-
-int do_serial_number (char **argv)
+int do_serial_number(char **argv)
 {
 #if defined(CONFIG_CMD_I2C)
 	unsigned int serial_number;
 
-	if (strcmp (argv[2], "read") == 0) {
-		if (i2c_read (I2C_EEPROM_DEV_ADDR, SERIAL_NUMBER, 1,
-			      (unsigned char *)&serial_number, 4)) {
-			printf ("could not read from eeprom\n");
+	if (strcmp(argv[2], "read") == 0) {
+		if (i2c_read(I2C_EEPROM_DEV_ADDR, SERIAL_NUMBER, 1,
+			     (unsigned char *)&serial_number, 4)) {
+			printf("could not read from eeprom\n");
 			return (1);
 		}
-		print_identifier ();
-		printf ("%08d\n", serial_number);
+		print_identifier();
+		printf("%08d\n", serial_number);
 		return (0);
-	}
-	else if (strcmp (argv[2], "write") == 0) {
+	} else if (strcmp(argv[2], "write") == 0) {
 		serial_number = simple_strtoul(argv[3], NULL, 10);
-		if (i2c_write (I2C_EEPROM_DEV_ADDR, SERIAL_NUMBER, 1,
+		if (i2c_write(I2C_EEPROM_DEV_ADDR, SERIAL_NUMBER, 1,
 			      (unsigned char *)&serial_number, 4)) {
-			printf ("could not write to eeprom\n");
+			printf("could not write to eeprom\n");
 			return (1);
 		}
 		return (0);
 	}
-	printf ("%s: unknown command %s\n", __FUNCTION__, argv[2]);
-	return (1);             /* unknown command, return error */
+	printf("%s: unknown command %s\n", __FUNCTION__, argv[2]);
+	return (1);		/* unknown command, return error */
 #else
-	printf ("No I2C support enabled (CONFIG_CMD_I2C), could not write "
-		"to EEPROM\n");
+	printf("No I2C support enabled (CONFIG_CMD_I2C), could not write "
+	       "to EEPROM\n");
 	return (1);
 #endif
 }
 
-
-int do_crc16 (void)
+int do_crc16(void)
 {
 #if defined(CONFIG_CMD_I2C)
 	int crc;
 	unsigned char buf[EEPROM_MAX_CRC_BUF];
 
-	if (i2c_read (I2C_EEPROM_DEV_ADDR, 0, 1, buf, 60)) {
-		printf ("could not read from eeprom\n");
+	if (i2c_read(I2C_EEPROM_DEV_ADDR, 0, 1, buf, 60)) {
+		printf("could not read from eeprom\n");
 		return (1);
 	}
-	crc = 0;                /* start value of crc calculation */
-	crc = updcrc (crc, buf, 60);
+	crc = 0;		/* start value of crc calculation */
+	crc = updcrc(crc, buf, 60);
 
-	print_identifier ();
-	printf ("crc16=%#04x\n", crc);
+	print_identifier();
+	printf("crc16=%#04x\n", crc);
 
-	if (i2c_write (I2C_EEPROM_DEV_ADDR, CRC16, 1, (unsigned char *)&crc,
-		       sizeof (crc))) {
-		printf ("could not read from eeprom\n");
+	if (i2c_write(I2C_EEPROM_DEV_ADDR, CRC16, 1, (unsigned char *)&crc,
+		      sizeof(crc))) {
+		printf("could not read from eeprom\n");
 		return (1);
 	}
 	return (0);
 #else
-	printf ("No I2C support enabled (CONFIG_CMD_I2C), could not write "
-		"to EEPROM\n");
+	printf("No I2C support enabled (CONFIG_CMD_I2C), could not write "
+	       "to EEPROM\n");
 	return (1);
 #endif
 }
 
-
 /*
  * Calculate, intelligently, the CRC of a dataset incrementally given a
  * buffer full at a time.
@@ -1200,93 +1177,90 @@ int do_crc16 (void)
     /* this the number of bits per char: don't change it. */
 #define B 8
 
-static unsigned short crctab[1<<B] = { /* as calculated by initcrctab() */
-    0x0000,  0x1021,  0x2042,  0x3063,  0x4084,  0x50a5,  0x60c6,  0x70e7,
-    0x8108,  0x9129,  0xa14a,  0xb16b,  0xc18c,  0xd1ad,  0xe1ce,  0xf1ef,
-    0x1231,  0x0210,  0x3273,  0x2252,  0x52b5,  0x4294,  0x72f7,  0x62d6,
-    0x9339,  0x8318,  0xb37b,  0xa35a,  0xd3bd,  0xc39c,  0xf3ff,  0xe3de,
-    0x2462,  0x3443,  0x0420,  0x1401,  0x64e6,  0x74c7,  0x44a4,  0x5485,
-    0xa56a,  0xb54b,  0x8528,  0x9509,  0xe5ee,  0xf5cf,  0xc5ac,  0xd58d,
-    0x3653,  0x2672,  0x1611,  0x0630,  0x76d7,  0x66f6,  0x5695,  0x46b4,
-    0xb75b,  0xa77a,  0x9719,  0x8738,  0xf7df,  0xe7fe,  0xd79d,  0xc7bc,
-    0x48c4,  0x58e5,  0x6886,  0x78a7,  0x0840,  0x1861,  0x2802,  0x3823,
-    0xc9cc,  0xd9ed,  0xe98e,  0xf9af,  0x8948,  0x9969,  0xa90a,  0xb92b,
-    0x5af5,  0x4ad4,  0x7ab7,  0x6a96,  0x1a71,  0x0a50,  0x3a33,  0x2a12,
-    0xdbfd,  0xcbdc,  0xfbbf,  0xeb9e,  0x9b79,  0x8b58,  0xbb3b,  0xab1a,
-    0x6ca6,  0x7c87,  0x4ce4,  0x5cc5,  0x2c22,  0x3c03,  0x0c60,  0x1c41,
-    0xedae,  0xfd8f,  0xcdec,  0xddcd,  0xad2a,  0xbd0b,  0x8d68,  0x9d49,
-    0x7e97,  0x6eb6,  0x5ed5,  0x4ef4,  0x3e13,  0x2e32,  0x1e51,  0x0e70,
-    0xff9f,  0xefbe,  0xdfdd,  0xcffc,  0xbf1b,  0xaf3a,  0x9f59,  0x8f78,
-    0x9188,  0x81a9,  0xb1ca,  0xa1eb,  0xd10c,  0xc12d,  0xf14e,  0xe16f,
-    0x1080,  0x00a1,  0x30c2,  0x20e3,  0x5004,  0x4025,  0x7046,  0x6067,
-    0x83b9,  0x9398,  0xa3fb,  0xb3da,  0xc33d,  0xd31c,  0xe37f,  0xf35e,
-    0x02b1,  0x1290,  0x22f3,  0x32d2,  0x4235,  0x5214,  0x6277,  0x7256,
-    0xb5ea,  0xa5cb,  0x95a8,  0x8589,  0xf56e,  0xe54f,  0xd52c,  0xc50d,
-    0x34e2,  0x24c3,  0x14a0,  0x0481,  0x7466,  0x6447,  0x5424,  0x4405,
-    0xa7db,  0xb7fa,  0x8799,  0x97b8,  0xe75f,  0xf77e,  0xc71d,  0xd73c,
-    0x26d3,  0x36f2,  0x0691,  0x16b0,  0x6657,  0x7676,  0x4615,  0x5634,
-    0xd94c,  0xc96d,  0xf90e,  0xe92f,  0x99c8,  0x89e9,  0xb98a,  0xa9ab,
-    0x5844,  0x4865,  0x7806,  0x6827,  0x18c0,  0x08e1,  0x3882,  0x28a3,
-    0xcb7d,  0xdb5c,  0xeb3f,  0xfb1e,  0x8bf9,  0x9bd8,  0xabbb,  0xbb9a,
-    0x4a75,  0x5a54,  0x6a37,  0x7a16,  0x0af1,  0x1ad0,  0x2ab3,  0x3a92,
-    0xfd2e,  0xed0f,  0xdd6c,  0xcd4d,  0xbdaa,  0xad8b,  0x9de8,  0x8dc9,
-    0x7c26,  0x6c07,  0x5c64,  0x4c45,  0x3ca2,  0x2c83,  0x1ce0,  0x0cc1,
-    0xef1f,  0xff3e,  0xcf5d,  0xdf7c,  0xaf9b,  0xbfba,  0x8fd9,  0x9ff8,
-    0x6e17,  0x7e36,  0x4e55,  0x5e74,  0x2e93,  0x3eb2,  0x0ed1,  0x1ef0
-    };
+static unsigned short crctab[1 << B] = {	/* as calculated by initcrctab() */
+	0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
+	0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
+	0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
+	0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
+	0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
+	0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
+	0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
+	0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
+	0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
+	0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
+	0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
+	0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
+	0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
+	0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
+	0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
+	0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
+	0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
+	0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
+	0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
+	0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
+	0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
+	0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
+	0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
+	0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
+	0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
+	0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
+	0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
+	0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
+	0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
+	0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
+	0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
+	0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
+};
 
 static unsigned short updcrc(unsigned short icrc, unsigned char *icp,
-			     unsigned int icnt )
+			     unsigned int icnt)
 {
 	register unsigned short crc = icrc;
 	register unsigned char *cp = icp;
 	register unsigned int cnt = icnt;
 
 	while (cnt--)
-		crc = (crc<<B) ^ crctab[(crc>>(W-B)) ^ *cp++];
+		crc = (crc << B) ^ crctab[(crc >> (W - B)) ^ *cp++];
 
 	return (crc);
 }
 
-
-int do_gain (char **argv)
+int do_gain(char **argv)
 {
 	int range;
 
-	range = simple_strtoul (argv[2], NULL, 10);
-	if ((range < 1) || (range > 3))
-	{
-		printf ("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
+	range = simple_strtoul(argv[2], NULL, 10);
+	if ((range < 1) || (range > 3)) {
+		printf("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
 		return 1;
 	}
 
-	tsc2000_set_range (range);
+	tsc2000_set_range(range);
 	return (0);
 }
 
-
-int do_eeprom (char **argv)
+int do_eeprom(char **argv)
 {
 #if defined(CONFIG_CMD_I2C)
-	if (strcmp (argv[2], "read") == 0) {
-		return (trab_eeprom_read (argv));
+	if (strcmp(argv[2], "read") == 0) {
+		return (trab_eeprom_read(argv));
 	}
 
-	else if (strcmp (argv[2], "write") == 0) {
-		return (trab_eeprom_write (argv));
+	else if (strcmp(argv[2], "write") == 0) {
+		return (trab_eeprom_write(argv));
 	}
 
-	printf ("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
+	printf("%s: invalid parameter %s\n", __FUNCTION__, argv[2]);
 	return (1);
 #else
-	printf ("No I2C support enabled (CONFIG_CMD_I2C), could not write "
-		"to EEPROM\n");
+	printf("No I2C support enabled (CONFIG_CMD_I2C), could not write "
+	       "to EEPROM\n");
 	return (1);
 #endif
 }
 
 #if defined(CONFIG_CMD_I2C)
-static int trab_eeprom_read (char **argv)
+static int trab_eeprom_read(char **argv)
 {
 	int i;
 	int len;
@@ -1294,44 +1268,42 @@ static int trab_eeprom_read (char **argv)
 	long int value = 0;
 	uchar *buffer;
 
-	buffer = (uchar *) &value;
-	addr = simple_strtoul (argv[3], NULL, 10);
+	buffer = (uchar *) & value;
+	addr = simple_strtoul(argv[3], NULL, 10);
 	addr &= 0xfff;
-	len = simple_strtoul (argv[4], NULL, 10);
+	len = simple_strtoul(argv[4], NULL, 10);
 	if ((len < 1) || (len > 4)) {
-		printf ("%s: invalid parameter %s\n", __FUNCTION__,
-			argv[4]);
+		printf("%s: invalid parameter %s\n", __FUNCTION__, argv[4]);
 		return (1);
 	}
 	for (i = 0; i < len; i++) {
-		if (i2c_read (I2C_EEPROM_DEV_ADDR, addr+i, 1, buffer+i, 1)) {
-			printf ("%s: could not read from i2c device %#x"
-				", addr %d\n", __FUNCTION__,
-				I2C_EEPROM_DEV_ADDR, addr);
+		if (i2c_read(I2C_EEPROM_DEV_ADDR, addr + i, 1, buffer + i, 1)) {
+			printf("%s: could not read from i2c device %#x"
+			       ", addr %d\n", __FUNCTION__,
+			       I2C_EEPROM_DEV_ADDR, addr);
 			return (1);
 		}
 	}
-	print_identifier ();
-	if (strcmp (argv[5], "-") == 0) {
+	print_identifier();
+	if (strcmp(argv[5], "-") == 0) {
 		if (len == 1)
-			printf ("%d\n", (signed char) value);
+			printf("%d\n", (signed char)value);
 		else if (len == 2)
-			printf ("%d\n", (signed short int) value);
+			printf("%d\n", (signed short int)value);
 		else
-			printf ("%ld\n", value);
-	}
-	else {
+			printf("%ld\n", value);
+	} else {
 		if (len == 1)
-			printf ("%d\n", (unsigned char) value);
+			printf("%d\n", (unsigned char)value);
 		else if (len == 2)
-			printf ("%d\n", (unsigned short int) value);
+			printf("%d\n", (unsigned short int)value);
 		else
-			printf ("%ld\n", (unsigned long int) value);
+			printf("%ld\n", (unsigned long int)value);
 	}
 	return (0);
 }
 
-static int trab_eeprom_write (char **argv)
+static int trab_eeprom_write(char **argv)
 {
 	int i;
 	int len;
@@ -1339,77 +1311,74 @@ static int trab_eeprom_write (char **argv)
 	long int value = 0;
 	uchar *buffer;
 
-	buffer = (uchar *) &value;
-	addr = simple_strtoul (argv[3], NULL, 10);
+	buffer = (uchar *) & value;
+	addr = simple_strtoul(argv[3], NULL, 10);
 	addr &= 0xfff;
-	len = simple_strtoul (argv[4], NULL, 10);
+	len = simple_strtoul(argv[4], NULL, 10);
 	if ((len < 1) || (len > 4)) {
-		printf ("%s: invalid parameter %s\n", __FUNCTION__,
-			argv[4]);
+		printf("%s: invalid parameter %s\n", __FUNCTION__, argv[4]);
 		return (1);
 	}
-	value = simple_strtol (argv[5], NULL, 10);
-	debug ("value=%ld\n", value);
+	value = simple_strtol(argv[5], NULL, 10);
+	debug("value=%ld\n", value);
 	for (i = 0; i < len; i++) {
-		if (i2c_write (I2C_EEPROM_DEV_ADDR, addr+i, 1, buffer+i, 1)) {
-			printf ("%s: could not write to i2c device %d"
-				", addr %d\n", __FUNCTION__,
-				I2C_EEPROM_DEV_ADDR, addr);
+		if (i2c_write(I2C_EEPROM_DEV_ADDR, addr + i, 1, buffer + i, 1)) {
+			printf("%s: could not write to i2c device %d"
+			       ", addr %d\n", __FUNCTION__,
+			       I2C_EEPROM_DEV_ADDR, addr);
 			return (1);
 		}
 #if 0
-		printf ("chip=%#x, addr+i=%#x+%d=%p, alen=%d, *buffer+i="
-			"%#x+%d=%p=%#x \n",I2C_EEPROM_DEV_ADDR_DEV_ADDR , addr,
-			i, addr+i, 1, buffer, i, buffer+i, *(buffer+i));
+		printf("chip=%#x, addr+i=%#x+%d=%p, alen=%d, *buffer+i="
+		       "%#x+%d=%p=%#x \n", I2C_EEPROM_DEV_ADDR_DEV_ADDR, addr,
+		       i, addr + i, 1, buffer, i, buffer + i, *(buffer + i));
 #endif
-		udelay (30000); /* wait for EEPROM ready */
+		udelay(30000);	/* wait for EEPROM ready */
 	}
 	return (0);
 }
 
-int i2c_write_multiple (uchar chip, uint addr, int alen,
-			uchar *buffer, int len)
+int i2c_write_multiple(uchar chip, uint addr, int alen, uchar * buffer, int len)
 {
 	int i;
 
 	if (alen != 1) {
-		printf ("%s: addr len other than 1 not supported\n",
-			 __FUNCTION__);
+		printf("%s: addr len other than 1 not supported\n",
+		       __FUNCTION__);
 		return (1);
 	}
 
 	for (i = 0; i < len; i++) {
-		if (i2c_write (chip, addr+i, alen, buffer+i, 1)) {
-			printf ("%s: could not write to i2c device %d"
-				 ", addr %d\n", __FUNCTION__, chip, addr);
+		if (i2c_write(chip, addr + i, alen, buffer + i, 1)) {
+			printf("%s: could not write to i2c device %d"
+			       ", addr %d\n", __FUNCTION__, chip, addr);
 			return (1);
 		}
 #if 0
-		printf ("chip=%#x, addr+i=%#x+%d=%p, alen=%d, *buffer+i="
-			"%#x+%d=%p=\"%.1s\"\n", chip, addr, i, addr+i,
-			alen, buffer, i, buffer+i, buffer+i);
+		printf("chip=%#x, addr+i=%#x+%d=%p, alen=%d, *buffer+i="
+		       "%#x+%d=%p=\"%.1s\"\n", chip, addr, i, addr + i,
+		       alen, buffer, i, buffer + i, buffer + i);
 #endif
 
-		udelay (30000);
+		udelay(30000);
 	}
 	return (0);
 }
 
-int i2c_read_multiple ( uchar chip, uint addr, int alen,
-			uchar *buffer, int len)
+int i2c_read_multiple(uchar chip, uint addr, int alen, uchar * buffer, int len)
 {
 	int i;
 
 	if (alen != 1) {
-		printf ("%s: addr len other than 1 not supported\n",
-			 __FUNCTION__);
+		printf("%s: addr len other than 1 not supported\n",
+		       __FUNCTION__);
 		return (1);
 	}
 
 	for (i = 0; i < len; i++) {
-		if (i2c_read (chip, addr+i, alen, buffer+i, 1)) {
-			printf ("%s: could not read from i2c device %#x"
-				 ", addr %d\n", __FUNCTION__, chip, addr);
+		if (i2c_read(chip, addr + i, alen, buffer + i, 1)) {
+			printf("%s: could not read from i2c device %#x"
+			       ", addr %d\n", __FUNCTION__, chip, addr);
 			return (1);
 		}
 	}
diff --git a/board/trab/tsc2000.c b/board/trab/tsc2000.c
index 5890624..db6387a 100644
--- a/board/trab/tsc2000.c
+++ b/board/trab/tsc2000.c
@@ -45,182 +45,203 @@
 
 void tsc2000_spi_init(void)
 {
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
-	struct s3c24x0_spi * const spi = s3c24x0_get_base_spi();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_spi *const spi = s3c24x0_get_base_spi();
 	int i;
 
 	/* Configure I/O ports. */
-	gpio->PDCON = (gpio->PDCON & 0xF3FFFF) | 0x040000;
-	gpio->PGCON = (gpio->PGCON & 0x0F3FFF) | 0x008000;
-	gpio->PGCON = (gpio->PGCON & 0x0CFFFF) | 0x020000;
-	gpio->PGCON = (gpio->PGCON & 0x03FFFF) | 0x080000;
+	writel((readl(&gpio->pdcon) & 0xF3FFFF) | 0x040000, &gpio->pdcon);
+	writel((readl(&gpio->pgcon) & 0x0F3FFF) | 0x008000, &gpio->pgcon);
+	writel((readl(&gpio->pgcon) & 0x0CFFFF) | 0x020000, &gpio->pgcon);
+	writel((readl(&gpio->pgcon) & 0x03FFFF) | 0x080000, &gpio->pgcon);
 
-	CLR_CS_TOUCH();
+	clr_cs_touch();
 
-	spi->ch[0].SPPRE = 0x1F; /* Baud-rate ca. 514kHz */
-	spi->ch[0].SPPIN = 0x01; /* SPI-MOSI holds Level after last bit */
-	spi->ch[0].SPCON = 0x1A; /* Polling, Prescaler, Master, CPOL=0,
-				    CPHA=1 */
+	/* Baud-rate ca. 514kHz */
+	writel(0x1F, &spi->ch[0].sppre);
+	/* SPI-MOSI holds Level after last bit */
+	writel(0x01, &spi->ch[0].sppin);
+	/* Polling, Prescaler, Master, CPOL=0, CPHA=1 */
+	writel(0x1A, &spi->ch[0].spcon);
 
 	/* Dummy byte ensures clock to be low. */
 	for (i = 0; i < 10; i++) {
-		spi->ch[0].SPTDAT = 0xFF;
+		writel(0xFF, &spi->ch[0].sptdat);
 	}
 	spi_wait_transmit_done();
 }
 
-
 void spi_wait_transmit_done(void)
 {
-	struct s3c24x0_spi * const spi = s3c24x0_get_base_spi();
+	struct s3c24x0_spi *const spi = s3c24x0_get_base_spi();
 
-	while (!(spi->ch[0].SPSTA & 0x01)); /* wait until transfer is done */
+	while (!(spi->ch[0].spsta & 0x01)) ;	/* wait until transfer is done */
 }
 
-
 void tsc2000_write(unsigned short reg, unsigned short data)
 {
-	struct s3c24x0_spi * const spi = s3c24x0_get_base_spi();
+	struct s3c24x0_spi *const spi = s3c24x0_get_base_spi();
 	unsigned int command;
 
-	SET_CS_TOUCH();
+	set_cs_touch();
 	command = reg;
-	spi->ch[0].SPTDAT = (command & 0xFF00) >> 8;
+	writel((command & 0xFF00) >> 8, &spi->ch[0].sptdat);
 	spi_wait_transmit_done();
-	spi->ch[0].SPTDAT = (command & 0x00FF);
+	writel(command & 0x00FF, &spi->ch[0].sptdat);
 	spi_wait_transmit_done();
-	spi->ch[0].SPTDAT = (data & 0xFF00) >> 8;
+	writel((data & 0xFF00) >> 8, &spi->ch[0].sptdat);
 	spi_wait_transmit_done();
-	spi->ch[0].SPTDAT = (data & 0x00FF);
+	writel(data & 0x00FF, &spi->ch[0].sptdat);
 	spi_wait_transmit_done();
 
-	CLR_CS_TOUCH();
+	clr_cs_touch();
 }
 
-
-unsigned short tsc2000_read (unsigned short reg)
+unsigned short tsc2000_read(unsigned short reg)
 {
 	unsigned short command, data;
-	struct s3c24x0_spi * const spi = s3c24x0_get_base_spi();
+	struct s3c24x0_spi *const spi = s3c24x0_get_base_spi();
 
-	SET_CS_TOUCH();
+	set_cs_touch();
 	command = 0x8000 | reg;
 
-	spi->ch[0].SPTDAT = (command & 0xFF00) >> 8;
+	writel((command & 0xFF00) >> 8, &spi->ch[0].sptdat);
 	spi_wait_transmit_done();
-	spi->ch[0].SPTDAT = (command & 0x00FF);
+	writel(command & 0x00FF, &spi->ch[0].sptdat);
 	spi_wait_transmit_done();
 
-	spi->ch[0].SPTDAT = 0xFF;
+	writel(0xFF, &spi->ch[0].sptdat);
 	spi_wait_transmit_done();
-	data = spi->ch[0].SPRDAT;
-	spi->ch[0].SPTDAT = 0xFF;
+	data = readl(&spi->ch[0].sprdat);
+	writel(0xFF, &spi->ch[0].sptdat);
 	spi_wait_transmit_done();
 
-	CLR_CS_TOUCH();
-	return (spi->ch[0].SPRDAT & 0x0FF) | (data << 8);
+	clr_cs_touch();
+	return (readl(&spi->ch[0].sprdat) & 0x0FF) | (data << 8);
 }
 
-
-void tsc2000_set_mux (unsigned int channel)
+void tsc2000_set_mux(unsigned int channel)
 {
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
 
-	CLR_MUX1_ENABLE; CLR_MUX2_ENABLE;
-	CLR_MUX3_ENABLE; CLR_MUX4_ENABLE;
+	CLR_MUX1_ENABLE;
+	CLR_MUX2_ENABLE;
+	CLR_MUX3_ENABLE;
+	CLR_MUX4_ENABLE;
 	switch (channel) {
 	case 0:
-		CLR_MUX0; CLR_MUX1;
+		CLR_MUX0;
+		CLR_MUX1;
 		SET_MUX1_ENABLE;
 		break;
 	case 1:
-		SET_MUX0; CLR_MUX1;
+		SET_MUX0;
+		CLR_MUX1;
 		SET_MUX1_ENABLE;
 		break;
 	case 2:
-		CLR_MUX0; SET_MUX1;
+		CLR_MUX0;
+		SET_MUX1;
 		SET_MUX1_ENABLE;
 		break;
 	case 3:
-		SET_MUX0; SET_MUX1;
+		SET_MUX0;
+		SET_MUX1;
 		SET_MUX1_ENABLE;
 		break;
 	case 4:
-		CLR_MUX0; CLR_MUX1;
+		CLR_MUX0;
+		CLR_MUX1;
 		SET_MUX2_ENABLE;
 		break;
 	case 5:
-		SET_MUX0; CLR_MUX1;
+		SET_MUX0;
+		CLR_MUX1;
 		SET_MUX2_ENABLE;
 		break;
 	case 6:
-		CLR_MUX0; SET_MUX1;
+		CLR_MUX0;
+		SET_MUX1;
 		SET_MUX2_ENABLE;
 		break;
 	case 7:
-		SET_MUX0; SET_MUX1;
+		SET_MUX0;
+		SET_MUX1;
 		SET_MUX2_ENABLE;
 		break;
 	case 8:
-		CLR_MUX0; CLR_MUX1;
+		CLR_MUX0;
+		CLR_MUX1;
 		SET_MUX3_ENABLE;
 		break;
 	case 9:
-		SET_MUX0; CLR_MUX1;
+		SET_MUX0;
+		CLR_MUX1;
 		SET_MUX3_ENABLE;
 		break;
 	case 10:
-		CLR_MUX0; SET_MUX1;
+		CLR_MUX0;
+		SET_MUX1;
 		SET_MUX3_ENABLE;
 		break;
 	case 11:
-		SET_MUX0; SET_MUX1;
+		SET_MUX0;
+		SET_MUX1;
 		SET_MUX3_ENABLE;
 		break;
 	case 12:
-		CLR_MUX0; CLR_MUX1;
+		CLR_MUX0;
+		CLR_MUX1;
 		SET_MUX4_ENABLE;
 		break;
 	case 13:
-		SET_MUX0; CLR_MUX1;
+		SET_MUX0;
+		CLR_MUX1;
 		SET_MUX4_ENABLE;
 		break;
 	case 14:
-		CLR_MUX0; SET_MUX1;
+		CLR_MUX0;
+		SET_MUX1;
 		SET_MUX4_ENABLE;
 		break;
 	case 15:
-		SET_MUX0; SET_MUX1;
+		SET_MUX0;
+		SET_MUX1;
 		SET_MUX4_ENABLE;
 		break;
 	default:
-		CLR_MUX0; CLR_MUX1;
+		CLR_MUX0;
+		CLR_MUX1;
 	}
 }
 
-
-void tsc2000_set_range (unsigned int range)
+void tsc2000_set_range(unsigned int range)
 {
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
 
 	switch (range) {
 	case 1:
-		CLR_SEL_TEMP_V_0; SET_SEL_TEMP_V_1;
-		CLR_SEL_TEMP_V_2; CLR_SEL_TEMP_V_3;
+		CLR_SEL_TEMP_V_0;
+		SET_SEL_TEMP_V_1;
+		CLR_SEL_TEMP_V_2;
+		CLR_SEL_TEMP_V_3;
 		break;
 	case 2:
-		CLR_SEL_TEMP_V_0; CLR_SEL_TEMP_V_1;
-		CLR_SEL_TEMP_V_2; SET_SEL_TEMP_V_3;
+		CLR_SEL_TEMP_V_0;
+		CLR_SEL_TEMP_V_1;
+		CLR_SEL_TEMP_V_2;
+		SET_SEL_TEMP_V_3;
 		break;
 	case 3:
-		SET_SEL_TEMP_V_0; CLR_SEL_TEMP_V_1;
-		SET_SEL_TEMP_V_2; CLR_SEL_TEMP_V_3;
+		SET_SEL_TEMP_V_0;
+		CLR_SEL_TEMP_V_1;
+		SET_SEL_TEMP_V_2;
+		CLR_SEL_TEMP_V_3;
 		break;
 	}
 }
 
-
-u16 tsc2000_read_channel (unsigned int channel)
+u16 tsc2000_read_channel(unsigned int channel)
 {
 	u16 res;
 
@@ -228,21 +249,20 @@ u16 tsc2000_read_channel (unsigned int channel)
 	udelay(20 * TSC2000_DELAY_BASE);
 
 	tsc2000_write(TSC2000_REG_ADC, 0x2036);
-	adc_wait_conversion_done ();
+	adc_wait_conversion_done();
 	res = tsc2000_read(TSC2000_REG_AUX1);
 	return res;
 }
 
-
-s32 tsc2000_contact_temp (void)
+s32 tsc2000_contact_temp(void)
 {
 	long adc_pt1000, offset;
 	long u_pt1000;
 	long contact_temp;
 	long temp1, temp2;
 
-	tsc2000_reg_init ();
-	tsc2000_set_range (3);
+	tsc2000_reg_init();
+	tsc2000_set_range(3);
 
 	/*
 	 * Because of sporadic "jumps" in the measured adc values every
@@ -251,37 +271,37 @@ s32 tsc2000_contact_temp (void)
 	 * measurement, because it is very unlikely that a successive third
 	 * measurement goes also wrong.
 	 */
-	temp1 = tsc2000_read_channel (14);
-	temp2 = tsc2000_read_channel (14);
+	temp1 = tsc2000_read_channel(14);
+	temp2 = tsc2000_read_channel(14);
 	if (abs(temp2 - temp1) < MAX_DEVIATION)
 		adc_pt1000 = temp2;
 	else {
-		printf ("%s: read adc value (channel 14) exceeded max allowed "
-			"deviation: %d * 0.0276 °C\n",
-			__FUNCTION__, MAX_DEVIATION);
-		printf ("adc value 1: %ld DIGITs\nadc value 2: %ld DIGITs\n",
-			temp1, temp2);
-		adc_pt1000 = tsc2000_read_channel (14);
-		printf ("use (third read) adc value: adc_pt1000 = "
-			"%ld DIGITs\n",	adc_pt1000);
+		printf("%s: read adc value (channel 14) exceeded max allowed "
+		       "deviation: %d * 0.0276 °C\n",
+		       __FUNCTION__, MAX_DEVIATION);
+		printf("adc value 1: %ld DIGITs\nadc value 2: %ld DIGITs\n",
+		       temp1, temp2);
+		adc_pt1000 = tsc2000_read_channel(14);
+		printf("use (third read) adc value: adc_pt1000 = "
+		       "%ld DIGITs\n", adc_pt1000);
 	}
-	debug ("read channel 14 (pt1000 adc value): %ld\n", adc_pt1000);
+	debug("read channel 14 (pt1000 adc value): %ld\n", adc_pt1000);
 
-	temp1 = tsc2000_read_channel (15);
-	temp2 = tsc2000_read_channel (15);
+	temp1 = tsc2000_read_channel(15);
+	temp2 = tsc2000_read_channel(15);
 	if (abs(temp2 - temp1) < MAX_DEVIATION)
 		offset = temp2;
 	else {
-		printf ("%s: read adc value (channel 15) exceeded max allowed "
-			"deviation: %d * 0.0276 °C\n",
-			__FUNCTION__, MAX_DEVIATION);
-		printf ("adc value 1: %ld DIGITs\nadc value 2: %ld DIGITs\n",
-			temp1, temp2);
-		offset = tsc2000_read_channel (15);
-		printf ("use (third read) adc value: offset = %ld DIGITs\n",
-			offset);
+		printf("%s: read adc value (channel 15) exceeded max allowed "
+		       "deviation: %d * 0.0276 °C\n",
+		       __FUNCTION__, MAX_DEVIATION);
+		printf("adc value 1: %ld DIGITs\nadc value 2: %ld DIGITs\n",
+		       temp1, temp2);
+		offset = tsc2000_read_channel(15);
+		printf("use (third read) adc value: offset = %ld DIGITs\n",
+		       offset);
 	}
-	debug ("read channel 15 (offset): %ld\n", offset);
+	debug("read channel 15 (offset): %ld\n", offset);
 
 	/*
 	 * Formula for calculating voltage drop on PT1000 resistor: u_pt1000 =
@@ -291,23 +311,21 @@ s32 tsc2000_contact_temp (void)
 	 * u-boot, because this could cause only a very small error (< 1%).
 	 */
 	u_pt1000 = (101750 * (adc_pt1000 - offset)) / 10;
-	debug ("u_pt1000: %ld\n", u_pt1000);
+	debug("u_pt1000: %ld\n", u_pt1000);
 
 	if (tsc2000_interpolate(u_pt1000, Pt1000_temp_table,
 				&contact_temp) == -1) {
-		printf ("%s: error interpolating PT1000 vlaue\n",
-			 __FUNCTION__);
+		printf("%s: error interpolating PT1000 vlaue\n", __FUNCTION__);
 		return (-1000);
 	}
-	debug ("contact_temp: %ld\n", contact_temp);
+	debug("contact_temp: %ld\n", contact_temp);
 
 	return contact_temp;
 }
 
-
-void tsc2000_reg_init (void)
+void tsc2000_reg_init(void)
 {
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
 
 	tsc2000_write(TSC2000_REG_ADC, 0x2036);
 	tsc2000_write(TSC2000_REG_REF, 0x0011);
@@ -330,7 +348,6 @@ void tsc2000_reg_init (void)
 	tsc2000_set_range(0);
 }
 
-
 int tsc2000_interpolate(long value, long data[][2], long *result)
 {
 	int i;
@@ -348,18 +365,17 @@ int tsc2000_interpolate(long value, long data[][2], long *result)
 
 	/* To prevent overflow we have to store the intermediate
 	   result in 'long long'.
-	*/
+	 */
 
-	val = ((unsigned long long)(data[i][1] - data[i-1][1])
-		   * (unsigned long long)(value - data[i-1][0]));
-	do_div(val, (data[i][0] - data[i-1][0]));
-	*result = data[i-1][1] + val;
+	val = ((unsigned long long)(data[i][1] - data[i - 1][1])
+	       * (unsigned long long)(value - data[i - 1][0]));
+	do_div(val, (data[i][0] - data[i - 1][0]));
+	*result = data[i - 1][1] + val;
 
 	return 0;
 }
 
-
 void adc_wait_conversion_done(void)
 {
-	while (!(tsc2000_read(TSC2000_REG_ADC) & (1 << 14)));
+	while (!(tsc2000_read(TSC2000_REG_ADC) & (1 << 14))) ;
 }
diff --git a/board/trab/tsc2000.h b/board/trab/tsc2000.h
index 0b6253f..f597398 100644
--- a/board/trab/tsc2000.h
+++ b/board/trab/tsc2000.h
@@ -29,45 +29,45 @@
 #define _TSC2000_H_
 
 /* temperature channel multiplexer definitions */
-#define CON_MUX0		(gpio->PCCON = (gpio->PCCON & 0x0FFFFFCFF) | 0x00000100)
-#define CLR_MUX0		(gpio->PCDAT &= 0x0FFEF)
-#define SET_MUX0		(gpio->PCDAT |= 0x00010)
+#define CON_MUX0		writel((readl(&gpio->pccon) & 0x0FFFFFCFF) | 0x00000100, &gpio->pccon)
+#define CLR_MUX0		writel(readl(&gpio->pcdat) & 0x0FFEF, &gpio->pcdat)
+#define SET_MUX0		writel(readl(&gpio->pcdat) | 0x00010, &gpio->pcdat)
 
-#define CON_MUX1		(gpio->PCCON = (gpio->PCCON & 0x0FFFFF3FF) | 0x00000400)
-#define CLR_MUX1		(gpio->PCDAT &= 0x0FFDF)
-#define SET_MUX1		(gpio->PCDAT |= 0x00020)
+#define CON_MUX1		writel((readl(&gpio->pccon) & 0x0FFFFF3FF) | 0x00000400, &gpio->pccon)
+#define CLR_MUX1		writel(readl(&gpio->pcdat) & 0x0FFDF, &gpio->pcdat)
+#define SET_MUX1		writel(readl(&gpio->pcdat) | 0x00020, &gpio->pcdat)
 
-#define CON_MUX1_ENABLE		(gpio->PCCON = (gpio->PCCON & 0x0FFFFCFFF) | 0x00001000)
-#define CLR_MUX1_ENABLE		(gpio->PCDAT |= 0x00040)
-#define SET_MUX1_ENABLE		(gpio->PCDAT &= 0x0FFBF)
+#define CON_MUX1_ENABLE		writel((readl(&gpio->pccon) & 0x0FFFFCFFF) | 0x00001000, &gpio->pccon)
+#define CLR_MUX1_ENABLE		writel(readl(&gpio->pcdat) | 0x00040, &gpio->pcdat)
+#define SET_MUX1_ENABLE		writel(readl(&gpio->pcdat) & 0x0FFBF, &gpio->pcdat)
 
-#define CON_MUX2_ENABLE		(gpio->PCCON = (gpio->PCCON & 0x0FFFF3FFF) | 0x00004000)
-#define CLR_MUX2_ENABLE		(gpio->PCDAT |= 0x00080)
-#define SET_MUX2_ENABLE		(gpio->PCDAT &= 0x0FF7F)
+#define CON_MUX2_ENABLE		writel((readl(&gpio->pccon) & 0x0FFFF3FFF) | 0x00004000, &gpio->pccon)
+#define CLR_MUX2_ENABLE		writel(readl(&gpio->pcdat) | 0x00080, &gpio->pcdat)
+#define SET_MUX2_ENABLE		writel(readl(&gpio->pcdat) & 0x0FF7F, &gpio->pcdat)
 
-#define CON_MUX3_ENABLE		(gpio->PCCON = (gpio->PCCON & 0x0FFFCFFFF) | 0x00010000)
-#define CLR_MUX3_ENABLE		(gpio->PCDAT |= 0x00100)
-#define SET_MUX3_ENABLE		(gpio->PCDAT &= 0x0FEFF)
+#define CON_MUX3_ENABLE		writel((readl(&gpio->pccon) & 0x0FFFCFFFF) | 0x00010000, &gpio->pccon)
+#define CLR_MUX3_ENABLE		writel(readl(&gpio->pcdat) | 0x00100, &gpio->pcdat)
+#define SET_MUX3_ENABLE		writel(readl(&gpio->pcdat) & 0x0FEFF, &gpio->pcdat)
 
-#define CON_MUX4_ENABLE		(gpio->PCCON = (gpio->PCCON & 0x0FFF3FFFF) | 0x00040000)
-#define CLR_MUX4_ENABLE		(gpio->PCDAT |= 0x00200)
-#define SET_MUX4_ENABLE		(gpio->PCDAT &= 0x0FDFF)
+#define CON_MUX4_ENABLE		writel((readl(&gpio->pccon) & 0x0FFF3FFFF) | 0x00040000, &gpio->pccon)
+#define CLR_MUX4_ENABLE		writel(readl(&gpio->pcdat) | 0x00200, &gpio->pcdat)
+#define SET_MUX4_ENABLE		writel(readl(&gpio->pcdat) & 0x0FDFF, &gpio->pcdat)
 
-#define CON_SEL_TEMP_V_0	(gpio->PCCON = (gpio->PCCON & 0x0FFCFFFFF) | 0x00100000)
-#define CLR_SEL_TEMP_V_0	(gpio->PCDAT &= 0x0FBFF)
-#define SET_SEL_TEMP_V_0	(gpio->PCDAT |= 0x00400)
+#define CON_SEL_TEMP_V_0	writel((readl(&gpio->pccon) & 0x0FFCFFFFF) | 0x00100000, &gpio->pccon)
+#define CLR_SEL_TEMP_V_0	writel(readl(&gpio->pcdat) & 0x0FBFF, &gpio->pcdat)
+#define SET_SEL_TEMP_V_0	writel(readl(&gpio->pcdat) | 0x00400, &gpio->pcdat)
 
-#define CON_SEL_TEMP_V_1	(gpio->PCCON = (gpio->PCCON & 0x0FF3FFFFF) | 0x00400000)
-#define CLR_SEL_TEMP_V_1	(gpio->PCDAT &= 0x0F7FF)
-#define SET_SEL_TEMP_V_1	(gpio->PCDAT |= 0x00800)
+#define CON_SEL_TEMP_V_1	writel((readl(&gpio->pccon) & 0x0FF3FFFFF) | 0x00400000, &gpio->pccon)
+#define CLR_SEL_TEMP_V_1	writel(readl(&gpio->pcdat) & 0x0F7FF, &gpio->pcdat)
+#define SET_SEL_TEMP_V_1	writel(readl(&gpio->pcdat) | 0x00800, &gpio->pcdat)
 
-#define CON_SEL_TEMP_V_2	(gpio->PCCON = (gpio->PCCON & 0x0FCFFFFFF) | 0x01000000)
-#define CLR_SEL_TEMP_V_2	(gpio->PCDAT &= 0x0EFFF)
-#define SET_SEL_TEMP_V_2	(gpio->PCDAT |= 0x01000)
+#define CON_SEL_TEMP_V_2	writel((readl(&gpio->pccon) & 0x0FCFFFFFF) | 0x01000000, &gpio->pccon)
+#define CLR_SEL_TEMP_V_2	writel(readl(&gpio->pcdat) & 0x0EFFF, &gpio->pcdat)
+#define SET_SEL_TEMP_V_2	writel(readl(&gpio->pcdat) | 0x01000, &gpio->pcdat)
 
-#define CON_SEL_TEMP_V_3	(gpio->PCCON = (gpio->PCCON & 0x0F3FFFFFF) | 0x04000000)
-#define CLR_SEL_TEMP_V_3	(gpio->PCDAT &= 0x0DFFF)
-#define SET_SEL_TEMP_V_3	(gpio->PCDAT |= 0x02000)
+#define CON_SEL_TEMP_V_3	writel((readl(&gpio->pccon) & 0x0F3FFFFFF) | 0x04000000, &gpio->pccon)
+#define CLR_SEL_TEMP_V_3	writel(readl(&gpio->pcdat) & 0x0DFFF, &gpio->pcdat)
+#define SET_SEL_TEMP_V_3	writel(readl(&gpio->pcdat) | 0x02000, &gpio->pcdat)
 
 /* TSC2000 register definition */
 #define TSC2000_REG_X		((0 << 11) | (0 << 5))
@@ -114,31 +114,29 @@
 #define ERROR_BATTERY		220	/* must be adjusted, if R68 is changed on TRAB */
 
 void tsc2000_write(unsigned short, unsigned short);
-unsigned short tsc2000_read (unsigned short);
-u16 tsc2000_read_channel (unsigned int);
-void tsc2000_set_mux (unsigned int);
-void tsc2000_set_range (unsigned int);
-void tsc2000_reg_init (void);
-s32 tsc2000_contact_temp (void);
-void spi_wait_transmit_done (void);
+unsigned short tsc2000_read(unsigned short);
+u16 tsc2000_read_channel(unsigned int);
+void tsc2000_set_mux(unsigned int);
+void tsc2000_set_range(unsigned int);
+void tsc2000_reg_init(void);
+s32 tsc2000_contact_temp(void);
+void spi_wait_transmit_done(void);
 void tsc2000_spi_init(void);
 int tsc2000_interpolate(long value, long data[][2], long *result);
 void adc_wait_conversion_done(void);
 
-
-static inline void SET_CS_TOUCH(void)
+static inline void set_cs_touch(void)
 {
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
 
-	gpio->PDDAT &= 0x5FF;
+	writel(readl(&gpio->pddat) & 0x5FF, &gpio->pddat);
 }
 
-
-static inline void CLR_CS_TOUCH(void)
+static inline void clr_cs_touch(void)
 {
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
 
-	gpio->PDDAT |= 0x200;
+	writel(readl(&gpio->pddat) | 0x200, &gpio->pddat);
 }
 
-#endif	/* _TSC2000_H_ */
+#endif /* _TSC2000_H_ */
diff --git a/board/trab/vfd.c b/board/trab/vfd.c
index b7eb8cc..6e6b68f 100644
--- a/board/trab/vfd.c
+++ b/board/trab/vfd.c
@@ -38,6 +38,7 @@
 #include <linux/types.h>
 #include <stdio_dev.h>
 #include <asm/arch/s3c24x0_cpu.h>
+#include <asm/io.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -95,75 +96,95 @@ void init_grid_ctrl(void)
 	/*
 	 * clear frame buffer (logical clear => set to "black")
 	 */
-	memset ((void *)(gd->fb_base), 0, FRAME_BUF_SIZE);
+	memset((void *)(gd->fb_base), 0, FRAME_BUF_SIZE);
 
 	switch (gd->vfd_type) {
 	case VFD_TYPE_T119C:
-	    for (display=0; display<4; display++) {
-		for(grid_cycle=0; grid_cycle<56; grid_cycle++) {
-			bit = grid_cycle * 256  * 4 +
-			     (grid_cycle + 200) * 4 +
-			     frame_buf_offs + display;
-			/* wrap arround if offset (see manual S3C2400) */
-			if (bit>=FRAME_BUF_SIZE*8)
-				bit = bit - (FRAME_BUF_SIZE * 8);
-			adr = gd->fb_base + (bit/32) * 4 + (3 - (bit%32) / 8);
-			bit_nr = bit % 8;
-			bit_nr = (bit_nr > 3) ? bit_nr-4 : bit_nr+4;
-			temp=(*(volatile unsigned char*)(adr));
-			temp |=  (1<<bit_nr);
-			(*(volatile unsigned char*)(adr))=temp;
-
-			if(grid_cycle<55)
-				bit = grid_cycle*256*4+(grid_cycle+201)*4+frame_buf_offs+display;
-			else
-				bit = grid_cycle*256*4+200*4+frame_buf_offs+display-4;	/* grid nr. 0 */
-			/* wrap arround if offset (see manual S3C2400) */
-			if (bit>=FRAME_BUF_SIZE*8)
-				bit = bit-(FRAME_BUF_SIZE*8);
-			adr = gd->fb_base+(bit/32)*4+(3-(bit%32)/8);
-			bit_nr = bit%8;
-			bit_nr = (bit_nr>3)?bit_nr-4:bit_nr+4;
-			temp=(*(volatile unsigned char*)(adr));
-			temp |=  (1<<bit_nr);
-			(*(volatile unsigned char*)(adr))=temp;
+		for (display = 0; display < 4; display++) {
+			for (grid_cycle = 0; grid_cycle < 56; grid_cycle++) {
+				bit = grid_cycle * 256 * 4 +
+				    (grid_cycle + 200) * 4 +
+				    frame_buf_offs + display;
+				/* wrap around if offset (see manual S3C2400) */
+				if (bit >= FRAME_BUF_SIZE * 8)
+					bit = bit - (FRAME_BUF_SIZE * 8);
+				adr =
+				    gd->fb_base + (bit / 32) * 4 + (3 -
+								    (bit % 32) /
+								    8);
+				bit_nr = bit % 8;
+				bit_nr = (bit_nr > 3) ? bit_nr - 4 : bit_nr + 4;
+				temp = (*(volatile unsigned char *)(adr));
+				temp |= (1 << bit_nr);
+				(*(volatile unsigned char *)(adr)) = temp;
+
+				if (grid_cycle < 55)
+					bit =
+					    grid_cycle * 256 * 4 + (grid_cycle +
+								    201) * 4 +
+					    frame_buf_offs + display;
+				else
+					/* grid nr. 0 */
+					bit = grid_cycle * 256 * 4 + 200 * 4 +
+					      frame_buf_offs + display - 4;
+				/* wrap around if offset (see manual S3C2400) */
+				if (bit >= FRAME_BUF_SIZE * 8)
+					bit = bit - (FRAME_BUF_SIZE * 8);
+				adr =
+				    gd->fb_base + (bit / 32) * 4 + (3 -
+								    (bit % 32) /
+								    8);
+				bit_nr = bit % 8;
+				bit_nr = (bit_nr > 3) ? bit_nr - 4 : bit_nr + 4;
+				temp = (*(volatile unsigned char *)(adr));
+				temp |= (1 << bit_nr);
+				(*(volatile unsigned char *)(adr)) = temp;
+			}
 		}
-	    }
-	    break;
+		break;
 	case VFD_TYPE_MN11236:
-	    for (display=0; display<4; display++) {
-		for (grid_cycle=0; grid_cycle<38; grid_cycle++) {
-			bit = grid_cycle * 256  * 4 +
-			     (253 - grid_cycle) * 4 +
-			     frame_buf_offs + display;
-			/* wrap arround if offset (see manual S3C2400) */
-			if (bit>=FRAME_BUF_SIZE*8)
-				bit = bit - (FRAME_BUF_SIZE * 8);
-			adr = gd->fb_base + (bit/32) * 4 + (3 - (bit%32) / 8);
-			bit_nr = bit % 8;
-			bit_nr = (bit_nr > 3) ? bit_nr-4 : bit_nr+4;
-			temp=(*(volatile unsigned char*)(adr));
-			temp |=  (1<<bit_nr);
-			(*(volatile unsigned char*)(adr))=temp;
-
-			if(grid_cycle<37)
-				bit = grid_cycle*256*4+(252-grid_cycle)*4+frame_buf_offs+display;
-
-			/* wrap arround if offset (see manual S3C2400) */
-			if (bit>=FRAME_BUF_SIZE*8)
-				bit = bit-(FRAME_BUF_SIZE*8);
-			adr = gd->fb_base+(bit/32)*4+(3-(bit%32)/8);
-			bit_nr = bit%8;
-			bit_nr = (bit_nr>3)?bit_nr-4:bit_nr+4;
-			temp=(*(volatile unsigned char*)(adr));
-			temp |=  (1<<bit_nr);
-			(*(volatile unsigned char*)(adr))=temp;
+		for (display = 0; display < 4; display++) {
+			for (grid_cycle = 0; grid_cycle < 38; grid_cycle++) {
+				bit = grid_cycle * 256 * 4 +
+				    (253 - grid_cycle) * 4 +
+				    frame_buf_offs + display;
+				/* wrap around if offset (see manual S3C2400) */
+				if (bit >= FRAME_BUF_SIZE * 8)
+					bit = bit - (FRAME_BUF_SIZE * 8);
+				adr =
+				    gd->fb_base + (bit / 32) * 4 + (3 -
+								    (bit % 32) /
+								    8);
+				bit_nr = bit % 8;
+				bit_nr = (bit_nr > 3) ? bit_nr - 4 : bit_nr + 4;
+				temp = (*(volatile unsigned char *)(adr));
+				temp |= (1 << bit_nr);
+				(*(volatile unsigned char *)(adr)) = temp;
+
+				if (grid_cycle < 37)
+					bit =
+					    grid_cycle * 256 * 4 + (252 -
+								    grid_cycle)
+					    * 4 + frame_buf_offs + display;
+
+				/* wrap around if offset (see manual S3C2400) */
+				if (bit >= FRAME_BUF_SIZE * 8)
+					bit = bit - (FRAME_BUF_SIZE * 8);
+				adr =
+				    gd->fb_base + (bit / 32) * 4 + (3 -
+								    (bit % 32) /
+								    8);
+				bit_nr = bit % 8;
+				bit_nr = (bit_nr > 3) ? bit_nr - 4 : bit_nr + 4;
+				temp = (*(volatile unsigned char *)(adr));
+				temp |= (1 << bit_nr);
+				(*(volatile unsigned char *)(adr)) = temp;
+			}
 		}
-	    }
-	    break;
+		break;
 	default:
-	    printf ("Warning: unknown display type\n");
-	    break;
+		printf("Warning: unknown display type\n");
+		break;
 	}
 }
 
@@ -179,63 +200,93 @@ void create_vfd_table(void)
 
 	switch (gd->vfd_type) {
 	case VFD_TYPE_T119C:
-	    for(y=0; y<=17; y++) {	/* Line */
-		for(x=0; x<=111; x++) {	/* Column */
-		    for(display=0; display <=3; display++) {
-
-			    /* Display 0 blue pixels */
-			    vfd_table[x][y][0][display][0] =
-				(x==0) ? y*16+display
-				       : (x%4)*4+y*16+((x-1)/2)*1024+display;
-			    /* Display 0 red pixels */
-			    vfd_table[x][y][1][display][0] =
-				(x==0) ? y*16+512+display
-				       : (x%4)*4+y*16+((x-1)/2)*1024+512+display;
-		    }
+		for (y = 0; y <= 17; y++) {	/* Line */
+			for (x = 0; x <= 111; x++) {	/* Column */
+				for (display = 0; display <= 3; display++) {
+
+					/* Display 0 blue pixels */
+					vfd_table[x][y][0][display][0] =
+					    (x == 0) ? y * 16 + display
+					    : (x % 4) * 4 + y * 16 +
+					    ((x - 1) / 2) * 1024 + display;
+					/* Display 0 red pixels */
+					vfd_table[x][y][1][display][0] =
+					    (x == 0) ? y * 16 + 512 + display
+					    : (x % 4) * 4 + y * 16 +
+					    ((x - 1) / 2) * 1024 + 512 +
+					    display;
+				}
+			}
 		}
-	    }
-	    break;
+		break;
 	case VFD_TYPE_MN11236:
-	    for(y=0; y<=17; y++) {	/* Line */
-		for(x=0; x<=111; x++) {	/* Column */
-		    for(display=0; display <=3; display++) {
-
-			    vfd_table[x][y][0][display][0]=0;
-			    vfd_table[x][y][0][display][1]=0;
-			    vfd_table[x][y][1][display][0]=0;
-			    vfd_table[x][y][1][display][1]=0;
-
-			    switch (x%6) {
-			    case 0: x_abcdef=0; break; /* a -> a */
-			    case 1: x_abcdef=2; break; /* b -> c */
-			    case 2: x_abcdef=4; break; /* c -> e */
-			    case 3: x_abcdef=5; break; /* d -> f */
-			    case 4: x_abcdef=3; break; /* e -> d */
-			    case 5: x_abcdef=1; break; /* f -> b */
-			    }
-
-			    /* blue pixels */
-			    vfd_table[x][y][0][display][0] =
-				(x>1) ? x_abcdef*4+((x-1)/3)*1024+y*48+display
-				      : x_abcdef*4+             0+y*48+display;
-			    /* blue pixels */
-			    if (x>1 && (x-1)%3)
-				    vfd_table[x][y][0][display][1] = x_abcdef*4+((x-1)/3+1)*1024+y*48+display;
-
-			    /* red pixels */
-			    vfd_table[x][y][1][display][0] =
-				(x>1) ? x_abcdef*4+24+((x-1)/3)*1024+y*48+display
-				      : x_abcdef*4+24+             0+y*48+display;
-			    /* red pixels */
-			    if (x>1 && (x-1)%3)
-				    vfd_table[x][y][1][display][1] = x_abcdef*4+24+((x-1)/3+1)*1024+y*48+display;
-		    }
+		for (y = 0; y <= 17; y++) {	/* Line */
+			for (x = 0; x <= 111; x++) {	/* Column */
+				for (display = 0; display <= 3; display++) {
+
+					vfd_table[x][y][0][display][0] = 0;
+					vfd_table[x][y][0][display][1] = 0;
+					vfd_table[x][y][1][display][0] = 0;
+					vfd_table[x][y][1][display][1] = 0;
+
+					switch (x % 6) {
+					case 0:
+						x_abcdef = 0;
+						break;	/* a -> a */
+					case 1:
+						x_abcdef = 2;
+						break;	/* b -> c */
+					case 2:
+						x_abcdef = 4;
+						break;	/* c -> e */
+					case 3:
+						x_abcdef = 5;
+						break;	/* d -> f */
+					case 4:
+						x_abcdef = 3;
+						break;	/* e -> d */
+					case 5:
+						x_abcdef = 1;
+						break;	/* f -> b */
+					}
+
+					/* blue pixels */
+					vfd_table[x][y][0][display][0] =
+					    (x >
+					     1) ? x_abcdef * 4 + ((x -
+								   1) / 3) *
+					    1024 + y * 48 +
+					    display : x_abcdef * 4 + 0 +
+					    y * 48 + display;
+					/* blue pixels */
+					if (x > 1 && (x - 1) % 3)
+						vfd_table[x][y][0][display][1] =
+						    x_abcdef * 4 +
+						    ((x - 1) / 3 + 1) * 1024 +
+						    y * 48 + display;
+
+					/* red pixels */
+					vfd_table[x][y][1][display][0] =
+					    (x >
+					     1) ? x_abcdef * 4 + 24 + ((x -
+									1) /
+								       3) *
+					    1024 + y * 48 +
+					    display : x_abcdef * 4 + 24 + 0 +
+					    y * 48 + display;
+					/* red pixels */
+					if (x > 1 && (x - 1) % 3)
+						vfd_table[x][y][1][display][1] =
+						    x_abcdef * 4 + 24 +
+						    ((x - 1) / 3 + 1) * 1024 +
+						    y * 48 + display;
+				}
+			}
 		}
-	    }
-	    break;
+		break;
 	default:
-	    /* do nothing */
-	    return;
+		/* do nothing */
+		return;
 	}
 
 	/*
@@ -243,31 +294,45 @@ void create_vfd_table(void)
 	 * bit-number within the byte
 	 * from table with bit-numbers within the total framebuffer
 	 */
-	for(y=0;y<18;y++) {
-	    for(x=0;x<112;x++) {
-		for(color=0;color<2;color++) {
-		    for(display=0;display<4;display++) {
-			for(entry=0;entry<2;entry++) {
-			    unsigned long adr  = gd->fb_base;
-			    unsigned int bit_nr = 0;
-
-			    pixel  = vfd_table[x][y][color][display][entry] + frame_buf_offs;
-			    /*
-			     * wrap arround if offset
-			     * (see manual S3C2400)
-			     */
-			    if (pixel>=FRAME_BUF_SIZE*8)
-				    pixel = pixel-(FRAME_BUF_SIZE*8);
-			    adr    = gd->fb_base+(pixel/32)*4+(3-(pixel%32)/8);
-			    bit_nr = pixel%8;
-			    bit_nr = (bit_nr>3)?bit_nr-4:bit_nr+4;
-
-			    adr_vfd_table[x][y][color][display][entry] = adr;
-			    bit_vfd_table[x][y][color][display][entry] = bit_nr;
+	for (y = 0; y < 18; y++) {
+		for (x = 0; x < 112; x++) {
+			for (color = 0; color < 2; color++) {
+				for (display = 0; display < 4; display++) {
+					for (entry = 0; entry < 2; entry++) {
+						unsigned long adr = gd->fb_base;
+						unsigned int bit_nr = 0;
+
+						pixel =
+						    vfd_table[x][y][color]
+						    [display][entry] +
+						    frame_buf_offs;
+						/*
+						 * wrap around if offset
+						 * (see manual S3C2400)
+						 */
+						if (pixel >=
+						    FRAME_BUF_SIZE * 8)
+							pixel =
+							    pixel -
+							   (FRAME_BUF_SIZE * 8);
+						adr =
+						    gd->fb_base +
+						    (pixel / 32) * 4 +
+						    (3 - (pixel % 32) / 8);
+						bit_nr = pixel % 8;
+						bit_nr =
+						    (bit_nr >
+						     3) ? bit_nr - 4 : bit_nr +
+						    4;
+
+						adr_vfd_table[x][y][color]
+						    [display][entry] = adr;
+						bit_vfd_table[x][y][color]
+						    [display][entry] = bit_nr;
+					}
+				}
 			}
-		    }
 		}
-	    }
 	}
 }
 
@@ -281,7 +346,7 @@ void set_vfd_pixel(unsigned char x, unsigned char y,
 	ulong adr;
 	unsigned char bit_nr, temp;
 
-	if (! gd->vfd_type) {
+	if (!gd->vfd_type) {
 		/* Unknown type. */
 		return;
 	}
@@ -290,14 +355,14 @@ void set_vfd_pixel(unsigned char x, unsigned char y,
 	adr = adr_vfd_table[x][y][color][display][0];
 	/* Pixel-Eintrag Nr. 1 */
 	bit_nr = bit_vfd_table[x][y][color][display][0];
-	temp=(*(volatile unsigned char*)(adr));
+	temp = (*(volatile unsigned char *)(adr));
 
 	if (value)
-		temp |=  (1<<bit_nr);
+		temp |= (1 << bit_nr);
 	else
-		temp &= ~(1<<bit_nr);
+		temp &= ~(1 << bit_nr);
 
-	(*(volatile unsigned char*)(adr))=temp;
+	(*(volatile unsigned char *)(adr)) = temp;
 }
 
 /*
@@ -308,38 +373,37 @@ void transfer_pic(int display, unsigned char *adr, int height, int width)
 	int x, y;
 	unsigned char temp;
 
-	for (; height > 0; height -= 18)
-	{
+	for (; height > 0; height -= 18) {
 		if (height > 18)
 			y = 18;
 		else
 			y = height;
-		for (; y > 0; y--)
-		{
-			for (x = 0; x < width; x += 2)
-			{
+		for (; y > 0; y--) {
+			for (x = 0; x < width; x += 2) {
 				temp = *adr++;
-				set_vfd_pixel(x, y-1, 0, display, 0);
-				set_vfd_pixel(x, y-1, 1, display, 0);
+				set_vfd_pixel(x, y - 1, 0, display, 0);
+				set_vfd_pixel(x, y - 1, 1, display, 0);
 				if ((temp >> 4) == BLAU)
-					set_vfd_pixel(x, y-1, 0, display, 1);
+					set_vfd_pixel(x, y - 1, 0, display, 1);
 				else if ((temp >> 4) == ROT)
-					set_vfd_pixel(x, y-1, 1, display, 1);
-				else if ((temp >> 4) == VIOLETT)
-				{
-					set_vfd_pixel(x, y-1, 0, display, 1);
-					set_vfd_pixel(x, y-1, 1, display, 1);
+					set_vfd_pixel(x, y - 1, 1, display, 1);
+				else if ((temp >> 4) == VIOLETT) {
+					set_vfd_pixel(x, y - 1, 0, display, 1);
+					set_vfd_pixel(x, y - 1, 1, display, 1);
 				}
-				set_vfd_pixel(x+1, y-1, 0, display, 0);
-				set_vfd_pixel(x+1, y-1, 1, display, 0);
+				set_vfd_pixel(x + 1, y - 1, 0, display, 0);
+				set_vfd_pixel(x + 1, y - 1, 1, display, 0);
 				if ((temp & 0x0F) == BLAU)
-					set_vfd_pixel(x+1, y-1, 0, display, 1);
+					set_vfd_pixel(x + 1, y - 1, 0, display,
+						      1);
 				else if ((temp & 0x0F) == ROT)
-					set_vfd_pixel(x+1, y-1, 1, display, 1);
-				else if ((temp & 0x0F) == VIOLETT)
-				{
-					set_vfd_pixel(x+1, y-1, 0, display, 1);
-					set_vfd_pixel(x+1, y-1, 1, display, 1);
+					set_vfd_pixel(x + 1, y - 1, 1, display,
+						      1);
+				else if ((temp & 0x0F) == VIOLETT) {
+					set_vfd_pixel(x + 1, y - 1, 0, display,
+						      1);
+					set_vfd_pixel(x + 1, y - 1, 1, display,
+						      1);
 				}
 			}
 		}
@@ -354,66 +418,73 @@ void transfer_pic(int display, unsigned char *adr, int height, int width)
  * This function initializes VFD clock that is needed for the CPLD that
  * manages the keyboard.
  */
-int vfd_init_clocks (void)
+int vfd_init_clocks(void)
 {
 	int i;
 
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
-	struct s3c24x0_timers * const timers = s3c24x0_get_base_timers();
-	struct s3c24x0_lcd * const lcd = s3c24x0_get_base_lcd();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_timers *const timers = s3c24x0_get_base_timers();
+	struct s3c24x0_lcd *const lcd = s3c24x0_get_base_lcd();
 
 	/* try to determine display type from the value
 	 * defined by pull-ups
 	 */
-	gpio->PCUP = (gpio->PCUP & 0xFFF0);	/* activate  GPC0...GPC3 pullups */
-	gpio->PCCON = (gpio->PCCON & 0xFFFFFF00);	/* configure GPC0...GPC3 as inputs */
+	/* activate  GPC0...GPC3 pullups */
+	writel(readl(&gpio->pcup) & 0xFFF0, &gpio->pcup);
+	/* configure GPC0...GPC3 as inputs */
+	writel(readl(&gpio->pccon) & 0xFFFFFF00, &gpio->pccon);
 	/* allow signals to settle */
-	for (i=0; i<10000; i++)	/* udelay isn't working yet at this point! */
+	/* udelay isn't working yet at this point! */
+	for (i = 0; i < 10000; i++)
 		__asm__("NOP");
-	vfd_board_id = (~gpio->PCDAT) & 0x000F;	/* read GPC0...GPC3 port pins */
+	/* read GPC0...GPC3 port pins */
+	vfd_board_id = (~readl(&gpio->pcdat)) & 0x000F;
 
-	VFD_DISABLE;				/* activate blank for the vfd */
+	VFD_DISABLE;		/* activate blank for the vfd */
 
 #define	NEW_CPLD_CLK
 
 #ifdef NEW_CPLD_CLK
 	if (vfd_board_id) {
 		/* If new board revision, then use PWM 3 as cpld-clock */
-		/* Enable 500 Hz timer for fill level sensor to operate properly */
+		/* Enable 500 Hz timer for fill level sensor
+		   to operate properly */
 		/* Configure TOUT3 as functional pin, disable pull-up */
-		gpio->PDCON &= ~0x30000;
-		gpio->PDCON |= 0x20000;
-		gpio->PDUP |= (1 << 8);
+		writel(readl(&gpio->pdcon) & ~0x30000, &gpio->pdcon);
+		writel(readl(&gpio->pdcon) | 0x20000, &gpio->pdcon);
+		writel(readl(&gpio->pdup) | (1 << 8), &gpio->pdup);
 
 		/* Configure the prescaler */
-		timers->TCFG0 &= ~0xff00;
-		timers->TCFG0 |= 0x0f00;
+		writel(readl(&timers->tcfg0) & ~0xff00, &timers->tcfg0);
+		writel(readl(&timers->tcfg0) | 0x0f00, &timers->tcfg0);
 
 		/* Select MUX input (divider) for timer3 (1/16) */
-		timers->TCFG1 &= ~0xf000;
-		timers->TCFG1 |= 0x3000;
+		writel(readl(&timers->tcfg1) & ~0xf000, &timers->tcfg1);
+		writel(readl(&timers->tcfg1) | 0x3000, &timers->tcfg1);
 
 		/* Enable autoreload and set the counter and compare
 		 * registers to values for the 500 Hz clock
 		 * (for a given  prescaler (15) and divider (16)):
 		 * counter = (66000000 / 500) >> 9;
 		 */
-		timers->ch[3].TCNTB = 0x101;
-		timers->ch[3].TCMPB = 0x101 / 2;
+		writel(0x101, &timers->ch[3].tcntb);
+		writel(0x101 / 2, &timers->ch[3].tcmpb);
 
 		/* Start timer */
-		timers->TCON = (timers->TCON | UPDATE3 | RELOAD3) & ~INVERT3;
-		timers->TCON = (timers->TCON | START3) & ~UPDATE3;
+		writel((readl(&timers->tcon) | UPDATE3 | RELOAD3) & ~INVERT3,
+		       &timers->tcon);
+		writel((readl(&timers->tcon) | START3) & ~UPDATE3,
+		       &timers->tcon);
 	}
 #endif
 	/* If old board revision, then use vm-signal as cpld-clock */
-	lcd->LCDCON2 = 0x00FFC000;
-	lcd->LCDCON3 = 0x0007FF00;
-	lcd->LCDCON4 = 0x00000000;
-	lcd->LCDCON5 = 0x00000400;
-	lcd->LCDCON1 = 0x00000B75;
+	writel(0x00FFC000, &lcd->lcdcon2);
+	writel(0x0007FF00, &lcd->lcdcon3);
+	writel(0x00000000, &lcd->lcdcon4);
+	writel(0x00000400, &lcd->lcdcon5);
+	writel(0x00000B75, &lcd->lcdcon1);
 	/* VM (GPD1) is used as clock for the CPLD */
-	gpio->PDCON = (gpio->PDCON & 0xFFFFFFF3) | 0x00000008;
+	writel((readl(&gpio->pdcon) & 0xFFFFFFF3) | 0x00000008, &gpio->pdcon);
 
 	return 0;
 }
@@ -429,8 +500,8 @@ int vfd_init_clocks (void)
  */
 int drv_vfd_init(void)
 {
-	struct s3c24x0_lcd * const lcd = s3c24x0_get_base_lcd();
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_lcd *const lcd = s3c24x0_get_base_lcd();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
 	char *tmp;
 	ulong palette;
 	static int vfd_init_done = 0;
@@ -443,8 +514,8 @@ int drv_vfd_init(void)
 	debug("Detecting Revison of WA4-VFD: ID=0x%X\n", vfd_board_id);
 
 	switch (vfd_board_id) {
-	case 0:			/* board revision < Rev.200 */
-		if ((tmp = getenv ("vfd_type")) == NULL) {
+	case 0:		/* board revision < Rev.200 */
+		if ((tmp = getenv("vfd_type")) == NULL) {
 			break;
 		}
 		if (strcmp(tmp, "T119C") == 0) {
@@ -460,22 +531,21 @@ int drv_vfd_init(void)
 	default:		/* default to MN11236, data inverted */
 		gd->vfd_type = VFD_TYPE_MN11236;
 		vfd_inv_data = 1;
-		setenv ("vfd_type", "MN11236");
+		setenv("vfd_type", "MN11236");
 	}
-	debug ("VFD type: %s%s\n",
-		(gd->vfd_type == VFD_TYPE_T119C)   ? "T119C" :
-		(gd->vfd_type == VFD_TYPE_MN11236) ? "MN11236" :
-		"unknown",
-		vfd_inv_data ? ", inverted data" : "");
+	debug("VFD type: %s%s\n",
+	      (gd->vfd_type == VFD_TYPE_T119C) ? "T119C" :
+	      (gd->vfd_type == VFD_TYPE_MN11236) ? "MN11236" :
+	      "unknown", vfd_inv_data ? ", inverted data" : "");
 
 	gd->fb_base = gd->fb_base;
 	create_vfd_table();
 	init_grid_ctrl();
 
-	for (palette=0; palette < 16; palette++)
-		(*(volatile unsigned int*)(PALETTE+(palette*4)))=palette;
-	for (palette=16; palette < 256; palette++)
-		(*(volatile unsigned int*)(PALETTE+(palette*4)))=0x00;
+	for (palette = 0; palette < 16; palette++)
+		(*(volatile unsigned int *)(PALETTE + (palette * 4))) = palette;
+	for (palette = 16; palette < 256; palette++)
+		(*(volatile unsigned int *)(PALETTE + (palette * 4))) = 0x00;
 
 	/*
 	 * Hinweis: Der Framebuffer ist um genau ein Nibble verschoben
@@ -485,40 +555,43 @@ int drv_vfd_init(void)
 	 * see manual S3C2400
 	 */
 	/* Stopp LCD-Controller */
-	lcd->LCDCON1 = 0x00000000;
+	writel(0x00000000, &lcd->lcdcon1);
 	/* frame buffer startadr */
-	lcd->LCDSADDR1 = gd->fb_base >> 1;
+	writel(gd->fb_base >> 1, &lcd->lcdsaddr1);
 	/* frame buffer endadr */
-	lcd->LCDSADDR2 = (gd->fb_base + FRAME_BUF_SIZE) >> 1;
-	lcd->LCDSADDR3 = ((256/4));
-	lcd->LCDCON2 = 0x000DC000;
-	if(gd->vfd_type == VFD_TYPE_MN11236)
-		lcd->LCDCON2 = 37 << 14;	/* MN11236: 38 lines */
+	writel((gd->fb_base + FRAME_BUF_SIZE) >> 1, &lcd->lcdsaddr2);
+	writel(256 / 4, &lcd->lcdsaddr3);
+	writel(0x000DC000, &lcd->lcdcon2);
+	if (gd->vfd_type == VFD_TYPE_MN11236)
+		writel(37 << 14, &lcd->lcdcon2);	/* MN11236: 38 lines */
 	else
-		lcd->LCDCON2 = 55 << 14;	/* T119C:   56 lines */
-	lcd->LCDCON3 = 0x0051000A;
-	lcd->LCDCON4 = 0x00000001;
+		writel(55 << 14, &lcd->lcdcon2);	/* T119C:   56 lines */
+	writel(0x0051000A, &lcd->lcdcon3);
+	writel(0x00000001, &lcd->lcdcon4);
 	if (gd->vfd_type && vfd_inv_data)
-		lcd->LCDCON5 = 0x000004C0;
+		writel(0x000004C0, &lcd->lcdcon5);
 	else
-		lcd->LCDCON5 = 0x00000440;
+		writel(0x00000440, &lcd->lcdcon5);
 
 	/* Port pins as LCD output */
-	gpio->PCCON =   (gpio->PCCON & 0xFFFFFF00)| 0x000000AA;
-	gpio->PDCON =   (gpio->PDCON & 0xFFFFFF03)| 0x000000A8;
-
-	/* Synchronize VFD enable with LCD controller to avoid flicker	*/
-	lcd->LCDCON1 = 0x00000B75;			/* Start LCD-Controller	*/
-	while((lcd->LCDCON5 & 0x180000)!=0x100000);	/* Wait for end of VSYNC */
-	while((lcd->LCDCON5 & 0x060000)!=0x040000);	/* Wait for next HSYNC	*/
-	while((lcd->LCDCON5 & 0x060000)==0x040000);
-	while((lcd->LCDCON5 & 0x060000)!=0x000000);
-	if(gd->vfd_type)
+	writel((readl(&gpio->pccon) & 0xFFFFFF00) | 0x000000AA, &gpio->pccon);
+	writel((readl(&gpio->pdcon) & 0xFFFFFF03) | 0x000000A8, &gpio->pdcon);
+
+	/* Synchronize VFD enable with LCD controller to avoid flicker  */
+	/* Start LCD-Controller */
+	writel(0x00000B75, &lcd->lcdcon1);
+	/* Wait for end of VSYNC */
+	while ((readl(&lcd->lcdcon5) & 0x180000) != 0x100000) ;
+	/* Wait for next HSYNC  */
+	while ((readl(&lcd->lcdcon5) & 0x060000) != 0x040000) ;
+	while ((readl(&lcd->lcdcon5) & 0x060000) == 0x040000) ;
+	while ((readl(&lcd->lcdcon5) & 0x060000) != 0x000000) ;
+	if (gd->vfd_type)
 		VFD_ENABLE;
 
-	debug ("LCDSADDR1: %lX\n", lcd->LCDSADDR1);
-	debug ("LCDSADDR2: %lX\n", lcd->LCDSADDR2);
-	debug ("LCDSADDR3: %lX\n", lcd->LCDSADDR3);
+	debug("LCDSADDR1: %lX\n", readl(&lcd->lcdsaddr1));
+	debug("LCDSADDR2: %lX\n", readl(&lcd->lcdsaddr2));
+	debug("LCDSADDR3: %lX\n", readl(&lcd->lcdsaddr3));
 
 	return 0;
 }
@@ -527,13 +600,13 @@ int drv_vfd_init(void)
  * Disable VFD: should be run before resetting the system:
  * disable VM, enable pull-up
  */
-void disable_vfd (void)
+void disable_vfd(void)
 {
-	struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
+	struct s3c24x0_gpio *const gpio = s3c24x0_get_base_gpio();
 
 	VFD_DISABLE;
-	gpio->PDCON &= ~0xC;
-	gpio->PDUP  &= ~0x2;
+	writel(readl(&gpio->pdcon) & ~0xC, &gpio->pdcon);
+	writel(readl(&gpio->pdup) & ~0x2, &gpio->pdup);
 }
 
 /************************************************************************/
@@ -546,14 +619,15 @@ void disable_vfd (void)
  *
  * Note that this is running from ROM, so no write access to global data.
  */
-ulong vfd_setmem (ulong addr)
+ulong vfd_setmem(ulong addr)
 {
 	ulong size;
 
 	/* Round up to nearest full page */
 	size = (FRAME_BUF_SIZE + (PAGE_SIZE - 1)) & ~(PAGE_SIZE - 1);
 
-	debug ("Reserving %ldk for VFD Framebuffer at: %08lx\n", size>>10, addr);
+	debug("Reserving %ldk for VFD Framebuffer at: %08lx\n", size >> 10,
+	      addr);
 
 	return (size);
 }
@@ -562,7 +636,7 @@ ulong vfd_setmem (ulong addr)
  * Calculate fb size for VIDEOLFB_ATAG. Size returned contains fb,
  * descriptors and palette areas.
  */
-ulong calc_fbsize (void)
+ulong calc_fbsize(void)
 {
 	return FRAME_BUF_SIZE;
 }
-- 
1.6.1.2


More information about the U-Boot mailing list