2015-11-05 21:34:11 +05:30
/*
* Copyright ( C ) 2013 - 15 , Intel Corporation . All rights reserved .
*
* 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 .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
*/
2016-03-29 09:45:00 -07:00
# include <linux/stddef.h>
2015-11-05 21:34:11 +05:30
# include <linux/acpi.h>
2016-11-12 18:07:44 -06:00
struct sst_acpi_package_context {
char * name ; /* package name */
int length ; /* number of elements */
struct acpi_buffer * format ;
struct acpi_buffer * state ;
bool data_valid ;
} ;
2016-03-29 09:45:00 -07:00
# if IS_ENABLED(CONFIG_ACPI)
2016-11-12 18:07:44 -06:00
/* translation fron HID to I2C name, needed for DAI codec_name */
2016-03-03 21:36:36 -06:00
const char * sst_acpi_find_name_from_hid ( const u8 hid [ ACPI_ID_LEN ] ) ;
2016-11-12 18:07:44 -06:00
bool sst_acpi_find_package_from_hid ( const u8 hid [ ACPI_ID_LEN ] ,
struct sst_acpi_package_context * ctx ) ;
2016-03-29 09:45:00 -07:00
# else
2016-05-20 08:38:54 -07:00
static inline const char * sst_acpi_find_name_from_hid ( const u8 hid [ ACPI_ID_LEN ] )
2016-03-29 09:45:00 -07:00
{
return NULL ;
}
2016-11-12 18:07:44 -06:00
static inline bool sst_acpi_find_package_from_hid ( const u8 hid [ ACPI_ID_LEN ] ,
struct sst_acpi_package_context * ctx )
{
return false ;
}
2016-03-29 09:45:00 -07:00
# endif
2016-03-03 21:36:36 -06:00
2015-11-05 21:34:11 +05:30
/* acpi match */
struct sst_acpi_mach * sst_acpi_find_machine ( struct sst_acpi_mach * machines ) ;
2017-05-15 13:42:13 +05:30
/* acpi check hid */
bool sst_acpi_check_hid ( const u8 hid [ ACPI_ID_LEN ] ) ;
2015-11-05 21:34:11 +05:30
/* Descriptor for SST ASoC machine driver */
struct sst_acpi_mach {
/* ACPI ID for the matching machine driver. Audio codec for instance */
const u8 id [ ACPI_ID_LEN ] ;
/* machine driver name */
const char * drv_name ;
/* firmware file name */
const char * fw_filename ;
2015-11-05 21:34:12 +05:30
/* board name */
const char * board ;
2016-07-08 15:39:49 +05:30
struct sst_acpi_mach * ( * machine_quirk ) ( void * arg ) ;
2015-11-05 21:34:12 +05:30
void * pdata ;
2015-11-05 21:34:11 +05:30
} ;