2019-06-04 10:11:33 +02:00
// SPDX-License-Identifier: GPL-2.0-only
2014-03-14 00:34:05 +08:00
/*
* ACPI support for int340x thermal drivers
*
* Copyright ( C ) 2014 , Intel Corporation
* Authors : Zhang Rui < rui . zhang @ intel . com >
*/
# include <linux/acpi.h>
# include <linux/module.h>
2019-01-24 21:16:03 +09:00
# include "../internal.h"
2014-03-14 00:34:05 +08:00
2015-01-04 14:24:24 +08:00
# define INT3401_DEVICE 0X01
2014-03-14 00:34:05 +08:00
static const struct acpi_device_id int340x_thermal_device_ids [ ] = {
2015-01-04 14:24:23 +08:00
{ " INT3400 " } ,
2015-01-04 14:24:24 +08:00
{ " INT3401 " , INT3401_DEVICE } ,
2014-03-14 00:34:05 +08:00
{ " INT3402 " } ,
{ " INT3403 " } ,
{ " INT3404 " } ,
{ " INT3406 " } ,
{ " INT3407 " } ,
{ " INT3408 " } ,
{ " INT3409 " } ,
{ " INT340A " } ,
{ " INT340B " } ,
2020-03-27 14:28:19 -07:00
{ " INTC1040 " } ,
{ " INTC1043 " } ,
{ " INTC1044 " } ,
{ " INTC1047 " } ,
2014-03-14 00:34:05 +08:00
{ " " } ,
} ;
static int int340x_thermal_handler_attach ( struct acpi_device * adev ,
const struct acpi_device_id * id )
{
2015-09-14 16:01:55 +01:00
if ( IS_ENABLED ( CONFIG_INT340X_THERMAL ) )
2016-11-03 16:21:26 +02:00
acpi_create_platform_device ( adev , NULL ) ;
2015-01-04 14:24:24 +08:00
/* Intel SoC DTS thermal driver needs INT3401 to set IRQ descriptor */
2015-09-14 16:01:55 +01:00
else if ( IS_ENABLED ( CONFIG_INTEL_SOC_DTS_THERMAL ) & &
id - > driver_data = = INT3401_DEVICE )
2016-11-03 16:21:26 +02:00
acpi_create_platform_device ( adev , NULL ) ;
2014-03-14 00:34:05 +08:00
return 1 ;
}
static struct acpi_scan_handler int340x_thermal_handler = {
. ids = int340x_thermal_device_ids ,
. attach = int340x_thermal_handler_attach ,
} ;
void __init acpi_int340x_thermal_init ( void )
{
acpi_scan_add_handler ( & int340x_thermal_handler ) ;
}