1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef __PLATFORM_DATA_X86_ASUS_WMI_H |
3 | #define __PLATFORM_DATA_X86_ASUS_WMI_H |
4 | |
5 | #include <linux/errno.h> |
6 | #include <linux/types.h> |
7 | |
8 | /* WMI Methods */ |
9 | #define ASUS_WMI_METHODID_SPEC 0x43455053 /* BIOS SPECification */ |
10 | #define ASUS_WMI_METHODID_SFBD 0x44424653 /* Set First Boot Device */ |
11 | #define ASUS_WMI_METHODID_GLCD 0x44434C47 /* Get LCD status */ |
12 | #define ASUS_WMI_METHODID_GPID 0x44495047 /* Get Panel ID?? (Resol) */ |
13 | #define ASUS_WMI_METHODID_QMOD 0x444F4D51 /* Quiet MODe */ |
14 | #define ASUS_WMI_METHODID_SPLV 0x4C425053 /* Set Panel Light Value */ |
15 | #define ASUS_WMI_METHODID_AGFN 0x4E464741 /* Atk Generic FuNction */ |
16 | #define ASUS_WMI_METHODID_SFUN 0x4E554653 /* FUNCtionalities */ |
17 | #define ASUS_WMI_METHODID_SDSP 0x50534453 /* Set DiSPlay output */ |
18 | #define ASUS_WMI_METHODID_GDSP 0x50534447 /* Get DiSPlay output */ |
19 | #define ASUS_WMI_METHODID_DEVP 0x50564544 /* DEVice Policy */ |
20 | #define ASUS_WMI_METHODID_OSVR 0x5256534F /* OS VeRsion */ |
21 | #define ASUS_WMI_METHODID_DCTS 0x53544344 /* Device status (DCTS) */ |
22 | #define ASUS_WMI_METHODID_DSTS 0x53545344 /* Device status (DSTS) */ |
23 | #define ASUS_WMI_METHODID_BSTS 0x53545342 /* Bios STatuS ? */ |
24 | #define ASUS_WMI_METHODID_DEVS 0x53564544 /* DEVice Set */ |
25 | #define ASUS_WMI_METHODID_CFVS 0x53564643 /* CPU Frequency Volt Set */ |
26 | #define ASUS_WMI_METHODID_KBFT 0x5446424B /* KeyBoard FilTer */ |
27 | #define ASUS_WMI_METHODID_INIT 0x54494E49 /* INITialize */ |
28 | #define ASUS_WMI_METHODID_HKEY 0x59454B48 /* Hot KEY ?? */ |
29 | |
30 | #define ASUS_WMI_UNSUPPORTED_METHOD 0xFFFFFFFE |
31 | |
32 | /* Wireless */ |
33 | #define ASUS_WMI_DEVID_HW_SWITCH 0x00010001 |
34 | #define ASUS_WMI_DEVID_WIRELESS_LED 0x00010002 |
35 | #define ASUS_WMI_DEVID_CWAP 0x00010003 |
36 | #define ASUS_WMI_DEVID_WLAN 0x00010011 |
37 | #define ASUS_WMI_DEVID_WLAN_LED 0x00010012 |
38 | #define ASUS_WMI_DEVID_BLUETOOTH 0x00010013 |
39 | #define ASUS_WMI_DEVID_GPS 0x00010015 |
40 | #define ASUS_WMI_DEVID_WIMAX 0x00010017 |
41 | #define ASUS_WMI_DEVID_WWAN3G 0x00010019 |
42 | #define ASUS_WMI_DEVID_UWB 0x00010021 |
43 | |
44 | /* Leds */ |
45 | /* 0x000200XX and 0x000400XX */ |
46 | #define ASUS_WMI_DEVID_LED1 0x00020011 |
47 | #define ASUS_WMI_DEVID_LED2 0x00020012 |
48 | #define ASUS_WMI_DEVID_LED3 0x00020013 |
49 | #define ASUS_WMI_DEVID_LED4 0x00020014 |
50 | #define ASUS_WMI_DEVID_LED5 0x00020015 |
51 | #define ASUS_WMI_DEVID_LED6 0x00020016 |
52 | #define ASUS_WMI_DEVID_MICMUTE_LED 0x00040017 |
53 | |
54 | /* Backlight and Brightness */ |
55 | #define ASUS_WMI_DEVID_ALS_ENABLE 0x00050001 /* Ambient Light Sensor */ |
56 | #define ASUS_WMI_DEVID_BACKLIGHT 0x00050011 |
57 | #define ASUS_WMI_DEVID_BRIGHTNESS 0x00050012 |
58 | #define ASUS_WMI_DEVID_KBD_BACKLIGHT 0x00050021 |
59 | #define ASUS_WMI_DEVID_LIGHT_SENSOR 0x00050022 /* ?? */ |
60 | #define ASUS_WMI_DEVID_LIGHTBAR 0x00050025 |
61 | /* This can only be used to disable the screen, not re-enable */ |
62 | #define ASUS_WMI_DEVID_SCREENPAD_POWER 0x00050031 |
63 | /* Writing a brightness re-enables the screen if disabled */ |
64 | #define ASUS_WMI_DEVID_SCREENPAD_LIGHT 0x00050032 |
65 | #define ASUS_WMI_DEVID_FAN_BOOST_MODE 0x00110018 |
66 | #define ASUS_WMI_DEVID_THROTTLE_THERMAL_POLICY 0x00120075 |
67 | |
68 | /* Misc */ |
69 | #define ASUS_WMI_DEVID_PANEL_OD 0x00050019 |
70 | #define ASUS_WMI_DEVID_CAMERA 0x00060013 |
71 | #define ASUS_WMI_DEVID_LID_FLIP 0x00060062 |
72 | #define ASUS_WMI_DEVID_LID_FLIP_ROG 0x00060077 |
73 | #define ASUS_WMI_DEVID_MINI_LED_MODE 0x0005001E |
74 | |
75 | /* Storage */ |
76 | #define ASUS_WMI_DEVID_CARDREADER 0x00080013 |
77 | |
78 | /* Input */ |
79 | #define ASUS_WMI_DEVID_TOUCHPAD 0x00100011 |
80 | #define ASUS_WMI_DEVID_TOUCHPAD_LED 0x00100012 |
81 | #define ASUS_WMI_DEVID_FNLOCK 0x00100023 |
82 | |
83 | /* Fan, Thermal */ |
84 | #define ASUS_WMI_DEVID_THERMAL_CTRL 0x00110011 |
85 | #define ASUS_WMI_DEVID_FAN_CTRL 0x00110012 /* deprecated */ |
86 | #define ASUS_WMI_DEVID_CPU_FAN_CTRL 0x00110013 |
87 | #define ASUS_WMI_DEVID_GPU_FAN_CTRL 0x00110014 |
88 | #define ASUS_WMI_DEVID_MID_FAN_CTRL 0x00110031 |
89 | #define ASUS_WMI_DEVID_CPU_FAN_CURVE 0x00110024 |
90 | #define ASUS_WMI_DEVID_GPU_FAN_CURVE 0x00110025 |
91 | #define ASUS_WMI_DEVID_MID_FAN_CURVE 0x00110032 |
92 | |
93 | /* Tunables for AUS ROG laptops */ |
94 | #define ASUS_WMI_DEVID_PPT_PL2_SPPT 0x001200A0 |
95 | #define ASUS_WMI_DEVID_PPT_PL1_SPL 0x001200A3 |
96 | #define ASUS_WMI_DEVID_PPT_APU_SPPT 0x001200B0 |
97 | #define ASUS_WMI_DEVID_PPT_PLAT_SPPT 0x001200B1 |
98 | #define ASUS_WMI_DEVID_PPT_FPPT 0x001200C1 |
99 | #define ASUS_WMI_DEVID_NV_DYN_BOOST 0x001200C0 |
100 | #define ASUS_WMI_DEVID_NV_THERM_TARGET 0x001200C2 |
101 | |
102 | /* Power */ |
103 | #define ASUS_WMI_DEVID_PROCESSOR_STATE 0x00120012 |
104 | |
105 | /* Deep S3 / Resume on LID open */ |
106 | #define ASUS_WMI_DEVID_LID_RESUME 0x00120031 |
107 | |
108 | /* Maximum charging percentage */ |
109 | #define ASUS_WMI_DEVID_RSOC 0x00120057 |
110 | |
111 | /* Keyboard dock */ |
112 | #define ASUS_WMI_DEVID_KBD_DOCK 0x00120063 |
113 | |
114 | /* Charging mode - 1=Barrel, 2=USB */ |
115 | #define ASUS_WMI_DEVID_CHARGE_MODE 0x0012006C |
116 | |
117 | /* epu is connected? 1 == true */ |
118 | #define ASUS_WMI_DEVID_EGPU_CONNECTED 0x00090018 |
119 | /* egpu on/off */ |
120 | #define ASUS_WMI_DEVID_EGPU 0x00090019 |
121 | |
122 | /* dgpu on/off */ |
123 | #define ASUS_WMI_DEVID_DGPU 0x00090020 |
124 | |
125 | /* gpu mux switch, 0 = dGPU, 1 = Optimus */ |
126 | #define ASUS_WMI_DEVID_GPU_MUX 0x00090016 |
127 | |
128 | /* TUF laptop RGB modes/colours */ |
129 | #define ASUS_WMI_DEVID_TUF_RGB_MODE 0x00100056 |
130 | |
131 | /* TUF laptop RGB power/state */ |
132 | #define ASUS_WMI_DEVID_TUF_RGB_STATE 0x00100057 |
133 | |
134 | /* DSTS masks */ |
135 | #define ASUS_WMI_DSTS_STATUS_BIT 0x00000001 |
136 | #define ASUS_WMI_DSTS_UNKNOWN_BIT 0x00000002 |
137 | #define ASUS_WMI_DSTS_PRESENCE_BIT 0x00010000 |
138 | #define ASUS_WMI_DSTS_USER_BIT 0x00020000 |
139 | #define ASUS_WMI_DSTS_BIOS_BIT 0x00040000 |
140 | #define ASUS_WMI_DSTS_BRIGHTNESS_MASK 0x000000FF |
141 | #define ASUS_WMI_DSTS_MAX_BRIGTH_MASK 0x0000FF00 |
142 | #define ASUS_WMI_DSTS_LIGHTBAR_MASK 0x0000000F |
143 | |
144 | #if IS_REACHABLE(CONFIG_ASUS_WMI) |
145 | int asus_wmi_evaluate_method(u32 method_id, u32 arg0, u32 arg1, u32 *retval); |
146 | #else |
147 | static inline int asus_wmi_evaluate_method(u32 method_id, u32 arg0, u32 arg1, |
148 | u32 *retval) |
149 | { |
150 | return -ENODEV; |
151 | } |
152 | #endif |
153 | |
154 | #endif /* __PLATFORM_DATA_X86_ASUS_WMI_H */ |
155 | |