Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / drivers / platform / x86 / intel / int1092 / intel_sar.h
blobb5310510b84c6d3a248e403d16f5c61a2f789ee3
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3 * Copyright (c) 2021, Intel Corporation.
4 */
5 #ifndef INTEL_SAR_H
6 #define INTEL_SAR_H
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"
16 #define TOTAL_DATA 4
18 /**
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 {
28 int device_mode;
29 int bandtable_index;
30 int antennatable_index;
31 int sartable_index;
34 /**
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 {
43 int version;
44 int total_dev_mode;
45 struct wwan_device_mode_info *device_mode_info;
48 /**
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 {
58 int reg_mode_needed;
59 int bios_table_revision;
60 int num_supported_modes;
63 /**
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.
67 * @guid: Group id
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 {
78 guid_t guid;
79 acpi_handle handle;
80 int reg_value;
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 */