summaryrefslogtreecommitdiff
path: root/src/mainboard/google/poppy/mainboard.c
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@chromium.org>2017-04-15 11:36:07 -0700
committerFurquan Shaikh <furquan@google.com>2017-04-19 19:19:01 +0200
commitffb3b8983dc351ef2768fec6e91aad701e496a86 (patch)
treee9dd5f1af26aaeb7b99b921893b764c00bacd78e /src/mainboard/google/poppy/mainboard.c
parentcbed0c26d0949489e7430013fd01c8f9ea1e3a88 (diff)
mainboard/google/poppy: Provide nhlt variant API
Move current NHLT configuration implementation to baseboard so that variants can leverage it or provide their own configuration. BUG=b:37375693 Change-Id: I2a4317c112f9e3614bd01eb6809727b73328d29d Signed-off-by: Furquan Shaikh <furquan@chromium.org> Reviewed-on: https://review.coreboot.org/19326 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/mainboard/google/poppy/mainboard.c')
-rw-r--r--src/mainboard/google/poppy/mainboard.c27
1 files changed, 7 insertions, 20 deletions
diff --git a/src/mainboard/google/poppy/mainboard.c b/src/mainboard/google/poppy/mainboard.c
index 24e86be9a7..3ee01467cd 100644
--- a/src/mainboard/google/poppy/mainboard.c
+++ b/src/mainboard/google/poppy/mainboard.c
@@ -14,15 +14,12 @@
*/
#include <arch/acpi.h>
-#include <console/console.h>
+#include <baseboard/variants.h>
#include <device/device.h>
#include <ec/ec.h>
#include <soc/nhlt.h>
#include <vendorcode/google/chromeos/chromeos.h>
-static const char *oem_id_maxim = "GOOGLE";
-static const char *oem_table_id_maxim = "POPPYMAX";
-
static void mainboard_init(device_t dev)
{
mainboard_ec_init();
@@ -34,6 +31,9 @@ static unsigned long mainboard_write_acpi_tables(device_t device,
uintptr_t start_addr;
uintptr_t end_addr;
struct nhlt *nhlt;
+ const char *oem_id = NULL;
+ const char *oem_table_id = NULL;
+ uint32_t oem_revision = 0;
start_addr = current;
@@ -42,24 +42,11 @@ static unsigned long mainboard_write_acpi_tables(device_t device,
if (nhlt == NULL)
return start_addr;
- /* 2 Channel DMIC array. */
- if (nhlt_soc_add_dmic_array(nhlt, 2))
- printk(BIOS_ERR, "Couldn't add 2CH DMIC array.\n");
-
- /* 4 Channel DMIC array. */
- if (nhlt_soc_add_dmic_array(nhlt, 4))
- printk(BIOS_ERR, "Couldn't add 4CH DMIC arrays.\n");
-
- /* Maxim MAX98927 Smart Amps for left and right channel */
- if (nhlt_soc_add_max98927(nhlt, AUDIO_LINK_SSP0))
- printk(BIOS_ERR, "Couldn't add Maxim MAX98927\n");
-
- /* Realtek RT5663 Headset codec. */
- if (nhlt_soc_add_rt5663(nhlt, AUDIO_LINK_SSP1))
- printk(BIOS_ERR, "Couldn't add Realtek RT5663.\n");
+ variant_nhlt_init(nhlt);
+ variant_nhlt_oem_overrides(&oem_id, &oem_table_id, &oem_revision);
end_addr = nhlt_soc_serialize_oem_overrides(nhlt, start_addr,
- oem_id_maxim, oem_table_id_maxim, 0);
+ oem_id, oem_table_id, oem_revision);
if (end_addr != start_addr)
acpi_add_table(rsdp, (void *)start_addr);