62 lines
1.8 KiB
Diff
62 lines
1.8 KiB
Diff
|
From f0db13a15c76c2947eec8919fd121450048914ce Mon Sep 17 00:00:00 2001
|
||
|
From: Nicholas Chin <nic.c3.14@gmail.com>
|
||
|
Date: Sun, 27 Aug 2023 17:36:36 -0600
|
||
|
Subject: [PATCH 20/22] ec/dell/mec5035: Add command to enable/disable radios
|
||
|
|
||
|
These were determined by sniffing the LPC bus while toggling the
|
||
|
hardware wireless switch on the Latitude E6400. To differentiate devices
|
||
|
options in the vendor BIOS to change which radios the switch controlled
|
||
|
were used.
|
||
|
|
||
|
Change-Id: I173dc197d63cda232dd7ede0cb798ab0a364482b
|
||
|
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
|
||
|
---
|
||
|
src/ec/dell/mec5035/mec5035.c | 9 +++++++++
|
||
|
src/ec/dell/mec5035/mec5035.h | 8 ++++++++
|
||
|
2 files changed, 17 insertions(+)
|
||
|
|
||
|
diff --git a/src/ec/dell/mec5035/mec5035.c b/src/ec/dell/mec5035/mec5035.c
|
||
|
index 8da11e5b1c..e0335a4635 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_radio_enable(enum mec5035_radio_dev dev, u8 on)
|
||
|
+{
|
||
|
+ /* From LPC traces and userspace testing with other values,
|
||
|
+ the second byte has to be 2 for an unknown reason. */
|
||
|
+ u8 buf[3] = {dev, 2, on};
|
||
|
+ write_mailbox_regs(buf, 2, 3);
|
||
|
+ ec_command(CMD_RADIO_EN);
|
||
|
+}
|
||
|
+
|
||
|
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..16512e2cc2 100644
|
||
|
--- a/src/ec/dell/mec5035/mec5035.h
|
||
|
+++ b/src/ec/dell/mec5035/mec5035.h
|
||
|
@@ -16,8 +16,16 @@
|
||
|
|
||
|
#define CMD_CPU_OK 0xc2
|
||
|
|
||
|
+#define CMD_RADIO_EN 0x2b
|
||
|
+enum mec5035_radio_dev {
|
||
|
+ RADIO_WLAN = 0,
|
||
|
+ RADIO_WWAN = 1,
|
||
|
+ RADIO_WPAN = 2,
|
||
|
+};
|
||
|
+
|
||
|
u8 mec5035_mouse_touchpad(u8 setting);
|
||
|
void mec5035_cpu_ok(void);
|
||
|
void mec5035_early_init(void);
|
||
|
+void mec5035_radio_enable(enum mec5035_radio_dev device, u8 on);
|
||
|
|
||
|
#endif /* _EC_DELL_MEC5035_H_ */
|
||
|
--
|
||
|
2.39.2
|
||
|
|