All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 1/7] x86: i8042: Remove unused codes
@ 2015-08-24  8:00 Bin Meng
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 2/7] x86: i8042: Reorder static functions Bin Meng
                   ` (6 more replies)
  0 siblings, 7 replies; 20+ messages in thread
From: Bin Meng @ 2015-08-24  8:00 UTC (permalink / raw)
  To: u-boot

Remove unused CONFIG_USE_CPCIDVI wrapped codes.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

---

Changes in v3:
- Keep i8042_flush(), i8042_disable() and board_i8042_skip()

Changes in v2:
- Split the removing of unused codes into this patch

 drivers/input/i8042.c | 17 -----------------
 1 file changed, 17 deletions(-)

diff --git a/drivers/input/i8042.c b/drivers/input/i8042.c
index 1769c5e..87220ca 100644
--- a/drivers/input/i8042.c
+++ b/drivers/input/i8042.c
@@ -10,16 +10,6 @@
 /* includes */
 
 #include <common.h>
-#include <linux/compiler.h>
-
-#ifdef CONFIG_USE_CPCIDVI
-extern u8 gt_cpcidvi_in8(u32 offset);
-extern void gt_cpcidvi_out8(u32 offset, u8 data);
-
-#define in8(a)	   gt_cpcidvi_in8(a)
-#define out8(a, b) gt_cpcidvi_out8(a, b)
-#endif
-
 #include <i8042.h>
 
 /* defines */
@@ -365,13 +355,6 @@ int i8042_kbd_init(void)
 	if (!kbd_controller_present() || board_i8042_skip())
 		return -1;
 
-#ifdef CONFIG_USE_CPCIDVI
-	penv = getenv("console");
-	if (penv != NULL) {
-		if (strncmp(penv, "serial", 7) == 0)
-			return -1;
-	}
-#endif
 	/* Init keyboard device (default US layout) */
 	keymap = KBD_US;
 	penv = getenv("keymap");
-- 
1.8.2.1

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

* [U-Boot] [PATCH v3 2/7] x86: i8042: Reorder static functions
  2015-08-24  8:00 [U-Boot] [PATCH v3 1/7] x86: i8042: Remove unused codes Bin Meng
@ 2015-08-24  8:00 ` Bin Meng
  2015-08-26 14:56   ` Simon Glass
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 3/7] x86: i8042: Clean up the driver per coding convention Bin Meng
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 20+ messages in thread
From: Bin Meng @ 2015-08-24  8:00 UTC (permalink / raw)
  To: u-boot

Reorder those static function so that their declarations
can be removed.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>

---

Changes in v3: None
Changes in v2:
- Split of reordering static functions into this patch

 drivers/input/i8042.c | 490 +++++++++++++++++++++++---------------------------
 1 file changed, 222 insertions(+), 268 deletions(-)

diff --git a/drivers/input/i8042.c b/drivers/input/i8042.c
index 87220ca..126b222 100644
--- a/drivers/input/i8042.c
+++ b/drivers/input/i8042.c
@@ -27,18 +27,6 @@ static int  kbd_mapping	 = KBD_US;	/* default US keyboard */
 static int  kbd_flags	 = NORMAL;	/* after reset */
 static int  kbd_state;			/* unshift code */
 
-static void kbd_conv_char(unsigned char scan_code);
-static void kbd_led_set(void);
-static void kbd_normal(unsigned char scan_code);
-static void kbd_shift(unsigned char scan_code);
-static void kbd_ctrl(unsigned char scan_code);
-static void kbd_num(unsigned char scan_code);
-static void kbd_caps(unsigned char scan_code);
-static void kbd_scroll(unsigned char scan_code);
-static void kbd_alt(unsigned char scan_code);
-static int  kbd_input_empty(void);
-static int  kbd_reset(void);
-
 static unsigned char kbd_fct_map[144] = {
 	/* kbd_fct_map table for scan code */
 	 0,  AS,  AS,  AS,  AS,  AS,  AS,  AS, /* scan  0- 7 */
@@ -288,8 +276,230 @@ static unsigned char ext_key_map[] = {
 	0x00  /* map end */
 	};
 
+static int kbd_input_empty(void)
+{
+	int kbdTimeout = KBD_TIMEOUT * 1000;
+
+	while ((in8(I8042_STATUS_REG) & I8042_STATUS_IN_DATA) && kbdTimeout--)
+		udelay(1);
+
+	return kbdTimeout != -1;
+}
+
+static int wait_until_kbd_output_full(void)
+{
+	int kbdTimeout = KBD_TIMEOUT * 1000;
+
+	while (((in8(I8042_STATUS_REG) & 0x01) == 0) && kbdTimeout--)
+		udelay(1);
+
+	return kbdTimeout != -1;
+}
+
+static void kbd_led_set(void)
+{
+	kbd_input_empty();
+	out8(I8042_DATA_REG, 0xed);    /* SET LED command */
+	kbd_input_empty();
+	out8(I8042_DATA_REG, (kbd_flags & 0x7));    /* LED bits only */
+}
+
+static void kbd_normal(unsigned char scan_code)
+{
+	unsigned char chr;
+
+	if ((kbd_flags & BRK) == NORMAL) {
+		chr = kbd_key_map[kbd_mapping][kbd_state][scan_code];
+		if ((chr == 0xff) || (chr == 0x00))
+			return;
+
+		/* if caps lock convert upper to lower */
+		if (((kbd_flags & CAPS) == CAPS) &&
+				(chr >= 'a' && chr <= 'z')) {
+			chr -= 'a' - 'A';
+		}
+		kbd_input = chr;
+	}
+}
+
+static void kbd_shift(unsigned char scan_code)
+{
+	if ((kbd_flags & BRK) == BRK) {
+		kbd_state = AS;
+		kbd_flags &= (~SHIFT);
+	} else {
+		kbd_state = SH;
+		kbd_flags |= SHIFT;
+	}
+}
+
+static void kbd_ctrl(unsigned char scan_code)
+{
+	if ((kbd_flags & BRK) == BRK) {
+		kbd_state = AS;
+		kbd_flags &= (~CTRL);
+	} else {
+		kbd_state = CN;
+		kbd_flags |= CTRL;
+	}
+}
+
+static void kbd_num(unsigned char scan_code)
+{
+	if ((kbd_flags & BRK) == NORMAL) {
+		kbd_flags ^= NUM;
+		kbd_state = (kbd_flags & NUM) ? AS : NM;
+		kbd_led_set();    /* update keyboard LED */
+	}
+}
+
+static void kbd_alt(unsigned char scan_code)
+{
+	if ((kbd_flags & BRK) == BRK) {
+		kbd_state = AS;
+		kbd_flags &= (~ALT);
+	} else {
+		kbd_state = AK;
+		kbd_flags &= ALT;
+	}
+}
+
+static void kbd_caps(unsigned char scan_code)
+{
+	if ((kbd_flags & BRK) == NORMAL) {
+		kbd_flags ^= CAPS;
+		kbd_led_set();    /* update keyboard LED */
+	}
+}
+
+static void kbd_scroll(unsigned char scan_code)
+{
+	if ((kbd_flags & BRK) == NORMAL) {
+		kbd_flags ^= STP;
+		kbd_led_set();    /* update keyboard LED */
+		if (kbd_flags & STP)
+			kbd_input = 0x13;
+		else
+			kbd_input = 0x11;
+	}
+}
+
+static void kbd_conv_char(unsigned char scan_code)
+{
+	if (scan_code == 0xe0) {
+		kbd_flags |= EXT;
+		return;
+	}
+
+	/* if high bit of scan_code, set break flag */
+	if (scan_code & 0x80)
+		kbd_flags |=  BRK;
+	else
+		kbd_flags &= ~BRK;
+
+	if ((scan_code == 0xe1) || (kbd_flags & E1)) {
+		if (scan_code == 0xe1) {
+			kbd_flags ^= BRK;    /* reset the break flag */
+			kbd_flags ^= E1;     /* bitwise EXOR with E1 flag */
+		}
+		return;
+	}
+
+	scan_code &= 0x7f;
+
+	if (kbd_flags & EXT) {
+		int i;
+
+		kbd_flags ^= EXT;
+		for (i = 0; ext_key_map[i]; i++) {
+			if (ext_key_map[i] == scan_code) {
+				scan_code = 0x80 + i;
+				break;
+			}
+		}
+		/* not found ? */
+		if (!ext_key_map[i])
+			return;
+	}
+
+	switch (kbd_fct_map[scan_code]) {
+	case AS:
+		kbd_normal(scan_code);
+		break;
+	case SH:
+		kbd_shift(scan_code);
+		break;
+	case CN:
+		kbd_ctrl(scan_code);
+		break;
+	case NM:
+		kbd_num(scan_code);
+		break;
+	case AK:
+		kbd_alt(scan_code);
+		break;
+	case CP:
+		kbd_caps(scan_code);
+		break;
+	case ST:
+		kbd_scroll(scan_code);
+		break;
+	}
+	return;
+}
+
 /******************************************************************************/
 
+static int kbd_reset(void)
+{
+	/* KB Reset */
+	if (kbd_input_empty() == 0)
+		return -1;
+
+	out8(I8042_DATA_REG, 0xff);
+
+	if (wait_until_kbd_output_full() == 0)
+		return -1;
+
+	if (in8(I8042_DATA_REG) != 0xfa) /* ACK */
+		return -1;
+
+	if (wait_until_kbd_output_full() == 0)
+		return -1;
+
+	if (in8(I8042_DATA_REG) != 0xaa) /* Test Pass*/
+		return -1;
+
+	if (kbd_input_empty() == 0)
+		return -1;
+
+	/* Set KBC mode */
+	out8(I8042_COMMAND_REG, 0x60);
+
+	if (kbd_input_empty() == 0)
+		return -1;
+
+	out8(I8042_DATA_REG, 0x45);
+
+	if (kbd_input_empty() == 0)
+		return -1;
+
+	/* Enable Keyboard */
+	out8(I8042_COMMAND_REG, 0xae);
+	if (kbd_input_empty() == 0)
+		return -1;
+
+	out8(I8042_COMMAND_REG, 0x60);
+	if (kbd_input_empty() == 0)
+		return -1;
+
+	out8(I8042_DATA_REG, 0xf4);
+	if (kbd_input_empty() == 0)
+		return -1;
+
+	return 0;
+}
+
 static int kbd_controller_present(void)
 {
 	return in8(I8042_STATUS_REG) != 0xff;
@@ -342,7 +552,6 @@ int i8042_disable(void)
 	return 0;
 }
 
-
 /*******************************************************************************
  *
  * i8042_kbd_init - reset keyboard and init state flags
@@ -439,258 +648,3 @@ int i8042_getc(struct stdio_dev *dev)
 	kbd_input = -1;
 	return ret_chr;
 }
-
-
-/******************************************************************************/
-
-static void kbd_conv_char(unsigned char scan_code)
-{
-	if (scan_code == 0xe0) {
-		kbd_flags |= EXT;
-		return;
-	}
-
-	/* if high bit of scan_code, set break flag */
-	if (scan_code & 0x80)
-		kbd_flags |=  BRK;
-	else
-		kbd_flags &= ~BRK;
-
-	if ((scan_code == 0xe1) || (kbd_flags & E1)) {
-		if (scan_code == 0xe1) {
-			kbd_flags ^= BRK;    /* reset the break flag */
-			kbd_flags ^= E1;     /* bitwise EXOR with E1 flag */
-		}
-		return;
-	}
-
-	scan_code &= 0x7f;
-
-	if (kbd_flags & EXT) {
-		int i;
-
-		kbd_flags ^= EXT;
-		for (i = 0; ext_key_map[i]; i++) {
-			if (ext_key_map[i] == scan_code) {
-				scan_code = 0x80 + i;
-				break;
-			}
-		}
-		/* not found ? */
-		if (!ext_key_map[i])
-			return;
-	}
-
-	switch (kbd_fct_map[scan_code]) {
-	case AS:
-		kbd_normal(scan_code);
-		break;
-	case SH:
-		kbd_shift(scan_code);
-		break;
-	case CN:
-		kbd_ctrl(scan_code);
-		break;
-	case NM:
-		kbd_num(scan_code);
-		break;
-	case CP:
-		kbd_caps(scan_code);
-		break;
-	case ST:
-		kbd_scroll(scan_code);
-		break;
-	case AK:
-		kbd_alt(scan_code);
-		break;
-	}
-	return;
-}
-
-
-/******************************************************************************/
-
-static void kbd_normal(unsigned char scan_code)
-{
-	unsigned char chr;
-
-	if ((kbd_flags & BRK) == NORMAL) {
-		chr = kbd_key_map[kbd_mapping][kbd_state][scan_code];
-		if ((chr == 0xff) || (chr == 0x00))
-			return;
-
-		/* if caps lock convert upper to lower */
-		if (((kbd_flags & CAPS) == CAPS) &&
-				(chr >= 'a' && chr <= 'z')) {
-			chr -= 'a' - 'A';
-		}
-		kbd_input = chr;
-	}
-}
-
-
-/******************************************************************************/
-
-static void kbd_shift(unsigned char scan_code)
-{
-	if ((kbd_flags & BRK) == BRK) {
-		kbd_state = AS;
-		kbd_flags &= (~SHIFT);
-	} else {
-		kbd_state = SH;
-		kbd_flags |= SHIFT;
-	}
-}
-
-
-/******************************************************************************/
-
-static void kbd_ctrl(unsigned char scan_code)
-{
-	if ((kbd_flags & BRK) == BRK) {
-		kbd_state = AS;
-		kbd_flags &= (~CTRL);
-	} else {
-		kbd_state = CN;
-		kbd_flags |= CTRL;
-	}
-}
-
-
-/******************************************************************************/
-
-static void kbd_caps(unsigned char scan_code)
-{
-	if ((kbd_flags & BRK) == NORMAL) {
-		kbd_flags ^= CAPS;
-		kbd_led_set();    /* update keyboard LED */
-	}
-}
-
-
-/******************************************************************************/
-
-static void kbd_num(unsigned char scan_code)
-{
-	if ((kbd_flags & BRK) == NORMAL) {
-		kbd_flags ^= NUM;
-		kbd_state = (kbd_flags & NUM) ? AS : NM;
-		kbd_led_set();    /* update keyboard LED */
-	}
-}
-
-
-/******************************************************************************/
-
-static void kbd_scroll(unsigned char scan_code)
-{
-	if ((kbd_flags & BRK) == NORMAL) {
-		kbd_flags ^= STP;
-		kbd_led_set();    /* update keyboard LED */
-		if (kbd_flags & STP)
-			kbd_input = 0x13;
-		else
-			kbd_input = 0x11;
-	}
-}
-
-/******************************************************************************/
-
-static void kbd_alt(unsigned char scan_code)
-{
-	if ((kbd_flags & BRK) == BRK) {
-		kbd_state = AS;
-		kbd_flags &= (~ALT);
-	} else {
-		kbd_state = AK;
-		kbd_flags &= ALT;
-	}
-}
-
-
-/******************************************************************************/
-
-static void kbd_led_set(void)
-{
-	kbd_input_empty();
-	out8(I8042_DATA_REG, 0xed);    /* SET LED command */
-	kbd_input_empty();
-	out8(I8042_DATA_REG, (kbd_flags & 0x7));    /* LED bits only */
-}
-
-
-/******************************************************************************/
-
-static int kbd_input_empty(void)
-{
-	int kbdTimeout = KBD_TIMEOUT * 1000;
-
-	while ((in8(I8042_STATUS_REG) & I8042_STATUS_IN_DATA) && kbdTimeout--)
-		udelay(1);
-
-	return kbdTimeout != -1;
-}
-
-/******************************************************************************/
-
-static int wait_until_kbd_output_full(void)
-{
-	int kbdTimeout = KBD_TIMEOUT * 1000;
-
-	while (((in8(I8042_STATUS_REG) & 0x01) == 0) && kbdTimeout--)
-		udelay(1);
-
-	return kbdTimeout != -1;
-}
-
-/******************************************************************************/
-
-static int kbd_reset(void)
-{
-	/* KB Reset */
-	if (kbd_input_empty() == 0)
-		return -1;
-
-	out8(I8042_DATA_REG, 0xff);
-
-	if (wait_until_kbd_output_full() == 0)
-		return -1;
-
-	if (in8(I8042_DATA_REG) != 0xfa) /* ACK */
-		return -1;
-
-	if (wait_until_kbd_output_full() == 0)
-		return -1;
-
-	if (in8(I8042_DATA_REG) != 0xaa) /* Test Pass*/
-		return -1;
-
-	if (kbd_input_empty() == 0)
-		return -1;
-
-	/* Set KBC mode */
-	out8(I8042_COMMAND_REG, 0x60);
-
-	if (kbd_input_empty() == 0)
-		return -1;
-
-	out8(I8042_DATA_REG, 0x45);
-
-	if (kbd_input_empty() == 0)
-		return -1;
-
-	/* Enable Keyboard */
-	out8(I8042_COMMAND_REG, 0xae);
-	if (kbd_input_empty() == 0)
-		return -1;
-
-	out8(I8042_COMMAND_REG, 0x60);
-	if (kbd_input_empty() == 0)
-		return -1;
-
-	out8(I8042_DATA_REG, 0xf4);
-	if (kbd_input_empty() == 0)
-		return -1;
-
-	return 0;
-}
-- 
1.8.2.1

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

* [U-Boot] [PATCH v3 3/7] x86: i8042: Clean up the driver per coding convention
  2015-08-24  8:00 [U-Boot] [PATCH v3 1/7] x86: i8042: Remove unused codes Bin Meng
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 2/7] x86: i8042: Reorder static functions Bin Meng
@ 2015-08-24  8:00 ` Bin Meng
  2015-08-26 14:56   ` Simon Glass
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 4/7] x86: i8042: Correctly initialize the controller Bin Meng
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 20+ messages in thread
From: Bin Meng @ 2015-08-24  8:00 UTC (permalink / raw)
  To: u-boot

- Rename CamelCase variables to conform U-Boot coding convention
- Rename wait_until_kbd_output_full() to kbd_output_full()
- Change to use macros for i8042 command and control register bits

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>

---

Changes in v3: None
Changes in v2:
- Split the original single patch into 3 patches

 drivers/input/i8042.c | 230 ++++++++++++++++++++++++++------------------------
 include/i8042.h       | 103 ++++++++++++----------
 2 files changed, 177 insertions(+), 156 deletions(-)

diff --git a/drivers/input/i8042.c b/drivers/input/i8042.c
index 126b222..e8f59df 100644
--- a/drivers/input/i8042.c
+++ b/drivers/input/i8042.c
@@ -10,27 +10,30 @@
 /* includes */
 
 #include <common.h>
+#include <asm/io.h>
 #include <i8042.h>
 
 /* defines */
+#define in8(p)		inb(p)
+#define out8(p, v)	outb(v, p)
 
 #ifdef CONFIG_CONSOLE_CURSOR
 extern void console_cursor(int state);
-static int blinkCount = CONFIG_SYS_CONSOLE_BLINK_COUNT;
+static int blink_count = CONFIG_SYS_CONSOLE_BLINK_COUNT;
 static int cursor_state;
 #endif
 
 /* locals */
 
-static int  kbd_input	 = -1;		/* no input yet */
-static int  kbd_mapping	 = KBD_US;	/* default US keyboard */
-static int  kbd_flags	 = NORMAL;	/* after reset */
-static int  kbd_state;			/* unshift code */
+static int kbd_input = -1;		/* no input yet */
+static int kbd_mapping = KBD_US;	/* default US keyboard */
+static int kbd_flags = NORMAL;		/* after reset */
+static int kbd_state;			/* unshift code */
 
 static unsigned char kbd_fct_map[144] = {
 	/* kbd_fct_map table for scan code */
-	 0,  AS,  AS,  AS,  AS,  AS,  AS,  AS, /* scan  0- 7 */
-	AS,  AS,  AS,  AS,  AS,  AS,  AS,  AS, /* scan  8- F */
+	 0,  AS,  AS,  AS,  AS,  AS,  AS,  AS, /* scan 00-07 */
+	AS,  AS,  AS,  AS,  AS,  AS,  AS,  AS, /* scan 08-0F */
 	AS,  AS,  AS,  AS,  AS,  AS,  AS,  AS, /* scan 10-17 */
 	AS,  AS,  AS,  AS,  AS,  CN,  AS,  AS, /* scan 18-1F */
 	AS,  AS,  AS,  AS,  AS,  AS,  AS,  AS, /* scan 20-27 */
@@ -52,8 +55,8 @@ static unsigned char kbd_fct_map[144] = {
 static unsigned char kbd_key_map[2][5][144] = {
 	{ /* US keyboard */
 	{ /* unshift code */
-	   0, 0x1b,  '1',  '2',  '3',  '4',  '5',  '6', /* scan  0- 7 */
-	 '7',  '8',  '9',  '0',  '-',  '=', 0x08, '\t', /* scan  8- F */
+	   0, 0x1b,  '1',  '2',  '3',  '4',  '5',  '6', /* scan 00-07 */
+	 '7',  '8',  '9',  '0',  '-',  '=', 0x08, '\t', /* scan 08-0F */
 	 'q',  'w',  'e',  'r',  't',  'y',  'u',  'i', /* scan 10-17 */
 	 'o',  'p',  '[',  ']', '\r',   CN,  'a',  's', /* scan 18-1F */
 	 'd',  'f',  'g',  'h',  'j',  'k',  'l',  ';', /* scan 20-27 */
@@ -72,8 +75,8 @@ static unsigned char kbd_key_map[2][5][144] = {
 	   0,  'D',  'C',    0,  'B',    0,  '@',  'P'  /* extended */
 	},
 	{ /* shift code */
-	   0, 0x1b,  '!',  '@',  '#',  '$',  '%',  '^', /* scan  0- 7 */
-	 '&',  '*',  '(',  ')',  '_',  '+', 0x08, '\t', /* scan  8- F */
+	   0, 0x1b,  '!',  '@',  '#',  '$',  '%',  '^', /* scan 00-07 */
+	 '&',  '*',  '(',  ')',  '_',  '+', 0x08, '\t', /* scan 08-0F */
 	 'Q',  'W',  'E',  'R',  'T',  'Y',  'U',  'I', /* scan 10-17 */
 	 'O',  'P',  '{',  '}', '\r',   CN,  'A',  'S', /* scan 18-1F */
 	 'D',  'F',  'G',  'H',  'J',  'K',  'L',  ':', /* scan 20-27 */
@@ -92,8 +95,8 @@ static unsigned char kbd_key_map[2][5][144] = {
 	   0,  'D',  'C',    0,  'B',    0,  '@',  'P'  /* extended */
 	},
 	{ /* control code */
-	0xff, 0x1b, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, /* scan  0- 7 */
-	0x1e, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, '\t', /* scan  8- F */
+	0xff, 0x1b, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, /* scan 00-07 */
+	0x1e, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, '\t', /* scan 08-0F */
 	0x11, 0x17, 0x05, 0x12, 0x14, 0x19, 0x15, 0x09, /* scan 10-17 */
 	0x0f, 0x10, 0x1b, 0x1d, '\r',   CN, 0x01, 0x13, /* scan 18-1F */
 	0x04, 0x06, 0x07, 0x08, 0x0a, 0x0b, 0x0c, 0xff, /* scan 20-27 */
@@ -112,8 +115,8 @@ static unsigned char kbd_key_map[2][5][144] = {
 	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff  /* extended */
 	},
 	{ /* non numeric code */
-	   0, 0x1b,  '1',  '2',  '3',  '4',  '5',  '6', /* scan  0- 7 */
-	 '7',  '8',  '9',  '0',  '-',  '=', 0x08, '\t', /* scan  8- F */
+	   0, 0x1b,  '1',  '2',  '3',  '4',  '5',  '6', /* scan 00-07 */
+	 '7',  '8',  '9',  '0',  '-',  '=', 0x08, '\t', /* scan 08-0F */
 	 'q',  'w',  'e',  'r',  't',  'y',  'u',  'i', /* scan 10-17 */
 	 'o',  'p',  '[',  ']', '\r',   CN,  'a',  's', /* scan 18-1F */
 	 'd',  'f',  'g',  'h',  'j',  'k',  'l',  ';', /* scan 20-27 */
@@ -132,30 +135,30 @@ static unsigned char kbd_key_map[2][5][144] = {
 	   0,  'D',  'C',    0,  'B',    0,  '@',  'P'  /* extended */
 	},
 	{ /* right alt mode - not used in US keyboard */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan  0 - 7 */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 8 - F */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 10 -17 */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 18 -1F */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 20 -27 */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 28 -2F */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 30 -37 */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 38 -3F */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 40 -47 */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 48 -4F */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 50 -57 */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 58 -5F */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 60 -67 */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 68 -6F */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 70 -77 */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 78 -7F */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 00-07 */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 08-0F */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 10-17 */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 18-1F */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 20-27 */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 28-2F */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 30-37 */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 38-3F */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 40-47 */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 48-4F */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 50-57 */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 58-5F */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 60-67 */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 68-6F */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 70-77 */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 78-7F */
 	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* extended */
 	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff  /* extended */
 	}
 	},
-	{ /* german keyboard */
+	{ /* German keyboard */
 	{ /* unshift code */
-	   0, 0x1b,  '1',  '2',  '3',  '4',  '5',  '6', /* scan  0- 7 */
-	 '7',  '8',  '9',  '0', 0xe1, '\'', 0x08, '\t', /* scan  8- F */
+	   0, 0x1b,  '1',  '2',  '3',  '4',  '5',  '6', /* scan 00-07 */
+	 '7',  '8',  '9',  '0', 0xe1, '\'', 0x08, '\t', /* scan 08-0F */
 	 'q',  'w',  'e',  'r',  't',  'z',  'u',  'i', /* scan 10-17 */
 	 'o',  'p', 0x81,  '+', '\r',   CN,  'a',  's', /* scan 18-1F */
 	 'd',  'f',  'g',  'h',  'j',  'k',  'l', 0x94, /* scan 20-27 */
@@ -174,8 +177,8 @@ static unsigned char kbd_key_map[2][5][144] = {
 	   0,  'D',  'C',    0,  'B',    0,  '@',  'P'  /* extended */
 	},
 	{ /* shift code */
-	   0, 0x1b,  '!',  '"', 0x15,  '$',  '%',  '&', /* scan  0- 7 */
-	 '/',  '(',  ')',  '=',  '?',  '`', 0x08, '\t', /* scan  8- F */
+	   0, 0x1b,  '!',  '"', 0x15,  '$',  '%',  '&', /* scan 00-07 */
+	 '/',  '(',  ')',  '=',  '?',  '`', 0x08, '\t', /* scan 08-0F */
 	 'Q',  'W',  'E',  'R',  'T',  'Z',  'U',  'I', /* scan 10-17 */
 	 'O',  'P', 0x9a,  '*', '\r',   CN,  'A',  'S', /* scan 18-1F */
 	 'D',  'F',  'G',  'H',  'J',  'K',  'L', 0x99, /* scan 20-27 */
@@ -194,8 +197,8 @@ static unsigned char kbd_key_map[2][5][144] = {
 	   0,  'D',  'C',    0,  'B',    0,  '@',  'P'  /* extended */
 	},
 	{ /* control code */
-	0xff, 0x1b, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, /* scan  0- 7 */
-	0x1e, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, '\t', /* scan  8- F */
+	0xff, 0x1b, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, /* scan 00-07 */
+	0x1e, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, '\t', /* scan 08-0F */
 	0x11, 0x17, 0x05, 0x12, 0x14, 0x19, 0x15, 0x09, /* scan 10-17 */
 	0x0f, 0x10, 0x1b, 0x1d, '\r',   CN, 0x01, 0x13, /* scan 18-1F */
 	0x04, 0x06, 0x07, 0x08, 0x0a, 0x0b, 0x0c, 0xff, /* scan 20-27 */
@@ -214,8 +217,8 @@ static unsigned char kbd_key_map[2][5][144] = {
 	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff  /* extended */
 	},
 	{ /* non numeric code */
-	   0, 0x1b,  '1',  '2',  '3',  '4',  '5',  '6', /* scan  0- 7 */
-	 '7',  '8',  '9',  '0', 0xe1, '\'', 0x08, '\t', /* scan  8- F */
+	   0, 0x1b,  '1',  '2',  '3',  '4',  '5',  '6', /* scan 00-07 */
+	 '7',  '8',  '9',  '0', 0xe1, '\'', 0x08, '\t', /* scan 08-0F */
 	 'q',  'w',  'e',  'r',  't',  'z',  'u',  'i', /* scan 10-17 */
 	 'o',  'p', 0x81,  '+', '\r',   CN,  'a',  's', /* scan 18-1F */
 	 'd',  'f',  'g',  'h',  'j',  'k',  'l', 0x94, /* scan 20-27 */
@@ -233,23 +236,23 @@ static unsigned char kbd_key_map[2][5][144] = {
 	'\r',   CN,  '/',  '*',  ' ',   ST,  'F',  'A', /* extended */
 	   0,  'D',  'C',    0,  'B',    0,  '@',  'P'  /* extended */
 	},
-	{ /* Right alt mode - is used in German keyboard */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan  0 - 7 */
-	 '{',  '[',  ']',  '}', '\\', 0xff, 0xff, 0xff, /* scan  8 - F */
-	 '@', 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 10 -17 */
-	0xff, 0xff, 0xff,  '~', 0xff, 0xff, 0xff, 0xff, /* scan 18 -1F */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 20 -27 */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 28 -2F */
-	0xff, 0xff, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 30 -37 */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 38 -3F */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 40 -47 */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 48 -4F */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  '|', 0xff, /* scan 50 -57 */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 58 -5F */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 60 -67 */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 68 -6F */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 70 -77 */
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 78 -7F */
+	{ /* right alt mode - is used in German keyboard */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 00-07 */
+	 '{',  '[',  ']',  '}', '\\', 0xff, 0xff, 0xff, /* scan 08-0F */
+	 '@', 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 10-17 */
+	0xff, 0xff, 0xff,  '~', 0xff, 0xff, 0xff, 0xff, /* scan 18-1F */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 20-27 */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 28-2F */
+	0xff, 0xff, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 30-37 */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 38-3F */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 40-47 */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 48-4F */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  '|', 0xff, /* scan 50-57 */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 58-5F */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 60-67 */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 68-6F */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 70-77 */
+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* scan 78-7F */
 	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* extended */
 	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff  /* extended */
 	}
@@ -278,30 +281,30 @@ static unsigned char ext_key_map[] = {
 
 static int kbd_input_empty(void)
 {
-	int kbdTimeout = KBD_TIMEOUT * 1000;
+	int kbd_timeout = KBD_TIMEOUT * 1000;
 
-	while ((in8(I8042_STATUS_REG) & I8042_STATUS_IN_DATA) && kbdTimeout--)
+	while ((in8(I8042_STS_REG) & STATUS_IBF) && kbd_timeout--)
 		udelay(1);
 
-	return kbdTimeout != -1;
+	return kbd_timeout != -1;
 }
 
-static int wait_until_kbd_output_full(void)
+static int kbd_output_full(void)
 {
-	int kbdTimeout = KBD_TIMEOUT * 1000;
+	int kbd_timeout = KBD_TIMEOUT * 1000;
 
-	while (((in8(I8042_STATUS_REG) & 0x01) == 0) && kbdTimeout--)
+	while (((in8(I8042_STS_REG) & STATUS_OBF) == 0) && kbd_timeout--)
 		udelay(1);
 
-	return kbdTimeout != -1;
+	return kbd_timeout != -1;
 }
 
 static void kbd_led_set(void)
 {
 	kbd_input_empty();
-	out8(I8042_DATA_REG, 0xed);    /* SET LED command */
+	out8(I8042_DATA_REG, CMD_SET_KBD_LED);
 	kbd_input_empty();
-	out8(I8042_DATA_REG, (kbd_flags & 0x7));    /* LED bits only */
+	out8(I8042_DATA_REG, (kbd_flags & 0x7));
 }
 
 static void kbd_normal(unsigned char scan_code)
@@ -315,7 +318,7 @@ static void kbd_normal(unsigned char scan_code)
 
 		/* if caps lock convert upper to lower */
 		if (((kbd_flags & CAPS) == CAPS) &&
-				(chr >= 'a' && chr <= 'z')) {
+		    (chr >= 'a' && chr <= 'z')) {
 			chr -= 'a' - 'A';
 		}
 		kbd_input = chr;
@@ -349,7 +352,7 @@ static void kbd_num(unsigned char scan_code)
 	if ((kbd_flags & BRK) == NORMAL) {
 		kbd_flags ^= NUM;
 		kbd_state = (kbd_flags & NUM) ? AS : NM;
-		kbd_led_set();    /* update keyboard LED */
+		kbd_led_set();
 	}
 }
 
@@ -368,7 +371,7 @@ static void kbd_caps(unsigned char scan_code)
 {
 	if ((kbd_flags & BRK) == NORMAL) {
 		kbd_flags ^= CAPS;
-		kbd_led_set();    /* update keyboard LED */
+		kbd_led_set();
 	}
 }
 
@@ -376,7 +379,7 @@ static void kbd_scroll(unsigned char scan_code)
 {
 	if ((kbd_flags & BRK) == NORMAL) {
 		kbd_flags ^= STP;
-		kbd_led_set();    /* update keyboard LED */
+		kbd_led_set();
 		if (kbd_flags & STP)
 			kbd_input = 0x13;
 		else
@@ -399,8 +402,8 @@ static void kbd_conv_char(unsigned char scan_code)
 
 	if ((scan_code == 0xe1) || (kbd_flags & E1)) {
 		if (scan_code == 0xe1) {
-			kbd_flags ^= BRK;    /* reset the break flag */
-			kbd_flags ^= E1;     /* bitwise EXOR with E1 flag */
+			kbd_flags ^= BRK;	/* reset the break flag */
+			kbd_flags ^= E1;	/* bitwise EXOR with E1 flag */
 		}
 		return;
 	}
@@ -445,55 +448,57 @@ static void kbd_conv_char(unsigned char scan_code)
 		kbd_scroll(scan_code);
 		break;
 	}
+
 	return;
 }
 
-/******************************************************************************/
-
 static int kbd_reset(void)
 {
 	/* KB Reset */
 	if (kbd_input_empty() == 0)
 		return -1;
 
-	out8(I8042_DATA_REG, 0xff);
+	out8(I8042_DATA_REG, CMD_RESET_KBD);
 
-	if (wait_until_kbd_output_full() == 0)
+	if (kbd_output_full() == 0)
 		return -1;
 
-	if (in8(I8042_DATA_REG) != 0xfa) /* ACK */
+	if (in8(I8042_DATA_REG) != KBD_ACK)
 		return -1;
 
-	if (wait_until_kbd_output_full() == 0)
+	if (kbd_output_full() == 0)
 		return -1;
 
-	if (in8(I8042_DATA_REG) != 0xaa) /* Test Pass*/
+	if (in8(I8042_DATA_REG) != KBD_POR)
 		return -1;
 
 	if (kbd_input_empty() == 0)
 		return -1;
 
 	/* Set KBC mode */
-	out8(I8042_COMMAND_REG, 0x60);
+	out8(I8042_CMD_REG, CMD_WR_CONFIG);
 
 	if (kbd_input_empty() == 0)
 		return -1;
 
-	out8(I8042_DATA_REG, 0x45);
+	out8(I8042_DATA_REG,
+	     CONFIG_AT_TRANS | CONFIG_SET_BIST | CONFIG_KIRQ_EN);
 
 	if (kbd_input_empty() == 0)
 		return -1;
 
 	/* Enable Keyboard */
-	out8(I8042_COMMAND_REG, 0xae);
+	out8(I8042_CMD_REG, CMD_KBD_EN);
 	if (kbd_input_empty() == 0)
 		return -1;
 
-	out8(I8042_COMMAND_REG, 0x60);
+	out8(I8042_CMD_REG, CMD_WR_CONFIG);
 	if (kbd_input_empty() == 0)
 		return -1;
 
-	out8(I8042_DATA_REG, 0xf4);
+	out8(I8042_DATA_REG,
+	     CONFIG_AT_TRANS | CONFIG_MCLK_DIS |
+	     CONFIG_KCLK_DIS | CONFIG_SET_BIST);
 	if (kbd_input_empty() == 0)
 		return -1;
 
@@ -502,7 +507,7 @@ static int kbd_reset(void)
 
 static int kbd_controller_present(void)
 {
-	return in8(I8042_STATUS_REG) != 0xff;
+	return in8(I8042_STS_REG) != 0xff;
 }
 
 /*
@@ -520,18 +525,18 @@ void i8042_flush(void)
 	int timeout;
 
 	/*
-	 * The delay is to give the keyboard controller some time to fill the
-	 * next byte.
+	 * The delay is to give the keyboard controller some time
+	 * to fill the next byte.
 	 */
 	while (1) {
-		timeout = 100;  /* wait for no longer than 100us */
-		while (timeout > 0 && !(in8(I8042_STATUS_REG) & 0x01)) {
+		timeout = 100;	/* wait for no longer than 100us */
+		while (timeout > 0 && !(in8(I8042_STS_REG) & STATUS_OBF)) {
 			udelay(1);
 			timeout--;
 		}
 
-		/* Try to pull next byte if not timeout. */
-		if (in8(I8042_STATUS_REG) & 0x01)
+		/* Try to pull next byte if not timeout */
+		if (in8(I8042_STS_REG) & STATUS_OBF)
 			in8(I8042_DATA_REG);
 		else
 			break;
@@ -544,7 +549,7 @@ int i8042_disable(void)
 		return -1;
 
 	/* Disable keyboard */
-	out8(I8042_COMMAND_REG, 0xad);
+	out8(I8042_CMD_REG, CMD_KBD_DIS);
 
 	if (kbd_input_empty() == 0)
 		return -1;
@@ -552,17 +557,16 @@ int i8042_disable(void)
 	return 0;
 }
 
-/*******************************************************************************
- *
- * i8042_kbd_init - reset keyboard and init state flags
- */
+/* i8042_kbd_init - reset keyboard and init state flags */
 int i8042_kbd_init(void)
 {
 	int keymap, try;
 	char *penv;
 
-	if (!kbd_controller_present() || board_i8042_skip())
+	if (!kbd_controller_present() || board_i8042_skip()) {
+		debug("i8042 keyboard controller is not present\n");
 		return -1;
+	}
 
 	/* Init keyboard device (default US layout) */
 	keymap = KBD_US;
@@ -578,32 +582,33 @@ int i8042_kbd_init(void)
 			kbd_flags   = NORMAL;
 			kbd_state   = 0;
 			kbd_led_set();
+
 			return 0;
 		}
 	}
+
 	return -1;
 }
 
-
-/*******************************************************************************
- *
+/*
  * i8042_tstc - test if keyboard input is available
- *		option: cursor blinking if called in a loop
+ *
+ * option: cursor blinking if called in a loop
  */
 int i8042_tstc(struct stdio_dev *dev)
 {
 	unsigned char scan_code = 0;
 
 #ifdef CONFIG_CONSOLE_CURSOR
-	if (--blinkCount == 0) {
+	if (--blink_count == 0) {
 		cursor_state ^= 1;
 		console_cursor(cursor_state);
-		blinkCount = CONFIG_SYS_CONSOLE_BLINK_COUNT;
+		blink_count = CONFIG_SYS_CONSOLE_BLINK_COUNT;
 		udelay(10);
 	}
 #endif
 
-	if ((in8(I8042_STATUS_REG) & 0x01) == 0) {
+	if ((in8(I8042_STS_REG) & STATUS_OBF) == 0) {
 		return 0;
 	} else {
 		scan_code = in8(I8042_DATA_REG);
@@ -615,14 +620,14 @@ int i8042_tstc(struct stdio_dev *dev)
 		if (kbd_input != -1)
 			return 1;
 	}
+
 	return 0;
 }
 
-
-/*******************************************************************************
- *
+/*
  * i8042_getc - wait till keyboard input is available
- *		option: turn on/off cursor while waiting
+ *
+ * option: turn on/off cursor while waiting
  */
 int i8042_getc(struct stdio_dev *dev)
 {
@@ -630,21 +635,22 @@ int i8042_getc(struct stdio_dev *dev)
 	unsigned char scan_code;
 
 	while (kbd_input == -1) {
-		while ((in8(I8042_STATUS_REG) & 0x01) == 0) {
+		while ((in8(I8042_STS_REG) & STATUS_OBF) == 0) {
 #ifdef CONFIG_CONSOLE_CURSOR
-			if (--blinkCount == 0) {
+			if (--blink_count == 0) {
 				cursor_state ^= 1;
 				console_cursor(cursor_state);
-				blinkCount = CONFIG_SYS_CONSOLE_BLINK_COUNT;
+				blink_count = CONFIG_SYS_CONSOLE_BLINK_COUNT;
 			}
 			udelay(10);
 #endif
 		}
 		scan_code = in8(I8042_DATA_REG);
 		if (scan_code != 0xfa)
-			kbd_conv_char (scan_code);
+			kbd_conv_char(scan_code);
 	}
 	ret_chr = kbd_input;
 	kbd_input = -1;
+
 	return ret_chr;
 }
diff --git a/include/i8042.h b/include/i8042.h
index 58c85ec..e0afce1 100644
--- a/include/i8042.h
+++ b/include/i8042.h
@@ -10,52 +10,67 @@
 #ifndef _I8042_H_
 #define _I8042_H_
 
-#ifdef __I386__
-#include <common.h>
-#include <asm/io.h>
-#define in8(p) inb(p)
-#define out8(p,v) outb(v,p)
-#endif
-
 /* defines */
 
-#define I8042_DATA_REG      (CONFIG_SYS_ISA_IO + 0x0060)    /* keyboard i/o buffer */
-#define I8042_STATUS_REG    (CONFIG_SYS_ISA_IO + 0x0064)    /* keyboard status read */
-#define I8042_COMMAND_REG   (CONFIG_SYS_ISA_IO + 0x0064)    /* keyboard ctrl write */
-
-enum {
-	/* Output register (I8042_DATA_REG) has data for system */
-	I8042_STATUS_OUT_DATA	= 1 << 0,
-	I8042_STATUS_IN_DATA	= 1 << 1,
-};
-
-#define KBD_US              0        /* default US layout */
-#define KBD_GER             1        /* german layout */
-
-#define KBD_TIMEOUT         1000     /* 1 sec */
-#define KBD_RESET_TRIES     3
-
-#define AS                  0        /* normal character index */
-#define SH                  1        /* shift index */
-#define CN                  2        /* control index */
-#define NM                  3        /* numeric lock index */
-#define AK                  4        /* right alt key */
-#define CP                  5        /* capslock index */
-#define ST                  6        /* stop output index */
-#define EX                  7        /* extended code index */
-#define ES                  8        /* escape and extended code index */
-
-#define NORMAL              0x0000    /* normal key */
-#define STP                 0x0001    /* scroll lock stop output*/
-#define NUM                 0x0002    /* numeric lock */
-#define CAPS                0x0004    /* capslock */
-#define SHIFT               0x0008    /* shift */
-#define CTRL                0x0010    /* control*/
-#define EXT                 0x0020    /* extended scan code 0xe0 */
-#define ESC                 0x0040    /* escape key press */
-#define E1                  0x0080    /* extended scan code 0xe1 */
-#define BRK                 0x0100    /* make break flag for keyboard */
-#define ALT                 0x0200    /* right alt */
+#define I8042_DATA_REG	0x60	/* keyboard i/o buffer */
+#define I8042_STS_REG	0x64	/* keyboard status read */
+#define I8042_CMD_REG	0x64	/* keyboard ctrl write */
+
+/* Status register bit defines */
+#define STATUS_OBF	(1 << 0)
+#define STATUS_IBF	(1 << 1)
+
+/* Configuration byte bit defines */
+#define CONFIG_KIRQ_EN	(1 << 0)
+#define CONFIG_MIRQ_EN	(1 << 1)
+#define CONFIG_SET_BIST	(1 << 2)
+#define CONFIG_KCLK_DIS	(1 << 4)
+#define CONFIG_MCLK_DIS	(1 << 5)
+#define CONFIG_AT_TRANS	(1 << 6)
+
+/* i8042 commands */
+#define CMD_RD_CONFIG	0x20	/* read configuration byte */
+#define CMD_WR_CONFIG	0x60	/* write configuration byte */
+#define CMD_SELF_TEST	0xaa	/* controller self-test */
+#define CMD_KBD_DIS	0xad	/* keyboard disable */
+#define CMD_KBD_EN	0xae	/* keyboard enable */
+#define CMD_SET_KBD_LED	0xed	/* set keyboard led */
+#define CMD_RESET_KBD	0xff	/* reset keyboard */
+
+/* i8042 command result */
+#define KBC_TEST_OK	0x55
+#define KBD_ACK		0xfa
+#define KBD_POR		0xaa
+
+/* keyboard scan codes */
+
+#define KBD_US		0	/* default US layout */
+#define KBD_GER		1	/* german layout */
+
+#define KBD_TIMEOUT	1000	/* 1 sec */
+#define KBD_RESET_TRIES	3
+
+#define AS		0	/* normal character index */
+#define SH		1	/* shift index */
+#define CN		2	/* control index */
+#define NM		3	/* numeric lock index */
+#define AK		4	/* right alt key */
+#define CP		5	/* capslock index */
+#define ST		6	/* stop output index */
+#define EX		7	/* extended code index */
+#define ES		8	/* escape and extended code index */
+
+#define NORMAL		0x0000	/* normal key */
+#define STP		0x0001	/* scroll lock stop output*/
+#define NUM		0x0002	/* numeric lock */
+#define CAPS		0x0004	/* capslock */
+#define SHIFT		0x0008	/* shift */
+#define CTRL		0x0010	/* control*/
+#define EXT		0x0020	/* extended scan code 0xe0 */
+#define ESC		0x0040	/* escape key press */
+#define E1		0x0080	/* extended scan code 0xe1 */
+#define BRK		0x0100	/* make break flag for keyboard */
+#define ALT		0x0200	/* right alt */
 
 /* exports */
 
-- 
1.8.2.1

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

* [U-Boot] [PATCH v3 4/7] x86: i8042: Correctly initialize the controller
  2015-08-24  8:00 [U-Boot] [PATCH v3 1/7] x86: i8042: Remove unused codes Bin Meng
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 2/7] x86: i8042: Reorder static functions Bin Meng
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 3/7] x86: i8042: Clean up the driver per coding convention Bin Meng
@ 2015-08-24  8:00 ` Bin Meng
  2015-08-26 14:56   ` Simon Glass
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 5/7] video: cfb_console: Allow VGA device to work without i8042 keyboard Bin Meng
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 20+ messages in thread
From: Bin Meng @ 2015-08-24  8:00 UTC (permalink / raw)
  To: u-boot

The existing i8042 keyboard controller driver has some issues.
First of all, it does not issue a self-test command (0xaa) to the
controller at the very beginning. Without this, the controller
does not respond to any command at all. Secondly, it initializes
the configuration byte register to turn on the keyboard's interrupt,
as U-Boot does not normally allow interrupts to be processed.
Finally, at the end of the initialization routine, it wrongly
sets the controller to disable all interfaces including both
keyboard and mouse.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>

---

Changes in v3:
- Fix commit message per Simon's comments

Changes in v2:
- Reorder this patch to follow the i8042 driver clean up patches

 drivers/input/i8042.c | 43 +++++++++++++++++++++----------------------
 1 file changed, 21 insertions(+), 22 deletions(-)

diff --git a/drivers/input/i8042.c b/drivers/input/i8042.c
index e8f59df..9b5fa32 100644
--- a/drivers/input/i8042.c
+++ b/drivers/input/i8042.c
@@ -454,51 +454,50 @@ static void kbd_conv_char(unsigned char scan_code)
 
 static int kbd_reset(void)
 {
-	/* KB Reset */
+	u8 config;
+
+	/* controller self test */
 	if (kbd_input_empty() == 0)
 		return -1;
+	out8(I8042_CMD_REG, CMD_SELF_TEST);
+	if (kbd_output_full() == 0)
+		return -1;
+	if (in8(I8042_DATA_REG) != KBC_TEST_OK)
+		return -1;
 
+	/* keyboard reset */
+	if (kbd_input_empty() == 0)
+		return -1;
 	out8(I8042_DATA_REG, CMD_RESET_KBD);
-
 	if (kbd_output_full() == 0)
 		return -1;
-
 	if (in8(I8042_DATA_REG) != KBD_ACK)
 		return -1;
-
 	if (kbd_output_full() == 0)
 		return -1;
-
 	if (in8(I8042_DATA_REG) != KBD_POR)
 		return -1;
 
+	/* set AT translation and disable irq */
 	if (kbd_input_empty() == 0)
 		return -1;
-
-	/* Set KBC mode */
-	out8(I8042_CMD_REG, CMD_WR_CONFIG);
-
-	if (kbd_input_empty() == 0)
+	out8(I8042_CMD_REG, CMD_RD_CONFIG);
+	if (kbd_output_full() == 0)
 		return -1;
-
-	out8(I8042_DATA_REG,
-	     CONFIG_AT_TRANS | CONFIG_SET_BIST | CONFIG_KIRQ_EN);
-
+	config = in8(I8042_DATA_REG);
+	config |= CONFIG_AT_TRANS;
+	config &= ~(CONFIG_KIRQ_EN | CONFIG_MIRQ_EN);
 	if (kbd_input_empty() == 0)
 		return -1;
-
-	/* Enable Keyboard */
-	out8(I8042_CMD_REG, CMD_KBD_EN);
+	out8(I8042_CMD_REG, CMD_WR_CONFIG);
 	if (kbd_input_empty() == 0)
 		return -1;
+	out8(I8042_DATA_REG, config);
 
-	out8(I8042_CMD_REG, CMD_WR_CONFIG);
+	/* enable keyboard */
 	if (kbd_input_empty() == 0)
 		return -1;
-
-	out8(I8042_DATA_REG,
-	     CONFIG_AT_TRANS | CONFIG_MCLK_DIS |
-	     CONFIG_KCLK_DIS | CONFIG_SET_BIST);
+	out8(I8042_CMD_REG, CMD_KBD_EN);
 	if (kbd_input_empty() == 0)
 		return -1;
 
-- 
1.8.2.1

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

* [U-Boot] [PATCH v3 5/7] video: cfb_console: Allow VGA device to work without i8042 keyboard
  2015-08-24  8:00 [U-Boot] [PATCH v3 1/7] x86: i8042: Remove unused codes Bin Meng
                   ` (2 preceding siblings ...)
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 4/7] x86: i8042: Correctly initialize the controller Bin Meng
@ 2015-08-24  8:00 ` Bin Meng
  2015-08-25  4:13   ` Simon Glass
  2015-08-25  7:45   ` Anatolij Gustschin
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 6/7] x86: crownbay: Enable on-board SMSC superio keyboard controller Bin Meng
                   ` (2 subsequent siblings)
  6 siblings, 2 replies; 20+ messages in thread
From: Bin Meng @ 2015-08-24  8:00 UTC (permalink / raw)
  To: u-boot

So far if CONFIG_VGA_AS_SINGLE_DEVICE is not defined, the VGA device
will try to initialize a keyboard device (for x86, it is i8042). But
if i8042 controller initialization fails (eg: there is no keyboard
connected to the PS/2 port), drv_video_init() just simply returns.
This kills the opportunity of using a usb keyboard later with the vga
console, as the vga initialization part is actually ok, only keyboard
part fails. Change the code logic to allow this.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>

---
In the long term, we should remove CONFIG_VGA_AS_SINGLE_DEVICE and
treat the cfb_concole an output device only. The keyboard part should
be moved out of cfb_console driver and be as a input device driver
separately.

Changes in v3: None
Changes in v2: None

 drivers/video/cfb_console.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c
index 30e0317..aa7ca86 100644
--- a/drivers/video/cfb_console.c
+++ b/drivers/video/cfb_console.c
@@ -2247,16 +2247,17 @@ __weak int board_video_skip(void)
 
 int drv_video_init(void)
 {
-	int skip_dev_init;
 	struct stdio_dev console_dev;
 	bool have_keyboard;
+	bool __maybe_unused keyboard_ok = false;
 
 	/* Check if video initialization should be skipped */
 	if (board_video_skip())
 		return 0;
 
 	/* Init video chip - returns with framebuffer cleared */
-	skip_dev_init = (video_init() == -1);
+	if (video_init() == -1)
+		return 0;
 
 	if (board_cfb_skip())
 		return 0;
@@ -2272,11 +2273,9 @@ int drv_video_init(void)
 	if (have_keyboard) {
 		debug("KBD: Keyboard init ...\n");
 #if !defined(CONFIG_VGA_AS_SINGLE_DEVICE)
-		skip_dev_init |= (VIDEO_KBD_INIT_FCT == -1);
+		keyboard_ok = !(VIDEO_KBD_INIT_FCT == -1);
 #endif
 	}
-	if (skip_dev_init)
-		return 0;
 
 	/* Init vga device */
 	memset(&console_dev, 0, sizeof(console_dev));
@@ -2287,7 +2286,7 @@ int drv_video_init(void)
 	console_dev.puts = video_puts;	/* 'puts' function */
 
 #if !defined(CONFIG_VGA_AS_SINGLE_DEVICE)
-	if (have_keyboard) {
+	if (have_keyboard && keyboard_ok) {
 		/* Also init console device */
 		console_dev.flags |= DEV_FLAGS_INPUT;
 		console_dev.tstc = VIDEO_TSTC_FCT;	/* 'tstc' function */
-- 
1.8.2.1

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

* [U-Boot] [PATCH v3 6/7] x86: crownbay: Enable on-board SMSC superio keyboard controller
  2015-08-24  8:00 [U-Boot] [PATCH v3 1/7] x86: i8042: Remove unused codes Bin Meng
                   ` (3 preceding siblings ...)
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 5/7] video: cfb_console: Allow VGA device to work without i8042 keyboard Bin Meng
@ 2015-08-24  8:00 ` Bin Meng
  2015-08-26 14:56   ` Simon Glass
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 7/7] video: ct69000: Remove unused codes Bin Meng
  2015-08-25  4:13 ` [U-Boot] [PATCH v3 1/7] x86: i8042: " Simon Glass
  6 siblings, 1 reply; 20+ messages in thread
From: Bin Meng @ 2015-08-24  8:00 UTC (permalink / raw)
  To: u-boot

So far we only enabled one legacy serial port on the SMSC LPC47m
superio chipset on Intel Crown Bay board. As the board also has
dual PS/2 ports routed out, enable the keyboard controller which
is i8042 compatible so that we can use PS/2 keyboard and mouse.

In order to make PS/2 keyboard work with the VGA console, remove
CONFIG_VGA_AS_SINGLE_DEVICE. To boot Linux kernel with PIC mode
using PIRQ routing table, adjust the mask in the device tree to
reserve irq12 which is used by PS/2 mouse.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>

---

Changes in v3: None
Changes in v2: None

 arch/x86/dts/crownbay.dts       | 2 +-
 board/intel/crownbay/crownbay.c | 7 ++++---
 include/configs/crownbay.h      | 3 ---
 3 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/arch/x86/dts/crownbay.dts b/arch/x86/dts/crownbay.dts
index 3af9cc3..800901c 100644
--- a/arch/x86/dts/crownbay.dts
+++ b/arch/x86/dts/crownbay.dts
@@ -168,7 +168,7 @@
 			compatible = "intel,irq-router";
 			intel,pirq-config = "pci";
 			intel,pirq-link = <0x60 8>;
-			intel,pirq-mask = <0xdee0>;
+			intel,pirq-mask = <0xcee0>;
 			intel,pirq-routing = <
 				/* TunnelCreek PCI devices */
 				PCI_BDF(0, 2, 0) INTA PIRQE
diff --git a/board/intel/crownbay/crownbay.c b/board/intel/crownbay/crownbay.c
index ad2d5b6..d6de9fa 100644
--- a/board/intel/crownbay/crownbay.c
+++ b/board/intel/crownbay/crownbay.c
@@ -10,11 +10,12 @@
 #include <netdev.h>
 #include <smsc_lpc47m.h>
 
-#define SERIAL_DEV PNP_DEV(0x2e, 4)
-
 int board_early_init_f(void)
 {
-	lpc47m_enable_serial(SERIAL_DEV, UART0_BASE, UART0_IRQ);
+	lpc47m_enable_serial(PNP_DEV(LPC47M_IO_PORT, LPC47M_SP1),
+			     UART0_BASE, UART0_IRQ);
+	lpc47m_enable_kbc(PNP_DEV(LPC47M_IO_PORT, LPC47M_KBC),
+			  KBD_IRQ, MSE_IRQ);
 
 	return 0;
 }
diff --git a/include/configs/crownbay.h b/include/configs/crownbay.h
index e87bd54..32b6006 100644
--- a/include/configs/crownbay.h
+++ b/include/configs/crownbay.h
@@ -54,9 +54,6 @@
 #define CONFIG_PCH_GBE
 #define CONFIG_PHYLIB
 
-/* TunnelCreek IGD support */
-#define CONFIG_VGA_AS_SINGLE_DEVICE
-
 /* Environment configuration */
 #define CONFIG_ENV_SECT_SIZE		0x1000
 #define CONFIG_ENV_OFFSET		0
-- 
1.8.2.1

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

* [U-Boot] [PATCH v3 7/7] video: ct69000: Remove unused codes
  2015-08-24  8:00 [U-Boot] [PATCH v3 1/7] x86: i8042: Remove unused codes Bin Meng
                   ` (4 preceding siblings ...)
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 6/7] x86: crownbay: Enable on-board SMSC superio keyboard controller Bin Meng
@ 2015-08-24  8:00 ` Bin Meng
  2015-08-25  5:04   ` Simon Glass
  2015-08-25  7:49   ` Anatolij Gustschin
  2015-08-25  4:13 ` [U-Boot] [PATCH v3 1/7] x86: i8042: " Simon Glass
  6 siblings, 2 replies; 20+ messages in thread
From: Bin Meng @ 2015-08-24  8:00 UTC (permalink / raw)
  To: u-boot

Remove unused CONFIG_USE_CPCIDVI wrapped codes.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

---

Changes in v3:
- New patch to remove unused codes in ct69000 driver

Changes in v2: None

 drivers/video/ct69000.c | 21 ---------------------
 1 file changed, 21 deletions(-)

diff --git a/drivers/video/ct69000.c b/drivers/video/ct69000.c
index 168b9ba..22b3441 100644
--- a/drivers/video/ct69000.c
+++ b/drivers/video/ct69000.c
@@ -256,9 +256,6 @@ struct ctfb_chips_properties {
 
 static const struct ctfb_chips_properties chips[] = {
 	{PCI_DEVICE_ID_CT_69000, 0x200000, 1, 4, -2, 3, 257, 100, 220},
-#ifdef CONFIG_USE_CPCIDVI
-	{PCI_DEVICE_ID_CT_69030, 0x400000, 1, 4, -2, 3, 257, 100, 220},
-#endif
 	{PCI_DEVICE_ID_CT_65555, 0x100000, 16, 4, 0, 1, 255, 48, 220},	/* NOT TESTED */
 	{0, 0, 0, 0, 0, 0, 0, 0, 0}	/* Terminator */
 };
@@ -944,9 +941,6 @@ SetDrawingEngine (int bits_per_pixel)
 */
 static struct pci_device_id supported[] = {
 	{PCI_VENDOR_ID_CT, PCI_DEVICE_ID_CT_69000},
-#ifdef CONFIG_USE_CPCIDVI
-	{PCI_VENDOR_ID_CT, PCI_DEVICE_ID_CT_69030},
-#endif
 	{}
 };
 
@@ -1111,22 +1105,7 @@ video_hw_init (void)
 	pGD->cprBase = pci_mem_base;	/* Dummy */
 	/* set up Hardware */
 
-#ifdef CONFIG_USE_CPCIDVI
-	if (device_id == PCI_DEVICE_ID_CT_69030) {
-		ctWrite (CT_MSR_W_O, 0x0b);
-		ctWrite (0x3cd, 0x13);
-		ctWrite_i (CT_FP_O, 0x02, 0x00);
-		ctWrite_i (CT_FP_O, 0x05, 0x00);
-		ctWrite_i (CT_FP_O, 0x06, 0x00);
-		ctWrite (0x3c2, 0x0b);
-		ctWrite_i (CT_FP_O, 0x02, 0x10);
-		ctWrite_i (CT_FP_O, 0x01, 0x09);
-	} else {
-		ctWrite (CT_MSR_W_O, 0x01);
-	}
-#else
 	ctWrite (CT_MSR_W_O, 0x01);
-#endif
 
 	/* set the extended Registers */
 	ctLoadRegs (CT_XR_O, xreg);
-- 
1.8.2.1

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

* [U-Boot] [PATCH v3 1/7] x86: i8042: Remove unused codes
  2015-08-24  8:00 [U-Boot] [PATCH v3 1/7] x86: i8042: Remove unused codes Bin Meng
                   ` (5 preceding siblings ...)
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 7/7] video: ct69000: Remove unused codes Bin Meng
@ 2015-08-25  4:13 ` Simon Glass
  2015-08-26 14:56   ` Simon Glass
  6 siblings, 1 reply; 20+ messages in thread
From: Simon Glass @ 2015-08-25  4:13 UTC (permalink / raw)
  To: u-boot

On 24 August 2015 at 02:00, Bin Meng <bmeng.cn@gmail.com> wrote:
> Remove unused CONFIG_USE_CPCIDVI wrapped codes.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>
> ---
>
> Changes in v3:
> - Keep i8042_flush(), i8042_disable() and board_i8042_skip()
>
> Changes in v2:
> - Split the removing of unused codes into this patch
>
>  drivers/input/i8042.c | 17 -----------------
>  1 file changed, 17 deletions(-)

Acked-by: Simon Glass <sjg@chromium.org>

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

* [U-Boot] [PATCH v3 5/7] video: cfb_console: Allow VGA device to work without i8042 keyboard
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 5/7] video: cfb_console: Allow VGA device to work without i8042 keyboard Bin Meng
@ 2015-08-25  4:13   ` Simon Glass
  2015-08-25  7:54     ` Anatolij Gustschin
  2015-08-25  7:45   ` Anatolij Gustschin
  1 sibling, 1 reply; 20+ messages in thread
From: Simon Glass @ 2015-08-25  4:13 UTC (permalink / raw)
  To: u-boot

Hi Anatolkij,

On 24 August 2015 at 02:00, Bin Meng <bmeng.cn@gmail.com> wrote:
> So far if CONFIG_VGA_AS_SINGLE_DEVICE is not defined, the VGA device
> will try to initialize a keyboard device (for x86, it is i8042). But
> if i8042 controller initialization fails (eg: there is no keyboard
> connected to the PS/2 port), drv_video_init() just simply returns.
> This kills the opportunity of using a usb keyboard later with the vga
> console, as the vga initialization part is actually ok, only keyboard
> part fails. Change the code logic to allow this.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>

What are your thoughts on this patch, please?

>
> ---
> In the long term, we should remove CONFIG_VGA_AS_SINGLE_DEVICE and
> treat the cfb_concole an output device only. The keyboard part should
> be moved out of cfb_console driver and be as a input device driver
> separately.
>
> Changes in v3: None
> Changes in v2: None
>
>  drivers/video/cfb_console.c | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c
> index 30e0317..aa7ca86 100644
> --- a/drivers/video/cfb_console.c
> +++ b/drivers/video/cfb_console.c
> @@ -2247,16 +2247,17 @@ __weak int board_video_skip(void)
>
>  int drv_video_init(void)
>  {
> -       int skip_dev_init;
>         struct stdio_dev console_dev;
>         bool have_keyboard;
> +       bool __maybe_unused keyboard_ok = false;
>
>         /* Check if video initialization should be skipped */
>         if (board_video_skip())
>                 return 0;
>
>         /* Init video chip - returns with framebuffer cleared */
> -       skip_dev_init = (video_init() == -1);
> +       if (video_init() == -1)
> +               return 0;
>
>         if (board_cfb_skip())
>                 return 0;
> @@ -2272,11 +2273,9 @@ int drv_video_init(void)
>         if (have_keyboard) {
>                 debug("KBD: Keyboard init ...\n");
>  #if !defined(CONFIG_VGA_AS_SINGLE_DEVICE)
> -               skip_dev_init |= (VIDEO_KBD_INIT_FCT == -1);
> +               keyboard_ok = !(VIDEO_KBD_INIT_FCT == -1);
>  #endif
>         }
> -       if (skip_dev_init)
> -               return 0;
>
>         /* Init vga device */
>         memset(&console_dev, 0, sizeof(console_dev));
> @@ -2287,7 +2286,7 @@ int drv_video_init(void)
>         console_dev.puts = video_puts;  /* 'puts' function */
>
>  #if !defined(CONFIG_VGA_AS_SINGLE_DEVICE)
> -       if (have_keyboard) {
> +       if (have_keyboard && keyboard_ok) {
>                 /* Also init console device */
>                 console_dev.flags |= DEV_FLAGS_INPUT;
>                 console_dev.tstc = VIDEO_TSTC_FCT;      /* 'tstc' function */
> --
> 1.8.2.1
>

Regards,
Simon

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

* [U-Boot] [PATCH v3 7/7] video: ct69000: Remove unused codes
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 7/7] video: ct69000: Remove unused codes Bin Meng
@ 2015-08-25  5:04   ` Simon Glass
  2015-08-25  7:49   ` Anatolij Gustschin
  1 sibling, 0 replies; 20+ messages in thread
From: Simon Glass @ 2015-08-25  5:04 UTC (permalink / raw)
  To: u-boot

On 24 August 2015 at 02:00, Bin Meng <bmeng.cn@gmail.com> wrote:
> Remove unused CONFIG_USE_CPCIDVI wrapped codes.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>
> ---
>
> Changes in v3:
> - New patch to remove unused codes in ct69000 driver
>
> Changes in v2: None
>
>  drivers/video/ct69000.c | 21 ---------------------
>  1 file changed, 21 deletions(-)

Acked-by: Simon Glass <sjg@chromium.org>

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

* [U-Boot] [PATCH v3 5/7] video: cfb_console: Allow VGA device to work without i8042 keyboard
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 5/7] video: cfb_console: Allow VGA device to work without i8042 keyboard Bin Meng
  2015-08-25  4:13   ` Simon Glass
@ 2015-08-25  7:45   ` Anatolij Gustschin
  1 sibling, 0 replies; 20+ messages in thread
From: Anatolij Gustschin @ 2015-08-25  7:45 UTC (permalink / raw)
  To: u-boot

Hi Bin,

On Mon, 24 Aug 2015 01:00:07 -0700
Bin Meng <bmeng.cn@gmail.com> wrote:

> So far if CONFIG_VGA_AS_SINGLE_DEVICE is not defined, the VGA device
> will try to initialize a keyboard device (for x86, it is i8042). But
> if i8042 controller initialization fails (eg: there is no keyboard
> connected to the PS/2 port), drv_video_init() just simply returns.
> This kills the opportunity of using a usb keyboard later with the vga
> console, as the vga initialization part is actually ok, only keyboard
> part fails. Change the code logic to allow this.
> 
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>

Acked-by: Anatolij Gustschin <agust@denx.de>

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

* [U-Boot] [PATCH v3 7/7] video: ct69000: Remove unused codes
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 7/7] video: ct69000: Remove unused codes Bin Meng
  2015-08-25  5:04   ` Simon Glass
@ 2015-08-25  7:49   ` Anatolij Gustschin
  2015-08-26 14:56     ` Simon Glass
  1 sibling, 1 reply; 20+ messages in thread
From: Anatolij Gustschin @ 2015-08-25  7:49 UTC (permalink / raw)
  To: u-boot

On Mon, 24 Aug 2015 01:00:09 -0700
Bin Meng <bmeng.cn@gmail.com> wrote:

> Remove unused CONFIG_USE_CPCIDVI wrapped codes.
> 
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>

Acked-by: Anatolij Gustschin <agust@denx.de>

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

* [U-Boot] [PATCH v3 5/7] video: cfb_console: Allow VGA device to work without i8042 keyboard
  2015-08-25  4:13   ` Simon Glass
@ 2015-08-25  7:54     ` Anatolij Gustschin
  2015-08-26 14:56       ` Simon Glass
  0 siblings, 1 reply; 20+ messages in thread
From: Anatolij Gustschin @ 2015-08-25  7:54 UTC (permalink / raw)
  To: u-boot

Hi Simon,

On Mon, 24 Aug 2015 22:13:41 -0600
Simon Glass <sjg@chromium.org> wrote:

> On 24 August 2015 at 02:00, Bin Meng <bmeng.cn@gmail.com> wrote:
> > So far if CONFIG_VGA_AS_SINGLE_DEVICE is not defined, the VGA device
> > will try to initialize a keyboard device (for x86, it is i8042). But
> > if i8042 controller initialization fails (eg: there is no keyboard
> > connected to the PS/2 port), drv_video_init() just simply returns.
> > This kills the opportunity of using a usb keyboard later with the vga
> > console, as the vga initialization part is actually ok, only keyboard
> > part fails. Change the code logic to allow this.
> >
> > Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> > Reviewed-by: Simon Glass <sjg@chromium.org>
> 
> What are your thoughts on this patch, please?

it is okay for me, please merge it with other patches in this series.

Thanks,

Anatolij

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

* [U-Boot] [PATCH v3 5/7] video: cfb_console: Allow VGA device to work without i8042 keyboard
  2015-08-25  7:54     ` Anatolij Gustschin
@ 2015-08-26 14:56       ` Simon Glass
  0 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2015-08-26 14:56 UTC (permalink / raw)
  To: u-boot

On 25 August 2015 at 00:54, Anatolij Gustschin <agust@denx.de> wrote:
> Hi Simon,
>
> On Mon, 24 Aug 2015 22:13:41 -0600
> Simon Glass <sjg@chromium.org> wrote:
>
>> On 24 August 2015 at 02:00, Bin Meng <bmeng.cn@gmail.com> wrote:
>> > So far if CONFIG_VGA_AS_SINGLE_DEVICE is not defined, the VGA device
>> > will try to initialize a keyboard device (for x86, it is i8042). But
>> > if i8042 controller initialization fails (eg: there is no keyboard
>> > connected to the PS/2 port), drv_video_init() just simply returns.
>> > This kills the opportunity of using a usb keyboard later with the vga
>> > console, as the vga initialization part is actually ok, only keyboard
>> > part fails. Change the code logic to allow this.
>> >
>> > Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>> > Reviewed-by: Simon Glass <sjg@chromium.org>
>>
>> What are your thoughts on this patch, please?
>
> it is okay for me, please merge it with other patches in this series.
>
> Thanks,
>
> Anatolij

Applied to u-boot-x86, thanks!

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

* [U-Boot] [PATCH v3 7/7] video: ct69000: Remove unused codes
  2015-08-25  7:49   ` Anatolij Gustschin
@ 2015-08-26 14:56     ` Simon Glass
  0 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2015-08-26 14:56 UTC (permalink / raw)
  To: u-boot

On 25 August 2015 at 00:49, Anatolij Gustschin <agust@denx.de> wrote:
> On Mon, 24 Aug 2015 01:00:09 -0700
> Bin Meng <bmeng.cn@gmail.com> wrote:
>
>> Remove unused CONFIG_USE_CPCIDVI wrapped codes.
>>
>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>
> Acked-by: Anatolij Gustschin <agust@denx.de>

Applied to u-boot-x86, thanks!

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

* [U-Boot] [PATCH v3 2/7] x86: i8042: Reorder static functions
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 2/7] x86: i8042: Reorder static functions Bin Meng
@ 2015-08-26 14:56   ` Simon Glass
  0 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2015-08-26 14:56 UTC (permalink / raw)
  To: u-boot

On 24 August 2015 at 01:00, Bin Meng <bmeng.cn@gmail.com> wrote:
> Reorder those static function so that their declarations
> can be removed.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Acked-by: Simon Glass <sjg@chromium.org>
>
> ---
>
> Changes in v3: None
> Changes in v2:
> - Split of reordering static functions into this patch
>
>  drivers/input/i8042.c | 490 +++++++++++++++++++++++---------------------------
>  1 file changed, 222 insertions(+), 268 deletions(-)

Applied to u-boot-x86, thanks!

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

* [U-Boot] [PATCH v3 3/7] x86: i8042: Clean up the driver per coding convention
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 3/7] x86: i8042: Clean up the driver per coding convention Bin Meng
@ 2015-08-26 14:56   ` Simon Glass
  0 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2015-08-26 14:56 UTC (permalink / raw)
  To: u-boot

On 24 August 2015 at 01:00, Bin Meng <bmeng.cn@gmail.com> wrote:
> - Rename CamelCase variables to conform U-Boot coding convention
> - Rename wait_until_kbd_output_full() to kbd_output_full()
> - Change to use macros for i8042 command and control register bits
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Acked-by: Simon Glass <sjg@chromium.org>
>
> ---
>
> Changes in v3: None
> Changes in v2:
> - Split the original single patch into 3 patches
>
>  drivers/input/i8042.c | 230 ++++++++++++++++++++++++++------------------------
>  include/i8042.h       | 103 ++++++++++++----------
>  2 files changed, 177 insertions(+), 156 deletions(-)

Applied to u-boot-x86, thanks!

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

* [U-Boot] [PATCH v3 4/7] x86: i8042: Correctly initialize the controller
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 4/7] x86: i8042: Correctly initialize the controller Bin Meng
@ 2015-08-26 14:56   ` Simon Glass
  0 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2015-08-26 14:56 UTC (permalink / raw)
  To: u-boot

On 24 August 2015 at 01:00, Bin Meng <bmeng.cn@gmail.com> wrote:
> The existing i8042 keyboard controller driver has some issues.
> First of all, it does not issue a self-test command (0xaa) to the
> controller at the very beginning. Without this, the controller
> does not respond to any command at all. Secondly, it initializes
> the configuration byte register to turn on the keyboard's interrupt,
> as U-Boot does not normally allow interrupts to be processed.
> Finally, at the end of the initialization routine, it wrongly
> sets the controller to disable all interfaces including both
> keyboard and mouse.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Acked-by: Simon Glass <sjg@chromium.org>
>
> ---
>
> Changes in v3:
> - Fix commit message per Simon's comments
>
> Changes in v2:
> - Reorder this patch to follow the i8042 driver clean up patches
>
>  drivers/input/i8042.c | 43 +++++++++++++++++++++----------------------
>  1 file changed, 21 insertions(+), 22 deletions(-)

Applied to u-boot-x86, thanks!

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

* [U-Boot] [PATCH v3 6/7] x86: crownbay: Enable on-board SMSC superio keyboard controller
  2015-08-24  8:00 ` [U-Boot] [PATCH v3 6/7] x86: crownbay: Enable on-board SMSC superio keyboard controller Bin Meng
@ 2015-08-26 14:56   ` Simon Glass
  0 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2015-08-26 14:56 UTC (permalink / raw)
  To: u-boot

On 24 August 2015 at 01:00, Bin Meng <bmeng.cn@gmail.com> wrote:
> So far we only enabled one legacy serial port on the SMSC LPC47m
> superio chipset on Intel Crown Bay board. As the board also has
> dual PS/2 ports routed out, enable the keyboard controller which
> is i8042 compatible so that we can use PS/2 keyboard and mouse.
>
> In order to make PS/2 keyboard work with the VGA console, remove
> CONFIG_VGA_AS_SINGLE_DEVICE. To boot Linux kernel with PIC mode
> using PIRQ routing table, adjust the mask in the device tree to
> reserve irq12 which is used by PS/2 mouse.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>
>
> ---
>
> Changes in v3: None
> Changes in v2: None
>
>  arch/x86/dts/crownbay.dts       | 2 +-
>  board/intel/crownbay/crownbay.c | 7 ++++---
>  include/configs/crownbay.h      | 3 ---
>  3 files changed, 5 insertions(+), 7 deletions(-)

Applied to u-boot-x86, thanks!

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

* [U-Boot] [PATCH v3 1/7] x86: i8042: Remove unused codes
  2015-08-25  4:13 ` [U-Boot] [PATCH v3 1/7] x86: i8042: " Simon Glass
@ 2015-08-26 14:56   ` Simon Glass
  0 siblings, 0 replies; 20+ messages in thread
From: Simon Glass @ 2015-08-26 14:56 UTC (permalink / raw)
  To: u-boot

On 24 August 2015 at 21:13, Simon Glass <sjg@chromium.org> wrote:
> On 24 August 2015 at 02:00, Bin Meng <bmeng.cn@gmail.com> wrote:
>> Remove unused CONFIG_USE_CPCIDVI wrapped codes.
>>
>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>>
>> ---
>>
>> Changes in v3:
>> - Keep i8042_flush(), i8042_disable() and board_i8042_skip()
>>
>> Changes in v2:
>> - Split the removing of unused codes into this patch
>>
>>  drivers/input/i8042.c | 17 -----------------
>>  1 file changed, 17 deletions(-)
>
> Acked-by: Simon Glass <sjg@chromium.org>

I'm also going to apply this series as a bug-fix since it corrects the
i8042 controller init, etc.

Applied to u-boot-x86, thanks!

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

end of thread, other threads:[~2015-08-26 14:56 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-24  8:00 [U-Boot] [PATCH v3 1/7] x86: i8042: Remove unused codes Bin Meng
2015-08-24  8:00 ` [U-Boot] [PATCH v3 2/7] x86: i8042: Reorder static functions Bin Meng
2015-08-26 14:56   ` Simon Glass
2015-08-24  8:00 ` [U-Boot] [PATCH v3 3/7] x86: i8042: Clean up the driver per coding convention Bin Meng
2015-08-26 14:56   ` Simon Glass
2015-08-24  8:00 ` [U-Boot] [PATCH v3 4/7] x86: i8042: Correctly initialize the controller Bin Meng
2015-08-26 14:56   ` Simon Glass
2015-08-24  8:00 ` [U-Boot] [PATCH v3 5/7] video: cfb_console: Allow VGA device to work without i8042 keyboard Bin Meng
2015-08-25  4:13   ` Simon Glass
2015-08-25  7:54     ` Anatolij Gustschin
2015-08-26 14:56       ` Simon Glass
2015-08-25  7:45   ` Anatolij Gustschin
2015-08-24  8:00 ` [U-Boot] [PATCH v3 6/7] x86: crownbay: Enable on-board SMSC superio keyboard controller Bin Meng
2015-08-26 14:56   ` Simon Glass
2015-08-24  8:00 ` [U-Boot] [PATCH v3 7/7] video: ct69000: Remove unused codes Bin Meng
2015-08-25  5:04   ` Simon Glass
2015-08-25  7:49   ` Anatolij Gustschin
2015-08-26 14:56     ` Simon Glass
2015-08-25  4:13 ` [U-Boot] [PATCH v3 1/7] x86: i8042: " Simon Glass
2015-08-26 14:56   ` Simon Glass

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.