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