| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * Copyright (c) 2021, Intel Corporation. |
| */ |
| #ifndef INTEL_SAR_H |
| #define INTEL_SAR_H |
| |
| #define COMMAND_ID_DEV_MODE 1 |
| #define COMMAND_ID_CONFIG_TABLE 2 |
| #define DRVNAME "intc_sar" |
| #define MAX_DEV_MODES 50 |
| #define MAX_REGULATORY 3 |
| #define SAR_DSM_UUID "82737E72-3A33-4C45-A9C7-57C0411A5F13" |
| #define SAR_EVENT 0x80 |
| #define SYSFS_DATANAME "intc_data" |
| #define TOTAL_DATA 4 |
| |
| /** |
| * Structure wwan_device_mode_info - device mode information |
| * Holds the data that needs to be passed to userspace. |
| * The data is updated from the BIOS sensor information. |
| * @device_mode: Specific mode of the device |
| * @bandtable_index: Index of RF band |
| * @antennatable_index: Index of antenna |
| * @sartable_index: Index of SAR |
| */ |
| struct wwan_device_mode_info { |
| int device_mode; |
| int bandtable_index; |
| int antennatable_index; |
| int sartable_index; |
| }; |
| |
| /** |
| * Structure wwan_device_mode_configuration - device configuration |
| * Holds the data that is configured and obtained on probe event. |
| * The data is updated from the BIOS sensor information. |
| * @version: Mode configuration version |
| * @total_dev_mode: Total number of device modes |
| * @device_mode_info: pointer to structure wwan_device_mode_info |
| */ |
| struct wwan_device_mode_configuration { |
| int version; |
| int total_dev_mode; |
| struct wwan_device_mode_info *device_mode_info; |
| }; |
| |
| /** |
| * Structure wwan_supported_info - userspace datastore |
| * Holds the data that is obtained from userspace |
| * The data is updated from the userspace and send value back in the |
| * structure format that is mentioned here. |
| * @reg_mode_needed: regulatory mode set by user for tests |
| * @bios_table_revision: Version of SAR table |
| * @num_supported_modes: Total supported modes based on reg_mode |
| */ |
| struct wwan_supported_info { |
| int reg_mode_needed; |
| int bios_table_revision; |
| int num_supported_modes; |
| }; |
| |
| /** |
| * Structure wwan_sar_context - context of SAR |
| * Holds the complete context as long as the driver is in existence |
| * The context holds instance of the data used for different cases. |
| * @guid: Group id |
| * @handle: store acpi handle |
| * @reg_value: regulatory value |
| * Regulatory 0: FCC, 1: CE, 2: ISED |
| * @sar_device: platform_device type |
| * @sar_kobject: kobject for sysfs |
| * @supported_data: wwan_supported_info struct |
| * @sar_data: wwan_device_mode_info struct |
| * @config_data: wwan_device_mode_configuration array struct |
| */ |
| struct wwan_sar_context { |
| guid_t guid; |
| acpi_handle handle; |
| int reg_value; |
| struct platform_device *sar_device; |
| struct wwan_supported_info supported_data; |
| struct wwan_device_mode_info sar_data; |
| struct wwan_device_mode_configuration config_data[MAX_REGULATORY]; |
| }; |
| #endif /* INTEL_SAR_H */ |