82 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2/*3 * ACPI support for int340x thermal drivers4 *5 * Copyright (C) 2014, Intel Corporation6 * 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 0X0115static 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 {""},59};60 61static int int340x_thermal_handler_attach(struct acpi_device *adev,62 const struct acpi_device_id *id)63{64 if (IS_ENABLED(CONFIG_INT340X_THERMAL))65 acpi_create_platform_device(adev, NULL);66 /* Intel SoC DTS thermal driver needs INT3401 to set IRQ descriptor */67 else if (IS_ENABLED(CONFIG_INTEL_SOC_DTS_THERMAL) &&68 id->driver_data == INT3401_DEVICE)69 acpi_create_platform_device(adev, NULL);70 return 1;71}72 73static struct acpi_scan_handler int340x_thermal_handler = {74 .ids = int340x_thermal_device_ids,75 .attach = int340x_thermal_handler_attach,76};77 78void __init acpi_int340x_thermal_init(void)79{80 acpi_scan_add_handler(&int340x_thermal_handler);81}82