diff options
author | Sathya Prakash M R <sathya.prakash.m.r@intel.com> | 2019-02-04 17:26:45 +0530 |
---|---|---|
committer | Furquan Shaikh <furquan@google.com> | 2019-03-11 18:31:52 +0000 |
commit | d244f6ca46c2bd5f91f6d74d62884125b6fbcdfa (patch) | |
tree | 7af5f353aac48c19933d88d441c1af4eb8e69c21 /src/mainboard/google | |
parent | 8d8ceade60c09270731026d6778e521d159376b8 (diff) | |
download | coreboot-d244f6ca46c2bd5f91f6d74d62884125b6fbcdfa.tar.xz |
mb/google/hatch: Enable audio support
Following changes are done to enable audio support on hatch
1. Enable I2C4 device at 400Khz at 1.8V
2. Configure GPIO for HP INT and SPKR_PA_EN
3. Add ACPI entry for RT5682 and MAX98357A
4. Enable I2S0 and I2S1 lines
5. Enable generic max98357a driver in Kconfig
BUG=b:123738217
BRANCH=none
TEST=Check SSDT table for RT5682 & MAX98357a entry.
Verify audio using Sound Open firmware (SOF)
Change-Id: I93f3917c19cc3f0f8fd7b5e1b4d9b24a59f45f84
Signed-off-by: Sathya Prakash M R <sathya.prakash.m.r@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/31280
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src/mainboard/google')
-rw-r--r-- | src/mainboard/google/hatch/Kconfig | 1 | ||||
-rw-r--r-- | src/mainboard/google/hatch/variants/baseboard/devicetree.cb | 33 | ||||
-rw-r--r-- | src/mainboard/google/hatch/variants/baseboard/gpio.c | 4 |
3 files changed, 34 insertions, 4 deletions
diff --git a/src/mainboard/google/hatch/Kconfig b/src/mainboard/google/hatch/Kconfig index 2290d8c7b8..7902a04cac 100644 --- a/src/mainboard/google/hatch/Kconfig +++ b/src/mainboard/google/hatch/Kconfig @@ -2,6 +2,7 @@ config BOARD_GOOGLE_BASEBOARD_HATCH def_bool n select BOARD_ROMSIZE_KB_32768 + select DRIVERS_GENERIC_MAX98357A select DRIVERS_I2C_GENERIC select DRIVERS_I2C_HID select DRIVERS_SPI_ACPI diff --git a/src/mainboard/google/hatch/variants/baseboard/devicetree.cb b/src/mainboard/google/hatch/variants/baseboard/devicetree.cb index e2c3392eef..16a0ef134f 100644 --- a/src/mainboard/google/hatch/variants/baseboard/devicetree.cb +++ b/src/mainboard/google/hatch/variants/baseboard/devicetree.cb @@ -27,6 +27,7 @@ chip soc/intel/cannonlake #| | before memory is up | #| I2C0 | Touchpad | #| I2C1 | Touch screen | + #| I2C4 | Audio | #+-------------------+---------------------------+ register "common_soc_config" = "{ .gspi[0] = { @@ -39,6 +40,9 @@ chip soc/intel/cannonlake .i2c[1] = { .speed = I2C_SPEED_FAST, }, + .i2c[4] = { + .speed = I2C_SPEED_FAST, + }, }" # FSP configuration @@ -97,6 +101,12 @@ chip soc/intel/cannonlake register "PcieClkSrcUsage[3]" = "13" register "PcieClkSrcClkReq[3]" = "3" + #Enable I2S Audio, SSP0, SSP1 and DMIC0 + register "PchHdaDspEnable" = "1" + register "PchHdaAudioLinkSsp0" = "1" + register "PchHdaAudioLinkSsp1" = "1" + register "PchHdaAudioLinkDmic0" = "1" + device cpu_cluster 0 on device lapic 0 on end end @@ -229,7 +239,20 @@ chip soc/intel/cannonlake device pci 16.4 off end # Management Engine Interface 3 device pci 16.5 off end # Management Engine Interface 4 device pci 17.0 on end # SATA - device pci 19.0 on end # I2C #4 + device pci 19.0 on + chip drivers/i2c/generic + register "hid" = ""10EC5682"" + register "name" = ""RT58"" + register "desc" = ""Realtek RT5682"" + register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_H0_IRQ)" + register "property_count" = "1" + # Set the jd_src to RT5668_JD1 for jack detection + register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER" + register "property_list[0].name" = ""realtek,jd-src"" + register "property_list[0].integer" = "1" + device i2c 1a on end + end + end #I2C #4 device pci 19.1 off end # I2C #5 device pci 19.2 off end # UART #2 device pci 1a.0 off end # eMMC @@ -270,7 +293,13 @@ chip soc/intel/cannonlake end # eSPI Interface device pci 1f.1 on end # P2SB device pci 1f.2 on end # Power Management Controller - device pci 1f.3 off end # Intel HDA + device pci 1f.3 on + chip drivers/generic/max98357a + register "sdmode_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_H3)" + register "sdmode_delay" = "5" + device generic 0 on end + end + end # Intel HDA device pci 1f.4 on end # SMBus device pci 1f.5 on end # PCH SPI device pci 1f.6 off end # GbE diff --git a/src/mainboard/google/hatch/variants/baseboard/gpio.c b/src/mainboard/google/hatch/variants/baseboard/gpio.c index 35dd912945..091f6b8b30 100644 --- a/src/mainboard/google/hatch/variants/baseboard/gpio.c +++ b/src/mainboard/google/hatch/variants/baseboard/gpio.c @@ -343,7 +343,7 @@ static const struct pad_config gpio_table[] = { PAD_NC(GPP_G7, DN_20K), /* - * H0 : AUDIO IRQ + * H0 : HP_INT_L * TODO Configure it back to invert mode, when * ITSS IPCx configuration is fixed in FSP. */ @@ -352,7 +352,7 @@ static const struct pad_config gpio_table[] = { PAD_CFG_NF(GPP_H1, NONE, DEEP, NF3), /* H2 : CNV_CLKREQ0 */ PAD_CFG_NF(GPP_H2, NONE, DEEP, NF3), - /* H3 : SPEAKER SD MODE ENABLE */ + /* H3 : SPKR_PA_EN */ PAD_CFG_GPO(GPP_H3, 0, DEEP), /* H4 : PCH_I2C_PEN_SDA */ PAD_NC(GPP_H4, NONE), |