1 /* SPDX-License-Identifier: ISC */
2 /* Copyright (C) 2023 MediaTek Inc. */
4 #ifndef __MT7921_ACPI_SAR_H
5 #define __MT7921_ACPI_SAR_H
7 #define MT792x_ASAR_MIN_DYN 1
8 #define MT792x_ASAR_MAX_DYN 8
9 #define MT792x_ASAR_MIN_GEO 3
10 #define MT792x_ASAR_MAX_GEO 8
11 #define MT792x_ASAR_MIN_FG 8
13 #define MT792x_ACPI_MTCL "MTCL"
14 #define MT792x_ACPI_MTDS "MTDS"
15 #define MT792x_ACPI_MTGS "MTGS"
16 #define MT792x_ACPI_MTFG "MTFG"
18 struct mt792x_asar_dyn_limit
{
23 struct mt792x_asar_dyn
{
27 DECLARE_FLEX_ARRAY(struct mt792x_asar_dyn_limit
, tbl
);
30 struct mt792x_asar_dyn_limit_v2
{
35 struct mt792x_asar_dyn_v2
{
40 DECLARE_FLEX_ARRAY(struct mt792x_asar_dyn_limit_v2
, tbl
);
43 struct mt792x_asar_geo_band
{
48 struct mt792x_asar_geo_limit
{
51 struct mt792x_asar_geo_band band
[2];
54 struct mt792x_asar_geo
{
58 DECLARE_FLEX_ARRAY(struct mt792x_asar_geo_limit
, tbl
);
61 struct mt792x_asar_geo_limit_v2
{
63 /* 0:2G, 1:5G, 2:6G */
64 struct mt792x_asar_geo_band band
[3];
67 struct mt792x_asar_geo_v2
{
72 DECLARE_FLEX_ARRAY(struct mt792x_asar_geo_limit_v2
, tbl
);
75 struct mt792x_asar_cl
{
84 struct mt792x_asar_fg
{
93 struct mt792x_acpi_sar
{
96 struct mt792x_asar_dyn
*dyn
;
97 struct mt792x_asar_dyn_v2
*dyn_v2
;
100 struct mt792x_asar_geo
*geo
;
101 struct mt792x_asar_geo_v2
*geo_v2
;
103 struct mt792x_asar_cl
*countrylist
;
104 struct mt792x_asar_fg
*fg
;