mb/google/ocelot: update FW_CONFIG

Update the FW_CONFIG to correspond to the Google Ocelot hardware SKUs
and remove code that is no longer needed due to the FW_CONFIG changes.

Removed support for AUDIO_ALC722_SNDW, AUDIO_MAX98360_ALC56821_I2S,
AUDIO_MAX98373_ALC5682_SNDW, TOUCHSCREEN_LPSS_I2C, UFC_MIPI, UFC_USB,
WFC_MIPI and WFC_USB.

Added support for AUDIO_ALC721_SNDW, DISPLAY_TOUCH_PRESENT, and
DISPLAY_NO_TOUCH_PRESENT.

BUG=b:412736286
BRANCH=None
TEST=`emerge-ocelot coreboot` and verify it compiles without error.

Change-Id: I5fd7010230a3f17005f5ca395ffaca0724a615e9
Signed-off-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87310
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
This commit is contained in:
Nick Vaccaro 2025-04-14 10:59:11 -07:00
commit 92f9c8a985
3 changed files with 37 additions and 436 deletions

View file

@ -11,37 +11,6 @@
/* 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, NF2),
/* I2S0_SFRM_HDR */
PAD_CFG_NF(GPP_D11, NONE, DEEP, NF2),
/* I2S0_TXD_HDR */
PAD_CFG_NF(GPP_D12, NONE, DEEP, NF2),
/* I2S0_RXD_HDR */
PAD_CFG_NF(GPP_D13, NONE, DEEP, NF2),
/* I2S1_SCLK_HDR */
PAD_CFG_NF(GPP_S00, NONE, DEEP, NF6),
/* I2S1_SFRM_HDR */
PAD_CFG_NF(GPP_S01, NONE, DEEP, NF6),
/* I2S1_TXD_HDR */
PAD_CFG_NF(GPP_S02, NONE, DEEP, NF6),
/* I2S1_RXD_HDR */
PAD_CFG_NF(GPP_S03, NONE, DEEP, NF6),
/* DMIC_CLK */
PAD_CFG_NF(GPP_D16, NONE, DEEP, NF3),
/* DMIC_DATA */
PAD_CFG_NF(GPP_D17, NONE, DEEP, NF3),
/* DMIC_CLK */
PAD_CFG_NF(GPP_S04, NONE, DEEP, NF5),
/* DMIC_DATA */
PAD_CFG_NF(GPP_S05, NONE, DEEP, NF5),
};
static const struct pad_config hda_enable_pads[] = {
/* HDA_BCLK */
PAD_CFG_NF(GPP_D10, NONE, DEEP, NF1),
@ -62,29 +31,6 @@ static const struct pad_config hda_enable_pads[] = {
PAD_CFG_NF(GPP_S05, NONE, DEEP, NF5),
};
static const struct pad_config sndw_external_codec_enable_pads[] = {
/* Soundwire - External codec - JE Header */
/* SNDW3_CLK */
PAD_CFG_NF(GPP_S00, NONE, DEEP, NF1),
/* SNDW3_DATA0 */
PAD_CFG_NF(GPP_S01, NONE, DEEP, NF1),
/* SNDW0_CLK */
PAD_CFG_NF(GPP_S02, NONE, DEEP, NF3),
/* SNDW0_DATA */
PAD_CFG_NF(GPP_S03, NONE, DEEP, NF3),
/* SNDW2_CLK */
PAD_CFG_NF(GPP_S04, NONE, DEEP, NF2),
/* SNDW2_DATA */
PAD_CFG_NF(GPP_S05, NONE, DEEP, NF2),
/* SNDW1_CLK */
PAD_CFG_NF(GPP_S06, NONE, DEEP, NF3),
/* SNDW1_DATA */
PAD_CFG_NF(GPP_S07, NONE, DEEP, NF3),
/* GPP_D13: RST_HP_L */
PAD_CFG_GPO(GPP_D13, 1, PLTRST),
};
static const struct pad_config bt_i2s_enable_pads[] = {
/* GPP_V30 : [] ==> BT_I2S_BCLK - SSP2 */
PAD_CFG_NF(GPP_VGPIO30, NONE, DEEP, NF3),
@ -123,7 +69,7 @@ static const struct pad_config bt_i2s_disable_pads[] = {
PAD_NC(GPP_VGPIO37, NONE),
};
static const struct pad_config sndw_alc722_enable_pads[] = {
static const struct pad_config sndw_alc721_enable_pads[] = {
/* SNDW3_CLK */
PAD_CFG_NF(GPP_S00, NONE, DEEP, NF1),
/* SNDW3_DATA0 */
@ -353,25 +299,6 @@ static const struct pad_config touchscreen_disable_pads[] = {
PAD_NC(GPP_E18, NONE),
};
static const struct pad_config touchscreen_lpss_i2c_enable_pads[] = {
/* GPP_E11: THC0_SPI1_CLK_TCH_PNL1 */
PAD_NC(GPP_E11, NONE),
/* GPP_E12: THC0_SPI1_IO_0_I2C4_SCL_TCH_PNL1 NF8: I2C4_SCL */
PAD_CFG_NF(GPP_E12, NONE, DEEP, NF8),
/* GPP_E13: THC0_SPI1_IO_1_I2C4_SDA_TCH_PNL1 NF8: I2C4 SDA */
PAD_CFG_NF(GPP_E13, NONE, DEEP, NF8),
/* GPP_E14: THC0_SPI1_IO_2_TCH_PNL1 */
PAD_NC(GPP_E14, NONE),
/* GPP_E15: THC0_SPI1_IO_3_TCH_PNL1 */
PAD_NC(GPP_E15, NONE),
/* GPP_E16: THC0_SPI1_RST_N_TCH_PNL1 */
PAD_CFG_GPO(GPP_E16, 1, DEEP),
/* GPP_E17: THC0_SPI1_CS0_N_TCH_PNL1 */
PAD_NC(GPP_E17, NONE),
/* GPP_E18: THC0_SPI1_INT_N_TCH_PNL1 */
PAD_CFG_GPI_APIC(GPP_E18, NONE, PLTRST, LEVEL, NONE),
};
static const struct pad_config touchscreen_thc_i2c_enable_pads[] = {
/* GPP_E11: THC0_SPI1_CLK_TCH_PNL1 */
PAD_NC(GPP_E11, NONE),
@ -391,25 +318,6 @@ static const struct pad_config touchscreen_thc_i2c_enable_pads[] = {
PAD_CFG_GPI_APIC(GPP_E18, NONE, PLTRST, LEVEL, NONE),
};
static const struct pad_config touchscreen_gspi_enable_pads[] = {
/* GPP_E11: THC0_SPI1_CLK_TCH_PNL1 NF5: GSPI0 */
PAD_CFG_NF(GPP_E11, NONE, DEEP, NF5),
/* GPP_E12: THC0_SPI1_IO_0_I2C4_SCL_TCH_PNL1 NF5: GSPI0 */
PAD_CFG_NF(GPP_E12, NONE, DEEP, NF5),
/* GPP_E13: THC0_SPI1_IO_1_I2C4_SDA_TCH_PNL1 NF5: GSPI0 */
PAD_CFG_NF(GPP_E13, NONE, DEEP, NF5),
/* GPP_E14: THC0_SPI1_IO_2_TCH_PNL1 */
PAD_NC(GPP_E14, NONE),
/* GPP_E15: THC0_SPI1_IO_3_TCH_PNL1 */
PAD_NC(GPP_E15, NONE),
/* GPP_E16: THC0_SPI1_RST_N_TCH_PNL1 */
PAD_CFG_GPO(GPP_E16, 1, DEEP),
/* GPP_E17: THC0_SPI1_CS0_N_TCH_PNL1 NF5: GSPI0 */
PAD_CFG_NF(GPP_E17, NONE, DEEP, NF5),
/* GPP_E18: THC0_SPI1_INT_N_TCH_PNL1 */
PAD_CFG_GPI_APIC(GPP_E18, NONE, PLTRST, EDGE_SINGLE, INVERT)
};
static const struct pad_config touchscreen_thc_spi_enable_pads[] = {
/* GPP_E11: THC0_SPI1_CLK_TCH_PNL1 NF3: THC HID-SPI */
PAD_CFG_NF(GPP_E11, NONE, DEEP, NF3),
@ -576,18 +484,9 @@ void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_NONE))) {
GPIO_PADBASED_OVERRIDE(padbased_table, audio_disable_pads);
GPIO_PADBASED_OVERRIDE(padbased_table, bt_i2s_disable_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);
printk(BIOS_INFO, "Configure GPIOs for BT offload mode.\n");
GPIO_PADBASED_OVERRIDE(padbased_table, bt_i2s_enable_pads);
} else if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_MAX98373_ALC5682_SNDW))) {
GPIO_PADBASED_OVERRIDE(padbased_table, sndw_external_codec_enable_pads);
GPIO_PADBASED_OVERRIDE(padbased_table, bt_i2s_disable_pads);
} else if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_ALC722_SNDW)) ||
fw_config_probe(FW_CONFIG(AUDIO, AUDIO_ALC721_SNDW))) {
} else if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_ALC721_SNDW))) {
printk(BIOS_INFO, "Configure GPIOs for Soundwire audio.\n");
GPIO_PADBASED_OVERRIDE(padbased_table, sndw_alc722_enable_pads);
GPIO_PADBASED_OVERRIDE(padbased_table, sndw_alc721_enable_pads);
printk(BIOS_INFO, "Configure GPIOs for BT offload mode.\n");
GPIO_PADBASED_OVERRIDE(padbased_table, bt_i2s_enable_pads);
} else if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_ALC256_HDA))) {
@ -625,12 +524,8 @@ void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
else
GPIO_PADBASED_OVERRIDE(padbased_table, touchpad_i2c_disable_pads);
if (fw_config_probe(FW_CONFIG(TOUCHSCREEN, TOUCHSCREEN_LPSS_I2C)))
GPIO_PADBASED_OVERRIDE(padbased_table, touchscreen_lpss_i2c_enable_pads);
else if (fw_config_probe(FW_CONFIG(TOUCHSCREEN, TOUCHSCREEN_THC_I2C)))
if (fw_config_probe(FW_CONFIG(TOUCHSCREEN, TOUCHSCREEN_THC_I2C)))
GPIO_PADBASED_OVERRIDE(padbased_table, touchscreen_thc_i2c_enable_pads);
else if (fw_config_probe(FW_CONFIG(TOUCHSCREEN, TOUCHSCREEN_GSPI)))
GPIO_PADBASED_OVERRIDE(padbased_table, touchscreen_gspi_enable_pads);
else if (fw_config_probe(FW_CONFIG(TOUCHSCREEN, TOUCHSCREEN_THC_SPI)))
GPIO_PADBASED_OVERRIDE(padbased_table, touchscreen_thc_spi_enable_pads);
else

View file

@ -1,72 +1,59 @@
fw_config
field AUDIO 0 3
option AUDIO_NONE 0
option AUDIO_MAX98373_ALC5682_SNDW 1
option AUDIO_ALC722_SNDW 2
option AUDIO_ALC256_HDA 3
option AUDIO_MAX98360_ALC5682I_I2S 4
option AUDIO_ALC721_SNDW 5
field AUDIO 0 1
option AUDIO_NONE 0
option AUDIO_ALC721_SNDW 1
option AUDIO_ALC256_HDA 2
end
field WIFI 4 5
option WIFI_CNVI_6 0
option WIFI_CNVI_7 1
field WIFI 2 4
option WIFI_NONE 0
option WIFI_CNVI_6 1
option WIFI_PCIE_6 2
option WIFI_PCIE_7 3
option WIFI_CNVI_7 3
option WIFI_PCIE_7 4
end
field CELLULAR 6 7
field CELLULAR 5 6
option CELLULAR_ABSENT 0
option CELLULAR_USB 1
option CELLULAR_PCIE 2
end
field TOUCHSCREEN 8 10
field TOUCHSCREEN 7 8
option TOUCHSCREEN_NONE 0
option TOUCHSCREEN_LPSS_I2C 1
option TOUCHSCREEN_GSPI 2
option TOUCHSCREEN_THC_SPI 3
option TOUCHSCREEN_THC_I2C 4
option TOUCHSCREEN_THC_SPI 1
option TOUCHSCREEN_THC_I2C 2
end
field TOUCHPAD 11 12
field TOUCHPAD 9 10
option TOUCHPAD_NONE 0
option TOUCHPAD_THC_I2C 1
option TOUCHPAD_LPSS_I2C 2
end
field SD 13 14
field SD 11 12
option SD_NONE 0
option SD_GENSYS 1
option SD_BAYHUB 2
end
field STORAGE 15 16
field STORAGE 13 14
option STORAGE_UNKNOWN 0
option STORAGE_NVME_GEN4 1
option STORAGE_NVME_GEN5 2
option STORAGE_UFS 3
end
field FP 17
field FP 15
option FP_ABSENT 0
option FP_PRESENT 1
end
field DISPLAY 18
field DISPLAY 16 17
option DISPLAY_ABSENT 0
option DISPLAY_PRESENT 1
option DISPLAY_TOUCH_PRESENT 1
option DISPLAY_NO_TOUCH_PRESENT 2
end
field ISH 18
option ISH_DISABLE 0
option ISH_ENABLE 1
end
field KB 19
option KB_ABSENT 0
option KB_PRESENT 1
end
field UFC 20 21
option UFC_ABSENT 0
option UFC_MIPI 1
option UFC_USB 2
end
field WFC 22 23
option WFC_ABSENT 0
option WFC_MIPI 1
option WFC_USB 2
end
field ISH 24
option ISH_DISABLE 0
option ISH_ENABLE 1
end
end
chip soc/intel/pantherlake
@ -145,7 +132,8 @@ chip soc/intel/pantherlake
device domain 0 on
device ref igpu on
probe DISPLAY DISPLAY_PRESENT
probe DISPLAY DISPLAY_TOUCH_PRESENT
probe DISPLAY DISPLAY_NO_TOUCH_PRESENT
chip drivers/gfx/generic
register "device_count" = "5"
# DDIA for eDP
@ -296,24 +284,7 @@ chip soc/intel/pantherlake
end
end
device ref ipu on
chip drivers/intel/mipi_camera
register "acpi_uid" = "0x50000"
register "acpi_name" = ""IPU0""
register "device_type" = "INTEL_ACPI_CAMERA_CIO2"
register "cio2_num_ports" = "2"
register "cio2_lanes_used" = "{4,2}" # 4 and 2 CSI Camera lanes are used
register "cio2_lane_endpoint[0]" = ""^I2C1.CAM0""
register "cio2_lane_endpoint[1]" = ""^I2C2.CAM1""
register "cio2_prt[0]" = "0"
register "cio2_prt[1]" = "2"
device generic 0 on
probe UFC UFC_MIPI
probe WFC WFC_MIPI
end
end
end
device ref ipu off end
device ref iaa off end
device ref thc0 on
@ -576,246 +547,16 @@ chip soc/intel/pantherlake
# NOTE: i2c0 is function 0; hence it needs to be enabled when any of i2c1-5 is enabled.
# TPM device is under i2c3. Therefore, i2c0 needs to be enabled anyways.
device ref i2c0 on end
device ref i2c1 on
chip drivers/intel/mipi_camera
register "acpi_hid" = ""OVTIDB10""
register "acpi_uid" = "0"
register "acpi_name" = ""CAM0""
register "chip_name" = ""Ov 13b10 Camera""
register "device_type" = "INTEL_ACPI_CAMERA_SENSOR"
register "ssdb.vcm_type" = "0x0C"
register "vcm_name" = ""VCM1""
register "ssdb.lanes_used" = "4"
register "num_freq_entries" = "1"
register "link_freq[0]" = "560 * MHz" # 560 MHz
register "remote_name" = ""IPU0""
register "max_dstate_for_probe" = "ACPI_DEVICE_SLEEP_D3_COLD"
register "has_power_resource" = "true"
#Controls
register "clk_panel.clks[0].clknum" = "0" # IMGCLKOUT_0
register "clk_panel.clks[0].freq" = "1" #19.2 Mhz
register "gpio_panel.gpio[0].gpio_num" = "GPP_C05" #power_enable
register "gpio_panel.gpio[1].gpio_num" = "GPP_E10" #reset
#_ON
register "on_seq.ops_cnt" = "4"
register "on_seq.ops[0]" = "SEQ_OPS_CLK_ENABLE(0, 0)"
register "on_seq.ops[1]" = "SEQ_OPS_GPIO_ENABLE(0, 2)"
register "on_seq.ops[2]" = "SEQ_OPS_GPIO_DISABLE(1, 1)"
register "on_seq.ops[3]" = "SEQ_OPS_GPIO_ENABLE(1, 1)"
#_OFF
register "off_seq.ops_cnt" = "3"
register "off_seq.ops[0]" = "SEQ_OPS_CLK_DISABLE(0, 0)"
register "off_seq.ops[1]" = "SEQ_OPS_GPIO_DISABLE(1, 0)"
register "off_seq.ops[2]" = "SEQ_OPS_GPIO_DISABLE(0, 0)"
device i2c 36 on
probe WFC WFC_MIPI
end
end
chip drivers/intel/mipi_camera
register "acpi_uid" = "3"
register "acpi_name" = ""VCM1""
register "chip_name" = ""DW AF VCM""
register "device_type" = "INTEL_ACPI_CAMERA_VCM"
register "vcm_compat" = ""dongwoon,dw9714""
register "max_dstate_for_probe" = "ACPI_DEVICE_SLEEP_D0"
register "has_power_resource" = "true"
#Controls
register "gpio_panel.gpio[0].gpio_num" = "GPP_C05" #power_enable
#_ON
register "on_seq.ops_cnt" = "1"
register "on_seq.ops[0]" = "SEQ_OPS_GPIO_ENABLE(0, 0)"
#_OFF
register "off_seq.ops_cnt" = "1"
register "off_seq.ops[0]" = "SEQ_OPS_GPIO_DISABLE(0, 0)"
device i2c 0C on
probe WFC WFC_MIPI
end
end
chip drivers/intel/mipi_camera
register "acpi_uid" = "1"
register "acpi_name" = ""NVM1""
register "chip_name" = ""BRCA016GWZ""
register "device_type" = "INTEL_ACPI_CAMERA_NVM"
register "nvm_compat" = ""atmel,24c16""
register "nvm_size" = "0x800"
register "nvm_pagesize" = "0x01"
register "nvm_readonly" = "0x01"
register "nvm_width" = "0x08"
register "max_dstate_for_probe" = "ACPI_DEVICE_SLEEP_D0"
register "has_power_resource" = "true"
#Controls
register "gpio_panel.gpio[0].gpio_num" = "GPP_C05" #power_enable
#_ON
register "on_seq.ops_cnt" = "1"
register "on_seq.ops[0]" = "SEQ_OPS_GPIO_ENABLE(0, 0)"
#_OFF
register "off_seq.ops_cnt" = "1"
register "off_seq.ops[0]" = "SEQ_OPS_GPIO_DISABLE(0, 0)"
device i2c 50 on
probe WFC WFC_MIPI
end
end
end # I2C1
device ref i2c2 on
chip drivers/intel/mipi_camera
register "acpi_hid" = ""OVTIDB10""
register "acpi_uid" = "0"
register "acpi_name" = ""CAM1""
register "chip_name" = ""Ov 13b10 Camera""
register "device_type" = "INTEL_ACPI_CAMERA_SENSOR"
register "ssdb.vcm_type" = "0x0C"
register "vcm_name" = ""VCM1""
register "ssdb.lanes_used" = "2"
register "num_freq_entries" = "1"
register "link_freq[0]" = "560 * MHz" # 560 MHz
register "remote_name" = ""IPU0""
register "max_dstate_for_probe" = "ACPI_DEVICE_SLEEP_D3_COLD"
register "has_power_resource" = "true"
#Controls
register "clk_panel.clks[0].clknum" = "1" # IMGCLKOUT_1
register "clk_panel.clks[0].freq" = "1" #19.2 Mhz
register "gpio_panel.gpio[0].gpio_num" = "GPP_C08" #power_enable
register "gpio_panel.gpio[1].gpio_num" = "GPP_E01" #reset
#_ON
register "on_seq.ops_cnt" = "4"
register "on_seq.ops[0]" = "SEQ_OPS_CLK_ENABLE(0, 0)"
register "on_seq.ops[1]" = "SEQ_OPS_GPIO_ENABLE(0, 2)"
register "on_seq.ops[2]" = "SEQ_OPS_GPIO_DISABLE(1, 1)"
register "on_seq.ops[3]" = "SEQ_OPS_GPIO_ENABLE(1, 1)"
#_OFF
register "off_seq.ops_cnt" = "3"
register "off_seq.ops[0]" = "SEQ_OPS_CLK_DISABLE(0, 0)"
register "off_seq.ops[1]" = "SEQ_OPS_GPIO_DISABLE(1, 0)"
register "off_seq.ops[2]" = "SEQ_OPS_GPIO_DISABLE(0, 0)"
device i2c 36 on
probe UFC UFC_MIPI
end
end
chip drivers/intel/mipi_camera
register "acpi_uid" = "3"
register "acpi_name" = ""VCM1""
register "chip_name" = ""DW AF VCM""
register "device_type" = "INTEL_ACPI_CAMERA_VCM"
register "vcm_compat" = ""dongwoon,dw9714""
register "max_dstate_for_probe" = "ACPI_DEVICE_SLEEP_D0"
register "has_power_resource" = "true"
#Controls
register "gpio_panel.gpio[0].gpio_num" = "GPP_C08" #power_enable
#_ON
register "on_seq.ops_cnt" = "1"
register "on_seq.ops[0]" = "SEQ_OPS_GPIO_ENABLE(0, 0)"
#_OFF
register "off_seq.ops_cnt" = "1"
register "off_seq.ops[0]" = "SEQ_OPS_GPIO_DISABLE(0, 0)"
device i2c 0C on
probe UFC UFC_MIPI
end
end
chip drivers/intel/mipi_camera
register "acpi_uid" = "1"
register "acpi_name" = ""NVM1""
register "chip_name" = ""BRCA016GWZ""
register "device_type" = "INTEL_ACPI_CAMERA_NVM"
register "nvm_compat" = ""atmel,24c16""
register "nvm_size" = "0x800"
register "nvm_pagesize" = "0x01"
register "nvm_readonly" = "0x01"
register "nvm_width" = "0x08"
register "max_dstate_for_probe" = "ACPI_DEVICE_SLEEP_D0"
register "has_power_resource" = "true"
#Controls
register "gpio_panel.gpio[0].gpio_num" = "GPP_C08" #power_enable
#_ON
register "on_seq.ops_cnt" = "1"
register "on_seq.ops[0]" = "SEQ_OPS_GPIO_ENABLE(0, 0)"
#_OFF
register "off_seq.ops_cnt" = "1"
register "off_seq.ops[0]" = "SEQ_OPS_GPIO_DISABLE(0, 0)"
device i2c 50 on
probe UFC UFC_MIPI
end
end
end # I2C2
device ref i2c1 on end
device ref i2c2 on end
device ref i2c3 on
chip drivers/i2c/generic
register "hid" = ""RTL5682""
register "name" = ""RT58""
register "desc" = ""Headset Codec""
register "irq_gpio" = "ACPI_GPIO_IRQ_EDGE_BOTH(GPP_F17)"
# Set the jd_src to RT5668_JD1 for jack detection
register "property_count" = "1"
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
probe AUDIO AUDIO_MAX98360_ALC5682I_I2S
end
end
chip drivers/i2c/tpm
register "hid" = ""GOOG0005""
register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_D15_IRQ)"
device i2c 50 on end
end
end # I2C3
device ref i2c4 on
chip drivers/i2c/hid
register "generic.hid" = ""ELAN6918""
register "generic.desc" = ""ELAN Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_E18_IRQ)"
register "generic.probed" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_E16)"
register "generic.reset_delay_ms" = "20"
register "generic.reset_off_delay_ms" = "2"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_F08)"
register "generic.enable_delay_ms" = "1"
register "generic.has_power_resource" = "1"
register "hid_desc_reg_offset" = "0x01"
device i2c 16 on
probe TOUCHSCREEN TOUCHSCREEN_LPSS_I2C
end
end
device ref i2c4 off
end # I2C4
device ref i2c5 on
chip drivers/i2c/hid
@ -852,39 +593,6 @@ chip soc/intel/pantherlake
device ref smbus on end
device ref npk on end
device ref hda on
chip drivers/intel/soundwire
device generic 0 on
chip drivers/soundwire/alc711
register "desc" = ""Headset Codec""
register "alc711_address.version" = "SOUNDWIRE_VERSION_1_2"
register "alc711_address.class" = "MIPI_CLASS_SDCA"
register "alc711_address.part_id" = "MIPI_DEV_ID_REALTEK_ALC722"
# SoundWire Link 1 ID 1
device generic 1.1 on
probe AUDIO AUDIO_ALC722_SNDW
end
end
chip drivers/soundwire/alc711
register "desc" = ""Headset Codec""
register "alc711_address.version" = "SOUNDWIRE_VERSION_1_2"
register "alc711_address.class" = "MIPI_CLASS_SDCA"
register "alc711_address.part_id" = "MIPI_DEV_ID_REALTEK_ALC721"
# SoundWire Link 3 ID 1
device generic 3.1 on
probe AUDIO AUDIO_ALC721_SNDW
end
end
end
end
chip drivers/generic/max98357a
register "hid" = ""MX98360A""
register "sdmode_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E19)"
register "sdmode_delay" = "5"
device generic 0 on
probe AUDIO AUDIO_MAX98360_ALC5682I_I2S
end
end
end
device ref hda off end
end
end

View file

@ -16,13 +16,11 @@ void variant_update_soc_chip_config(struct soc_intel_pantherlake_config *config)
config->cnvi_bt_core = false;
/* CNVi */
if (fw_config_probe(FW_CONFIG(WIFI, WIFI_CNVI_6)) ||
fw_config_probe(FW_CONFIG(WIFI, WIFI_CNVI_7))) {
fw_config_probe(FW_CONFIG(WIFI, WIFI_CNVI_7))) {
config->cnvi_wifi_core = true;
config->cnvi_bt_core = true;
if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_MAX98360_ALC5682I_I2S)) ||
fw_config_probe(FW_CONFIG(AUDIO, AUDIO_ALC722_SNDW)) ||
fw_config_probe(FW_CONFIG(AUDIO, AUDIO_ALC721_SNDW))) {
if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_ALC721_SNDW))) {
printk(BIOS_INFO, "BT audio offload configured.\n");
config->cnvi_bt_audio_offload = true;
}