mirror of
https://codeberg.org/canoeboot/cbmk.git
synced 2024-11-22 10:14:44 +00:00
6f39c7683a
This is based on the same change recently made in lbmk. A lot of unnecessary patches, and I want to clean them all up. Also, cbmk's /default didn't actually build, whereas lbmk did, which is the primary motive for this rebase. With this change, it should build again. Signed-off-by: Leah Rowe <info@minifree.org>
91 lines
3 KiB
Diff
91 lines
3 KiB
Diff
From 318c411c827eb7b2a703d206b55ed357552ea25b Mon Sep 17 00:00:00 2001
|
|
From: Nicholas Chin <nic.c3.14@gmail.com>
|
|
Date: Tue, 28 May 2024 17:23:21 -0600
|
|
Subject: [PATCH 05/18] ec/dell/mec5035: Replace defines with enums
|
|
|
|
Instead of using defines for command IDs and argument values, use enums
|
|
to provide more type safety. This also has the effect of moving the
|
|
command IDs to a more central location instead of defines spread out
|
|
throughout the header.
|
|
|
|
Change-Id: I788531e8b70e79541213853f177326d217235ef2
|
|
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
|
|
Reviewed-on: https://review.coreboot.org/c/coreboot/+/82998
|
|
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
|
|
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
|
|
---
|
|
src/ec/dell/mec5035/mec5035.c | 10 +++++-----
|
|
src/ec/dell/mec5035/mec5035.h | 20 ++++++++++++--------
|
|
2 files changed, 17 insertions(+), 13 deletions(-)
|
|
|
|
diff --git a/src/ec/dell/mec5035/mec5035.c b/src/ec/dell/mec5035/mec5035.c
|
|
index 68b6b2f7fb..dffbb7960c 100644
|
|
--- a/src/ec/dell/mec5035/mec5035.c
|
|
+++ b/src/ec/dell/mec5035/mec5035.c
|
|
@@ -66,17 +66,17 @@ static enum cb_err write_mailbox_regs(const u8 *data, u8 start, u8 count)
|
|
return CB_SUCCESS;
|
|
}
|
|
|
|
-static void ec_command(u8 cmd)
|
|
+static void ec_command(enum mec5035_cmd cmd)
|
|
{
|
|
outb(0, MAILBOX_INDEX);
|
|
- outb(cmd, MAILBOX_DATA);
|
|
+ outb((u8)cmd, MAILBOX_DATA);
|
|
wait_ec();
|
|
}
|
|
|
|
-u8 mec5035_mouse_touchpad(u8 setting)
|
|
+u8 mec5035_mouse_touchpad(enum ec_mouse_setting setting)
|
|
{
|
|
- u8 buf[15] = {0};
|
|
- write_mailbox_regs(&setting, 2, 1);
|
|
+ u8 buf[15] = {(u8)setting};
|
|
+ write_mailbox_regs(buf, 2, 1);
|
|
ec_command(CMD_MOUSE_TP);
|
|
/* The vendor firmware reads 15 bytes starting at index 1, presumably
|
|
to get some sort of return code. Though I don't know for sure if
|
|
diff --git a/src/ec/dell/mec5035/mec5035.h b/src/ec/dell/mec5035/mec5035.h
|
|
index fa15a9d621..32f791cb01 100644
|
|
--- a/src/ec/dell/mec5035/mec5035.h
|
|
+++ b/src/ec/dell/mec5035/mec5035.h
|
|
@@ -7,16 +7,20 @@
|
|
|
|
#define NUM_REGISTERS 32
|
|
|
|
+enum mec5035_cmd {
|
|
+ CMD_MOUSE_TP = 0x1a,
|
|
+ CMD_RADIO_CTRL = 0x2b,
|
|
+ CMD_CPU_OK = 0xc2,
|
|
+};
|
|
+
|
|
/* Touchpad (TP) and mouse related. The EC seems to
|
|
default to 0 which results in the TP not working. */
|
|
-#define CMD_MOUSE_TP 0x1a
|
|
-#define SERIAL_MOUSE 0 /* Disable TP, force use of a serial mouse */
|
|
-#define PS2_MOUSE 1 /* Disable TP when using a PS/2 mouse */
|
|
-#define TP_PS2_MOUSE 2 /* Leave TP enabled when using a PS/2 mouse */
|
|
-
|
|
-#define CMD_CPU_OK 0xc2
|
|
+enum ec_mouse_setting {
|
|
+ SERIAL_MOUSE = 0, /* Disable TP, force use of a serial mouse */
|
|
+ PS2_MOUSE, /* Disable TP when using a PS/2 mouse */
|
|
+ TP_PS2_MOUSE /* Leave TP enabled when using a PS/2 mouse */
|
|
+};
|
|
|
|
-#define CMD_RADIO_CTRL 0x2b
|
|
#define RADIO_CTRL_NUM_ARGS 3
|
|
enum ec_radio_dev {
|
|
RADIO_WLAN = 0,
|
|
@@ -29,7 +33,7 @@ enum ec_radio_state {
|
|
RADIO_ON
|
|
};
|
|
|
|
-u8 mec5035_mouse_touchpad(u8 setting);
|
|
+u8 mec5035_mouse_touchpad(enum ec_mouse_setting setting);
|
|
void mec5035_cpu_ok(void);
|
|
void mec5035_early_init(void);
|
|
void mec5035_control_radio(enum ec_radio_dev device, enum ec_radio_state state);
|
|
--
|
|
2.39.5
|
|
|