mb/google/ocelot/var/ojal: Enable Audio Codec and update FW config
This patch enables Cirrus Audio codec and HDA in devicetree for ojal
and updates FW config for GPIO's according to schematics revision 0.9.
RDC kit no:840138
Scope (\_SB.PCI0.HDAS.SNDW)
{
Device (SW30)
{
Name (_ADR, 0x00033001FA424301) // _ADR: Address
Name (_DDN, "Headset Codec") // _DDN: DOS Device Name
Name (_SUB, "1337") // _SUB: Subsystem ID
...
BUG=b:437459757
TEST=Build ojal board and check SSDT tables for codec.
Change-Id: Id4110263750ef5ff2375199d073175b47dc4f909
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90331
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Bhat D, Krishna P <krishna.p.bhat.d@intel.com>
This commit is contained in:
parent
8e7975edfd
commit
980c269643
2 changed files with 90 additions and 0 deletions
|
|
@ -11,6 +11,74 @@
|
|||
/* t: table */
|
||||
#define GPIO_CONFIGURE_PADS(t) gpio_configure_pads(t, ARRAY_SIZE(t))
|
||||
|
||||
static const struct pad_config hda_enable_pads[] = {
|
||||
/* GPP_D10: HDA_BCLK (HDR) */
|
||||
PAD_CFG_NF(GPP_D10, NONE, DEEP, NF1),
|
||||
/* GPP_D11: HDA_SYNC (HDR) */
|
||||
PAD_CFG_NF(GPP_D11, NONE, DEEP, NF1),
|
||||
/* GPP_D12: HDA_SDO (HDR) */
|
||||
PAD_CFG_NF(GPP_D12, NONE, DEEP, NF1),
|
||||
/* GPP_D13: HDA_SDI0 (HDR) */
|
||||
PAD_CFG_NF(GPP_D13, NONE, DEEP, NF1),
|
||||
/* GPP_D16: HDA_RST_N (HDR) */
|
||||
PAD_CFG_NF(GPP_D16, NONE, DEEP, NF1),
|
||||
/* GPP_D17: HDA_SDI1 (HDR) */
|
||||
PAD_CFG_NF(GPP_D17, NONE, DEEP, NF1),
|
||||
/* GPP_S04: DMIC0_CLK (HDR) */
|
||||
PAD_CFG_NF(GPP_S04, NONE, DEEP, NF5),
|
||||
/* GPP_S05: DMIC0_DATA (HDR) */
|
||||
PAD_CFG_NF(GPP_S05, NONE, DEEP, NF5),
|
||||
/* GPP_S06: DMIC1_CLK (HDR) */
|
||||
PAD_CFG_NF(GPP_S06, NONE, DEEP, NF5),
|
||||
/* GPP_S07: DMIC1_DATA (HDR) */
|
||||
PAD_CFG_NF(GPP_S07, NONE, DEEP, NF5),
|
||||
};
|
||||
|
||||
static const struct pad_config sndw_cs42l43_enable_pads[] = {
|
||||
/* Soundwire GPIO Config */
|
||||
/* GPP_S00: SNDW3_CLK_CODEC (HDR) */
|
||||
PAD_CFG_NF(GPP_S00, NONE, DEEP, NF1),
|
||||
/* GPP_S01: SNDW3_DATA0_CODEC (HDR) */
|
||||
PAD_CFG_NF(GPP_S01, NONE, DEEP, NF1),
|
||||
/* GPP_S02: SNDW3_DATA1_CODEC (HDR) */
|
||||
PAD_CFG_NF(GPP_S02, NONE, DEEP, NF1),
|
||||
/* GPP_S04: DMIC0_CLK (HDR) */
|
||||
PAD_CFG_NF(GPP_S04, NONE, DEEP, NF5),
|
||||
/* GPP_S05: DMIC0_DATA (HDR) */
|
||||
PAD_CFG_NF(GPP_S05, NONE, DEEP, NF5),
|
||||
};
|
||||
|
||||
static const struct pad_config audio_disable_pads[] = {
|
||||
/* GPP_D10: HDA_BCLK (HDR) */
|
||||
PAD_NC(GPP_D10, NONE),
|
||||
/* GPP_D11: HDA_SYNC (HDR) */
|
||||
PAD_NC(GPP_D11, NONE),
|
||||
/* GPP_D12: HDA_SDO (HDR) */
|
||||
PAD_NC(GPP_D12, NONE),
|
||||
/* GPP_D13: HDA_SDI0 (HDR) */
|
||||
PAD_NC(GPP_D13, NONE),
|
||||
/* GPP_D16: HDA_RST_N (HDR) */
|
||||
PAD_NC(GPP_D16, NONE),
|
||||
/* GPP_D17: HDA_SDI1 (HDR) */
|
||||
PAD_NC(GPP_D17, NONE),
|
||||
/* GPP_S00: SNDW3_CLK_CODEC (HDR) */
|
||||
PAD_NC(GPP_S00, NONE),
|
||||
/* GPP_S01: SNDW3_DATA0_CODEC (HDR) */
|
||||
PAD_NC(GPP_S01, NONE),
|
||||
/* GPP_S02: SNDW3_DATA1_CODEC (HDR) */
|
||||
PAD_NC(GPP_S02, NONE),
|
||||
/* GPP_S03: SNDW3_DATA2_CODEC (HDR) */
|
||||
PAD_NC(GPP_S03, NONE),
|
||||
/* GPP_S04: DMIC0_CLK (HDR) */
|
||||
PAD_NC(GPP_S04, NONE),
|
||||
/* GPP_S05: DMIC0_DATA (HDR) */
|
||||
PAD_NC(GPP_S05, NONE),
|
||||
/* GPP_S06: DMIC1_CLK (HDR) */
|
||||
PAD_NC(GPP_S06, NONE),
|
||||
/* GPP_S07: DMIC1_DATA (HDR) */
|
||||
PAD_NC(GPP_S07, NONE),
|
||||
};
|
||||
|
||||
static const struct pad_config pre_mem_gen4_ssd_pwr_pads[] = {
|
||||
/* GPP_H18: GEN4_SSD_PWREN */
|
||||
PAD_CFG_GPO(GPP_H18, 0, PLTRST),
|
||||
|
|
@ -167,6 +235,14 @@ void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
|
|||
GPIO_PADBASED_OVERRIDE(padbased_table, ufs_enable_pads);
|
||||
}
|
||||
|
||||
if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_NONE))) {
|
||||
GPIO_PADBASED_OVERRIDE(padbased_table, audio_disable_pads);
|
||||
} else if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_CS42L43_SNDW))) {
|
||||
GPIO_PADBASED_OVERRIDE(padbased_table, sndw_cs42l43_enable_pads);
|
||||
} else if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_ALC256_HDA))) {
|
||||
GPIO_PADBASED_OVERRIDE(padbased_table, hda_enable_pads);
|
||||
}
|
||||
|
||||
if (fw_config_probe(FW_CONFIG(WIFI, WIFI_CNVI_6)) ||
|
||||
fw_config_probe(FW_CONFIG(WIFI, WIFI_CNVI_7))) {
|
||||
GPIO_PADBASED_OVERRIDE(padbased_table, cnvi_enable_pads);
|
||||
|
|
|
|||
|
|
@ -306,5 +306,19 @@ chip soc/intel/pantherlake
|
|||
end
|
||||
|
||||
device ref smbus on end
|
||||
device ref hda on
|
||||
chip drivers/intel/soundwire
|
||||
device generic 0 on
|
||||
chip drivers/soundwire/cs42l43
|
||||
# SoundWire Link 3 ID 1
|
||||
register "desc" = ""Headset Codec""
|
||||
register "sub" = ""1337""
|
||||
device generic 3.1 on
|
||||
probe AUDIO AUDIO_CS42L43_SNDW
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue