diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ec/dell/mec5035/mec5035.c | 9 | ||||
-rw-r--r-- | src/ec/dell/mec5035/mec5035.h | 14 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/ec/dell/mec5035/mec5035.c b/src/ec/dell/mec5035/mec5035.c index 8da11e5b1c..41b8dca978 100644 --- a/src/ec/dell/mec5035/mec5035.c +++ b/src/ec/dell/mec5035/mec5035.c @@ -84,6 +84,15 @@ u8 mec5035_mouse_touchpad(u8 setting) return buf[0]; } +void mec5035_control_radio(enum ec_radio_dev dev, enum ec_radio_state state) +{ + /* From LPC traces and userspace testing with other values, + the second byte has to be 2 for an unknown reason. */ + u8 buf[RADIO_CTRL_NUM_ARGS] = {(u8)dev, 2, (u8)state}; + write_mailbox_regs(buf, 2, RADIO_CTRL_NUM_ARGS); + ec_command(CMD_RADIO_CTRL); +} + void mec5035_early_init(void) { /* If this isn't sent the EC shuts down the system after about 15 diff --git a/src/ec/dell/mec5035/mec5035.h b/src/ec/dell/mec5035/mec5035.h index e7a05b64d4..fa15a9d621 100644 --- a/src/ec/dell/mec5035/mec5035.h +++ b/src/ec/dell/mec5035/mec5035.h @@ -16,8 +16,22 @@ #define CMD_CPU_OK 0xc2 +#define CMD_RADIO_CTRL 0x2b +#define RADIO_CTRL_NUM_ARGS 3 +enum ec_radio_dev { + RADIO_WLAN = 0, + RADIO_WWAN, + RADIO_BT +}; + +enum ec_radio_state { + RADIO_OFF = 0, + RADIO_ON +}; + u8 mec5035_mouse_touchpad(u8 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); #endif /* _EC_DELL_MEC5035_H_ */ |