summaryrefslogtreecommitdiff
path: root/src/include/sar.h
diff options
context:
space:
mode:
authorJeremy Compostella <jeremy.compostella@intel.com>2024-06-24 10:16:41 -0700
committerJérémy Compostella <jeremy.compostella@intel.com>2024-07-03 17:01:17 +0000
commit71dda74fe8addc0beffffc5a039c896c3f910640 (patch)
tree8f47e92bdb6b2e89bd5dbf145910450c9e5c549d /src/include/sar.h
parent2721846dab2c5e7a207e985cb634588f380744bd (diff)
drivers/wifi: Support Bluetooth Regulator Domain Settings
The 'Bluetooth Increased Power Mode - SAR Limitation' feature provides ability to utilize increased device Transmit power capability for Bluetooth applications in coordination with Wi-Fi adhering to product SAR limit when Bluetooth and Wi-Fi run together. This commit introduces a `bluetooth_companion' field to the generic Wi-Fi drivers chip data. This field can be set in the board design device tree to supply the bluetooth device for which the BRDS function must be created. This feature is required for Meteor Lake rex karis variant. The implementation follows document 559910 Intel Connectivity Platforms BIOS Guideline revision 8.3 specification. BUG=b:348345301 BRANCH=firmware-rex-15709.B TEST=BRDS method is added to the CNVW device and return the data supplied by the SAR binary blob Change-Id: Iebe95815c944d045f4cf686abcd1874a8a45e209 Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/83200 Reviewed-by: Eric Lai <ericllai@google.com> Reviewed-by: Subrata Banik <subratabanik@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/include/sar.h')
-rw-r--r--src/include/sar.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/include/sar.h b/src/include/sar.h
index c201cea2f4..7c1b95d530 100644
--- a/src/include/sar.h
+++ b/src/include/sar.h
@@ -9,8 +9,9 @@
#define MAX_DENYLIST_ENTRY 16
#define MAX_DSAR_SET_COUNT 3
#define MAX_GEO_OFFSET_REVISION 3
-#define MAX_PROFILE_COUNT 5
+#define MAX_PROFILE_COUNT 6
#define MAX_SAR_REVISION 2
+#define BSAR_REVISION 1
#define REVISION_SIZE 1
#define SAR_REV0_CHAINS_COUNT 2
#define SAR_REV0_SUBBANDS_COUNT 5
@@ -60,6 +61,18 @@ struct dsm_profile {
uint32_t enablement_11be;
};
+struct bsar_profile {
+ uint8_t revision;
+ uint8_t increased_power_mode_limitation;
+ uint8_t sar_lb_power_restriction;
+ uint8_t br_modulation;
+ uint8_t edr2_modulation;
+ uint8_t edr3_modulation;
+ uint8_t le_modulation;
+ uint8_t le2_mhz_modulation;
+ uint8_t le_lr_modulation;
+} __packed;
+
struct sar_header {
char marker[SAR_STR_PREFIX_SIZE];
uint8_t version;
@@ -74,6 +87,7 @@ union wifi_sar_limits {
struct gain_profile *ppag;
struct avg_profile *wtas;
struct dsm_profile *dsm;
+ struct bsar_profile *bsar;
};
void *profile[MAX_PROFILE_COUNT];
};