2014-03-13 20:34:05 +04:00
/*
* ACPI support for int340x thermal drivers
*
* Copyright ( C ) 2014 , Intel Corporation
* Authors : Zhang Rui < rui . zhang @ intel . com >
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*/
# include <linux/acpi.h>
# include <linux/module.h>
# include "internal.h"
2015-01-04 09:24:24 +03:00
# define INT3401_DEVICE 0X01
2014-03-13 20:34:05 +04:00
static const struct acpi_device_id int340x_thermal_device_ids [ ] = {
2015-01-04 09:24:23 +03:00
{ " INT3400 " } ,
2015-01-04 09:24:24 +03:00
{ " INT3401 " , INT3401_DEVICE } ,
2014-03-13 20:34:05 +04:00
{ " INT3402 " } ,
{ " INT3403 " } ,
{ " INT3404 " } ,
{ " INT3406 " } ,
{ " INT3407 " } ,
{ " INT3408 " } ,
{ " INT3409 " } ,
{ " INT340A " } ,
{ " INT340B " } ,
{ " " } ,
} ;
static int int340x_thermal_handler_attach ( struct acpi_device * adev ,
const struct acpi_device_id * id )
{
2015-09-14 18:01:55 +03:00
if ( IS_ENABLED ( CONFIG_INT340X_THERMAL ) )
2016-11-03 17:21:26 +03:00
acpi_create_platform_device ( adev , NULL ) ;
2015-01-04 09:24:24 +03:00
/* Intel SoC DTS thermal driver needs INT3401 to set IRQ descriptor */
2015-09-14 18:01:55 +03:00
else if ( IS_ENABLED ( CONFIG_INTEL_SOC_DTS_THERMAL ) & &
id - > driver_data = = INT3401_DEVICE )
2016-11-03 17:21:26 +03:00
acpi_create_platform_device ( adev , NULL ) ;
2014-03-13 20:34:05 +04: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 ) ;
}