aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGaggery Tsai <gaggery.tsai@intel.com>2017-12-13 16:47:57 +0800
committerFurquan Shaikh <furquan@google.com>2017-12-20 03:00:46 +0000
commitff9005b0d6b669f950fc8482c0dcae62eaf73271 (patch)
treefa93183a685792ce3632df97e8ae8a41aa5858d8 /src
parent2ff25f517974d51f01bfeb4abc10fe413d382f68 (diff)
mb/google/poppy: Enable speaker and codec for nami
Nami uses MAX98357A speaker amplifier and DA7219 codec. This patch adds max98357a and da7219 under I2C #3 in devicetree and adds SPK DMIC nhlt support for 4CH DMIC. BUG=b:70646770 TEST=emerge-nami coreboot Change-Id: Iecf4059f8ea3d5e34f33f0be227897a8cca636fa Signed-off-by: Gaggery Tsai <gaggery.tsai@intel.com> Reviewed-on: https://review.coreboot.org/22861 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/mainboard/google/poppy/Kconfig8
-rw-r--r--src/mainboard/google/poppy/variants/nami/Makefile.inc1
-rw-r--r--src/mainboard/google/poppy/variants/nami/devicetree.cb25
-rw-r--r--src/mainboard/google/poppy/variants/nami/nhlt.c35
4 files changed, 68 insertions, 1 deletions
diff --git a/src/mainboard/google/poppy/Kconfig b/src/mainboard/google/poppy/Kconfig
index 72103afb49..9315d96e70 100644
--- a/src/mainboard/google/poppy/Kconfig
+++ b/src/mainboard/google/poppy/Kconfig
@@ -55,6 +55,12 @@ config INCLUDE_NHLT_BLOBS_NAUTILUS
select NHLT_DMIC_4CH
select NHLT_MAX98357
+config INCLUDE_NHLT_BLOBS_NAMI
+ bool "Include blobs for nami audio."
+ select NHLT_DA7219
+ select NHLT_DMIC_4CH
+ select NHLT_MAX98357
+
config MAINBOARD_DIR
string
default "google/poppy"
@@ -118,6 +124,8 @@ config VARIANT_SPECIFIC_OPTIONS_POPPY
config VARIANT_SPECIFIC_OPTIONS_NAMI
def_bool n
+ select DRIVERS_GENERIC_MAX98357A
+ select DRIVERS_I2C_DA7219
select DRIVERS_PS2_KEYBOARD
select DRIVERS_SPI_ACPI
select EXCLUDE_NATIVE_SD_INTERFACE
diff --git a/src/mainboard/google/poppy/variants/nami/Makefile.inc b/src/mainboard/google/poppy/variants/nami/Makefile.inc
index 06f98017ca..ca1e02653a 100644
--- a/src/mainboard/google/poppy/variants/nami/Makefile.inc
+++ b/src/mainboard/google/poppy/variants/nami/Makefile.inc
@@ -8,4 +8,5 @@ bootblock-y += gpio.c
romstage-y += memory.c
ramstage-y += gpio.c
+ramstage-y += nhlt.c
ramstage-y += pl2.c
diff --git a/src/mainboard/google/poppy/variants/nami/devicetree.cb b/src/mainboard/google/poppy/variants/nami/devicetree.cb
index 4c507993b0..4f88f707e1 100644
--- a/src/mainboard/google/poppy/variants/nami/devicetree.cb
+++ b/src/mainboard/google/poppy/variants/nami/devicetree.cb
@@ -246,7 +246,30 @@ chip soc/intel/skylake
device pci 15.0 on end # I2C #0
device pci 15.1 on end # I2C #1
device pci 15.2 on end # I2C #2
- device pci 15.3 on end # I2C #3
+ device pci 15.3 on
+ chip drivers/generic/max98357a
+ register "sdmode_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_A23)"
+ register "sdmode_delay" = "5"
+ device generic 0 on end
+ end
+ chip drivers/i2c/da7219
+ register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D9_IRQ)"
+ register "btn_cfg" = "50"
+ register "mic_det_thr" = "500"
+ register "jack_ins_deb" = "20"
+ register "jack_det_rate" = ""32ms_64ms""
+ register "jack_rem_deb" = "1"
+ register "a_d_btn_thr" = "0xa"
+ register "d_b_btn_thr" = "0x16"
+ register "b_c_btn_thr" = "0x21"
+ register "c_mic_btn_thr" = "0x3e"
+ register "btn_avg" = "4"
+ register "adc_1bit_rpt" = "1"
+ register "micbias_lvl" = "2600"
+ register "mic_amp_in_sel" = ""diff""
+ device i2c 1A on end
+ end
+ end # I2C #3
device pci 16.0 on end # Management Engine Interface 1
device pci 16.1 off end # Management Engine Interface 2
device pci 16.2 off end # Management Engine IDE-R
diff --git a/src/mainboard/google/poppy/variants/nami/nhlt.c b/src/mainboard/google/poppy/variants/nami/nhlt.c
new file mode 100644
index 0000000000..690fed570b
--- /dev/null
+++ b/src/mainboard/google/poppy/variants/nami/nhlt.c
@@ -0,0 +1,35 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2017 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * 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.
+ */
+
+#include <baseboard/variants.h>
+#include <console/console.h>
+#include <nhlt.h>
+#include <soc/nhlt.h>
+
+void variant_nhlt_init(struct nhlt *nhlt)
+{
+ /* 4 Channel DMIC array. */
+ if (nhlt_soc_add_dmic_array(nhlt, 4))
+ printk(BIOS_ERR, "Couldn't add 4CH DMIC array.\n");
+
+ /* Dialog DA7219 Headset codec. */
+ if (nhlt_soc_add_da7219(nhlt, AUDIO_LINK_SSP1))
+ printk(BIOS_ERR, "Couldn't add Dialog DA7219.\n");
+
+ /* MAXIM Smart Amps for left and right speakers. */
+ if (nhlt_soc_add_max98357(nhlt, AUDIO_LINK_SSP0))
+ printk(BIOS_ERR, "Couldn't add Maxim_98357 codec.\n");
+
+}