1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright (c) 2021, Intel Corporation.
8 #define COMMAND_ID_DEV_MODE 1
9 #define COMMAND_ID_CONFIG_TABLE 2
10 #define DRVNAME "intc_sar"
11 #define MAX_DEV_MODES 50
12 #define MAX_REGULATORY 3
13 #define SAR_DSM_UUID "82737E72-3A33-4C45-A9C7-57C0411A5F13"
14 #define SAR_EVENT 0x80
15 #define SYSFS_DATANAME "intc_data"
19 * Structure wwan_device_mode_info - device mode information
20 * Holds the data that needs to be passed to userspace.
21 * The data is updated from the BIOS sensor information.
22 * @device_mode: Specific mode of the device
23 * @bandtable_index: Index of RF band
24 * @antennatable_index: Index of antenna
25 * @sartable_index: Index of SAR
27 struct wwan_device_mode_info
{
30 int antennatable_index
;
35 * Structure wwan_device_mode_configuration - device configuration
36 * Holds the data that is configured and obtained on probe event.
37 * The data is updated from the BIOS sensor information.
38 * @version: Mode configuration version
39 * @total_dev_mode: Total number of device modes
40 * @device_mode_info: pointer to structure wwan_device_mode_info
42 struct wwan_device_mode_configuration
{
45 struct wwan_device_mode_info
*device_mode_info
;
49 * Structure wwan_supported_info - userspace datastore
50 * Holds the data that is obtained from userspace
51 * The data is updated from the userspace and send value back in the
52 * structure format that is mentioned here.
53 * @reg_mode_needed: regulatory mode set by user for tests
54 * @bios_table_revision: Version of SAR table
55 * @num_supported_modes: Total supported modes based on reg_mode
57 struct wwan_supported_info
{
59 int bios_table_revision
;
60 int num_supported_modes
;
64 * Structure wwan_sar_context - context of SAR
65 * Holds the complete context as long as the driver is in existence
66 * The context holds instance of the data used for different cases.
68 * @handle: store acpi handle
69 * @reg_value: regulatory value
70 * Regulatory 0: FCC, 1: CE, 2: ISED
71 * @sar_device: platform_device type
72 * @sar_kobject: kobject for sysfs
73 * @supported_data: wwan_supported_info struct
74 * @sar_data: wwan_device_mode_info struct
75 * @config_data: wwan_device_mode_configuration array struct
77 struct wwan_sar_context
{
81 struct platform_device
*sar_device
;
82 struct wwan_supported_info supported_data
;
83 struct wwan_device_mode_info sar_data
;
84 struct wwan_device_mode_configuration config_data
[MAX_REGULATORY
];
86 #endif /* INTEL_SAR_H */