Branch data Line data Source code
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 : : {"INT1040"},
17 : : {"INT1043"},
18 : : {"INT1044"},
19 : : {"INT1047"},
20 : : {"INT3400"},
21 : : {"INT3401", INT3401_DEVICE},
22 : : {"INT3402"},
23 : : {"INT3403"},
24 : : {"INT3404"},
25 : : {"INT3406"},
26 : : {"INT3407"},
27 : : {"INT3408"},
28 : : {"INT3409"},
29 : : {"INT340A"},
30 : : {"INT340B"},
31 : : {""},
32 : : };
33 : :
34 : 0 : static int int340x_thermal_handler_attach(struct acpi_device *adev,
35 : : const struct acpi_device_id *id)
36 : : {
37 : 0 : if (IS_ENABLED(CONFIG_INT340X_THERMAL))
38 : : acpi_create_platform_device(adev, NULL);
39 : : /* Intel SoC DTS thermal driver needs INT3401 to set IRQ descriptor */
40 : 0 : else if (IS_ENABLED(CONFIG_INTEL_SOC_DTS_THERMAL) &&
41 : : id->driver_data == INT3401_DEVICE)
42 : : acpi_create_platform_device(adev, NULL);
43 : 0 : return 1;
44 : : }
45 : :
46 : : static struct acpi_scan_handler int340x_thermal_handler = {
47 : : .ids = int340x_thermal_device_ids,
48 : : .attach = int340x_thermal_handler_attach,
49 : : };
50 : :
51 : 28 : void __init acpi_int340x_thermal_init(void)
52 : : {
53 : 28 : acpi_scan_add_handler(&int340x_thermal_handler);
54 : 28 : }
|