aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/hp/pavilion_m6_1035dx/ec.c
diff options
context:
space:
mode:
authorAlexandru Gagniuc <mr.nuke.me@gmail.com>2014-04-06 23:57:57 -0500
committerAlexandru Gagniuc <mr.nuke.me@gmail.com>2014-04-13 15:29:50 +0200
commitb4417fb1390d627090ee1e838623ac73af1fc634 (patch)
treea68e8fb06cded6177c398dd361247e6a78f4af59 /src/mainboard/hp/pavilion_m6_1035dx/ec.c
parent99e2bf87ef9e91196bf19eaa9091c2a945352316 (diff)
hp/pavilion_m6_1035dx: Add basic EC initialization
The EC is now set to ACPI mode, and properly generates SCIs on external events. This fixes the issue where battery notifications were not working. The keyboard matrix type is also explicitly set up. Change-Id: Ib6f0d23984d4ed1320340282469b8325c83547d1 Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Reviewed-on: http://review.coreboot.org/5471 Tested-by: build bot (Jenkins) Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Diffstat (limited to 'src/mainboard/hp/pavilion_m6_1035dx/ec.c')
-rw-r--r--src/mainboard/hp/pavilion_m6_1035dx/ec.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/mainboard/hp/pavilion_m6_1035dx/ec.c b/src/mainboard/hp/pavilion_m6_1035dx/ec.c
new file mode 100644
index 0000000000..d61a2e5301
--- /dev/null
+++ b/src/mainboard/hp/pavilion_m6_1035dx/ec.c
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2014 Alexandru Gagniuc <mr.nuke.me@gmail.com>
+ * Subject to the GNU GPL v2, or (at your option) any later version.
+ */
+
+#include "ec.h"
+#include <ec/compal/ene932/ec.h>
+
+/* The keyboard matrix tells the EC how the keyboard is wired internally */
+static void set_keyboard_matrix_us(void)
+{
+ ec_kbc_write_cmd(0x59);
+ ec_kbc_write_ib(0xE5);
+}
+
+/* Tell EC to operate in ACPI mode, thus generating SCIs on events, not SMIs */
+static void enter_acpi_mode(void)
+{
+ ec_kbc_write_cmd(0x59);
+ ec_kbc_write_ib(0xE8);
+}
+
+void pavilion_m6_1035dx_ec_init(void)
+{
+ set_keyboard_matrix_us();
+ /* This could also be done in an SMI, should we decide to use SMM */
+ enter_acpi_mode();
+}