summaryrefslogtreecommitdiff
path: root/src/mainboard
diff options
context:
space:
mode:
authorN, Harshapriya <harshapriya.n@intel.com>2017-11-28 14:29:26 -0800
committerMartin Roth <martinroth@google.com>2018-01-23 05:17:17 +0000
commit4a1ee4b53ec2eed6c9e8129381982c300fa87031 (patch)
tree2a2242ffda72f3342a5bc17a39867753cb4295a2 /src/mainboard
parentc14a99fedac6d054f958ab86bf68c8ae3966e9fe (diff)
mainboard/intel/cannonlake_rvp: Add support for MAX98373 speaker amp
Add NHLT and dt support for max98373 amp BUG=None TEST=check SSDT and verify entries for max98373 TEST=check NHLT ACPI tables included blobs for max98373 Change-Id: I0b402f89f1ece9e62a394f713c4b0feff29bd1e5 Signed-off-by: N, Harshapriya <harshapriya.n@intel.com> Signed-off-by: Sathyanarayana Nujella <sathyanarayana.nujella@intel.com> Reviewed-on: https://review.coreboot.org/22674 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/mainboard')
-rw-r--r--src/mainboard/intel/cannonlake_rvp/Kconfig7
-rw-r--r--src/mainboard/intel/cannonlake_rvp/variants/baseboard/nhlt.c27
-rw-r--r--src/mainboard/intel/cannonlake_rvp/variants/cnl_u/devicetree.cb19
3 files changed, 41 insertions, 12 deletions
diff --git a/src/mainboard/intel/cannonlake_rvp/Kconfig b/src/mainboard/intel/cannonlake_rvp/Kconfig
index e9dccd8090..f779ac2c4a 100644
--- a/src/mainboard/intel/cannonlake_rvp/Kconfig
+++ b/src/mainboard/intel/cannonlake_rvp/Kconfig
@@ -6,6 +6,7 @@ config BOARD_SPECIFIC_OPTIONS
select DRIVERS_I2C_GENERIC
select DRIVERS_GENERIC_MAX98357A
select DRIVERS_I2C_DA7219
+ select DRIVERS_I2C_MAX98373
select GENERIC_SPD_BIN
select HAVE_ACPI_RESUME
select HAVE_ACPI_TABLES
@@ -56,6 +57,12 @@ config INCLUDE_SND_MAX98357_DA7219_NHLT
select NHLT_DA7219
select NHLT_MAX98357
+config INCLUDE_SND_MAX98373_NHLT
+ bool "Include blobs for audio with MAX98373"
+ select NHLT_DMIC_4CH_16B
+ select NHLT_DMIC_2CH_16B
+ select NHLT_MAX98373
+
config ME_BIN_PATH
string
depends on HAVE_ME_BIN
diff --git a/src/mainboard/intel/cannonlake_rvp/variants/baseboard/nhlt.c b/src/mainboard/intel/cannonlake_rvp/variants/baseboard/nhlt.c
index f8647d7011..9fb9be5184 100644
--- a/src/mainboard/intel/cannonlake_rvp/variants/baseboard/nhlt.c
+++ b/src/mainboard/intel/cannonlake_rvp/variants/baseboard/nhlt.c
@@ -33,16 +33,21 @@ void __attribute__((weak)) variant_nhlt_init(struct nhlt *nhlt)
!nhlt_soc_add_dmic_array(nhlt, 4))
printk(BIOS_ERR, "Added 4CH DMIC array.\n");
-#if IS_ENABLED(CONFIG_INCLUDE_SND_MAX98357_DA7219_NHLT)
- /* Dialog for Headset codec.
- * Headset codec is bi-directional but uses the same configuration
- * settings for render and capture endpoints.
- */
- if (!nhlt_soc_add_da7219(nhlt, AUDIO_LINK_SSP2))
- printk(BIOS_ERR, "Added Dialog_7219 codec.\n");
+ if (IS_ENABLED(CONFIG_INCLUDE_SND_MAX98357_DA7219_NHLT))
+ {
+ /* Dialog for Headset codec.
+ * Headset codec is bi-directional but uses the same configuration
+ * settings for render and capture endpoints.
+ */
+ if (!nhlt_soc_add_da7219(nhlt, AUDIO_LINK_SSP2))
+ printk(BIOS_ERR, "Added Dialog_7219 codec.\n");
- /* MAXIM Smart Amps for left and right speakers. */
- if (!nhlt_soc_add_max98357(nhlt, AUDIO_LINK_SSP1))
- printk(BIOS_ERR, "Added Maxim_98357 codec.\n");
-#endif
+ /* MAXIM Smart Amps for left and right speakers. */
+ if (!nhlt_soc_add_max98357(nhlt, AUDIO_LINK_SSP1))
+ printk(BIOS_ERR, "Added Maxim_98357 codec.\n");
+ }
+
+ if (IS_ENABLED(CONFIG_INCLUDE_SND_MAX98373_NHLT) &&
+ !nhlt_soc_add_max98373(nhlt, AUDIO_LINK_SSP1))
+ printk(BIOS_ERR, "Added Maxim_98373 codec.\n");
}
diff --git a/src/mainboard/intel/cannonlake_rvp/variants/cnl_u/devicetree.cb b/src/mainboard/intel/cannonlake_rvp/variants/cnl_u/devicetree.cb
index e5157efd07..3e60ed946b 100644
--- a/src/mainboard/intel/cannonlake_rvp/variants/cnl_u/devicetree.cb
+++ b/src/mainboard/intel/cannonlake_rvp/variants/cnl_u/devicetree.cb
@@ -70,6 +70,13 @@ chip soc/intel/cannonlake
# GPIO for SD card detect
register "sdcard_cd_gpio" = "GPP_G5"
+ # Audio
+ register "i2c[3]" = "{
+ .speed = I2C_SPEED_STANDARD,
+ .rise_time_ns = 104,
+ .fall_time_ns = 52,
+ }"
+
device domain 0 on
device pci 00.0 on end # Host Bridge
device pci 02.0 on end # Integrated Graphics Device
@@ -84,7 +91,17 @@ chip soc/intel/cannonlake
device pci 15.0 on end # I2C #0
device pci 15.1 on end # I2C #1
device pci 15.2 off end # I2C #2
- device pci 15.3 off end # I2C #3
+ device pci 15.3 on
+ chip drivers/i2c/max98373
+ register "interleave_mode" = "1"
+ register "vmon_slot_no" = "4"
+ register "imon_slot_no" = "5"
+ register "uid" = "0"
+ register "desc" = ""Right Speaker Amp""
+ register "name" = ""MAXR""
+ device i2c 32 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