diff --git a/src/mainboard/google/ocelot/variants/ocelot/fw_config.c b/src/mainboard/google/ocelot/variants/ocelot/fw_config.c index 1e7756769c..5e9559803b 100644 --- a/src/mainboard/google/ocelot/variants/ocelot/fw_config.c +++ b/src/mainboard/google/ocelot/variants/ocelot/fw_config.c @@ -11,6 +11,40 @@ /* t: table */ #define GPIO_CONFIGURE_PADS(t) gpio_configure_pads(t, ARRAY_SIZE(t)) +static const struct pad_config i2s_enable_pads[] = { + /* I2S_MCLK1_OUT */ + PAD_CFG_NF(GPP_D09, NONE, DEEP, NF2), + /* I2S0_SCLK_HDR */ + PAD_CFG_NF(GPP_D10, NONE, DEEP, NF1), + /* I2S0_SFRM_HDR */ + PAD_CFG_NF(GPP_D11, NONE, DEEP, NF1), + /* I2S0_TXD_HDR */ + PAD_CFG_NF(GPP_D12, NONE, DEEP, NF1), + /* I2S0_RXD_HDR */ + PAD_CFG_NF(GPP_D13, NONE, DEEP, NF1), + /* I2S1_TXD_HDR */ + PAD_CFG_NF(GPP_S00, NONE, DEEP, NF1), + /* I2S1_RXD_HDR */ + PAD_CFG_NF(GPP_S01, NONE, DEEP, NF1), + /* I2S1_SCLK_HDR */ + PAD_CFG_NF(GPP_S02, NONE, DEEP, NF1), + /* I2S1_SFRM_HDR */ + PAD_CFG_NF(GPP_S03, NONE, DEEP, NF1), + /* I2S2_SCLK_HDR */ + PAD_CFG_NF(GPP_S04, NONE, DEEP, NF1), + /* I2S2_SFRM_HDR */ + PAD_CFG_NF(GPP_S05, NONE, DEEP, NF1), + /* I2S2_TXD_HDR */ + PAD_NC(GPP_S06, NONE), + /* I2S2_RXD_HDR */ + PAD_NC(GPP_S07, NONE), + + /* DMIC_CLK */ + PAD_NC(GPP_D16, NONE), + /* DMIC_DATA */ + PAD_NC(GPP_D17, NONE), +}; + static const struct pad_config hda_enable_pads[] = { /* GPP_D10: HDA_BCLK (HDR) */ PAD_CFG_NF(GPP_D10, NONE, DEEP, NF1), @@ -484,6 +518,9 @@ void fw_config_gpio_padbased_override(struct pad_config *padbased_table) GPIO_PADBASED_OVERRIDE(padbased_table, sndw_alc721_enable_pads); } else if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_ALC256_HDA))) { GPIO_PADBASED_OVERRIDE(padbased_table, hda_enable_pads); + } else if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_MAX98360_ALC5682I_I2S))) { + printk(BIOS_INFO, "Configure GPIOs for I2S MAX98360 ALC5682 audio.\n"); + GPIO_PADBASED_OVERRIDE(padbased_table, i2s_enable_pads); } if (fw_config_probe(FW_CONFIG(WIFI, WIFI_PCIE_6)) || diff --git a/src/mainboard/google/ocelot/variants/ocelot/overridetree.cb b/src/mainboard/google/ocelot/variants/ocelot/overridetree.cb index 149d0859e2..510d8aeb95 100644 --- a/src/mainboard/google/ocelot/variants/ocelot/overridetree.cb +++ b/src/mainboard/google/ocelot/variants/ocelot/overridetree.cb @@ -1,61 +1,62 @@ fw_config field AUDIO 0 1 - option AUDIO_NONE 0 - option AUDIO_ALC721_SNDW 1 - option AUDIO_ALC256_HDA 2 + option AUDIO_NONE 0 + option AUDIO_ALC721_SNDW 1 + option AUDIO_ALC256_HDA 2 + option AUDIO_MAX98360_ALC5682I_I2S 3 end field WIFI 2 4 - option WIFI_NONE 0 - option WIFI_CNVI_6 1 - option WIFI_PCIE_6 2 - option WIFI_CNVI_7 3 - option WIFI_PCIE_7 4 + option WIFI_NONE 0 + option WIFI_CNVI_6 1 + option WIFI_PCIE_6 2 + option WIFI_CNVI_7 3 + option WIFI_PCIE_7 4 end field CELLULAR 5 6 - option CELLULAR_ABSENT 0 - option CELLULAR_USB 1 - option CELLULAR_PCIE 2 + option CELLULAR_ABSENT 0 + option CELLULAR_USB 1 + option CELLULAR_PCIE 2 end field TOUCHSCREEN 7 8 - option TOUCHSCREEN_NONE 0 - option TOUCHSCREEN_THC_SPI 1 - option TOUCHSCREEN_THC_I2C 2 + option TOUCHSCREEN_NONE 0 + option TOUCHSCREEN_THC_SPI 1 + option TOUCHSCREEN_THC_I2C 2 end field TOUCHPAD 9 10 - option TOUCHPAD_NONE 0 - option TOUCHPAD_THC_I2C 1 - option TOUCHPAD_LPSS_I2C 2 + option TOUCHPAD_NONE 0 + option TOUCHPAD_THC_I2C 1 + option TOUCHPAD_LPSS_I2C 2 end field SD 11 12 - option SD_NONE 0 - option SD_GENSYS 1 - option SD_BAYHUB 2 + option SD_NONE 0 + option SD_GENSYS 1 + option SD_BAYHUB 2 end field STORAGE 13 14 - option STORAGE_UNKNOWN 0 - option STORAGE_NVME_GEN4 1 - option STORAGE_UFS 2 + option STORAGE_UNKNOWN 0 + option STORAGE_NVME_GEN4 1 + option STORAGE_UFS 2 end field FP 15 - option FP_ABSENT 0 - option FP_PRESENT 1 + option FP_ABSENT 0 + option FP_PRESENT 1 end field DISPLAY 16 17 - option DISPLAY_ABSENT 0 - option DISPLAY_TOUCH_PRESENT 1 - option DISPLAY_NO_TOUCH_PRESENT 2 + option DISPLAY_ABSENT 0 + option DISPLAY_TOUCH_PRESENT 1 + option DISPLAY_NO_TOUCH_PRESENT 2 end field ISH 18 - option ISH_DISABLE 0 - option ISH_ENABLE 1 + option ISH_DISABLE 0 + option ISH_ENABLE 1 end field KB 19 - option KB_ABSENT 0 - option KB_PRESENT 1 + option KB_ABSENT 0 + option KB_PRESENT 1 end field PSU 20 - option PSU_USBC 0 - option PSU_BJ 1 + option PSU_USBC 0 + option PSU_BJ 1 end end