1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- 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
|