mb/google/deltaur: Remove mainboard from tree
This board never made it to production, and development on it has long since stopped; it is a maintenance burden, therefore drop it from the tree. Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Change-Id: Ieb12a95ff56c3437cb88df8ef3f6ae115ad53446 Reviewed-on: https://review.coreboot.org/c/coreboot/+/64056 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Singer <felixsinger@posteo.net>
This commit is contained in:
		
				
					committed by
					
						 Felix Singer
						Felix Singer
					
				
			
			
				
	
			
			
			
						parent
						
							35f73bcce1
						
					
				
				
					commit
					da958d679d
				
			| @@ -73,8 +73,6 @@ | |||||||
| - Ultima (Lenovo Yoga 11e G3) | - Ultima (Lenovo Yoga 11e G3) | ||||||
| - Wizpig | - Wizpig | ||||||
| - Daisy (Samsung Chromebook (2012)) | - Daisy (Samsung Chromebook (2012)) | ||||||
| - Deltan |  | ||||||
| - Deltaur |  | ||||||
| - Drallion | - Drallion | ||||||
| - Eve (Google Pixelbook) | - Eve (Google Pixelbook) | ||||||
| - Fizz | - Fizz | ||||||
|   | |||||||
| @@ -1,86 +0,0 @@ | |||||||
| config BOARD_GOOGLE_BASEBOARD_DELTAUR |  | ||||||
| 	def_bool n |  | ||||||
| 	select BOARD_ROMSIZE_KB_32768 |  | ||||||
| 	select DRIVERS_I2C_GENERIC |  | ||||||
| 	select DRIVERS_I2C_HID |  | ||||||
| 	select DRIVERS_INTEL_ISH |  | ||||||
| 	select DRIVERS_SPI_ACPI |  | ||||||
| 	select DRIVERS_USB_ACPI |  | ||||||
| 	select EC_GOOGLE_WILCO |  | ||||||
| 	select HAVE_ACPI_RESUME |  | ||||||
| 	select HAVE_ACPI_TABLES |  | ||||||
| 	select I2C_TPM |  | ||||||
| 	select INTEL_LPSS_UART_FOR_CONSOLE |  | ||||||
| 	select MAINBOARD_HAS_CHROMEOS |  | ||||||
| 	select MAINBOARD_HAS_TPM2 |  | ||||||
| 	select MAINBOARD_USES_IFD_EC_REGION |  | ||||||
| 	select SOC_INTEL_COMMON_BLOCK_HDA_VERB |  | ||||||
| 	select SOC_INTEL_TIGERLAKE |  | ||||||
| 	select SYSTEM_TYPE_LAPTOP |  | ||||||
| 	select TPM_GOOGLE_CR50 |  | ||||||
|  |  | ||||||
| config BOARD_GOOGLE_DELTAN |  | ||||||
| 	select BOARD_GOOGLE_BASEBOARD_DELTAUR |  | ||||||
| 	select MAINBOARD_USES_IFD_GBE_REGION |  | ||||||
|  |  | ||||||
| config BOARD_GOOGLE_DELTAUR |  | ||||||
| 	select BOARD_GOOGLE_BASEBOARD_DELTAUR |  | ||||||
|  |  | ||||||
| if BOARD_GOOGLE_BASEBOARD_DELTAUR |  | ||||||
|  |  | ||||||
| config CHROMEOS |  | ||||||
| 	select GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC |  | ||||||
| 	select GBB_FLAG_FORCE_DEV_BOOT_ALTFW |  | ||||||
| 	select GBB_FLAG_FORCE_DEV_BOOT_USB |  | ||||||
| 	select GBB_FLAG_FORCE_DEV_SWITCH_ON |  | ||||||
|  |  | ||||||
| config DEVICETREE |  | ||||||
| 	default "variants/baseboard/devicetree.cb" |  | ||||||
|  |  | ||||||
| config DRIVER_TPM_I2C_BUS |  | ||||||
| 	hex |  | ||||||
| 	default 0x3 |  | ||||||
|  |  | ||||||
| config DRIVER_TPM_I2C_ADDR |  | ||||||
| 	hex |  | ||||||
| 	default 0x50 |  | ||||||
|  |  | ||||||
| config FMDFILE |  | ||||||
| 	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos-gbe.fmd" if BOARD_GOOGLE_DELTAN |  | ||||||
| 	default "src/mainboard/\$(CONFIG_MAINBOARD_DIR)/chromeos.fmd" if BOARD_GOOGLE_DELTAUR |  | ||||||
|  |  | ||||||
| config OVERRIDE_DEVICETREE |  | ||||||
| 	default "variants/\$(CONFIG_VARIANT_DIR)/overridetree.cb" |  | ||||||
|  |  | ||||||
| config POWER_OFF_ON_CR50_UPDATE |  | ||||||
| 	bool |  | ||||||
| 	default n |  | ||||||
|  |  | ||||||
| config MAINBOARD_DIR |  | ||||||
| 	default "google/deltaur" |  | ||||||
|  |  | ||||||
| config MAINBOARD_FAMILY |  | ||||||
| 	string |  | ||||||
| 	default "Google_Deltaur" |  | ||||||
|  |  | ||||||
| config MAINBOARD_PART_NUMBER |  | ||||||
| 	default "Deltan" if BOARD_GOOGLE_DELTAN |  | ||||||
| 	default "Deltaur" if BOARD_GOOGLE_DELTAUR |  | ||||||
|  |  | ||||||
| config TPM_TIS_ACPI_INTERRUPT |  | ||||||
| 	int |  | ||||||
| 	default 23  # GPE0_DW0_23 (GPP_C23) |  | ||||||
|  |  | ||||||
| config UART_FOR_CONSOLE |  | ||||||
| 	int |  | ||||||
| 	default 2 |  | ||||||
|  |  | ||||||
| config VARIANT_DIR |  | ||||||
| 	default "deltan" if BOARD_GOOGLE_DELTAN |  | ||||||
| 	default "deltaur" if BOARD_GOOGLE_DELTAUR |  | ||||||
|  |  | ||||||
| config VBOOT |  | ||||||
| 	select HAS_RECOVERY_MRC_CACHE |  | ||||||
| 	select VBOOT_LID_SWITCH |  | ||||||
|  |  | ||||||
| endif # BOARD_GOOGLE_BASEBOARD_DELTAUR |  | ||||||
| @@ -1,7 +0,0 @@ | |||||||
| comment "Deltaur" |  | ||||||
|  |  | ||||||
| config BOARD_GOOGLE_DELTAN |  | ||||||
| 	bool "->  Deltan" |  | ||||||
|  |  | ||||||
| config BOARD_GOOGLE_DELTAUR |  | ||||||
| 	bool "->  Deltaur" |  | ||||||
| @@ -1,26 +0,0 @@ | |||||||
| ## SPDX-License-Identifier: GPL-2.0-or-later |  | ||||||
|  |  | ||||||
| bootblock-y += bootblock.c |  | ||||||
| bootblock-$(CONFIG_CHROMEOS) += chromeos.c |  | ||||||
| bootblock-y += ec.c |  | ||||||
|  |  | ||||||
| romstage-y += romstage.c |  | ||||||
| romstage-$(CONFIG_CHROMEOS) += chromeos.c |  | ||||||
| romstage-y += ec.c |  | ||||||
|  |  | ||||||
| ramstage-$(CONFIG_CHROMEOS) += chromeos.c |  | ||||||
| ramstage-y += ec.c |  | ||||||
| ramstage-y += mainboard.c |  | ||||||
| ramstage-$(CONFIG_SOC_INTEL_COMMON_BLOCK_HDA_VERB) += hda_verb.c |  | ||||||
|  |  | ||||||
| verstage-$(CONFIG_CHROMEOS) += chromeos.c |  | ||||||
| verstage-y += ec.c |  | ||||||
|  |  | ||||||
| subdirs-y += variants/baseboard |  | ||||||
| CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/baseboard/include |  | ||||||
|  |  | ||||||
| VARIANT_DIR:=$(call strip_quotes,$(CONFIG_VARIANT_DIR)) |  | ||||||
| subdirs-y += variants/$(VARIANT_DIR) |  | ||||||
| CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/include |  | ||||||
|  |  | ||||||
| subdirs-y += spd |  | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| Vendor name: Google |  | ||||||
| Board name: Deltaur |  | ||||||
| Category: laptop |  | ||||||
| ROM protocol: SPI |  | ||||||
| ROM socketed: n |  | ||||||
| Flashrom support: y |  | ||||||
| @@ -1,22 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #include <baseboard/variants.h> |  | ||||||
| #include <bootblock_common.h> |  | ||||||
| #include <ec/google/wilco/bootblock.h> |  | ||||||
| #include <soc/gpio.h> |  | ||||||
| #include <variant/gpio.h> |  | ||||||
|  |  | ||||||
| static void early_config_gpio(void) |  | ||||||
| { |  | ||||||
| 	const struct pad_config *early_gpio_table; |  | ||||||
| 	size_t num_gpios = 0; |  | ||||||
|  |  | ||||||
| 	early_gpio_table = variant_early_gpio_table(&num_gpios); |  | ||||||
| 	gpio_configure_pads(early_gpio_table, num_gpios); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void bootblock_mainboard_init(void) |  | ||||||
| { |  | ||||||
| 	early_config_gpio(); |  | ||||||
| 	wilco_ec_early_init(); |  | ||||||
| } |  | ||||||
| @@ -1,49 +0,0 @@ | |||||||
| FLASH@0xfe000000 0x2000000 { |  | ||||||
| 	SI_ALL@0x0 0x606000 { |  | ||||||
| 		SI_DESC@0x0 0x1000 |  | ||||||
| 		SI_EC@0x1000 0x100000 |  | ||||||
| 		SI_GBE(PRESERVE)@0x101000 0x2000 |  | ||||||
| 		SI_ME@0x103000 0x4ff000 |  | ||||||
| 		SI_PDR(PRESERVE)@0x602000 0x4000 |  | ||||||
| 	} |  | ||||||
| 	SI_BIOS@0x606000 0x19fa000 { |  | ||||||
| 		RW_DIAG@0x0 0x9fa000 { |  | ||||||
| 			RW_LEGACY(CBFS)@0x0 0x9ea000 |  | ||||||
| 			DIAG_NVRAM@0x9ea000 0x10000 |  | ||||||
| 		} |  | ||||||
| 		RW_SECTION_A@0x10ca000 0x280000 { |  | ||||||
| 			VBLOCK_A@0x0 0x10000 |  | ||||||
| 			FW_MAIN_A(CBFS)@0x10000 0x26ffc0 |  | ||||||
| 			RW_FWID_A@0x27ffc0 0x40 |  | ||||||
| 		} |  | ||||||
| 		RW_SECTION_B@0x134a000 0x280000 { |  | ||||||
| 			VBLOCK_B@0x0 0x10000 |  | ||||||
| 			FW_MAIN_B(CBFS)@0x10000 0x26ffc0 |  | ||||||
| 			RW_FWID_B@0x27ffc0 0x40 |  | ||||||
| 		} |  | ||||||
| 		RW_MISC@0x15ca000 0x30000 { |  | ||||||
| 			UNIFIED_MRC_CACHE@0x0 0x20000 { |  | ||||||
| 				RECOVERY_MRC_CACHE@0x0 0x10000 |  | ||||||
| 				RW_MRC_CACHE@0x10000 0x10000 |  | ||||||
| 			} |  | ||||||
| 			RW_ELOG(PRESERVE)@0x20000 0x4000 |  | ||||||
| 			RW_SHARED@0x24000 0x4000 { |  | ||||||
| 				SHARED_DATA@0x0 0x2000 |  | ||||||
| 				VBLOCK_DEV@0x2000 0x2000 |  | ||||||
| 			} |  | ||||||
| 			RW_VPD(PRESERVE)@0x28000 0x2000 |  | ||||||
| 			RW_NVRAM(PRESERVE)@0x2a000 0x6000 |  | ||||||
| 		} |  | ||||||
| 		WP_RO@0x15fa000 0x400000 { |  | ||||||
| 			RO_VPD(PRESERVE)@0x0 0x4000 |  | ||||||
| 			RO_UNUSED@0x4000 0xc000 |  | ||||||
| 			RO_SECTION@0x10000 0x3f0000 { |  | ||||||
| 				FMAP@0x0 0x800 |  | ||||||
| 				RO_FRID@0x800 0x40 |  | ||||||
| 				RO_FRID_PAD@0x840 0x7c0 |  | ||||||
| 				GBB@0x1000 0x3000 |  | ||||||
| 				COREBOOT(CBFS)@0x4000 0x3ec000 |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -1,96 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #include <baseboard/gpio.h> |  | ||||||
| #include <bootmode.h> |  | ||||||
| #include <boot/coreboot_tables.h> |  | ||||||
| #include <gpio.h> |  | ||||||
| #include <soc/gpio.h> |  | ||||||
| #include <variant/gpio.h> |  | ||||||
| #include <types.h> |  | ||||||
| #include <vendorcode/google/chromeos/chromeos.h> |  | ||||||
| #include <security/tpm/tss.h> |  | ||||||
| #include <device/device.h> |  | ||||||
| #include <intelblocks/pmclib.h> |  | ||||||
| #include <soc/pmc.h> |  | ||||||
| #include <soc/pci_devs.h> |  | ||||||
|  |  | ||||||
| enum rec_mode_state { |  | ||||||
| 	REC_MODE_UNINITIALIZED, |  | ||||||
| 	REC_MODE_NOT_REQUESTED, |  | ||||||
| 	REC_MODE_REQUESTED, |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| void fill_lb_gpios(struct lb_gpios *gpios) |  | ||||||
| { |  | ||||||
| 	struct lb_gpio chromeos_gpios[] = { |  | ||||||
| 		{-1, ACTIVE_HIGH, get_lid_switch(), "lid"}, |  | ||||||
| 		{-1, ACTIVE_HIGH, 0, "power"}, |  | ||||||
| 		{-1, ACTIVE_HIGH, gfx_get_init_done(), "oprom"}, |  | ||||||
| 		{-1, ACTIVE_HIGH, 0, "EC in RW"}, |  | ||||||
| 	}; |  | ||||||
| 	lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios)); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| int get_write_protect_state(void) |  | ||||||
| { |  | ||||||
| 	return gpio_get(GPIO_PCH_WP); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static bool raw_get_recovery_mode_switch(void) |  | ||||||
| { |  | ||||||
| 	return !gpio_get(GPIO_REC_MODE); |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  |  | ||||||
| int get_recovery_mode_switch(void) |  | ||||||
| { |  | ||||||
| 	static enum rec_mode_state saved_rec_mode = REC_MODE_UNINITIALIZED; |  | ||||||
| 	enum rec_mode_state state = REC_MODE_NOT_REQUESTED; |  | ||||||
| 	uint8_t cr50_state = 0; |  | ||||||
|  |  | ||||||
| 	/* Check cached state, since TPM will only tell us the first time */ |  | ||||||
| 	if (saved_rec_mode != REC_MODE_UNINITIALIZED) |  | ||||||
| 		return saved_rec_mode == REC_MODE_REQUESTED; |  | ||||||
|  |  | ||||||
| 	/* |  | ||||||
| 	 * Read one-time recovery request from cr50 in verstage only since |  | ||||||
| 	 * the TPM driver won't be set up in time for other stages like romstage |  | ||||||
| 	 * and the value from the TPM would be wrong anyway since the verstage |  | ||||||
| 	 * read would have cleared the value on the TPM. |  | ||||||
| 	 * |  | ||||||
| 	 * The TPM recovery request is passed between stages through vboot data |  | ||||||
| 	 * or cbmem depending on stage. |  | ||||||
| 	 */ |  | ||||||
| 	if (ENV_SEPARATE_VERSTAGE && |  | ||||||
| 	    tlcl_cr50_get_recovery_button(&cr50_state) == TPM_SUCCESS && |  | ||||||
| 	    cr50_state) |  | ||||||
| 		state = REC_MODE_REQUESTED; |  | ||||||
|  |  | ||||||
| 	/* Read state from the GPIO controlled by servo. */ |  | ||||||
| 	if (raw_get_recovery_mode_switch()) |  | ||||||
| 		state = REC_MODE_REQUESTED; |  | ||||||
|  |  | ||||||
| 	/* Store the state in case this is called again in verstage. */ |  | ||||||
| 	saved_rec_mode = state; |  | ||||||
|  |  | ||||||
| 	return state == REC_MODE_REQUESTED; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| int get_lid_switch(void) |  | ||||||
| { |  | ||||||
| 	return 1; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void mainboard_prepare_cr50_reset(void) |  | ||||||
| { |  | ||||||
| 	/* Ensure system powers up after CR50 reset */ |  | ||||||
| 	if (ENV_RAMSTAGE) |  | ||||||
| 		pmc_soc_set_afterg3_en(true); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| int get_ec_is_trusted(void) |  | ||||||
| { |  | ||||||
| 	/* Do not have a Chrome EC involved in entering recovery mode; |  | ||||||
| 	   Always return trusted. */ |  | ||||||
| 	return 1; |  | ||||||
| } |  | ||||||
| @@ -1,48 +0,0 @@ | |||||||
| FLASH@0xfe000000 0x2000000 { |  | ||||||
| 	SI_ALL@0x0 0x606000 { |  | ||||||
| 		SI_DESC@0x0 0x1000 |  | ||||||
| 		SI_EC@0x1000 0x100000 |  | ||||||
| 		SI_ME@0x101000 0x501000 |  | ||||||
| 		SI_PDR(PRESERVE)@0x602000 0x4000 |  | ||||||
| 	} |  | ||||||
| 	SI_BIOS@0x606000 0x19fa000 { |  | ||||||
| 		RW_DIAG@0x0 0x9fa000 { |  | ||||||
| 			RW_LEGACY(CBFS)@0x0 0x9ea000 |  | ||||||
| 			DIAG_NVRAM@0x9ea000 0x10000 |  | ||||||
| 		} |  | ||||||
| 		RW_SECTION_A@0x10ca000 0x280000 { |  | ||||||
| 			VBLOCK_A@0x0 0x10000 |  | ||||||
| 			FW_MAIN_A(CBFS)@0x10000 0x26ffc0 |  | ||||||
| 			RW_FWID_A@0x27ffc0 0x40 |  | ||||||
| 		} |  | ||||||
| 		RW_SECTION_B@0x134a000 0x280000 { |  | ||||||
| 			VBLOCK_B@0x0 0x10000 |  | ||||||
| 			FW_MAIN_B(CBFS)@0x10000 0x26ffc0 |  | ||||||
| 			RW_FWID_B@0x27ffc0 0x40 |  | ||||||
| 		} |  | ||||||
| 		RW_MISC@0x15ca000 0x30000 { |  | ||||||
| 			UNIFIED_MRC_CACHE@0x0 0x20000 { |  | ||||||
| 				RECOVERY_MRC_CACHE@0x0 0x10000 |  | ||||||
| 				RW_MRC_CACHE@0x10000 0x10000 |  | ||||||
| 			} |  | ||||||
| 			RW_ELOG(PRESERVE)@0x20000 0x4000 |  | ||||||
| 			RW_SHARED@0x24000 0x4000 { |  | ||||||
| 				SHARED_DATA@0x0 0x2000 |  | ||||||
| 				VBLOCK_DEV@0x2000 0x2000 |  | ||||||
| 			} |  | ||||||
| 			RW_VPD(PRESERVE)@0x28000 0x2000 |  | ||||||
| 			RW_NVRAM(PRESERVE)@0x2a000 0x6000 |  | ||||||
| 		} |  | ||||||
| 		WP_RO@0x15fa000 0x400000 { |  | ||||||
| 			RO_VPD(PRESERVE)@0x0 0x4000 |  | ||||||
| 			RO_UNUSED@0x4000 0xc000 |  | ||||||
| 			RO_SECTION@0x10000 0x3f0000 { |  | ||||||
| 				FMAP@0x0 0x800 |  | ||||||
| 				RO_FRID@0x800 0x40 |  | ||||||
| 				RO_FRID_PAD@0x840 0x7c0 |  | ||||||
| 				GBB@0x1000 0x3000 |  | ||||||
| 				COREBOOT(CBFS)@0x4000 0x3ec000 |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -1,43 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #include <acpi/acpi.h> |  | ||||||
| #include "variant/ec.h" |  | ||||||
| #include "variant/gpio.h" |  | ||||||
|  |  | ||||||
| DefinitionBlock( |  | ||||||
| 	"dsdt.aml", |  | ||||||
| 	"DSDT", |  | ||||||
| 	ACPI_DSDT_REV_2, |  | ||||||
| 	OEM_ID, |  | ||||||
| 	ACPI_TABLE_CREATOR, |  | ||||||
| 	0x20110725	/* OEM revision */ |  | ||||||
| ) |  | ||||||
| { |  | ||||||
| 	#include <acpi/dsdt_top.asl> |  | ||||||
| 	#include <soc/intel/common/block/acpi/acpi/platform.asl> |  | ||||||
|  |  | ||||||
| 	/* global NVS and variables */ |  | ||||||
| 	#include <soc/intel/common/block/acpi/acpi/globalnvs.asl> |  | ||||||
|  |  | ||||||
| 	#include <cpu/intel/common/acpi/cpu.asl> |  | ||||||
|  |  | ||||||
| 	Scope (\_SB) { |  | ||||||
| 		Device (PCI0) |  | ||||||
| 		{ |  | ||||||
| 			#include <soc/intel/common/block/acpi/acpi/northbridge.asl> |  | ||||||
| 			#include <soc/intel/tigerlake/acpi/southbridge.asl> |  | ||||||
| 			#include <soc/intel/tigerlake/acpi/tcss.asl> |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	/* Chrome OS Embedded Controller */ |  | ||||||
| 	Scope (\_SB.PCI0.LPCB) |  | ||||||
| 	{ |  | ||||||
| 		/* ACPI code for EC SuperIO functions */ |  | ||||||
| 		#include <ec/google/wilco/acpi/superio.asl> |  | ||||||
| 		/* ACPI code for EC functions */ |  | ||||||
| 		#include <ec/google/wilco/acpi/ec.asl> |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	#include <southbridge/intel/common/acpi/sleepstates.asl> |  | ||||||
| } |  | ||||||
| @@ -1,10 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #include <console/console.h> |  | ||||||
| #include <ec/google/wilco/commands.h> |  | ||||||
| #include <variant/ec.h> |  | ||||||
|  |  | ||||||
| void mainboard_post(uint8_t value) |  | ||||||
| { |  | ||||||
| 	wilco_ec_save_post_code(value); |  | ||||||
| } |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-only */ |  | ||||||
|  |  | ||||||
| #include "baseboard/hda_verb.h" |  | ||||||
| @@ -1,22 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #include <baseboard/variants.h> |  | ||||||
| #include <device/device.h> |  | ||||||
| #include <soc/gpio.h> |  | ||||||
| #include <variant/gpio.h> |  | ||||||
|  |  | ||||||
| static void mainboard_chip_init(void *chip_info) |  | ||||||
| { |  | ||||||
| 	const struct pad_config *base_pads; |  | ||||||
| 	const struct pad_config *override_pads; |  | ||||||
| 	size_t base_num, override_num; |  | ||||||
|  |  | ||||||
| 	base_pads = variant_base_gpio_table(&base_num); |  | ||||||
| 	override_pads = variant_override_gpio_table(&override_num); |  | ||||||
|  |  | ||||||
| 	gpio_configure_pads_with_override(base_pads, base_num, override_pads, override_num); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| struct chip_operations mainboard_ops = { |  | ||||||
| 	.init = mainboard_chip_init, |  | ||||||
| }; |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #include <baseboard/variants.h> |  | ||||||
| #include <soc/romstage.h> |  | ||||||
|  |  | ||||||
| void mainboard_memory_init_params(FSPM_UPD *mupd) |  | ||||||
| { |  | ||||||
| 	variant_memory_init(mupd); |  | ||||||
| } |  | ||||||
| @@ -1,22 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #include <cpu/x86/smm.h> |  | ||||||
| #include <ec/google/wilco/smm.h> |  | ||||||
| #include <intelblocks/smihandler.h> |  | ||||||
| #include <variant/ec.h> |  | ||||||
|  |  | ||||||
| void mainboard_smi_espi_handler(void) |  | ||||||
| { |  | ||||||
| 	wilco_ec_smi_espi(); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void mainboard_smi_sleep(u8 slp_typ) |  | ||||||
| { |  | ||||||
| 	wilco_ec_smi_sleep(slp_typ); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| int mainboard_smi_apmc(u8 apmc) |  | ||||||
| { |  | ||||||
| 	wilco_ec_smi_apmc(apmc); |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| @@ -1,8 +0,0 @@ | |||||||
| ## SPDX-License-Identifier: GPL-2.0-or-later |  | ||||||
|  |  | ||||||
| bootblock-y += gpio.c |  | ||||||
|  |  | ||||||
| ramstage-y += gpio.c |  | ||||||
| ramstage-y += sku.c |  | ||||||
|  |  | ||||||
| verstage-y += gpio.c |  | ||||||
| @@ -1,298 +0,0 @@ | |||||||
| chip soc/intel/tigerlake |  | ||||||
|  |  | ||||||
| 	# GPE configuration |  | ||||||
| 	# Note that GPE events called out in ASL code rely on this |  | ||||||
| 	# route. i.e. If this route changes then the affected GPE |  | ||||||
| 	# offset bits also need to be changed. |  | ||||||
|  |  | ||||||
| 	# TODO: Figure out GPE DW1&2 |  | ||||||
| 	register "pmc_gpe0_dw0" = "GPP_C" |  | ||||||
| 	register "pmc_gpe0_dw1" = "GPP_E" |  | ||||||
| 	#register "pmc_gpe0_dw2" = "??" |  | ||||||
|  |  | ||||||
| 	# Wilco EC host command ranges |  | ||||||
| 	register "gen1_dec" = "0x00040931" # 0x930-0x937 |  | ||||||
| 	register "gen2_dec" = "0x00040941" # 0x940-0x947 |  | ||||||
| 	register "gen3_dec" = "0x000c0951" # 0x950-0x95f |  | ||||||
|  |  | ||||||
| 	register "s0ix_enable" = "1" |  | ||||||
|  |  | ||||||
| 	# TODO: not yet |  | ||||||
| 	register "dptf_enable" = "0" |  | ||||||
|  |  | ||||||
| 	register "tcc_offset" = "0" |  | ||||||
|  |  | ||||||
| 	# FSP configuration |  | ||||||
| 	register "SaGv" = "SaGv_Disabled" |  | ||||||
|  |  | ||||||
| 	register "SataSalpSupport" = "1" |  | ||||||
|  |  | ||||||
| 	# TODO: the lengths are all MID for right now. |  | ||||||
| 	register "usb2_ports[0]" = "USB2_PORT_TYPE_C(OC_SKIP)"	# Type-C Port 1 |  | ||||||
| 	register "usb2_ports[1]" = "USB2_PORT_TYPE_C(OC_SKIP)"	# Type-C Port 2 |  | ||||||
| 	register "usb2_ports[2]" = "USB2_PORT_MID(OC0)"		# Ext USB Port 1 (Right) |  | ||||||
| 	register "usb2_ports[3]" = "USB2_PORT_MID(OC1)"		# Ext USB Port 2 (Left) |  | ||||||
| 	register "usb2_ports[5]" = "USB2_PORT_MID(OC_SKIP)"	# Camera |  | ||||||
| 	register "usb2_ports[6]" = "USB2_PORT_MID(OC_SKIP)"	# M.2 3042 (WWAN) |  | ||||||
| 	register "usb2_ports[7]" = "USB2_PORT_MID(OC_SKIP)"	# USH |  | ||||||
| 	register "usb2_ports[9]" = "USB2_PORT_MID(OC_SKIP)"	# BT |  | ||||||
|  |  | ||||||
| 	register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC0)"	# Ext USB Port 1 |  | ||||||
| 	register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC1)"	# Ext USB Port 2 |  | ||||||
| 	register "usb3_ports[3]" = "USB3_PORT_DEFAULT(OC_SKIP)"	# WWAN |  | ||||||
|  |  | ||||||
| 	# PCIe root port 7 (Card Reader), clock 4 |  | ||||||
| 	register "PcieRpEnable[6]" = "1" |  | ||||||
| 	register "PcieClkSrcUsage[4]" = "6" |  | ||||||
| 	register "PcieClkSrcClkReq[4]" = "4" |  | ||||||
|  |  | ||||||
| 	# PCIe root port 9 (NVMe), clock 2 |  | ||||||
| 	register "PcieRpEnable[8]" = "1" |  | ||||||
| 	register "PcieClkSrcUsage[2]" = "8" |  | ||||||
| 	register "PcieClkSrcClkReq[2]" = "2" |  | ||||||
| 	register "PcieRpSlotImplemented[8]" = "1" |  | ||||||
|  |  | ||||||
| 	# Mark unused SRCCLKREQs as so |  | ||||||
| 	register "PcieClkSrcUsage[0]" = "PCIE_CLK_NOTUSED" |  | ||||||
| 	register "PcieClkSrcUsage[5]" = "PCIE_CLK_NOTUSED" |  | ||||||
| 	register "PcieClkSrcUsage[6]" = "PCIE_CLK_NOTUSED" |  | ||||||
|  |  | ||||||
| 	# Intel Common SoC Config |  | ||||||
| 	#+-------------------+---------------------------+ |  | ||||||
| 	#| Field             |  Value                    | |  | ||||||
| 	#+-------------------+---------------------------+ |  | ||||||
| 	#| I2C0              | Touchscreen               | |  | ||||||
| 	#| I2C1              | Touchpad                  | |  | ||||||
| 	#| I2C2              | ISH ?                     | |  | ||||||
| 	#| I2C3              | cr50 TPM                  | |  | ||||||
| 	#| I2C5              | ISH ?                     | |  | ||||||
| 	#+-------------------+---------------------------+ |  | ||||||
| 	register "common_soc_config" = "{ |  | ||||||
| 		.i2c[0] = { |  | ||||||
| 			.speed = I2C_SPEED_FAST, |  | ||||||
| 		}, |  | ||||||
| 		.i2c[1] = { |  | ||||||
| 			.speed = I2C_SPEED_FAST, |  | ||||||
| 		}, |  | ||||||
| 		.i2c[2] = { |  | ||||||
| 			.speed = I2C_SPEED_FAST, |  | ||||||
| 		}, |  | ||||||
| 		.i2c[3] = { |  | ||||||
| 			.speed = I2C_SPEED_FAST, |  | ||||||
| 			.early_init = 1, |  | ||||||
| 		}, |  | ||||||
| 		.i2c[5] = { |  | ||||||
| 			.speed = I2C_SPEED_FAST, |  | ||||||
| 		}, |  | ||||||
| 	}" |  | ||||||
|  |  | ||||||
| 	register "SerialIoI2cMode" = "{ |  | ||||||
| 		[PchSerialIoIndexI2C0]  = PchSerialIoPci, |  | ||||||
| 		[PchSerialIoIndexI2C1]  = PchSerialIoPci, |  | ||||||
| 		[PchSerialIoIndexI2C2]  = PchSerialIoPci, |  | ||||||
| 		[PchSerialIoIndexI2C3]  = PchSerialIoPci, |  | ||||||
| 		[PchSerialIoIndexI2C4]  = PchSerialIoDisabled, |  | ||||||
| 		[PchSerialIoIndexI2C5]  = PchSerialIoPci, |  | ||||||
| 	}" |  | ||||||
|  |  | ||||||
| 	register "SerialIoUartMode" = "{ |  | ||||||
| 		[PchSerialIoIndexUART0] = PchSerialIoDisabled, |  | ||||||
| 		[PchSerialIoIndexUART1] = PchSerialIoDisabled, |  | ||||||
| 		[PchSerialIoIndexUART2] = PchSerialIoPci, |  | ||||||
| 	}" |  | ||||||
|  |  | ||||||
| 	register "SerialIoGSpiMode" = "{ |  | ||||||
| 		[PchSerialIoIndexGSPI0] = PchSerialIoDisabled, |  | ||||||
| 		[PchSerialIoIndexGSPI1] = PchSerialIoDisabled, |  | ||||||
| 		[PchSerialIoIndexGSPI2] = PchSerialIoDisabled, |  | ||||||
| 		[PchSerialIoIndexGSPI3] = PchSerialIoDisabled, |  | ||||||
| 	}" |  | ||||||
|  |  | ||||||
| 	# HD Audio |  | ||||||
| 	register "PchHdaAudioLinkHdaEnable" = "1" |  | ||||||
| 	register "PchHdaIDispCodecDisconnect" = "1" |  | ||||||
|  |  | ||||||
| 	# TCSS USB3 |  | ||||||
| 	register "TcssXhciEn" = "1" |  | ||||||
|  |  | ||||||
| 	# DisplayPort |  | ||||||
| 	register "DdiPortAConfig" = "DDI_PORT_CFG_EDP" |  | ||||||
| 	register "DdiPortAHpd" = "1" |  | ||||||
|  |  | ||||||
| 	# Disable PM to allow for shorter irq pulses |  | ||||||
| 	register "gpio_override_pm" = "1" |  | ||||||
| 	register "gpio_pm[0]" = "0" |  | ||||||
| 	register "gpio_pm[1]" = "0" |  | ||||||
| 	register "gpio_pm[2]" = "0" |  | ||||||
| 	register "gpio_pm[3]" = "0" |  | ||||||
| 	register "gpio_pm[4]" = "0" |  | ||||||
|  |  | ||||||
| 	device domain 0 on |  | ||||||
| 		device pci 00.0 on  end # Host Bridge |  | ||||||
| 		device pci 02.0 on  end # Graphics |  | ||||||
| 		device pci 04.0 off end # DPTF |  | ||||||
| 		device pci 05.0 off end # IPU |  | ||||||
| 		device pci 06.0 off end # PEG60 |  | ||||||
| 		device pci 07.0 on  end # TBT_PCIe0 |  | ||||||
| 		device pci 07.1 on  end # TBT_PCIe0 |  | ||||||
| 		device pci 07.2 on  end # TBT_PCIe0 |  | ||||||
| 		device pci 07.3 on  end # TBT_PCIe0 |  | ||||||
| 		device pci 08.0 on  end # GNA |  | ||||||
| 		device pci 09.0 off end # NPK |  | ||||||
| 		device pci 0a.0 off end # Crash-log SRAM |  | ||||||
| 		device pci 0d.0 on  end # USB xHCI |  | ||||||
| 		device pci 0d.1 off end # USB xDCI |  | ||||||
| 		device pci 0d.2 off end # TBT DMA0 |  | ||||||
| 		device pci 0d.3 off end # TBT DMA1 |  | ||||||
| 		device pci 0e.0 off end # VMD |  | ||||||
|  |  | ||||||
| 		device pci 10.0 off end # THC #0 |  | ||||||
| 		device pci 10.1 off end # THC #1 |  | ||||||
| 		device pci 10.2 on  end # CNVi Bluetooth |  | ||||||
| 		device pci 11.0 off end # UART #3 |  | ||||||
| 		device pci 11.1 off end # UART4 |  | ||||||
| 		device pci 11.2 off end # UART5 |  | ||||||
| 		device pci 11.3 off end # UART6 |  | ||||||
|  |  | ||||||
| 		device pci 12.0 on  end # ISH |  | ||||||
| 		device pci 12.6 off end # GSPI #2 |  | ||||||
| 		device pci 13.0 off end # GSPI #3 |  | ||||||
| 		device pci 13.1 off end # GSPI #4 |  | ||||||
| 		device pci 13.2 off end # GSPI #5 |  | ||||||
| 		device pci 13.3 off end # GSPI #6 |  | ||||||
|  |  | ||||||
| 		device pci 14.0 on |  | ||||||
| 			chip drivers/usb/acpi |  | ||||||
| 				register "desc" = ""Root Hub"" |  | ||||||
| 				register "type" = "UPC_TYPE_HUB" |  | ||||||
| 				device usb 0.0 on |  | ||||||
| 					chip drivers/usb/acpi |  | ||||||
| 						register "desc" = ""Type-C Port 1"" |  | ||||||
| 						register "type" = "UPC_TYPE_C_USB2_SS_SWITCH" |  | ||||||
| 						register "group" = "ACPI_PLD_GROUP(1, 1)" |  | ||||||
| 						device usb 2.0 on end |  | ||||||
| 					end |  | ||||||
| 					chip drivers/usb/acpi |  | ||||||
| 						register "desc" = ""Type-C Port 2"" |  | ||||||
| 						register "type" = "UPC_TYPE_C_USB2_SS_SWITCH" |  | ||||||
| 						register "group" = "ACPI_PLD_GROUP(2, 1)" |  | ||||||
| 						device usb 2.1 on end |  | ||||||
| 					end |  | ||||||
| 					chip drivers/usb/acpi |  | ||||||
| 						register "desc" = ""Type-A Port 1 (Right)"" |  | ||||||
| 						register "type" = "UPC_TYPE_USB3_A" |  | ||||||
| 						register "group" = "ACPI_PLD_GROUP(2, 2)" |  | ||||||
| 						device usb 2.2 on end |  | ||||||
| 					end |  | ||||||
| 					chip drivers/usb/acpi |  | ||||||
| 						register "desc" = ""Type-A Port 2 (Left)"" |  | ||||||
| 						register "type" = "UPC_TYPE_USB3_A" |  | ||||||
| 						register "group" = "ACPI_PLD_GROUP(1, 2)" |  | ||||||
| 						device usb 2.3 on end |  | ||||||
| 					end |  | ||||||
| 					chip drivers/usb/acpi |  | ||||||
| 						register "desc" = ""Camera"" |  | ||||||
| 						register "type" = "UPC_TYPE_INTERNAL" |  | ||||||
| 						device usb 2.5 on end |  | ||||||
| 					end |  | ||||||
| 					chip drivers/usb/acpi |  | ||||||
| 						register "desc" = ""M.2 3042 (WWAN)"" |  | ||||||
| 						register "type" = "UPC_TYPE_INTERNAL" |  | ||||||
| 						device usb 2.6 on end |  | ||||||
| 					end |  | ||||||
| 					chip drivers/usb/acpi |  | ||||||
| 						register "desc" = ""USH"" |  | ||||||
| 						register "type" = "UPC_TYPE_INTERNAL" |  | ||||||
| 						device usb 2.7 on end |  | ||||||
| 					end |  | ||||||
| 					chip drivers/usb/acpi |  | ||||||
| 						register "desc" = ""M.2 2230 (BT)"" |  | ||||||
| 						register "type" = "UPC_TYPE_INTERNAL" |  | ||||||
| 						register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_A13)" |  | ||||||
| 						device usb 2.9 on end |  | ||||||
| 					end |  | ||||||
| 					chip drivers/usb/acpi |  | ||||||
| 						register "desc" = ""Type-A Port 1"" |  | ||||||
| 						register "type" = "UPC_TYPE_USB3_A" |  | ||||||
| 						register "group" = "ACPI_PLD_GROUP(1, 1)" |  | ||||||
| 						device usb 3.0 on end |  | ||||||
| 					end |  | ||||||
| 					chip drivers/usb/acpi |  | ||||||
| 						register "desc" = ""Type-A Port 2"" |  | ||||||
| 						register "type" = "UPC_TYPE_USB3_A" |  | ||||||
| 						register "group" = "ACPI_PLD_GROUP(2, 1)" |  | ||||||
| 						device usb 3.1 on end |  | ||||||
| 					end |  | ||||||
| 					chip drivers/usb/acpi |  | ||||||
| 						register "desc" = ""WWAN"" |  | ||||||
| 						register "type" = "UPC_TYPE_INTERNAL" |  | ||||||
| 						device usb 3.2 on end |  | ||||||
| 					end |  | ||||||
| 				end |  | ||||||
| 			end |  | ||||||
| 		end # USB 3.2 2x1 xHCI HC |  | ||||||
|  |  | ||||||
| 		device pci 14.1 off end # USB 3.2 1x1 xDCI HC |  | ||||||
| 		device pci 14.2 on end # Shared SRAM |  | ||||||
|  |  | ||||||
| 		device pci 14.3 on |  | ||||||
| 			chip drivers/wifi/generic |  | ||||||
| 				register "wake" = "GPE0_PME_B0" |  | ||||||
| 				device generic 0 on end |  | ||||||
| 			end |  | ||||||
| 		end # CNVi WiFi |  | ||||||
|  |  | ||||||
| 		device pci 15.0 on  end # I2C #0 |  | ||||||
| 		device pci 15.1 on  end # I2C #1 |  | ||||||
| 		device pci 15.2 on  end # I2C #2 |  | ||||||
| 		device pci 15.3 on |  | ||||||
| 			chip drivers/i2c/tpm |  | ||||||
| 				register "hid" = ""GOOG0005"" |  | ||||||
| 				register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_C23_IRQ)" |  | ||||||
| 				device i2c 50 on end |  | ||||||
| 			end |  | ||||||
| 		end # I2C #3 |  | ||||||
|  |  | ||||||
| 		device pci 16.0 on  end # HECI #1 |  | ||||||
| 		device pci 16.1 off end # HECI #2 |  | ||||||
| 		device pci 16.2 off end # IDE-R |  | ||||||
| 		device pci 16.3 off end # KT-T |  | ||||||
| 		device pci 16.4 on  end # HECI #3 |  | ||||||
| 		device pci 16.5 on  end # HECI #4 |  | ||||||
| 		device pci 17.0 on  end # SATA (AHCI) |  | ||||||
| 		device pci 19.0 off end # I2C #4 |  | ||||||
| 		device pci 19.1 on  end # I2C #5 |  | ||||||
| 		device pci 19.2 on  end # UART #2 |  | ||||||
|  |  | ||||||
| 		device pci 1c.0 on  end # PCIe Root Port #1 (USB) |  | ||||||
| 		device pci 1c.1 on  end # PCIe Root Port #2 (USB) |  | ||||||
| 		device pci 1c.2 off end # PCIe Root Port #3 () |  | ||||||
| 		device pci 1c.3 off  end # PCIe Root Port #4 (WWAN) |  | ||||||
| 		device pci 1c.4 on  end # PCIe Root Port #5 (LTE) |  | ||||||
| 		device pci 1c.5 off end # PCIe Root Port #6 (WiFi) |  | ||||||
| 		device pci 1c.6 on  end # PCIe Root Port #7 (Card reader) |  | ||||||
| 		device pci 1c.7 on  end # PCIe Root Port #8 (LAN) |  | ||||||
| 		device pci 1d.0 on  end # PCIe Root Port #9 (NVMe) |  | ||||||
| 		device pci 1d.1 off end # PCIe Root Port #10 (NVMe) |  | ||||||
| 		device pci 1d.2 off end # PCIe Root Port #11 (NVMe) |  | ||||||
| 		device pci 1d.3 off end # PCIe Root Port #12 (NVMe) |  | ||||||
|  |  | ||||||
| 		device pci 1e.0 off end # UART #0 |  | ||||||
| 		device pci 1e.1 off end # UART #1 |  | ||||||
| 		device pci 1e.2 off end # GSPI #0 |  | ||||||
| 		device pci 1e.3 off end # GSPI #1 |  | ||||||
|  |  | ||||||
| 		device pci 1f.0 on |  | ||||||
| 			chip ec/google/wilco |  | ||||||
| 				device pnp 0c09.0 on end |  | ||||||
| 			end |  | ||||||
| 		end # eSPI |  | ||||||
| 		device pci 1f.1 off end # P2SB |  | ||||||
| 		device pci 1f.2 hidden end # PMC |  | ||||||
| 		device pci 1f.3 on  end # Intel HDA |  | ||||||
| 		device pci 1f.4 off end # SMBus |  | ||||||
| 		device pci 1f.5 on  end # PCH SPI Flash Controller |  | ||||||
| 		device pci 1f.6 off end # GbE Controller |  | ||||||
| 		device pci 1f.7 off end # Intel Trace Hub |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| @@ -1,429 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #include <baseboard/variants.h> |  | ||||||
| #include <baseboard/gpio.h> |  | ||||||
| #include <soc/gpio.h> |  | ||||||
| #include <variant/gpio.h> |  | ||||||
| #include <vendorcode/google/chromeos/chromeos.h> |  | ||||||
|  |  | ||||||
| static const struct pad_config gpio_table[] = { |  | ||||||
| 	/* A0 thru A6 are ESPI, configured elsewhere */ |  | ||||||
| 	/* A0  : ESPI_IO0 ==> ESPI_IO_0 */ |  | ||||||
| 	/* A1  : ESPI_IO1 ==> ESPI_IO_1 */ |  | ||||||
| 	/* A2  : ESPI_IO2 ==> ESPI_IO_2 */ |  | ||||||
| 	/* A3  : ESPI_IO3 ==> ESPI_IO_3 */ |  | ||||||
| 	/* A4  : ESPI_CS# ==> ESPI_CS_L */ |  | ||||||
| 	/* A5  : ESPI_CLK ==> ESPI_CLK */ |  | ||||||
| 	/* A6  : ESPI_RESET# ==> NC(TP764) */ |  | ||||||
| 	/* A7  : GPP_A7 ==> CNVI_EN# */ |  | ||||||
| 	PAD_CFG_GPI(GPP_A7, NONE, DEEP), |  | ||||||
| 	/* A8  : GPP_A8 ==> CNV_RF_RESET# */ |  | ||||||
| 	PAD_CFG_NF(GPP_A8, NONE, DEEP, NF2), |  | ||||||
| 	/* A9  : GPP_A9 ==> CLKREQ_CNV#_1P8 */ |  | ||||||
| 	PAD_CFG_NF(GPP_A9, NONE, DEEP, NF2), |  | ||||||
| 	/* A10 : GPP_A10 ==> TOUCH_SCREEN_RST# */ |  | ||||||
| 	PAD_CFG_GPO(GPP_A10, 0, DEEP), |  | ||||||
| 	/* A11 : GPP_A11 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_A11, NONE), |  | ||||||
| 	/* A12 : GPP_A12 ==> M2280_PCIE_SATA# */ |  | ||||||
| 	PAD_CFG_NF(GPP_A12, NONE, DEEP, NF1), |  | ||||||
| 	/* A13 : GPP_A13 ==> PCH_BT_RADIO_DIS# */ |  | ||||||
| 	PAD_CFG_GPO(GPP_A13, 1, DEEP), |  | ||||||
| 	/* A14 : GPP_A14 ==> USB_OC1# */ |  | ||||||
| 	PAD_CFG_NF(GPP_A14, NONE, DEEP, NF1), |  | ||||||
| 	/* A15 : GPP_A15 ==> USB_OC2# */ |  | ||||||
| 	PAD_CFG_NF(GPP_A15, NONE, DEEP, NF1), |  | ||||||
| 	/* A16 : GPP_A16 ==> USB_OC3# */ |  | ||||||
| 	PAD_CFG_NF(GPP_A16, NONE, DEEP, NF1), |  | ||||||
| 	/* A17 : GPP_A17 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_A17, NONE), |  | ||||||
| 	/* A18 : GPP_A18 ==> HDMI_HPD */ |  | ||||||
| 	PAD_CFG_NF(GPP_A18, NONE, DEEP, NF1), |  | ||||||
| 	/* A19 : GPP_A19 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_A19, NONE), |  | ||||||
| 	/* A20 : GPP_A20 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_A20, NONE), |  | ||||||
| 	/* A21 : GPP_A21 ==> 3.3V_CAM_EN# */ |  | ||||||
| 	PAD_CFG_GPO(GPP_A21, 0, PLTRST), |  | ||||||
| 	/* A22 : GPP_A22 ==> KB_DET# */ |  | ||||||
| 	PAD_CFG_GPI(GPP_A22, NONE, PLTRST), |  | ||||||
| 	/* A23 : GPP_A23 ==> RECOVERY# */ |  | ||||||
| 	PAD_CFG_GPI(GPP_A23, NONE, DEEP), |  | ||||||
|  |  | ||||||
| 	/* B0  : GPP_B0 ==> CORE_VID0 */ |  | ||||||
| 	PAD_CFG_NF(GPP_B0, NONE, DEEP, NF1), |  | ||||||
| 	/* B1  : GPP_B1 ==> CORE_VID1 */ |  | ||||||
| 	PAD_CFG_NF(GPP_B1, NONE, DEEP, NF1), |  | ||||||
| 	/* B2  : GPP_B2 ==> VRALERT_L */ |  | ||||||
| 	PAD_CFG_NF(GPP_B2, NONE, DEEP, NF1), |  | ||||||
| 	/* B3  : GPP_B3 ==> TOUCH_SCREEN_PD# */ |  | ||||||
| 	PAD_CFG_GPO(GPP_B3, 0, PLTRST), |  | ||||||
| 	/* B4  : GPP_B4 ==> TOUCH_SCREEN_DET# */ |  | ||||||
| 	PAD_CFG_GPI(GPP_B4, NONE, DEEP), |  | ||||||
| 	/* B5  : GPP_B5 ==> ISH_I2C0_SDA */ |  | ||||||
| 	PAD_CFG_NF(GPP_B5, NONE, DEEP, NF1), |  | ||||||
| 	/* B6  : GPP_B6 ==> ISH_I2C0_SCL */ |  | ||||||
| 	PAD_CFG_NF(GPP_B6, NONE, DEEP, NF1), |  | ||||||
| 	/* B7  : GPP_B7 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_B7, NONE), |  | ||||||
| 	/* B8  : GPP_B8 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_B8, NONE), |  | ||||||
| 	/* B9  : GPP_B9 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_B9, NONE), |  | ||||||
| 	/* B10 : GPP_B10 ===> NC */ |  | ||||||
| 	PAD_NC(GPP_B10, NONE), |  | ||||||
| 	/* B11 : GPP_B11 ==> TBT_I2C_INT# */ |  | ||||||
| 	PAD_CFG_NF(GPP_B11, NONE, DEEP, NF1), |  | ||||||
| 	/* B12 : GPP_B12 ==> SIO_SLP_S0# */ |  | ||||||
| 	PAD_CFG_NF(GPP_B12, NONE, DEEP, NF1), |  | ||||||
| 	/* B13 : PLTRST# ==> PCH_PLTRST# */ |  | ||||||
| 	PAD_CFG_NF(GPP_B13, NONE, DEEP, NF1), |  | ||||||
| 	/* B14 : GPP_B14 ==> SPKR (PIN STRAP, Top Swap Override) */ |  | ||||||
| 	PAD_CFG_NF(GPP_B14, NONE, DEEP, NF1), |  | ||||||
| 	/* B15 : GPP_B15 ==> SPK_DET0# */ |  | ||||||
| 	PAD_CFG_GPI(GPP_B15, NONE, PLTRST), |  | ||||||
| 	/* B16 : GPP_B16 ==> ONE_DIMM# */ |  | ||||||
| 	PAD_CFG_GPI(GPP_B16, NONE, PLTRST), |  | ||||||
| 	/* B17 : GPP_B17 ==> HOST_SD_WP# */ |  | ||||||
| 	PAD_CFG_GPO(GPP_B17, 0, PLTRST), |  | ||||||
| 	/* B18 : GPP_B18 ==> NRB_BIT (PIN STRAP, No Reboot) */ |  | ||||||
| 	PAD_NC(GPP_B18, NONE), |  | ||||||
| 	/* B19 : GPP_B19 ==> D3_RST# */ |  | ||||||
| 	PAD_CFG_GPO(GPP_B19, 0, DEEP), |  | ||||||
| 	/* B20 : GPP_B20 ==> LCD_CBL_DET# */ |  | ||||||
| 	PAD_CFG_GPI(GPP_B20, NONE, PLTRST), |  | ||||||
| 	/* B21 : GPP_B21 ==> PCH_TOUCH_SCREEN_EN */ |  | ||||||
| 	PAD_CFG_GPO(GPP_B21, 0, DEEP), |  | ||||||
| 	/* B22 : GPP_B22 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_B22, NONE), |  | ||||||
| 	/* B23 : GPP_B23 ==> NC (PIN STRAP, CPUNSSC frequency) */ |  | ||||||
| 	PAD_NC(GPP_B23, NONE), |  | ||||||
|  |  | ||||||
| 	/* C0  : GPP_C0 ==> MEM_SMBCLK */ |  | ||||||
| 	PAD_CFG_NF(GPP_C0, NONE, DEEP, NF1), |  | ||||||
| 	/* C1  : GPP_C1 ==> MEM_SMBDATA */ |  | ||||||
| 	PAD_CFG_NF(GPP_C1, NONE, DEEP, NF1), |  | ||||||
| 	/* C2  : GPP_C2 ==> NC (PIN STRAP, TLS Confidentiality) */ |  | ||||||
| 	PAD_NC(GPP_C2, NONE), |  | ||||||
| 	/* C3  : GPP_C3 ==> SML0_SMBCLK */ |  | ||||||
| 	PAD_CFG_NF(GPP_C3, NONE, DEEP, NF1), |  | ||||||
| 	/* C4  : GPP_C4 ==> SML0_SMBDATA */ |  | ||||||
| 	PAD_CFG_NF(GPP_C4, NONE, DEEP, NF1), |  | ||||||
| 	/* C5  : GPP_C5 ==> NC (PIN STRAP, Boot Strap 0) */ |  | ||||||
| 	PAD_NC(GPP_C5, NONE), |  | ||||||
| 	/* C6  : GPP_C6 ==> SML1_SMBCLK */ |  | ||||||
| 	PAD_CFG_NF(GPP_C6, NONE, DEEP, NF1), |  | ||||||
| 	/* C7  : GPP_C7 ==> SML1_SMBDATA */ |  | ||||||
| 	PAD_CFG_NF(GPP_C7, NONE, DEEP, NF1), |  | ||||||
| 	/* C8  : GPP_C8 ==> WWAN_FULL_POWER_EN */ |  | ||||||
| 	PAD_CFG_GPO(GPP_C8, 1, DEEP), |  | ||||||
| 	/* C9  : GPP_C9 ==> SBIOS_TX */ |  | ||||||
| 	PAD_CFG_GPO(GPP_C9, 0, PLTRST), |  | ||||||
| 	/* C10 : GPP_C10 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_C10, NONE), |  | ||||||
| 	/* C11 : GPP_C11 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_C11, NONE), |  | ||||||
| 	/* C12 : GPP_C12 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_C12, NONE), |  | ||||||
| 	/* C13 : GPP_C13 ==> PCH_SSD_PWR_EN */ |  | ||||||
| 	PAD_CFG_GPO(GPP_C13, 1, DEEP), |  | ||||||
| 	/* C14 : GPP_C14 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_C14, NONE), |  | ||||||
| 	/* C15 : GPP_C15 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_C15, NONE), |  | ||||||
| 	/* C16 : GPP_C16 ==> I2C0_SDA_TS */ |  | ||||||
| 	PAD_CFG_NF(GPP_C16, NONE, DEEP, NF1), |  | ||||||
| 	/* C17 : GPP_C17 ==> I2C0_SCL_TS */ |  | ||||||
| 	PAD_CFG_NF(GPP_C17, NONE, DEEP, NF1), |  | ||||||
| 	/* C18 : GPP_C18 ==> I2C1_SDA_TP */ |  | ||||||
| 	PAD_CFG_NF(GPP_C18, NONE, DEEP, NF1), |  | ||||||
| 	/* C19 : GPP_C19 ==> I2C1_SCL_TP */ |  | ||||||
| 	PAD_CFG_NF(GPP_C19, NONE, DEEP, NF1), |  | ||||||
| 	/* C20 : GPP_C20 ==> PCHRX_SERVOTX_UART */ |  | ||||||
| 	PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1), |  | ||||||
| 	/* C21 : CPP_G21 ==> PCHTX_SERVORX_UART */ |  | ||||||
| 	PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), |  | ||||||
| 	/* C22 : GPP_C22 ==> H1_FLASH_WP */ |  | ||||||
| 	PAD_CFG_GPI(GPP_C22, NONE, DEEP), |  | ||||||
| 	/* C23 : GPP_C23 ==> H1_PCH_INT# */ |  | ||||||
| 	PAD_CFG_GPI_APIC(GPP_C23, NONE, DEEP, LEVEL, INVERT), |  | ||||||
|  |  | ||||||
| 	/* D0  : GPP_D0 ==> ISH_ACC1_INT */ |  | ||||||
| 	PAD_CFG_NF(GPP_D0, NONE, DEEP, NF1), |  | ||||||
| 	/* D1  : GPP_D1 ==> ISH_ACC2_INT */ |  | ||||||
| 	PAD_CFG_NF(GPP_D1, NONE, DEEP, NF1), |  | ||||||
| 	/* D2  : GPP_D2 ==> ISH_TABLE_MODE# */ |  | ||||||
| 	PAD_CFG_NF(GPP_D2, NONE, DEEP, NF1), |  | ||||||
| 	/* D3  : GPP_D3 ==> ISH_ALS_INT# */ |  | ||||||
| 	PAD_CFG_NF(GPP_D3, NONE, DEEP, NF1), |  | ||||||
| 	/* D4  : GPP_D4 ==> RT_FORCE_PWR */ |  | ||||||
| 	PAD_CFG_GPO(GPP_D4, 0, PLTRST), |  | ||||||
| 	/* D5  : GPP_D5 ==> CLKREQ_PCIE#0 */ |  | ||||||
| 	PAD_CFG_NF(GPP_D5, NONE, DEEP, NF1), |  | ||||||
| 	/* D6  : GPP_D6 ==> CLKREQ_PCIE#1 */ |  | ||||||
| 	PAD_CFG_NF(GPP_D6, NONE, DEEP, NF1), |  | ||||||
| 	/* D7  : GPP_D7 ==> CLKREQ_PCIE#2 */ |  | ||||||
| 	PAD_CFG_NF(GPP_D7, NONE, DEEP, NF1), |  | ||||||
| 	/* D8  : GPP_D8 ==> CLKREQ_PCIE#3 */ |  | ||||||
| 	PAD_CFG_NF(GPP_D8, NONE, DEEP, NF1), |  | ||||||
| 	/* D9  : GPP_D9 ==> TBT_2_LSX_TX */ |  | ||||||
| 	PAD_CFG_NF(GPP_D9, NONE, DEEP, NF4), |  | ||||||
| 	/* D10 : GPP_D10 ==> TBT_2_LSX_RX */ |  | ||||||
| 	PAD_CFG_NF(GPP_D10, NONE, DEEP, NF4), |  | ||||||
| 	/* D11 : GPP_D11 ==> TBT_3_LSX_TX */ |  | ||||||
| 	PAD_CFG_NF(GPP_D11, NONE, DEEP, NF4), |  | ||||||
| 	/* D12 : GPP_D12 ==> TBT_3_LSX_RX */ |  | ||||||
| 	PAD_CFG_NF(GPP_D12, DN_20K, DEEP, NF4), |  | ||||||
| 	/* D13 : GPP_D13 ==> SML0B_SMLDATA */ |  | ||||||
| 	PAD_CFG_NF(GPP_D13, NONE, DEEP, NF2), |  | ||||||
| 	/* D14 : GPP_D14 ==> SML0B_SMLCLK */ |  | ||||||
| 	PAD_CFG_NF(GPP_D14, NONE, DEEP, NF2), |  | ||||||
| 	/* D15 : GPP_D15 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_D15, NONE), |  | ||||||
| 	/* D16 : GPP_D16 ==> SML0BALERT# */ |  | ||||||
| 	PAD_CFG_NF(GPP_D16, NONE, DEEP, NF2), |  | ||||||
| 	/* D17 : GPP_D17 ==> ISH_NB_MODE# */ |  | ||||||
| 	PAD_CFG_NF(GPP_D17, NONE, DEEP, NF1), |  | ||||||
| 	/* D18 : GPP_D18 ==> ISH_LID_CL#_NB */ |  | ||||||
| 	PAD_CFG_NF(GPP_D18, NONE, DEEP, NF1), |  | ||||||
| 	/* D19 : GPP_D19 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_D19, NONE), |  | ||||||
|  |  | ||||||
| 	/* E0  : GPP_E0 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_E0, NONE), |  | ||||||
| 	/* E1  : GPP_E1 ==> TOUCH_SCREEN_INT# */ |  | ||||||
| 	PAD_CFG_GPI_APIC(GPP_E1, NONE, PLTRST, LEVEL, INVERT), |  | ||||||
| 	/* E2  : GPP_E2 ==> MEDIACARD_IRQ# */ |  | ||||||
| 	PAD_CFG_GPI_APIC(GPP_E2, NONE, PLTRST, LEVEL, INVERT), |  | ||||||
| 	/* E3  : GPP_E3 ==> MEM_INTERLEAVED */ |  | ||||||
| 	PAD_CFG_GPI(GPP_E3, NONE, PLTRST), |  | ||||||
| 	/* E4  : GPP_E4 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_E4, NONE), |  | ||||||
| 	/* E5  : GPP_E5 ==> M2280_DEVSLP */ |  | ||||||
| 	PAD_CFG_NF(GPP_E5, NONE, DEEP, NF1), |  | ||||||
| 	/* E6  : GPP_E6 ==> (PIN STRAP, Reserved) */ |  | ||||||
| 	PAD_NC(GPP_E6, NONE), |  | ||||||
| 	/* E7  : CPU_GP1 ==> PCH_TOUCHPAD_INTR# */ |  | ||||||
| 	PAD_CFG_GPI_IRQ_WAKE(GPP_E7, NONE, PLTRST, LEVEL, INVERT), |  | ||||||
| 	/* E8  : GPP_E8 ==> SECURE_BIO */ |  | ||||||
| 	PAD_CFG_GPO(GPP_E8, 0, PLTRST), |  | ||||||
| 	/* E9  : GPP_E9 ==> OC0# */ |  | ||||||
| 	PAD_CFG_NF(GPP_E9, NONE, DEEP, NF1), |  | ||||||
| 	/* E10 : GPP_E10 ==> HDMI_PD# */ |  | ||||||
| 	PAD_CFG_GPO(GPP_E10, 1, DEEP), |  | ||||||
| 	/* E11 : GPP_E11 ==> VPRO_DET# */ |  | ||||||
| 	PAD_CFG_GPI(GPP_E11, NONE, PLTRST), |  | ||||||
| 	/* E12 : GPP_E12 ==> RTC_DET# */ |  | ||||||
| 	PAD_CFG_GPI(GPP_E12, NONE, PLTRST), |  | ||||||
| 	/* E13 : GPP_E13 ==> TBT_DET# */ |  | ||||||
| 	PAD_CFG_GPI(GPP_E13, NONE, DEEP), |  | ||||||
| 	/* E14 : GPP_E14 ==> EPD_HPD */ |  | ||||||
| 	PAD_CFG_NF(GPP_E14, NONE, DEEP, NF1), |  | ||||||
| 	/* E15 : GPP_E15 ==> ISH_LID_CL#_TAB */ |  | ||||||
| 	PAD_CFG_NF(GPP_E15, NONE, DEEP, NF1), |  | ||||||
| 	/* E16 : GPP_E16 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_E16, NONE), |  | ||||||
| 	/* E17 : GPP_E17 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_E17, NONE), |  | ||||||
| 	/* E18 : GPP_E18 ==> TBT_LSX0_TXD */ |  | ||||||
| 	PAD_CFG_NF(GPP_E18, NONE, DEEP, NF4), |  | ||||||
| 	/* E19 : GPP_E19 ==> TBT_LSX0_RXD */ |  | ||||||
| 	PAD_CFG_NF(GPP_E19, NONE, DEEP, NF4), |  | ||||||
| 	/* E20 : GPP_E20 ==> TBT_LSX1_TXD */ |  | ||||||
| 	PAD_CFG_NF(GPP_E20, NONE, DEEP, NF4), |  | ||||||
| 	/* E21 : GPP_E21 ==> TBT_LSX1_RXD */ |  | ||||||
| 	PAD_CFG_NF(GPP_E21, NONE, DEEP, NF4), |  | ||||||
| 	/* E22 : GPP_E22 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_E22, NONE), |  | ||||||
| 	/* E23 : GPP_E23 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_E23, NONE), |  | ||||||
|  |  | ||||||
| 	/* F0  : GPP_F0 ==> BRI_DT_1P8 */ |  | ||||||
| 	PAD_CFG_NF(GPP_F0, NONE, DEEP, NF1), |  | ||||||
| 	/* F1  : GPP_F1 ==> CNV_BRI_RSP_1P8 */ |  | ||||||
| 	PAD_CFG_NF(GPP_F1, NONE, DEEP, NF1), |  | ||||||
| 	/* F2  : GPP_F2 ==> CNV_RGI_DT_1P8 */ |  | ||||||
| 	PAD_CFG_NF(GPP_F2, NONE, DEEP, NF1), |  | ||||||
| 	/* F3  : GPP_F3 ==> CNV_RGI_RSP_1P8 */ |  | ||||||
| 	PAD_CFG_NF(GPP_F3, NONE, DEEP, NF1), |  | ||||||
| 	/* F4  : GPP_F4 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_F4, NONE), |  | ||||||
| 	/* F5  : GPP_F5 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_F5, NONE), |  | ||||||
| 	/* F6  : GPP_F6 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_F6, NONE), |  | ||||||
| 	/* F7  : GPP_F7 ==> NC (PIN STRAP, Reserved) */ |  | ||||||
| 	PAD_NC(GPP_F7, NONE), |  | ||||||
| 	/* F8  : GPP_F8 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_F8, NONE), |  | ||||||
| 	/* F9  : GPP_F9 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_F9, NONE), |  | ||||||
| 	/* F10 : GPP_F10 ==> NC (PIN STRAP, Reserved) */ |  | ||||||
| 	PAD_NC(GPP_F10, NONE), |  | ||||||
| 	/* F11 : GPP_F11 ==> MEM_CONFIG0_1P8 */ |  | ||||||
| 	PAD_CFG_GPI(GPP_F11, NONE, DEEP), |  | ||||||
| 	/* F12 : GPP_F12 ==> MEM_CONFIG1_1P8 */ |  | ||||||
| 	PAD_CFG_GPI(GPP_F12, NONE, DEEP), |  | ||||||
| 	/* F13 : GPP_F13 ==> MEM_CONFIG2_1P8 */ |  | ||||||
| 	PAD_CFG_GPI(GPP_F13, NONE, DEEP), |  | ||||||
| 	/* F14 : GPP_F14 ==> MEM_CONFIG3_1P8 */ |  | ||||||
| 	PAD_CFG_GPI(GPP_F14, NONE, DEEP), |  | ||||||
| 	/* F15 : GPP_F15 ==> MEM_CONFIG4_1P8 */ |  | ||||||
| 	PAD_CFG_GPI(GPP_F15, NONE, DEEP), |  | ||||||
| 	/* F16 : GPP_F16 ==> WWAN_BB_RST#_1P8 */ |  | ||||||
| 	PAD_CFG_GPO(GPP_F16, 1, DEEP), |  | ||||||
| 	/* F17 : GPP_F17 ==> WWAN_GPIO_PERST# */ |  | ||||||
| 	PAD_CFG_GPO(GPP_F17, 0, DEEP), |  | ||||||
| 	/* F18 : GPP_F18 ==> WWAN_GPIO_WAKE# */ |  | ||||||
| 	PAD_CFG_GPI_SCI_LOW(GPP_F18, NONE, DEEP, EDGE_SINGLE), |  | ||||||
| 	/* F19 : GPP_F19 ==> CAM_MIC_CBL_DET# */ |  | ||||||
| 	PAD_CFG_GPI(GPP_F19, NONE, PLTRST), |  | ||||||
| 	/* F20 : GPP_F20 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_F20, NONE), |  | ||||||
| 	/* F21 : GPP_F21 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_F21, NONE), |  | ||||||
| 	/* F22 : VNN_CTRL */ |  | ||||||
| 	PAD_CFG_NF(GPP_F22, NONE, DEEP, NF1), |  | ||||||
| 	/* F23 : V1P05_CTRL */ |  | ||||||
| 	PAD_CFG_NF(GPP_F23, NONE, DEEP, NF1), |  | ||||||
|  |  | ||||||
| 	/* H0  : GPPH0_BOOT_STRAP1 */ |  | ||||||
| 	PAD_NC(GPP_H0, NONE), |  | ||||||
| 	/* H1  : GPPH1_BOOT_STRAP2 */ |  | ||||||
| 	PAD_NC(GPP_H1, NONE), |  | ||||||
| 	/* H2  : GPPH2_BOOT_STRAP3 */ |  | ||||||
| 	PAD_NC(GPP_H2, NONE), |  | ||||||
| 	/* H3  : GPP_H3 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_H3, NONE), |  | ||||||
| 	/* H4  : GPP_H4 ==> DDR_CHA_EN_1P8 */ |  | ||||||
| 	PAD_CFG_GPI(GPP_H4, NONE, DEEP), |  | ||||||
| 	/* H5  : GPP_H5 ==> DDR_CHB_EN_1P8 */ |  | ||||||
| 	PAD_CFG_GPI(GPP_H5, NONE, DEEP), |  | ||||||
| 	/* H6  : GPP_H6 ==> I2C_SDA_PCH_H1 */ |  | ||||||
| 	PAD_CFG_NF(GPP_H6, NONE, DEEP, NF1), |  | ||||||
| 	/* H7  : GPP_H7 ==> I2C_SCL_PCH_H1 */ |  | ||||||
| 	PAD_CFG_NF(GPP_H7, NONE, DEEP, NF1), |  | ||||||
| 	/* H8  : GPP_H8 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_H8, NONE), |  | ||||||
| 	/* H9  : GPP_H9 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_H9, NONE), |  | ||||||
| 	/* H10 : GPP_H10 ==> CLKREQ_PCIE#4 */ |  | ||||||
| 	PAD_CFG_NF(GPP_H10, NONE, DEEP, NF1), |  | ||||||
| 	/* H11 : GPP_H11 ==> CLKREQ_PCIE#5 */ |  | ||||||
| 	PAD_CFG_NF(GPP_H11, NONE, DEEP, NF1), |  | ||||||
| 	/* H12 : GPP_H12 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_H12, NONE), |  | ||||||
| 	/* H13 : GPP_H13 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_H13, NONE), |  | ||||||
| 	/* H14 : GPP_H14 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_H14, NONE), |  | ||||||
| 	/* H15 : GPP_H15 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_H15, NONE), |  | ||||||
| 	/* H16 : GPP_H16 ==> CPU_DPB_CTRL_CLK */ |  | ||||||
| 	PAD_CFG_NF(GPP_H16, NONE, DEEP, NF1), |  | ||||||
| 	/* H17 : GPP_H17 ==> CPU_DPB_CTRL_DATA */ |  | ||||||
| 	PAD_CFG_NF(GPP_H17, NONE, DEEP, NF1), |  | ||||||
| 	/* H18 : CPU_C10_GATE# ==> CPU_C10_GATE# */ |  | ||||||
| 	PAD_CFG_NF(GPP_H18, NONE, DEEP, NF1), |  | ||||||
| 	/* H19 : GPP_H19 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_H19, NONE), |  | ||||||
| 	/* H20 : GPP_H20 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_H20, NONE), |  | ||||||
| 	/* H21 : GPP_H21 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_H21, NONE), |  | ||||||
| 	/* H22 : GPP_H22 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_H22, NONE), |  | ||||||
| 	/* H23 : GPP_H23 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_H23, NONE), |  | ||||||
|  |  | ||||||
| 	/* R0 : GPP_R0 ==> HDA_BCLK */ |  | ||||||
| 	PAD_CFG_NF(GPP_R0, NONE, DEEP, NF1), |  | ||||||
| 	/* R1 : GPP_R1 ==> HDA_SYNC */ |  | ||||||
| 	PAD_CFG_NF(GPP_R1, NONE, DEEP, NF1), |  | ||||||
| 	/* R2 : GPP_R2 ==> HDA_SDO (PIN STRAP, Flash Descriptor Security Override */ |  | ||||||
| 	PAD_CFG_NF(GPP_R2, NONE, DEEP, NF1), |  | ||||||
| 	/* R3 : GPP_R3 ==> HDA_SDIO */ |  | ||||||
| 	PAD_CFG_NF(GPP_R3, NONE, DEEP, NF1), |  | ||||||
| 	/* R4 : GPP_R4 ==> HDA_RST# */ |  | ||||||
| 	PAD_CFG_NF(GPP_R4, NONE, DEEP, NF1), |  | ||||||
| 	/* R5 : GPP_R5 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_R5, NONE), |  | ||||||
| 	/* R6 : GPP_R6 ==> SD_PWR_EN1 */ |  | ||||||
| 	PAD_CFG_GPO(GPP_R6, 0, PLTRST), |  | ||||||
| 	/* R7 : GPP_R7 ==> SD_PWR_EN2 */ |  | ||||||
| 	PAD_CFG_GPO(GPP_R7, 0, PLTRST), |  | ||||||
|  |  | ||||||
| 	/* S0 : GPP_S0 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_S0, NONE), |  | ||||||
| 	/* S1 : GPP_S1 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_S1, NONE), |  | ||||||
| 	/* S2 : GPP_S2 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_S2, NONE), |  | ||||||
| 	/* S3 : GPP_S3 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_S3, NONE), |  | ||||||
| 	/* S4 : GPP_S4 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_S4, NONE), |  | ||||||
| 	/* S5 : GPP_S5 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_S5, NONE), |  | ||||||
| 	/* S6 : GPP_S6 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_S6, NONE), |  | ||||||
| 	/* S7 : GPP_S7 ==> NC */ |  | ||||||
| 	PAD_NC(GPP_S7, NONE), |  | ||||||
|  |  | ||||||
| 	/* GPD0: GPD0 ==> PCH_BATLOW# */ |  | ||||||
| 	PAD_CFG_NF(GPD0, NONE, DEEP, NF1), |  | ||||||
| 	/* GPD1: GPD1 ==> AC_PRESENT */ |  | ||||||
| 	PAD_CFG_NF(GPD1, NONE, DEEP, NF1), |  | ||||||
| 	/* GPD2: GPD2 ==> LAN_WAKE# */ |  | ||||||
| 	PAD_CFG_NF(GPD2, NONE, DEEP, NF1), |  | ||||||
| 	/* GPD3: GPD3 ==> SIO_PWRBTN# */ |  | ||||||
| 	PAD_CFG_NF(GPD3, UP_20K, DEEP, NF1), |  | ||||||
| 	/* GPD4: GPD4 ==> SIO_SLP_S3# */ |  | ||||||
| 	PAD_CFG_NF(GPD4, NONE, DEEP, NF1), |  | ||||||
| 	/* GPD5: GPD5 ==> SIO_SLP_S4# */ |  | ||||||
| 	PAD_CFG_NF(GPD5, NONE, DEEP, NF1), |  | ||||||
| 	/* GPD6: GPD6 ==> SIO_SLP_A# */ |  | ||||||
| 	PAD_CFG_NF(GPD6, NONE, DEEP, NF1), |  | ||||||
| 	/* GPD7: GPD7 ==> PCH_TBT_PERST# (PIN STRAP, Reserved) */ |  | ||||||
| 	PAD_CFG_GPO(GPD7, 0, PLTRST), |  | ||||||
| 	/* GPD8: GPD8 ==> SUSCLK */ |  | ||||||
| 	PAD_CFG_NF(GPD8, NONE, DEEP, NF1), |  | ||||||
| 	/* GPD9: GPD9 ==> SIO_SLP_WLAN# */ |  | ||||||
| 	PAD_CFG_NF(GPD9, NONE, DEEP, NF1), |  | ||||||
| 	/* GPD10: GPD10 ==> SIO_SLP_S5# */ |  | ||||||
| 	PAD_CFG_NF(GPD10, NONE, DEEP, NF1), |  | ||||||
| 	/* GPD11: GPD11 ==> PM_LANPHY_EN */ |  | ||||||
| 	PAD_CFG_NF(GPD11, NONE, DEEP, NF1), |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| const struct pad_config *__weak variant_base_gpio_table(size_t *num) |  | ||||||
| { |  | ||||||
| 	*num = ARRAY_SIZE(gpio_table); |  | ||||||
| 	return gpio_table; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static const struct cros_gpio cros_gpios[] = { |  | ||||||
| 	CROS_GPIO_REC_AL(GPIO_REC_MODE, CROS_GPIO_DEVICE_NAME), |  | ||||||
| 	CROS_GPIO_WP_AH(GPIO_PCH_WP, CROS_GPIO_DEVICE_NAME), |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| DECLARE_WEAK_CROS_GPIOS(cros_gpios); |  | ||||||
|  |  | ||||||
| /* Weak implementation of overrides */ |  | ||||||
| const struct pad_config *__weak variant_override_gpio_table(size_t *num) |  | ||||||
| { |  | ||||||
| 	*num = 0; |  | ||||||
| 	return NULL; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* Weak implementation of early gpio */ |  | ||||||
| const struct pad_config *__weak variant_early_gpio_table(size_t *num) |  | ||||||
| { |  | ||||||
| 	*num = 0; |  | ||||||
| 	return NULL; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| int __weak has_360_sensor_board(void) |  | ||||||
| { |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #ifndef __MAINBOARD_EC_H__ |  | ||||||
| #define __MAINBOARD_EC_H__ |  | ||||||
|  |  | ||||||
| /* Enable PS/2 keyboard */ |  | ||||||
| #define SIO_EC_ENABLE_PS2K |  | ||||||
|  |  | ||||||
| #endif /* __MAINBOARD_EC_H__ */ |  | ||||||
| @@ -1,32 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #ifndef VARIANT_GPIO_H |  | ||||||
| #define VARIANT_GPIO_H |  | ||||||
|  |  | ||||||
| #include <soc/gpe.h> |  | ||||||
| #include <soc/gpio.h> |  | ||||||
|  |  | ||||||
| /* Flash Write Protect */ |  | ||||||
| #define GPIO_PCH_WP		GPP_C22 |  | ||||||
|  |  | ||||||
| /* Recovery mode */ |  | ||||||
| #define GPIO_REC_MODE		GPP_A23 |  | ||||||
|  |  | ||||||
| /* DDR channel enable pin */ |  | ||||||
| #define DDR_CHA_EN		GPP_H4 |  | ||||||
| #define DDR_CHB_EN		GPP_H5 |  | ||||||
|  |  | ||||||
| /* Memory configuration board straps */ |  | ||||||
| #define GPIO_MEM_CONFIG_0	GPP_F11 |  | ||||||
| #define GPIO_MEM_CONFIG_1	GPP_F12 |  | ||||||
| #define GPIO_MEM_CONFIG_2	GPP_F13 |  | ||||||
| #define GPIO_MEM_CONFIG_3	GPP_F14 |  | ||||||
| #define GPIO_MEM_CONFIG_4	GPP_F15 |  | ||||||
|  |  | ||||||
| /* DQ Memory Interleaved */ |  | ||||||
| #define MEMORY_INTERLEAVED	GPP_E3 |  | ||||||
|  |  | ||||||
| const struct pad_config *override_gpio_table(size_t *num); |  | ||||||
| const struct pad_config *override_early_gpio_table(size_t *num); |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| @@ -1,196 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-only */ |  | ||||||
|  |  | ||||||
| #ifndef MAINBOARD_HDA_VERB_H |  | ||||||
| #define MAINBOARD_HDA_VERB_H |  | ||||||
|  |  | ||||||
| #include <device/azalia_device.h> |  | ||||||
|  |  | ||||||
| const u32 cim_verb_data[] = { |  | ||||||
| 	/* coreboot specific header */ |  | ||||||
| 	0x10ec0236,	// Codec Vendor / Device ID: Realtek ALC3204 |  | ||||||
| 	0xffffffff,	// Subsystem ID |  | ||||||
| 	0x0000002b,	// Number of jacks (NID entries) |  | ||||||
| 	/* Rest Codec First */ |  | ||||||
| 	AZALIA_RESET(0x1), |  | ||||||
| 	/* HDA Codec Subsystem ID Verb-table |  | ||||||
| 	   HDA Codec Subsystem ID  : 0x10280A20 */ |  | ||||||
| 	0x00172020, |  | ||||||
| 	0x0017210A, |  | ||||||
| 	0x00172228, |  | ||||||
| 	0x00172310, |  | ||||||
| 	/* Pin Widget Verb-table */ |  | ||||||
| 	/* Widget node   0x01 : Widget Reset */ |  | ||||||
| 	0x0017FF00, |  | ||||||
| 	0x0017FF00, |  | ||||||
| 	0x0017FF00, |  | ||||||
| 	0x0017FF00, |  | ||||||
| 	/* Pin widget 0x12 - DMIC1-2 */ |  | ||||||
| 	0x01271C40, |  | ||||||
| 	0x01271D01, |  | ||||||
| 	0x01271EA6, |  | ||||||
| 	0x01271F90, |  | ||||||
| 	/* Pin widget 0x13 - DMIC3-4 */ |  | ||||||
| 	0x01371C00, |  | ||||||
| 	0x01371D00, |  | ||||||
| 	0x01371E00, |  | ||||||
| 	0x01371F40, |  | ||||||
| 	/* Pin widget 0x14 - FRONT (Port-D) */ |  | ||||||
| 	0x01471C10, |  | ||||||
| 	0x01471D01, |  | ||||||
| 	0x01471E17, |  | ||||||
| 	0x01471F90, |  | ||||||
| 	/* Pin widget 0x18 - MIC1 */ |  | ||||||
| 	0x01871CF0, |  | ||||||
| 	0x01871D11, |  | ||||||
| 	0x01871E11, |  | ||||||
| 	0x01871F41, |  | ||||||
| 	/* Pin widget 0x19 - MIC2 (Port-F) */ |  | ||||||
| 	0x01971C30, |  | ||||||
| 	0x01971D10, |  | ||||||
| 	0x01971Ea1, |  | ||||||
| 	0x01971F02, |  | ||||||
| 	/* Pin widget 0x1A - LINE1 (Port-C) */ |  | ||||||
| 	0x01A71CF0, |  | ||||||
| 	0x01A71D11, |  | ||||||
| 	0x01A71E11, |  | ||||||
| 	0x01A71F41, |  | ||||||
| 	/* Pin widget 0x1B - LINE2 (Port-E) */ |  | ||||||
| 	0x01B71CF0, |  | ||||||
| 	0x01B71D11, |  | ||||||
| 	0x01B71E11, |  | ||||||
| 	0x01B71F41, |  | ||||||
| 	/* Pin widget 0x1D - BEEP-IN */ |  | ||||||
| 	0x01D71C01, |  | ||||||
| 	0x01D71D00, |  | ||||||
| 	0x01D71E70, |  | ||||||
| 	0x01D71F40, |  | ||||||
| 	/* Pin widget 0x1E - S/PDIF-OUT1 (Define special SKU for driver) */ |  | ||||||
| 	0x01E71CF2, |  | ||||||
| 	0x01E71D12, |  | ||||||
| 	0x01E71E12, |  | ||||||
| 	0x01E71F42, |  | ||||||
| 	/* Pin widget 0x21 - HP-OUT (Port-I) */ |  | ||||||
| 	0x02171C20, |  | ||||||
| 	0x02171D10, |  | ||||||
| 	0x02171E21, |  | ||||||
| 	0x02171F02, |  | ||||||
|  |  | ||||||
| 	/* RESET to D0 */ |  | ||||||
| 	0x00170500, |  | ||||||
| 	0x00170500, |  | ||||||
| 	0x00170500, |  | ||||||
| 	0x00170500, |  | ||||||
| 	/* RESET Register */ |  | ||||||
| 	0x0205001A, |  | ||||||
| 	0x02048003, |  | ||||||
| 	0x0205001A, |  | ||||||
| 	0x0204C003, |  | ||||||
| 	/* ALC3204 default-1(Class D RESET) */ |  | ||||||
| 	0x0205003C, |  | ||||||
| 	0x02040354, |  | ||||||
| 	0x0205003C, |  | ||||||
| 	0x02040314, |  | ||||||
| 	/* ALC3204 default-2 */ |  | ||||||
| 	0x02050040, |  | ||||||
| 	0x02049800, |  | ||||||
| 	0x02050034, |  | ||||||
| 	0x0204023C, |  | ||||||
| 	/* ALC3204 Speaker output power - 4 ohm 2W (+12dB gain) |  | ||||||
| 	   + Combo Jack TRS setting */ |  | ||||||
| 	0x02050038, |  | ||||||
| 	0x02043901, |  | ||||||
| 	0x02050045, |  | ||||||
| 	0x02045089, |  | ||||||
| 	/* H/W AGC setting-1 */ |  | ||||||
| 	0x02050016, |  | ||||||
| 	0x02040C50, |  | ||||||
| 	0x02050012, |  | ||||||
| 	0x0204EBC2, |  | ||||||
| 	/* H/W AGC setting-2 */ |  | ||||||
| 	0x02050013, |  | ||||||
| 	0x0204401D, |  | ||||||
| 	0x02050016, |  | ||||||
| 	0x02044E50, |  | ||||||
| 	/* Zero data  + EAPD to verb-control */ |  | ||||||
| 	0x02050037, |  | ||||||
| 	0x0204FE15, |  | ||||||
| 	0x02050010, |  | ||||||
| 	0x02040020, |  | ||||||
| 	/* Zero data */ |  | ||||||
| 	0x02050030, |  | ||||||
| 	0x02048000, |  | ||||||
| 	0x02050030, |  | ||||||
| 	0x02048000, |  | ||||||
| 	/* ALC3204 default-3 */ |  | ||||||
| 	0x05750003, |  | ||||||
| 	0x05740DA3, |  | ||||||
| 	0x02050046, |  | ||||||
| 	0x02040004, |  | ||||||
| 	/* ALC3204 default-4 */ |  | ||||||
| 	0x0205001B, |  | ||||||
| 	0x02040A4B, |  | ||||||
| 	0x02050008, |  | ||||||
| 	0x02046A6C, |  | ||||||
| 	/* JD1 */ |  | ||||||
| 	0x02050009, |  | ||||||
| 	0x0204E003, |  | ||||||
| 	0x0205000A, |  | ||||||
| 	0x02047770, |  | ||||||
| 	/* Microphone + Array MIC  security Disable  +ADC clock Enable */ |  | ||||||
| 	0x0205000D, |  | ||||||
| 	0x0204A020, |  | ||||||
| 	0x02050005, |  | ||||||
| 	0x02040700, |  | ||||||
| 	/* Speaker Enable */ |  | ||||||
| 	0x0205000C, |  | ||||||
| 	0x020401EF, |  | ||||||
| 	0x0205000C, |  | ||||||
| 	0x020401EF, |  | ||||||
| 	/* EQ Bypass + EQ HPF cutoff 250Hz */ |  | ||||||
| 	0x05350000, |  | ||||||
| 	0x0534201A, |  | ||||||
| 	0x0535001d, |  | ||||||
| 	0x05340800, |  | ||||||
| 	/* EQ-2 */ |  | ||||||
| 	0x0535001e, |  | ||||||
| 	0x05340800, |  | ||||||
| 	0x05350003, |  | ||||||
| 	0x05341EF8, |  | ||||||
| 	/* EQ-3 */ |  | ||||||
| 	0x05350004, |  | ||||||
| 	0x05340000, |  | ||||||
| 	0x05450000, |  | ||||||
| 	0x05442000, |  | ||||||
| 	/* EQ-4 */ |  | ||||||
| 	0x0545001d, |  | ||||||
| 	0x05440800, |  | ||||||
| 	0x0545001e, |  | ||||||
| 	0x05440800, |  | ||||||
| 	/* EQ-5 */ |  | ||||||
| 	0x05450003, |  | ||||||
| 	0x05441EF8, |  | ||||||
| 	0x05450004, |  | ||||||
| 	0x05440000, |  | ||||||
| 	/* EQ Update */ |  | ||||||
| 	0x05350000, |  | ||||||
| 	0x0534E01A, |  | ||||||
| 	0x05350000, |  | ||||||
| 	0x0534E01A, |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| const u32 pc_beep_verbs[] = { |  | ||||||
| 	/* PCBeep pass through to NID14 for ePSA test-1 */ |  | ||||||
| 	0x02050036, |  | ||||||
| 	0x02047717, |  | ||||||
| 	0x02050036, |  | ||||||
| 	0x02047717, |  | ||||||
| 	/* PCBeep pass through to NID14 for ePSA test-2 */ |  | ||||||
| 	0x01470740, |  | ||||||
| 	0x0143B000, |  | ||||||
| 	0x01470C02, |  | ||||||
| 	0x01470C02, |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| AZALIA_ARRAY_SIZES; |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| @@ -1,30 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #ifndef __BASEBOARD_VARIANTS_H__ |  | ||||||
| #define __BASEBOARD_VARIANTS_H__ |  | ||||||
|  |  | ||||||
| #include <soc/gpio.h> |  | ||||||
| #include <soc/meminit.h> |  | ||||||
| #include <stddef.h> |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * The next set of functions return the gpio table and fill in the number of |  | ||||||
|  * entries for each table. |  | ||||||
|  */ |  | ||||||
| const struct pad_config *variant_base_gpio_table(size_t *num); |  | ||||||
| const struct pad_config *variant_early_gpio_table(size_t *num); |  | ||||||
| const struct pad_config *variant_override_gpio_table(size_t *num); |  | ||||||
|  |  | ||||||
| const struct mb_cfg *variant_memory_params(void); |  | ||||||
| void variant_memory_init(FSPM_UPD *mupd); |  | ||||||
|  |  | ||||||
| /* SKU ID structure */ |  | ||||||
| typedef struct { |  | ||||||
| 	int id; |  | ||||||
| 	const char *name; |  | ||||||
| } sku_info; |  | ||||||
|  |  | ||||||
| /* Check if the device has a 360 sensor board present */ |  | ||||||
| int has_360_sensor_board(void); |  | ||||||
|  |  | ||||||
| #endif /* __BASEBOARD_VARIANTS_H__ */ |  | ||||||
| @@ -1,22 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #include <baseboard/variants.h> |  | ||||||
| #include <boardid.h> |  | ||||||
| #include <ec/google/wilco/commands.h> |  | ||||||
| #include <smbios.h> |  | ||||||
| #include <variant/variant.h> |  | ||||||
|  |  | ||||||
| static uint32_t get_sku_index(void) |  | ||||||
| { |  | ||||||
| 	return ((!has_360_sensor_board()) | (wilco_ec_signed_fw() << 1)); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| uint32_t sku_id(void) |  | ||||||
| { |  | ||||||
| 	return skus[get_sku_index()].id; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| const char *smbios_system_sku(void) |  | ||||||
| { |  | ||||||
| 	return skus[get_sku_index()].name; |  | ||||||
| } |  | ||||||
| @@ -1,5 +0,0 @@ | |||||||
| ## SPDX-License-Identifier: GPL-2.0-or-later |  | ||||||
|  |  | ||||||
| bootblock-y += gpio.c |  | ||||||
| ramstage-y += gpio.c |  | ||||||
| romstage-y += memory.c |  | ||||||
| @@ -1,60 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #include <baseboard/gpio.h> |  | ||||||
| #include <baseboard/variants.h> |  | ||||||
| #include <commonlib/helpers.h> |  | ||||||
|  |  | ||||||
| /* Pad configuration in ramstage */ |  | ||||||
| static const struct pad_config gpio_table[] = { |  | ||||||
|  |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| const struct pad_config *variant_override_gpio_table(size_t *num) |  | ||||||
| { |  | ||||||
| 	*num = ARRAY_SIZE(gpio_table); |  | ||||||
| 	return gpio_table; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* Early pad configuration in bootblock */ |  | ||||||
| static const struct pad_config early_gpio_table[] = { |  | ||||||
| 	/* A23 : GPP_A23 ==> RECOVERY# */ |  | ||||||
| 	PAD_CFG_GPI(GPP_A23, NONE, DEEP), |  | ||||||
| 	/* C20 : GPP_C20 ==> PCHRX_SERVOTX_UART */ |  | ||||||
| 	PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1), |  | ||||||
| 	/* C21 : CPP_G21 ==> PCHTX_SERVORX_UART */ |  | ||||||
| 	PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), |  | ||||||
| 	/* C22 : GPP_C22 ==> H1_FLASH_WP */ |  | ||||||
| 	PAD_CFG_GPI(GPP_C22, NONE, DEEP), |  | ||||||
| 	/* C23 : GPP_C23 ==> H1_PCH_INT# */ |  | ||||||
| 	PAD_CFG_GPI_APIC(GPP_C23, NONE, DEEP, LEVEL, INVERT), |  | ||||||
| 	/* E3  : GPP_E3 ==> MEM_INTERLEAVED */ |  | ||||||
| 	PAD_CFG_GPI(GPP_E3, NONE, PLTRST), |  | ||||||
| 	/* F11 : GPP_F11 ==> MEM_CONFIG0_1P8 */ |  | ||||||
| 	PAD_CFG_GPI(GPP_F11, NONE, DEEP), |  | ||||||
| 	/* F12 : GPP_F12 ==> MEM_CONFIG1_1P8 */ |  | ||||||
| 	PAD_CFG_GPI(GPP_F12, NONE, DEEP), |  | ||||||
| 	/* F13 : GPP_F13 ==> MEM_CONFIG2_1P8 */ |  | ||||||
| 	PAD_CFG_GPI(GPP_F13, NONE, DEEP), |  | ||||||
| 	/* F14 : GPP_F14 ==> MEM_CONFIG3_1P8 */ |  | ||||||
| 	PAD_CFG_GPI(GPP_F14, NONE, DEEP), |  | ||||||
| 	/* F15 : GPP_F15 ==> MEM_CONFIG4_1P8 */ |  | ||||||
| 	PAD_CFG_GPI(GPP_F15, NONE, DEEP), |  | ||||||
| 	/* F16 : GPP_F16 ==> WWAN_BB_RST#_1P8 */ |  | ||||||
| 	PAD_CFG_GPO(GPP_F16, 0, DEEP), |  | ||||||
| 	/* H4  : GPP_H4 ==> DDR_CHA_EN_1P8 */ |  | ||||||
| 	PAD_CFG_GPI(GPP_H4, NONE, DEEP), |  | ||||||
| 	/* H5  : GPP_H5 ==> DDR_CHB_EN_1P8 */ |  | ||||||
| 	PAD_CFG_GPI(GPP_H5, NONE, DEEP), |  | ||||||
| 	/* H6  : GPP_H6 ==> I2C_SDA_PCH_H1 */ |  | ||||||
| 	PAD_CFG_NF(GPP_H6, NONE, DEEP, NF1), |  | ||||||
| 	/* H7  : GPP_H7 ==> I2C_SCL_PCH_H1 */ |  | ||||||
| 	PAD_CFG_NF(GPP_H7, NONE, DEEP, NF1), |  | ||||||
| 	/* GPD3: GPD3 ==> SIO_PWRBTN# */ |  | ||||||
| 	PAD_CFG_NF(GPD3, UP_20K, DEEP, NF1), |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| const struct pad_config *variant_early_gpio_table(size_t *num) |  | ||||||
| { |  | ||||||
| 	*num = ARRAY_SIZE(early_gpio_table); |  | ||||||
| 	return early_gpio_table; |  | ||||||
| } |  | ||||||
| @@ -1,11 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #ifndef __VARIANT_EC_H__ |  | ||||||
| #define __VARIANT_EC_H__ |  | ||||||
|  |  | ||||||
| #include <baseboard/ec.h> |  | ||||||
|  |  | ||||||
| /* eSPI virtual wire reporting */ |  | ||||||
| #define EC_SCI_GPI              GPE0_ESPI |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| @@ -1,10 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #ifndef VARIANT_GPIO_H |  | ||||||
| #define VARIANT_GPIO_H |  | ||||||
|  |  | ||||||
| #include <baseboard/gpio.h> |  | ||||||
|  |  | ||||||
| /* Copied from baseboard and may need to change for the new variant. */ |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| @@ -1,21 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #ifndef VARIANT_H |  | ||||||
| #define VARIANT_H |  | ||||||
|  |  | ||||||
| #include <baseboard/variants.h> |  | ||||||
| #include <gpio.h> |  | ||||||
| #include <variant/gpio.h> |  | ||||||
|  |  | ||||||
| const static sku_info skus[] = { |  | ||||||
| 	/* Deltan 360 - invalid configuration */ |  | ||||||
| 	{ .id = -1, .name = "sku_invalid" }, |  | ||||||
| 	/* Deltan */ |  | ||||||
| 	{ .id = 1, .name = "sku1" }, |  | ||||||
| 	/* Deltan 360 signed - invalid configuration */ |  | ||||||
| 	{ .id = -1, .name = "sku_invalid" }, |  | ||||||
| 	/* Deltan signed */ |  | ||||||
| 	{ .id = 2, .name = "sku2" }, |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| @@ -1,81 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #include <baseboard/gpio.h> |  | ||||||
| #include <baseboard/variants.h> |  | ||||||
| #include <gpio.h> |  | ||||||
| #include <soc/romstage.h> |  | ||||||
| #include <string.h> |  | ||||||
|  |  | ||||||
| static const struct mb_cfg baseboard_memcfg = { |  | ||||||
| 	.type = MEM_TYPE_DDR4, |  | ||||||
|  |  | ||||||
| 	/* DQ byte map */ |  | ||||||
| 	.ddr4_dq_map = { |  | ||||||
| 		.ddr0 = { |  | ||||||
| 			.dq0 = { 10, 15, 11, 14, 13,  8, 12,  9, },	/* Byte 0 */ |  | ||||||
| 			.dq1 = {  3,  5,  1,  0,  4,  7,  2,  6, },	/* Byte 1 */ |  | ||||||
| 			.dq2 = { 15,  8, 11, 13, 10, 12, 14,  9, },	/* Byte 2 */ |  | ||||||
| 			.dq3 = {  1,  6,  2,  4,  7,  5,  3,  0, },	/* Byte 3 */ |  | ||||||
| 			.dq4 = {  7,  2,  6,  3,  4,  0,  5,  1, },	/* Byte 4 */ |  | ||||||
| 			.dq5 = { 14, 10, 15, 11,  9, 13,  8, 12, },	/* Byte 5 */ |  | ||||||
| 			.dq6 = {  8, 10, 14, 12,  9, 13, 11, 15, },	/* Byte 6 */ |  | ||||||
| 			.dq7 = {  2,  7,  4,  5,  1,  3,  0,  6  },	/* Byte 7 */ |  | ||||||
| 		}, |  | ||||||
|  |  | ||||||
| 		.ddr1 = { |  | ||||||
| 			.dq0 = { 12, 14, 10, 11, 15, 13,  9,  8, },	/* Byte 0 */ |  | ||||||
| 			.dq1 = {  0,  6,  2,  7,  3,  5,  1,  4, },	/* Byte 1 */ |  | ||||||
| 			.dq2 = { 10,  9, 14, 12, 11,  8, 15, 13, },	/* Byte 2 */ |  | ||||||
| 			.dq3 = {  7,  3,  1,  4,  6,  2,  0,  5, },	/* Byte 3 */ |  | ||||||
| 			.dq4 = { 10,  9, 13, 12,  8, 14, 11, 15, },	/* Byte 4 */ |  | ||||||
| 			.dq5 = {  5,  4,  0,  2,  7,  3,  6,  1, },	/* Byte 5 */ |  | ||||||
| 			.dq6 = { 15,  9, 11, 13, 10, 14,  8, 12, },	/* Byte 6 */ |  | ||||||
| 			.dq7 = {  7,  3,  0,  4,  2,  5,  1,  6  },	/* Byte 7 */ |  | ||||||
| 		}, |  | ||||||
| 	}, |  | ||||||
|  |  | ||||||
| 	/* DQS CPU<>DRAM map */ |  | ||||||
| 	.ddr4_dqs_map = { |  | ||||||
| 		.ddr0 = { |  | ||||||
| 			.dqs0 = 1, |  | ||||||
| 			.dqs1 = 0, |  | ||||||
| 			.dqs2 = 1, |  | ||||||
| 			.dqs3 = 0, |  | ||||||
| 			.dqs4 = 0, |  | ||||||
| 			.dqs5 = 1, |  | ||||||
| 			.dqs6 = 1, |  | ||||||
| 			.dqs7 = 0, |  | ||||||
| 		}, |  | ||||||
| 		.ddr1 = { |  | ||||||
| 			.dqs0 = 1, |  | ||||||
| 			.dqs1 = 0, |  | ||||||
| 			.dqs2 = 1, |  | ||||||
| 			.dqs3 = 0, |  | ||||||
| 			.dqs4 = 1, |  | ||||||
| 			.dqs5 = 0, |  | ||||||
| 			.dqs6 = 1, |  | ||||||
| 			.dqs7 = 0, |  | ||||||
| 		} |  | ||||||
| 	}, |  | ||||||
|  |  | ||||||
| 	.ect = false, /* Disable Early Command Training */ |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| void variant_memory_init(FSPM_UPD *mupd) |  | ||||||
| { |  | ||||||
| 	const struct mem_spd spd_info = { |  | ||||||
| 		.topo = MEM_TOPO_DIMM_MODULE, |  | ||||||
| 		.smbus = { |  | ||||||
| 			[0] = { .addr_dimm[0] = 0x50, }, |  | ||||||
| 			[1] = { .addr_dimm[0] = 0x52, }, |  | ||||||
| 		}, |  | ||||||
| 	}; |  | ||||||
| 	const bool half_populated = false; |  | ||||||
| 	struct mb_cfg new_board_cfg_ddr4; |  | ||||||
|  |  | ||||||
| 	memcpy(&new_board_cfg_ddr4, &baseboard_memcfg, sizeof(baseboard_memcfg)); |  | ||||||
|  |  | ||||||
| 	new_board_cfg_ddr4.ddr4_config.dq_pins_interleaved = gpio_get(MEMORY_INTERLEAVED); |  | ||||||
|  |  | ||||||
| 	memcfg_init(mupd, &new_board_cfg_ddr4, &spd_info, half_populated); |  | ||||||
| } |  | ||||||
| @@ -1,42 +0,0 @@ | |||||||
| chip soc/intel/tigerlake |  | ||||||
|  |  | ||||||
| 	# PCIe Port 8 for LAN |  | ||||||
| 	register "PcieRpEnable[7]" = "1" |  | ||||||
| 	register "PcieClkSrcUsage[3]" = "PCIE_CLK_LAN" |  | ||||||
| 	register "PcieClkSrcClkReq[3]" = "3" |  | ||||||
|  |  | ||||||
| 	device domain 0 on |  | ||||||
| 		device pci 1f.6 on end # GbE			0x15FC |  | ||||||
| 		device pci 15.0 on |  | ||||||
| 			chip drivers/i2c/generic |  | ||||||
| 				register "hid" = ""MLFS0000"" |  | ||||||
| 				register "desc" = ""Melfas Touchscreen"" |  | ||||||
| 				register "irq" = "ACPI_IRQ_EDGE_LOW(GPP_E1_IRQ)" |  | ||||||
| 				register "probed" = "1" |  | ||||||
| 				register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_A10)" |  | ||||||
| 				register "reset_delay_ms" = "10" |  | ||||||
| 				register "reset_off_delay_ms" = "5" |  | ||||||
| 				register "stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_B3)" |  | ||||||
| 				register "stop_delay_ms" = "10" |  | ||||||
| 				register "enable_gpio" = |  | ||||||
| 							"ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B21)" |  | ||||||
| 				register "enable_delay_ms" = "55" |  | ||||||
| 				register "has_power_resource" = "1" |  | ||||||
| 				register "device_present_gpio" = "GPP_B4" |  | ||||||
| 				register "device_present_gpio_invert" = "1" |  | ||||||
| 				device i2c 34 on end |  | ||||||
| 			end |  | ||||||
| 		end # I2C #0 |  | ||||||
| 		device pci 15.1 on |  | ||||||
| 			chip drivers/i2c/hid |  | ||||||
| 				register "generic.hid" = ""PNP0C50"" |  | ||||||
| 				register "generic.desc" = ""Cirque Touchpad"" |  | ||||||
| 				register "generic.irq" = "ACPI_IRQ_WAKE_LEVEL_LOW(GPP_E7_IRQ)" |  | ||||||
| 				register "generic.probed" = "1" |  | ||||||
| 				register "generic.wake" = "GPE0_DW1_07" |  | ||||||
| 				register "hid_desc_reg_offset" = "0x20" |  | ||||||
| 				device i2c 2c on end |  | ||||||
| 			end |  | ||||||
| 		end # I2C #1 |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
| @@ -1,5 +0,0 @@ | |||||||
| ## SPDX-License-Identifier: GPL-2.0-or-later |  | ||||||
|  |  | ||||||
| bootblock-y += gpio.c |  | ||||||
| ramstage-y += gpio.c |  | ||||||
| romstage-y += memory.c |  | ||||||
| @@ -1,35 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #include <baseboard/gpio.h> |  | ||||||
| #include <baseboard/variants.h> |  | ||||||
| #include <commonlib/helpers.h> |  | ||||||
| #include <gpio.h> |  | ||||||
| #include <variant/variant.h> |  | ||||||
|  |  | ||||||
| /* Pad configuration in ramstage */ |  | ||||||
| static const struct pad_config gpio_table[] = { |  | ||||||
|  |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| const struct pad_config *variant_override_gpio_table(size_t *num) |  | ||||||
| { |  | ||||||
| 	*num = ARRAY_SIZE(gpio_table); |  | ||||||
| 	return gpio_table; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* Early pad configuration in bootblock */ |  | ||||||
| static const struct pad_config early_gpio_table[] = { |  | ||||||
|  |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| const struct pad_config *variant_early_gpio_table(size_t *num) |  | ||||||
| { |  | ||||||
| 	*num = ARRAY_SIZE(early_gpio_table); |  | ||||||
| 	return early_gpio_table; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /* Check if the device has a 360 sensor board present */ |  | ||||||
| int has_360_sensor_board(void) |  | ||||||
| { |  | ||||||
| 	return gpio_get(SENSOR_DET_360) == 0; |  | ||||||
| } |  | ||||||
| @@ -1,11 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #ifndef __VARIANT_EC_H__ |  | ||||||
| #define __VARIANT_EC_H__ |  | ||||||
|  |  | ||||||
| #include <baseboard/ec.h> |  | ||||||
|  |  | ||||||
| /* eSPI virtual wire reporting */ |  | ||||||
| #define EC_SCI_GPI              GPE0_ESPI |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| @@ -1,10 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #ifndef VARIANT_GPIO_H |  | ||||||
| #define VARIANT_GPIO_H |  | ||||||
|  |  | ||||||
| #include <baseboard/gpio.h> |  | ||||||
|  |  | ||||||
| /* Copied from baseboard and may need to change for the new variant. */ |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| @@ -1,22 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #ifndef VARIANT_H |  | ||||||
| #define VARIANT_H |  | ||||||
|  |  | ||||||
| #include <baseboard/variants.h> |  | ||||||
|  |  | ||||||
| /* TODO b/153027724: Sensor detection pin */ |  | ||||||
| #define SENSOR_DET_360          GPP_C10 |  | ||||||
|  |  | ||||||
| const static sku_info skus[] = { |  | ||||||
| 	/* Deltaur 360 */ |  | ||||||
| 	{ .id = 1, .name = "sku1" }, |  | ||||||
| 	/* Deltaur */ |  | ||||||
| 	{ .id = 2, .name = "sku2" }, |  | ||||||
| 	/* Deltaur 360 signed */ |  | ||||||
| 	{ .id = 3, .name = "sku3" }, |  | ||||||
| 	/* Deltaur signed */ |  | ||||||
| 	{ .id = 4, .name = "sku4" }, |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| @@ -1,89 +0,0 @@ | |||||||
| /* SPDX-License-Identifier: GPL-2.0-or-later */ |  | ||||||
|  |  | ||||||
| #include <baseboard/gpio.h> |  | ||||||
| #include <baseboard/variants.h> |  | ||||||
| #include <gpio.h> |  | ||||||
| #include <variant/gpio.h> |  | ||||||
|  |  | ||||||
| static const struct mb_cfg baseboard_memcfg = { |  | ||||||
| 	.type = MEM_TYPE_LP4X, |  | ||||||
|  |  | ||||||
| 	/* DQ byte map */ |  | ||||||
| 	.lp4x_dq_map = { |  | ||||||
| 		.ddr0 = { |  | ||||||
| 			.dq0 = { 8,  9, 12,  11, 13, 15,  10, 14, }, /* DDR0_DQ0[7:0] */ |  | ||||||
| 			.dq1 = { 4,  6,  0,   2,  5,  7,   1,  3, }, /* DDR0_DQ1[7:0] */ |  | ||||||
| 		}, |  | ||||||
| 		.ddr1 = { |  | ||||||
| 			.dq0 = {  2,  3,  0,   6,  1,  7,   5,  4, },  /* DDR1_DQ0[7:0] */ |  | ||||||
| 			.dq1 = { 15, 14, 13,   8, 12, 11,   9, 10, },  /* DDR1_DQ1[7:0] */ |  | ||||||
| 		}, |  | ||||||
| 		.ddr2 = { |  | ||||||
| 			.dq0 = {  1,  0,  3,   2,  5,  4,   7,  6, }, /* DDR2_DQ0[7:0] */ |  | ||||||
| 			.dq1 = { 14, 15, 12,  13,  8, 10,   9, 11, }, /* DDR2_DQ1[7:0] */ |  | ||||||
| 		}, |  | ||||||
| 		.ddr3 = { |  | ||||||
| 			.dq0 = {  8, 10, 11,   9, 15, 12,  14, 13, }, /* DDR3_DQ0[7:0] */ |  | ||||||
| 			.dq1 = {  4,  7,  6,   5,  2,  0,  1,  3, },  /* DDR3_DQ1[7:0] */ |  | ||||||
| 		}, |  | ||||||
| 		.ddr4 = { |  | ||||||
| 			.dq0 = {  8,  9, 10,  11, 13, 12,  15, 14, }, /* DDR4_DQ0[7:0] */ |  | ||||||
| 			.dq1 = {  7,  6,  4,   5,  0,  2,   1,  3, }, /* DDR4_DQ1[7:0] */ |  | ||||||
| 		}, |  | ||||||
| 		.ddr5 = { |  | ||||||
| 			.dq0 = {  1,  3,  0,   2,  6,  4,   5,  7, }, /* DDR5_DQ0[7:0] */ |  | ||||||
| 			.dq1 = { 14, 15, 10,  12,  8, 13,  11,  9, }, /* DDR5_DQ1[7:0] */ |  | ||||||
| 		}, |  | ||||||
| 		.ddr6 = { |  | ||||||
| 			.dq0 = {  1,  0,  2,   4,  5,  3,   7,  6, }, /* DDR6_DQ0[7:0] */ |  | ||||||
| 			.dq1 = { 12, 14, 15,  13,  9,  10,  8, 11, }, /* DDR6_DQ1[7:0] */ |  | ||||||
| 		}, |  | ||||||
| 		.ddr7 = { |  | ||||||
| 			.dq0 = { 11,  9,  8,  13, 12,  14, 15, 10, }, /* DDR7_DQ0[7:0] */ |  | ||||||
| 			.dq1 = {  4,  7,  5,   1,  2,   6,  3,  0, }, /* DDR7_DQ1[7:0] */ |  | ||||||
| 		}, |  | ||||||
| 	}, |  | ||||||
|  |  | ||||||
| 	/* DQS CPU<>DRAM map */ |  | ||||||
| 	.lp4x_dqs_map = { |  | ||||||
| 		.ddr0 = { .dqs0 = 1, .dqs1 = 0 }, /* DDR0_DQS[1:0] */ |  | ||||||
| 		.ddr1 = { .dqs0 = 0, .dqs1 = 1 }, /* DDR1_DQS[1:0] */ |  | ||||||
| 		.ddr2 = { .dqs0 = 0, .dqs1 = 1 }, /* DDR2_DQS[1:0] */ |  | ||||||
| 		.ddr3 = { .dqs0 = 1, .dqs1 = 0 }, /* DDR3_DQS[1:0] */ |  | ||||||
| 		.ddr4 = { .dqs0 = 1, .dqs1 = 0 }, /* DDR4_DQS[1:0] */ |  | ||||||
| 		.ddr5 = { .dqs0 = 0, .dqs1 = 1 }, /* DDR5_DQS[1:0] */ |  | ||||||
| 		.ddr6 = { .dqs0 = 0, .dqs1 = 1 }, /* DDR6_DQS[1:0] */ |  | ||||||
| 		.ddr7 = { .dqs0 = 1, .dqs1 = 0 }, /* DDR7_DQS[1:0] */ |  | ||||||
| 	}, |  | ||||||
|  |  | ||||||
| 	.ect = false, /* Early Command Training */ |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| const struct mb_cfg *variant_memory_params(void) |  | ||||||
| { |  | ||||||
| 	return &baseboard_memcfg; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static int variant_memory_sku(void) |  | ||||||
| { |  | ||||||
| 	gpio_t spd_gpios[] = { |  | ||||||
| 		GPIO_MEM_CONFIG_0, |  | ||||||
| 		GPIO_MEM_CONFIG_1, |  | ||||||
| 		GPIO_MEM_CONFIG_2, |  | ||||||
| 		GPIO_MEM_CONFIG_3, |  | ||||||
| 		GPIO_MEM_CONFIG_4, |  | ||||||
| 	}; |  | ||||||
|  |  | ||||||
| 	return gpio_base2_value(spd_gpios, ARRAY_SIZE(spd_gpios)); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void variant_memory_init(FSPM_UPD *mupd) |  | ||||||
| { |  | ||||||
| 	const struct mb_cfg *board_cfg = variant_memory_params(); |  | ||||||
| 	const struct mem_spd spd_info = { |  | ||||||
| 		.topo = MEM_TOPO_MEMORY_DOWN, |  | ||||||
| 		.cbfs_index = variant_memory_sku(), |  | ||||||
| 	}; |  | ||||||
| 	const bool half_populated = false; |  | ||||||
| 	memcfg_init(mupd, board_cfg, &spd_info, half_populated); |  | ||||||
| } |  | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| chip soc/intel/tigerlake |  | ||||||
|  |  | ||||||
| 	device domain 0 on |  | ||||||
| 	end |  | ||||||
|  |  | ||||||
| end |  | ||||||
		Reference in New Issue
	
	Block a user