drivers/pc80: Add PS/2 mouse presence detect
On certain Winbond SuperIO devices, when a PS/2 mouse is not present on the auxiliary channel both channels will cease to function if the auxiliary channel is probed while the primary channel is active. Therefore, knowledge of mouse presence must be gathered by coreboot during early boot, and used to enable or disable the auxiliary PS/2 port before control is passed to the operating system. Add auxiliary channel PS/2 device presence detect, and update the Winbond W83667HG-A driver to flag the auxiliary channel as disabled if no device was detected. Change-Id: I76274493dacc9016ac6d0dff8548d1dc931c6266 Signed-off-by: Timothy Pearson <tpearson@raptorengineeringinc.com> Reviewed-on: https://review.coreboot.org/13165 Tested-by: build bot (Jenkins) Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com> Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
committed by
Martin Roth
parent
c2ed40b48a
commit
448e386309
@@ -32,7 +32,7 @@ static void init(struct device *dev)
|
||||
case IT8671F_PP: /* TODO. */
|
||||
break;
|
||||
case IT8671F_KBCK:
|
||||
pc_keyboard_init();
|
||||
pc_keyboard_init(NO_AUX_DEVICE);
|
||||
break;
|
||||
case IT8671F_KBCM: /* TODO. */
|
||||
break;
|
||||
|
@@ -39,7 +39,7 @@ static void it8712f_init(struct device *dev)
|
||||
break;
|
||||
case IT8712F_KBCK:
|
||||
set_kbc_ps2_mode();
|
||||
pc_keyboard_init();
|
||||
pc_keyboard_init(NO_AUX_DEVICE);
|
||||
break;
|
||||
case IT8712F_KBCM: /* TODO. */
|
||||
break;
|
||||
|
@@ -60,7 +60,7 @@ static void it8716f_init(struct device *dev)
|
||||
init_ec(res0->base + EC_INDEX_PORT);
|
||||
break;
|
||||
case IT8716F_KBCK:
|
||||
pc_keyboard_init();
|
||||
pc_keyboard_init(NO_AUX_DEVICE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -34,7 +34,7 @@ static void init(struct device *dev)
|
||||
case IT8718F_EC: /* TODO. */
|
||||
break;
|
||||
case IT8718F_KBCK:
|
||||
pc_keyboard_init();
|
||||
pc_keyboard_init(NO_AUX_DEVICE);
|
||||
break;
|
||||
case IT8718F_KBCM: /* TODO. */
|
||||
break;
|
||||
|
@@ -35,7 +35,7 @@ static void init(struct device *dev)
|
||||
case IT8721F_EC: /* TODO. */
|
||||
break;
|
||||
case IT8721F_KBCK:
|
||||
pc_keyboard_init();
|
||||
pc_keyboard_init(NO_AUX_DEVICE);
|
||||
break;
|
||||
case IT8721F_KBCM: /* TODO. */
|
||||
break;
|
||||
|
@@ -38,7 +38,7 @@ static void it8728f_init(struct device *dev)
|
||||
break;
|
||||
case IT8728F_KBCK:
|
||||
set_kbc_ps2_mode();
|
||||
pc_keyboard_init();
|
||||
pc_keyboard_init(NO_AUX_DEVICE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -246,7 +246,7 @@ static void it8772f_init(struct device *dev)
|
||||
case IT8772F_KBCK:
|
||||
if (!conf->skip_keyboard) {
|
||||
set_kbc_ps2_mode();
|
||||
pc_keyboard_init();
|
||||
pc_keyboard_init(NO_AUX_DEVICE);
|
||||
}
|
||||
break;
|
||||
case IT8772F_KBCM:
|
||||
|
Reference in New Issue
Block a user