Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/drivers/acpi/dptf/int340x_thermal.c
26282 views
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 <[email protected]>
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
{"INTC1068"},
47
{"INTC1069"},
48
{"INTC106A"},
49
{"INTC106B"},
50
{"INTC106C"},
51
{"INTC106D"},
52
{"INTC10A0"},
53
{"INTC10A1"},
54
{"INTC10A2"},
55
{"INTC10A3"},
56
{"INTC10A4"},
57
{"INTC10A5"},
58
{"INTC10D4"},
59
{"INTC10D5"},
60
{"INTC10D6"},
61
{"INTC10D7"},
62
{"INTC10D8"},
63
{"INTC10D9"},
64
{"INTC10FC"},
65
{"INTC10FD"},
66
{"INTC10FE"},
67
{"INTC10FF"},
68
{"INTC1100"},
69
{"INTC1101"},
70
{"INTC1102"},
71
{""},
72
};
73
74
static int int340x_thermal_handler_attach(struct acpi_device *adev,
75
const struct acpi_device_id *id)
76
{
77
if (IS_ENABLED(CONFIG_INT340X_THERMAL))
78
acpi_create_platform_device(adev, NULL);
79
/* Intel SoC DTS thermal driver needs INT3401 to set IRQ descriptor */
80
else if (IS_ENABLED(CONFIG_INTEL_SOC_DTS_THERMAL) &&
81
id->driver_data == INT3401_DEVICE)
82
acpi_create_platform_device(adev, NULL);
83
return 1;
84
}
85
86
static struct acpi_scan_handler int340x_thermal_handler = {
87
.ids = int340x_thermal_device_ids,
88
.attach = int340x_thermal_handler_attach,
89
};
90
91
void __init acpi_int340x_thermal_init(void)
92
{
93
acpi_scan_add_handler(&int340x_thermal_handler);
94
}
95
96