mb/trulo/var/uldrenite: Configure serial_io and I2C

1. Configure serial_io and I2C
2. Add I2C devices

BUG=b:380789023
TEST=emerge-nissa coreboot

Change-Id: I3c1b6028c7e4392a2142851d5fd0199954e2272d
Signed-off-by: John Su <john_su@compal.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85581
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Dtrain Hsu <dtrain_hsu@compal.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
John Su 2024-12-13 14:15:58 +08:00 committed by Subrata Banik
commit 0261cbe8e9
2 changed files with 189 additions and 0 deletions

View file

@ -764,6 +764,7 @@ config DRIVER_TPM_I2C_BUS
default 0x0 if BOARD_GOOGLE_TIVVIKS
default 0x0 if BOARD_GOOGLE_TRULO
default 0x0 if BOARD_GOOGLE_ULDREN
default 0x0 if BOARD_GOOGLE_ULDRENITE
default 0x1 if BOARD_GOOGLE_VELL
default 0x1 if BOARD_GOOGLE_VOLMAR
default 0x0 if BOARD_GOOGLE_XIVU
@ -841,6 +842,7 @@ config TPM_TIS_ACPI_INTERRUPT
default 13 if BOARD_GOOGLE_TIVVIKS
default 17 if BOARD_GOOGLE_TRULO
default 13 if BOARD_GOOGLE_ULDREN
default 17 if BOARD_GOOGLE_ULDRENITE
default 13 if BOARD_GOOGLE_VELL
default 13 if BOARD_GOOGLE_VOLMAR
default 13 if BOARD_GOOGLE_XIVU

View file

@ -73,6 +73,67 @@ chip soc/intel/alderlake
.vnn_icc_max_ma = 500,
}"
register "serial_io_i2c_mode" = "{
[PchSerialIoIndexI2C0] = PchSerialIoPci,
[PchSerialIoIndexI2C1] = PchSerialIoPci,
[PchSerialIoIndexI2C2] = PchSerialIoDisabled,
[PchSerialIoIndexI2C3] = PchSerialIoDisabled,
[PchSerialIoIndexI2C4] = PchSerialIoDisabled,
[PchSerialIoIndexI2C5] = PchSerialIoPci,
}"
register "serial_io_gspi_mode" = "{
[PchSerialIoIndexGSPI0] = PchSerialIoDisabled,
[PchSerialIoIndexGSPI1] = PchSerialIoDisabled,
}"
register "serial_io_uart_mode" = "{
[PchSerialIoIndexUART0] = PchSerialIoPci,
[PchSerialIoIndexUART1] = PchSerialIoDisabled,
[PchSerialIoIndexUART2] = PchSerialIoDisabled,
}"
# Intel Common SoC Config
#+-------------------+---------------------------+
#| Field | Value |
#+-------------------+---------------------------+
#| I2C0 | TPM. Early init is |
#| | required to set up a BAR |
#| | for TPM communication |
#| I2C1 | Trackpad |
#| I2C5 | Touchscreen |
#+-------------------+---------------------------+
register "common_soc_config" = "{
.i2c[0] = {
.early_init = 1,
.speed = I2C_SPEED_FAST_PLUS,
.speed_config[0] = {
.speed = I2C_SPEED_FAST_PLUS,
.scl_lcnt = 55,
.scl_hcnt = 30,
.sda_hold = 7,
}
},
.i2c[1] = {
.speed = I2C_SPEED_FAST,
.speed_config[0] = {
.speed = I2C_SPEED_FAST,
.scl_lcnt = 158,
.scl_hcnt = 79,
.sda_hold = 7,
}
},
.i2c[5] = {
.speed = I2C_SPEED_FAST,
.speed_config[0] = {
.speed = I2C_SPEED_FAST,
.scl_lcnt = 158,
.scl_hcnt = 79,
.sda_hold = 7,
}
},
}"
register "power_limits_config[ADL_N_041_6W_CORE]" = "{
.tdp_pl1_override = 10,
.tdp_pl2_override = 25,
@ -132,6 +193,132 @@ chip soc/intel/alderlake
device generic 0 on end
end
end # DPTF
device ref i2c0 on
chip drivers/i2c/tpm
register "hid" = ""GOOG0005""
register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_A17_IRQ)"
device i2c 50 on end
end
end # I2C0
device ref i2c1 on
chip drivers/i2c/generic
register "hid" = ""ELAN0000""
register "desc" = ""ELAN Touchpad""
register "irq" = "ACPI_IRQ_WAKE_LEVEL_LOW(GPP_B3_IRQ)"
register "wake" = "GPE0_DW1_03"
register "detect" = "1"
device i2c 15 on end
end
chip drivers/i2c/hid
register "generic.hid" = ""PNP0C50""
register "generic.desc" = ""Cirque Touchpad""
register "generic.irq" = "ACPI_IRQ_WAKE_LEVEL_LOW(GPP_B3_IRQ)"
register "generic.detect" = "1"
register "generic.wake" = "GPE0_DW1_03"
register "hid_desc_reg_offset" = "0x20"
device i2c 2c on end
end
end # I2C1
device ref i2c5 on
chip drivers/i2c/generic
register "hid" = ""ELAN0001""
register "desc" = ""ELAN Touchscreen""
register "irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "detect" = "1"
register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "reset_delay_ms" = "20"
register "reset_off_delay_ms" = "2"
register "stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_A21)"
register "stop_delay_ms" = "150"
register "stop_off_delay_ms" = "2"
register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E17)"
register "enable_delay_ms" = "1"
register "has_power_resource" = "1"
device i2c 10 on end
end # EKTH5012
chip drivers/i2c/hid
register "generic.hid" = ""ELAN900C""
register "generic.desc" = ""ELAN Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "6"
register "generic.reset_off_delay_ms" = "1"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E17)"
register "generic.enable_delay_ms" = "6"
register "generic.stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_A21)"
register "generic.stop_delay_ms" = "150"
register "generic.has_power_resource" = "1"
register "hid_desc_reg_offset" = "0x01"
device i2c 16 on end
end # EKTH7D18
chip drivers/i2c/hid
register "generic.hid" = ""GXTP7996""
register "generic.desc" = ""Goodix Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "100"
register "generic.stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_A21)"
register "generic.stop_delay_ms" = "200"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E17)"
register "generic.enable_delay_ms" = "10"
register "generic.has_power_resource" = "1"
register "hid_desc_reg_offset" = "0x01"
device i2c 5d on end
end # GXTP7996
chip drivers/i2c/hid
register "generic.hid" = ""WDHT0002""
register "generic.desc" = ""WDT Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "20"
register "generic.stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_A21)"
register "generic.stop_delay_ms" = "130"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E17)"
register "generic.enable_delay_ms" = "1"
register "generic.has_power_resource" = "1"
register "hid_desc_reg_offset" = "0x20"
device i2c 2c on end
end # WDT8752A
chip drivers/i2c/hid
register "generic.hid" = ""WDHT2601""
register "generic.desc" = ""WDT Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "20"
register "generic.stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_A21)"
register "generic.stop_delay_ms" = "130"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E17)"
register "generic.enable_delay_ms" = "1"
register "generic.has_power_resource" = "1"
register "hid_desc_reg_offset" = "0x20"
device i2c 3c on end
end # WDT8790A
chip drivers/i2c/hid
register "generic.hid" = ""GTCH7502""
register "generic.desc" = ""G2TOUCH Touchscreen""
register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPP_D16_IRQ)"
register "generic.detect" = "1"
register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_D15)"
register "generic.reset_delay_ms" = "100"
register "generic.stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_A21)"
register "generic.stop_delay_ms" = "30"
register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_E17)"
register "generic.enable_delay_ms" = "30"
register "generic.has_power_resource" = "1"
register "hid_desc_reg_offset" = "0x01"
device i2c 40 on end
end # GTCH7502
end # I2C5
device ref emmc on end
device ref uart0 on end
device ref pch_espi on
chip ec/google/chromeec
device pnp 0c09.0 on end
end
end
end
end