aboutsummaryrefslogtreecommitdiff
path: root/src/ec
diff options
context:
space:
mode:
Diffstat (limited to 'src/ec')
-rw-r--r--src/ec/dell/mec5035/mec5035.c9
-rw-r--r--src/ec/dell/mec5035/mec5035.h14
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_ */