blob: 5d2949324d0ee68969b8102a2eb8da22b65813da [file] [log] [blame]
Vinod Koul95f09802015-11-05 21:34:11 +05301/*
2 * Copyright (C) 2013-15, Intel Corporation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License version
6 * 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 */
14
Randy Dunlapf17131a2016-03-29 09:45:00 -070015#include <linux/kconfig.h>
16#include <linux/stddef.h>
Vinod Koul95f09802015-11-05 21:34:11 +053017#include <linux/acpi.h>
18
Pierre-Louis Bossart1fdb7c12016-03-03 21:36:36 -060019/* translation fron HID to I2C name, needed for DAI codec_name */
Randy Dunlapf17131a2016-03-29 09:45:00 -070020#if IS_ENABLED(CONFIG_ACPI)
Pierre-Louis Bossart1fdb7c12016-03-03 21:36:36 -060021const char *sst_acpi_find_name_from_hid(const u8 hid[ACPI_ID_LEN]);
Randy Dunlapf17131a2016-03-29 09:45:00 -070022#else
Randy Dunlap2d0b29d2016-05-20 08:38:54 -070023static inline const char *sst_acpi_find_name_from_hid(const u8 hid[ACPI_ID_LEN])
Randy Dunlapf17131a2016-03-29 09:45:00 -070024{
25 return NULL;
26}
27#endif
Pierre-Louis Bossart1fdb7c12016-03-03 21:36:36 -060028
Vinod Koul95f09802015-11-05 21:34:11 +053029/* acpi match */
30struct sst_acpi_mach *sst_acpi_find_machine(struct sst_acpi_mach *machines);
31
32/* Descriptor for SST ASoC machine driver */
33struct sst_acpi_mach {
34 /* ACPI ID for the matching machine driver. Audio codec for instance */
35 const u8 id[ACPI_ID_LEN];
36 /* machine driver name */
37 const char *drv_name;
38 /* firmware file name */
39 const char *fw_filename;
Vinod Koul12cc2912015-11-05 21:34:12 +053040
41 /* board name */
42 const char *board;
Vinod Koul73a33f62016-07-08 15:39:49 +053043 struct sst_acpi_mach * (*machine_quirk)(void *arg);
Vinod Koul12cc2912015-11-05 21:34:12 +053044 void *pdata;
Vinod Koul95f09802015-11-05 21:34:11 +053045};