From e098c8a59346df4c7a17ec7aec04bcf4e3bf1f61 Mon Sep 17 00:00:00 2001 From: Naveen Manohar Date: Thu, 10 May 2018 08:54:14 +0530 Subject: mb/google/octopus: Enable RT5682 headset codec for BIP board Patch adds required changes for RT5682 codec enablement for the BIP board. And code clean-up nhlt blob selection method in config. BUG=b:77892150 TEST=build and boot on a BIP PO board. verify headset codec i2cdetects at address 1a. Change-Id: Iee91518c03a0e9e6ed52bc54a60fc607730a0b7d Signed-off-by: Naveen Manohar Reviewed-on: https://review.coreboot.org/26211 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin Reviewed-by: Furquan Shaikh --- src/mainboard/google/octopus/Kconfig | 4 ++-- src/mainboard/google/octopus/Kconfig.name | 3 +++ src/mainboard/google/octopus/variants/baseboard/nhlt.c | 15 ++++++++++++--- src/mainboard/google/octopus/variants/bip/devicetree.cb | 16 +++++++++++++++- src/mainboard/google/octopus/variants/bip/gpio.c | 3 ++- 5 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/mainboard/google/octopus/Kconfig b/src/mainboard/google/octopus/Kconfig index 79af95c238..b0957b8e42 100644 --- a/src/mainboard/google/octopus/Kconfig +++ b/src/mainboard/google/octopus/Kconfig @@ -85,9 +85,9 @@ config UART_FOR_CONSOLE default 2 config INCLUDE_NHLT_BLOBS - bool "Include blobs for audio." + bool "Include blobs for audio" + select NHLT_DMIC_2CH_16B select NHLT_DMIC_4CH_16B - select NHLT_DA7219 select NHLT_MAX98357 config DRIVER_TPM_SPI_BUS diff --git a/src/mainboard/google/octopus/Kconfig.name b/src/mainboard/google/octopus/Kconfig.name index 596da3bbce..c9eab1a1cc 100644 --- a/src/mainboard/google/octopus/Kconfig.name +++ b/src/mainboard/google/octopus/Kconfig.name @@ -8,11 +8,14 @@ config BOARD_GOOGLE_YORP bool "-> Yorp" select BOARD_GOOGLE_BASEBOARD_OCTOPUS select BASEBOARD_OCTOPUS_LAPTOP + select NHLT_DA7219 if INCLUDE_NHLT_BLOBS config BOARD_GOOGLE_BIP bool "-> Bip" select BOARD_GOOGLE_BASEBOARD_OCTOPUS select BASEBOARD_OCTOPUS_LAPTOP + select NHLT_RT5682 if INCLUDE_NHLT_BLOBS config BOARD_GOOGLE_PHASER bool "-> Phaser" select BOARD_GOOGLE_BASEBOARD_OCTOPUS select BASEBOARD_OCTOPUS_LAPTOP + select NHLT_DA7219 if INCLUDE_NHLT_BLOBS diff --git a/src/mainboard/google/octopus/variants/baseboard/nhlt.c b/src/mainboard/google/octopus/variants/baseboard/nhlt.c index 94403a8c35..b71aadf9d0 100644 --- a/src/mainboard/google/octopus/variants/baseboard/nhlt.c +++ b/src/mainboard/google/octopus/variants/baseboard/nhlt.c @@ -29,12 +29,21 @@ void __weak variant_nhlt_init(struct nhlt *nhlt) if (!nhlt_soc_add_dmic_array(nhlt, 4)) printk(BIOS_ERR, "Added 4CH DMIC arrays.\n"); - /* 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_NHLT_DA7219)) { + /* Dialog for Headset codec */ + if (!nhlt_soc_add_da7219(nhlt, AUDIO_LINK_SSP2)) + printk(BIOS_ERR, "Added Dialog_7219 codec.\n"); + } + + if (IS_ENABLED(CONFIG_NHLT_RT5682)) { + /* Realtek for Headset codec */ + if (!nhlt_soc_add_rt5682(nhlt, AUDIO_LINK_SSP2)) + printk(BIOS_ERR, "Added ALC5682 codec.\n"); + } /* MAXIM Smart Amps for left and right speakers. */ if (!nhlt_soc_add_max98357(nhlt, AUDIO_LINK_SSP1)) diff --git a/src/mainboard/google/octopus/variants/bip/devicetree.cb b/src/mainboard/google/octopus/variants/bip/devicetree.cb index 860ca7933a..fcfaa4a9a3 100644 --- a/src/mainboard/google/octopus/variants/bip/devicetree.cb +++ b/src/mainboard/google/octopus/variants/bip/devicetree.cb @@ -142,7 +142,21 @@ chip soc/intel/apollolake device pci 16.2 on end # - I2C 2 device pci 16.3 on end # - I2C 3 device pci 17.0 on end # - I2C 4 - device pci 17.1 on end # - I2C 5 + device pci 17.1 on + chip drivers/i2c/generic + register "hid" = ""10EC5682"" + register "name" = ""RT58"" + register "desc" = ""Realtek RT5682"" + register "irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_137_IRQ)" + register "probed" = "1" + 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 5 device pci 17.2 on chip drivers/i2c/generic register "hid" = ""ELAN0000"" diff --git a/src/mainboard/google/octopus/variants/bip/gpio.c b/src/mainboard/google/octopus/variants/bip/gpio.c index 17fc1050f3..e809ca2c61 100644 --- a/src/mainboard/google/octopus/variants/bip/gpio.c +++ b/src/mainboard/google/octopus/variants/bip/gpio.c @@ -193,7 +193,8 @@ static const struct pad_config gpio_table[] = { PAD_CFG_GPI(GPIO_134, NONE, DEEP),/* GPIO_134 -- SD_CD_OD */ PAD_CFG_GPI_APIC_LOW(GPIO_135, NONE, DEEP),/* GPIO_135 -- TRACKPAD_INT1_1V8_ODL */ PAD_CFG_GPI_APIC_IOS(GPIO_136, NONE, DEEP, LEVEL, INVERT, TxDRxE, DISPUPD),/* GPIO_136 -- PMIC_PCH_INT_ODL */ - PAD_CFG_GPI_APIC_IOS(GPIO_137, NONE, DEEP, LEVEL, INVERT, HIZCRx1, DISPUPD),/* GPIO_137 -- HP_INT_ODL */ + PAD_CFG_GPI_APIC_IOS(GPIO_137, NONE, DEEP, EDGE_BOTH, INVERT, HIZCRx1, + DISPUPD),/* GPIO_137 -- HP_INT_ODL */ PAD_CFG_GPI(GPIO_138, NONE, DEEP),/* GPIO_138 -- PEN_PDCT_ODL */ PAD_CFG_GPI_APIC_IOS(GPIO_139, NONE, DEEP, LEVEL, INVERT, HIZCRx1, DISPUPD),/* GPIO_138 -- PEN_INT_ODL */ PAD_CFG_GPO_IOSSTATE_IOSTERM(GPIO_140, 0, DEEP, NONE, Tx1RXDCRx0, DISPUPD),/* GPIO_140 -- PEN_RESET */ -- cgit v1.2.3