87 lines
2.6 KiB
C
87 lines
2.6 KiB
C
|
/* 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 */
|