Commit | Line | Data |
---|---|---|
d2912cb1 | 1 | // SPDX-License-Identifier: GPL-2.0-only |
3230bbfc ZR |
2 | /* |
3 | * ACPI support for int340x thermal drivers | |
4 | * | |
5 | * Copyright (C) 2014, Intel Corporation | |
6 | * Authors: Zhang Rui <rui.zhang@intel.com> | |
3230bbfc ZR |
7 | */ |
8 | ||
9 | #include <linux/acpi.h> | |
10 | #include <linux/module.h> | |
11 | ||
580d0382 | 12 | #include "../internal.h" |
3230bbfc | 13 | |
014d9d5d | 14 | #define INT3401_DEVICE 0X01 |
3230bbfc | 15 | static const struct acpi_device_id int340x_thermal_device_ids[] = { |
48628e40 | 16 | {"INT3400"}, |
014d9d5d | 17 | {"INT3401", INT3401_DEVICE}, |
3230bbfc ZR |
18 | {"INT3402"}, |
19 | {"INT3403"}, | |
20 | {"INT3404"}, | |
21 | {"INT3406"}, | |
22 | {"INT3407"}, | |
23 | {"INT3408"}, | |
24 | {"INT3409"}, | |
25 | {"INT340A"}, | |
26 | {"INT340B"}, | |
7d966119 | 27 | {"INT3532"}, |
b62c770f | 28 | {"INTC1040"}, |
38748bcb | 29 | {"INTC1041"}, |
657b95d3 | 30 | {"INTC1042"}, |
b62c770f GK |
31 | {"INTC1043"}, |
32 | {"INTC1044"}, | |
2ce6324e | 33 | {"INTC1045"}, |
38748bcb | 34 | {"INTC1046"}, |
b62c770f | 35 | {"INTC1047"}, |
38748bcb SP |
36 | {"INTC1048"}, |
37 | {"INTC1049"}, | |
7d966119 | 38 | {"INTC1050"}, |
38748bcb SP |
39 | {"INTC1060"}, |
40 | {"INTC1061"}, | |
657b95d3 SP |
41 | {"INTC1062"}, |
42 | {"INTC1063"}, | |
43 | {"INTC1064"}, | |
44 | {"INTC1065"}, | |
45 | {"INTC1066"}, | |
79b510c4 SP |
46 | {"INTC1068"}, |
47 | {"INTC1069"}, | |
48 | {"INTC106A"}, | |
49 | {"INTC106B"}, | |
50 | {"INTC106C"}, | |
51 | {"INTC106D"}, | |
a510c78e SP |
52 | {"INTC10A0"}, |
53 | {"INTC10A1"}, | |
54 | {"INTC10A2"}, | |
55 | {"INTC10A3"}, | |
56 | {"INTC10A4"}, | |
57 | {"INTC10A5"}, | |
3230bbfc ZR |
58 | {""}, |
59 | }; | |
60 | ||
61 | static int int340x_thermal_handler_attach(struct acpi_device *adev, | |
62 | const struct acpi_device_id *id) | |
63 | { | |
bcb2b0b2 | 64 | if (IS_ENABLED(CONFIG_INT340X_THERMAL)) |
1571875b | 65 | acpi_create_platform_device(adev, NULL); |
014d9d5d | 66 | /* Intel SoC DTS thermal driver needs INT3401 to set IRQ descriptor */ |
bcb2b0b2 SH |
67 | else if (IS_ENABLED(CONFIG_INTEL_SOC_DTS_THERMAL) && |
68 | id->driver_data == INT3401_DEVICE) | |
1571875b | 69 | acpi_create_platform_device(adev, NULL); |
3230bbfc ZR |
70 | return 1; |
71 | } | |
72 | ||
73 | static struct acpi_scan_handler int340x_thermal_handler = { | |
74 | .ids = int340x_thermal_device_ids, | |
75 | .attach = int340x_thermal_handler_attach, | |
76 | }; | |
77 | ||
78 | void __init acpi_int340x_thermal_init(void) | |
79 | { | |
80 | acpi_scan_add_handler(&int340x_thermal_handler); | |
81 | } |