Commit | Line | Data |
---|---|---|
b9370dce RW |
1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
2 | ||
3 | /* | |
4 | * ACPI fan device IDs are shared between the fan driver and the device power | |
5 | * management code. | |
6 | * | |
7 | * Add new device IDs before the generic ACPI fan one. | |
8 | */ | |
00ae053a SP |
9 | |
10 | #ifndef _ACPI_FAN_H_ | |
11 | #define _ACPI_FAN_H_ | |
12 | ||
b9370dce RW |
13 | #define ACPI_FAN_DEVICE_IDS \ |
14 | {"INT3404", }, /* Fan */ \ | |
15 | {"INTC1044", }, /* Fan for Tiger Lake generation */ \ | |
16 | {"INTC1048", }, /* Fan for Alder Lake generation */ \ | |
657b95d3 | 17 | {"INTC1063", }, /* Fan for Meteor Lake generation */ \ |
a510c78e | 18 | {"INTC10A2", }, /* Fan for Raptor Lake generation */ \ |
b9370dce | 19 | {"PNP0C0B", } /* Generic ACPI fan */ |
00ae053a SP |
20 | |
21 | #define ACPI_FPS_NAME_LEN 20 | |
22 | ||
23 | struct acpi_fan_fps { | |
24 | u64 control; | |
25 | u64 trip_point; | |
26 | u64 speed; | |
27 | u64 noise_level; | |
28 | u64 power; | |
29 | char name[ACPI_FPS_NAME_LEN]; | |
30 | struct device_attribute dev_attr; | |
31 | }; | |
32 | ||
33 | struct acpi_fan_fif { | |
d445571f SP |
34 | u8 revision; |
35 | u8 fine_grain_ctrl; | |
36 | u8 step_size; | |
37 | u8 low_speed_notification; | |
00ae053a SP |
38 | }; |
39 | ||
bea2d986 SP |
40 | struct acpi_fan_fst { |
41 | u64 revision; | |
42 | u64 control; | |
43 | u64 speed; | |
44 | }; | |
45 | ||
00ae053a SP |
46 | struct acpi_fan { |
47 | bool acpi4; | |
48 | struct acpi_fan_fif fif; | |
49 | struct acpi_fan_fps *fps; | |
50 | int fps_count; | |
51 | struct thermal_cooling_device *cdev; | |
f1197343 SP |
52 | struct device_attribute fst_speed; |
53 | struct device_attribute fine_grain_control; | |
00ae053a SP |
54 | }; |
55 | ||
f1197343 | 56 | int acpi_fan_get_fst(struct acpi_device *device, struct acpi_fan_fst *fst); |
00ae053a SP |
57 | int acpi_fan_create_attributes(struct acpi_device *device); |
58 | void acpi_fan_delete_attributes(struct acpi_device *device); | |
59 | #endif |