Felix Singer has submitted this change. ( https://review.coreboot.org/c/coreboot/+/82998?usp=email )
Change subject: ec/dell/mec5035: Replace defines with enums ......................................................................
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 --- M src/ec/dell/mec5035/mec5035.c M src/ec/dell/mec5035/mec5035.h 2 files changed, 17 insertions(+), 13 deletions(-)
Approvals: build bot (Jenkins): Verified Felix Singer: Looks good to me, approved
diff --git a/src/ec/dell/mec5035/mec5035.c b/src/ec/dell/mec5035/mec5035.c index 68b6b2f..dffbb79 100644 --- a/src/ec/dell/mec5035/mec5035.c +++ b/src/ec/dell/mec5035/mec5035.c @@ -66,17 +66,17 @@ 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 fa15a9d..32f791c 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 */ +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_CPU_OK 0xc2 - -#define CMD_RADIO_CTRL 0x2b #define RADIO_CTRL_NUM_ARGS 3 enum ec_radio_dev { RADIO_WLAN = 0, @@ -29,7 +33,7 @@ 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);