From 91cda2af74b4142bf459f7416b8f997c7d981e13 Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Thu, 9 Apr 2020 20:26:40 +0800 Subject: [PATCH] mainboard: add Dell Latitude E7240 Based on autoport output. It boots to Arch Linux (Linux 6.6.3) from USB and mSATA with SeaBIOS. Change-Id: I6933bdbcc8d0bbb85d62657624740266284ac71c Signed-off-by: Iru Cai Signed-off-by: Nicholas Chin Reviewed-on: https://review.coreboot.org/c/coreboot/+/79746 Tested-by: build bot (Jenkins) Reviewed-by: Felix Singer --- Documentation/mainboard/dell/e7240.md | 83 ++++++++++++++++ Documentation/mainboard/dell/e7240.webp | Bin 0 -> 99108 bytes Documentation/mainboard/index.md | 1 + src/mainboard/dell/e7240/Kconfig | 31 ++++++ src/mainboard/dell/e7240/Kconfig.name | 4 + src/mainboard/dell/e7240/Makefile.mk | 5 + src/mainboard/dell/e7240/acpi/ec.asl | 14 +++ src/mainboard/dell/e7240/acpi/platform.asl | 12 +++ src/mainboard/dell/e7240/acpi/superio.asl | 3 + src/mainboard/dell/e7240/board_info.txt | 7 ++ src/mainboard/dell/e7240/bootblock.c | 10 ++ src/mainboard/dell/e7240/devicetree.cb | 82 +++++++++++++++ src/mainboard/dell/e7240/dsdt.asl | 27 +++++ src/mainboard/dell/e7240/gma-mainboard.ads | 17 ++++ src/mainboard/dell/e7240/gpio.c | 110 +++++++++++++++++++++ src/mainboard/dell/e7240/hda_verb.c | 25 +++++ src/mainboard/dell/e7240/romstage.c | 43 ++++++++ 17 files changed, 474 insertions(+) create mode 100644 Documentation/mainboard/dell/e7240.md create mode 100644 Documentation/mainboard/dell/e7240.webp create mode 100644 src/mainboard/dell/e7240/Kconfig create mode 100644 src/mainboard/dell/e7240/Kconfig.name create mode 100644 src/mainboard/dell/e7240/Makefile.mk create mode 100644 src/mainboard/dell/e7240/acpi/ec.asl create mode 100644 src/mainboard/dell/e7240/acpi/platform.asl create mode 100644 src/mainboard/dell/e7240/acpi/superio.asl create mode 100644 src/mainboard/dell/e7240/board_info.txt create mode 100644 src/mainboard/dell/e7240/bootblock.c create mode 100644 src/mainboard/dell/e7240/devicetree.cb create mode 100644 src/mainboard/dell/e7240/dsdt.asl create mode 100644 src/mainboard/dell/e7240/gma-mainboard.ads create mode 100644 src/mainboard/dell/e7240/gpio.c create mode 100644 src/mainboard/dell/e7240/hda_verb.c create mode 100644 src/mainboard/dell/e7240/romstage.c diff --git a/Documentation/mainboard/dell/e7240.md b/Documentation/mainboard/dell/e7240.md new file mode 100644 index 0000000000..2188ee55db --- /dev/null +++ b/Documentation/mainboard/dell/e7240.md @@ -0,0 +1,83 @@ +# Dell Latitude E7240 + +This page is about the notebook [Dell Latitude E7240]. + +## Release status + +Dell Latitude E7240 was released in 2013 and is now end of life. +It can be bought from a secondhand market like Taobao or eBay. + +## Required proprietary blobs + +The following blobs are required to operate the hardware: +1. mrc.bin +2. Intel ME firmware + +Memory reference code in mrc.bin is used to initialize the Haswell platform. +You need this blob to build a working coreboot image. Please read +[mrc.bin](../../northbridge/intel/haswell/mrc.bin) for instructions on +retrieving and using it. + +Intel ME firmware is in the flash chip. It is not needed when building coreboot. +It can be extracted from the OEM firmware. You can also flash only the BIOS +region to leave Intel ME firmware untouched. + +## Programming + +The laptop can be flashed internally under OEM firmware using [dell-flash-unlock]. + +To flash with an external programmer, you need to remove the battery and the base cover. + +![Dell Latitude E7240 mainboard](e7240.webp) + +For more details have a look at the general [flashing tutorial]. + +It is also possible to flash internally under coreboot. + +## Debugging + +The board can be debugged with EHCI debug. The EHCI debug port is next to the miniDP port. + +There's a serial port on dock, but it's not yet supported in coreboot. + +Schematic of this laptop can be found online. The board name is Compal LA-9431P. + +## Test status + +### Not working + +- EC ACPI +- SD/MMC card reader (kernel reports "Timeout waiting for hardware cmd interrupt.") +- No internal display before booting to OS when connected with a dock + +### Working + +- Integrated graphics init with libgfxinit +- mSATA +- WLAN +- USB +- Keyboard +- Touchpad and the buttons on it +- Dock: all USB ports, DisplayPort, eSATA +- Internal flashing + + +## Technology + +```{eval-rst} ++------------------+-----------------------------+ +| CPU | Intel Haswell-ULT | ++------------------+-----------------------------+ +| PCH | Intel Lynx Point Low Power | ++------------------+-----------------------------+ +| EC | SMSC MEC5075 | ++------------------+-----------------------------+ +| Super I/O | SMSC ECE5048 | ++------------------+-----------------------------+ +| Coprocessor | Intel Management Engine | ++------------------+-----------------------------+ +``` + +[Dell Latitude E7240]: https://www.dell.com/support/home/en-us/product-support/product/latitude-e7240-ultrabook/docs +[dell-flash-unlock]: https://github.com/nic3-14159/dell-flash-unlock +[flashing tutorial]: ../../flash_tutorial/ext_power.md diff --git a/Documentation/mainboard/dell/e7240.webp b/Documentation/mainboard/dell/e7240.webp new file mode 100644 index 0000000000000000000000000000000000000000..96a73939dba022312d2dedc29d28c3dd01c2148a GIT binary patch literal 99108 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%0D>{3$|IichM9#GHA{?_0C+!suRmA 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

I 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 literal 0 HcmV?d00001 diff --git a/Documentation/mainboard/index.md b/Documentation/mainboard/index.md index 7559628f2e..5a80d46c14 100644 --- a/Documentation/mainboard/index.md +++ b/Documentation/mainboard/index.md @@ -76,6 +76,7 @@ N130WU / N131WU ```{toctree} :maxdepth: 1 +Latitude E7240 OptiPlex 9010 SFF ``` diff --git a/src/mainboard/dell/e7240/Kconfig b/src/mainboard/dell/e7240/Kconfig new file mode 100644 index 0000000000..4f24cf93ed --- /dev/null +++ b/src/mainboard/dell/e7240/Kconfig @@ -0,0 +1,31 @@ +## SPDX-License-Identifier: GPL-2.0-only + +if BOARD_DELL_LATITUDE_E7240 + +config BOARD_SPECIFIC_OPTIONS + def_bool y + select BOARD_ROMSIZE_KB_8192 + select EC_DELL_MEC5035 + select HAVE_ACPI_RESUME + select HAVE_ACPI_TABLES + select INTEL_LYNXPOINT_LP + select MAINBOARD_HAS_LIBGFXINIT + select MAINBOARD_USES_IFD_GBE_REGION + select NORTHBRIDGE_INTEL_HASWELL + select SERIRQ_CONTINUOUS_MODE + select SOUTHBRIDGE_INTEL_LYNXPOINT + select SYSTEM_TYPE_LAPTOP + +config MAINBOARD_DIR + default "dell/e7240" + +config MAINBOARD_PART_NUMBER + default "Latitude E7240" + +config VGA_BIOS_ID + default "8086,0a16" + +config USBDEBUG_HCD_INDEX + default 1 + +endif diff --git a/src/mainboard/dell/e7240/Kconfig.name b/src/mainboard/dell/e7240/Kconfig.name new file mode 100644 index 0000000000..499f783a10 --- /dev/null +++ b/src/mainboard/dell/e7240/Kconfig.name @@ -0,0 +1,4 @@ +## SPDX-License-Identifier: GPL-2.0-only + +config BOARD_DELL_LATITUDE_E7240 + bool "Latitude E7240" diff --git a/src/mainboard/dell/e7240/Makefile.mk b/src/mainboard/dell/e7240/Makefile.mk new file mode 100644 index 0000000000..c3dd619421 --- /dev/null +++ b/src/mainboard/dell/e7240/Makefile.mk @@ -0,0 +1,5 @@ +## SPDX-License-Identifier: GPL-2.0-only + +bootblock-y += bootblock.c +romstage-y += gpio.c +ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads diff --git a/src/mainboard/dell/e7240/acpi/ec.asl b/src/mainboard/dell/e7240/acpi/ec.asl new file mode 100644 index 0000000000..24915c22ef --- /dev/null +++ b/src/mainboard/dell/e7240/acpi/ec.asl @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +/* FIXME: not working yet */ +Device(EC) +{ + Name (_HID, EISAID("PNP0C09")) + Name (_UID, 0) + Name (_GPE, 39) + + Method (_Q66, 0, NotSerialized) + { + Store ("EC: _Q66", Debug) + } +} diff --git a/src/mainboard/dell/e7240/acpi/platform.asl b/src/mainboard/dell/e7240/acpi/platform.asl new file mode 100644 index 0000000000..2d24bbd9b9 --- /dev/null +++ b/src/mainboard/dell/e7240/acpi/platform.asl @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +Method(_WAK, 1) +{ + /* FIXME: EC support */ + Return(Package() {0, 0}) +} + +Method(_PTS,1) +{ + /* FIXME: EC support */ +} diff --git a/src/mainboard/dell/e7240/acpi/superio.asl b/src/mainboard/dell/e7240/acpi/superio.asl new file mode 100644 index 0000000000..55b1db5b11 --- /dev/null +++ b/src/mainboard/dell/e7240/acpi/superio.asl @@ -0,0 +1,3 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include diff --git a/src/mainboard/dell/e7240/board_info.txt b/src/mainboard/dell/e7240/board_info.txt new file mode 100644 index 0000000000..accdf52791 --- /dev/null +++ b/src/mainboard/dell/e7240/board_info.txt @@ -0,0 +1,7 @@ +Category: laptop +Board URL: https://www.dell.com/support/home/en-us/product-support/product/latitude-e7240-ultrabook/docs +ROM protocol: SPI +ROM package: SOIC-8 +ROM socketed: n +Flashrom support: y +Release year: 2013 diff --git a/src/mainboard/dell/e7240/bootblock.c b/src/mainboard/dell/e7240/bootblock.c new file mode 100644 index 0000000000..2f6090a40f --- /dev/null +++ b/src/mainboard/dell/e7240/bootblock.c @@ -0,0 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include +#include + +void mainboard_config_superio(void) +{ + mec5035_early_init(); +} diff --git a/src/mainboard/dell/e7240/devicetree.cb b/src/mainboard/dell/e7240/devicetree.cb new file mode 100644 index 0000000000..c408383c70 --- /dev/null +++ b/src/mainboard/dell/e7240/devicetree.cb @@ -0,0 +1,82 @@ +## SPDX-License-Identifier: GPL-2.0-or-later + +chip northbridge/intel/haswell + register "ec_present" = "true" + + chip cpu/intel/haswell + device cpu_cluster 0 on ops haswell_cpu_bus_ops end + end + + device domain 0x0 on + ops haswell_pci_domain_ops + subsystemid 0x1028 0x05ca inherit + + device pci 00.0 on end # Host bridge + device pci 02.0 on # Internal graphics VGA controller + register "gfx" = "GMA_STATIC_DISPLAYS(0)" + register "gpu_ddi_e_connected" = "0" + register "gpu_dp_b_hotplug" = "4" + register "gpu_dp_c_hotplug" = "4" + register "gpu_dp_d_hotplug" = "4" + register "panel_cfg" = "{ + .up_delay_ms = 200, + .down_delay_ms = 50, + .cycle_delay_ms = 500, + .backlight_on_delay_ms = 1, + .backlight_off_delay_ms = 1, + .backlight_pwm_hz = 200, + }" + end + device pci 03.0 on end # Mini-HD audio + + chip southbridge/intel/lynxpoint # Intel Series 8 Lynx Point PCH + register "docking_supported" = "1" + register "alt_gp_smi_en" = "0x00002000" + register "gpe0_en_1" = "0x00000100" + register "gpe0_en_2" = "0x00000080" + register "gpe0_en_4" = "0x00000042" + + device pci 13.0 off end # Smart Sound Audio DSP + device pci 14.0 on end # xHCI Controller + device pci 15.0 off end # Serial I/O DMA + device pci 15.1 off end # I2C0 + device pci 15.2 off end # I2C1 + device pci 15.3 off end # GSPI0 + device pci 15.4 off end # GSPI1 + device pci 15.5 off end # UART0 + device pci 15.6 off end # UART1 + device pci 16.0 on end # Management Engine Interface 1 + device pci 16.1 off end # Management Engine Interface 2 + device pci 16.2 off end # Management Engine IDE-R + device pci 16.3 off end # Management Engine KT + device pci 17.0 off end # SDIO + device pci 19.0 on end # Intel Gigabit Ethernet + device pci 1b.0 on end # High Definition Audio + device pci 1c.0 on end # PCIe Port #1 + device pci 1c.1 off end # PCIe Port #2 + device pci 1c.2 off end # PCIe Port #3 + device pci 1c.3 on end # PCIe Port #4, WLAN + device pci 1c.4 on end # PCIe Port #5, SD/MMC Card Reader + # PCIe Port #6 Can be muxed between PCIe and SATA + device pci 1c.5 on end # PCIe Port #6 + device pci 1d.0 on end # USB2 EHCI #1 + device pci 1f.0 on # LPC bridge + register "gen1_dec" = "0x007c0681" + register "gen2_dec" = "0x005c0921" + register "gen3_dec" = "0x003c07e1" + # Enable 0x910 and 0x911 for early init and EC driver + register "gen4_dec" = "0x007c0901" + + chip ec/dell/mec5035 + device pnp ff.0 on end + end + end + device pci 1f.2 on # SATA Controller (AHCI) + # 0(eSATA on dock), 1(mSATA near the fan), 3(mSATA near WLAN) + register "sata_port_map" = "0x0b" + end + device pci 1f.3 on end # SMBus + device pci 1f.6 off end # Thermal + end + end +end diff --git a/src/mainboard/dell/e7240/dsdt.asl b/src/mainboard/dell/e7240/dsdt.asl new file mode 100644 index 0000000000..b1d4c79127 --- /dev/null +++ b/src/mainboard/dell/e7240/dsdt.asl @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include + +DefinitionBlock( + "dsdt.aml", + "DSDT", + ACPI_DSDT_REV_2, + OEM_ID, + ACPI_TABLE_CREATOR, + 0x20141018 /* OEM revision */ +) +{ + #include + #include "acpi/platform.asl" + #include + #include + #include + #include + + Device (\_SB.PCI0) + { + #include + #include + #include + } +} diff --git a/src/mainboard/dell/e7240/gma-mainboard.ads b/src/mainboard/dell/e7240/gma-mainboard.ads new file mode 100644 index 0000000000..cdc7f18680 --- /dev/null +++ b/src/mainboard/dell/e7240/gma-mainboard.ads @@ -0,0 +1,17 @@ +-- SPDX-License-Identifier: GPL-2.0-or-later + +with HW.GFX.GMA; +with HW.GFX.GMA.Display_Probing; + +use HW.GFX.GMA; +use HW.GFX.GMA.Display_Probing; + +private package GMA.Mainboard is + + ports : constant Port_List := + (DP2, + HDMI1, + eDP, + others => Disabled); + +end GMA.Mainboard; diff --git a/src/mainboard/dell/e7240/gpio.c b/src/mainboard/dell/e7240/gpio.c new file mode 100644 index 0000000000..166502505f --- /dev/null +++ b/src/mainboard/dell/e7240/gpio.c @@ -0,0 +1,110 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include + +const struct pch_lp_gpio_map mainboard_lp_gpio_map[] = { + [0] = LP_GPIO_OUT_LOW, + [1] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_IRQ_LEVEL }, + [2] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT | GPIO_IRQ_LEVEL }, + [3] = LP_GPIO_OUT_LOW, + [4] = LP_GPIO_NATIVE, + [5] = LP_GPIO_NATIVE, + [6] = LP_GPIO_NATIVE, + [7] = LP_GPIO_NATIVE, + [8] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT | GPIO_IRQ_LEVEL, + .pirq = GPIO_PIRQ_APIC_ROUTE }, + [9] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_IRQ_LEVEL, + .pirq = GPIO_PIRQ_APIC_ROUTE }, + [10] = LP_GPIO_OUT_LOW, + [11] = LP_GPIO_NATIVE, + [12] = LP_GPIO_NATIVE, + [13] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT | GPIO_IRQ_LEVEL, + .pirq = GPIO_PIRQ_APIC_ROUTE }, + [14] = LP_GPIO_OUT_LOW, + [15] = LP_GPIO_OUT_LOW, + [16] = LP_GPIO_OUT_HIGH, + [17] = LP_GPIO_OUT_LOW, + [18] = LP_GPIO_NATIVE, + [19] = LP_GPIO_NATIVE, + [20] = LP_GPIO_NATIVE, + [21] = LP_GPIO_NATIVE, + [22] = LP_GPIO_NATIVE, + [23] = LP_GPIO_NATIVE, + [24] = LP_GPIO_OUT_LOW, + [25] = LP_GPIO_OUT_LOW, + [26] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT }, + [27] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT | GPIO_IRQ_LEVEL }, + [28] = LP_GPIO_OUT_LOW, + [29] = LP_GPIO_NATIVE, + [30] = LP_GPIO_NATIVE, + [31] = LP_GPIO_NATIVE, + [32] = LP_GPIO_NATIVE, + [33] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT | GPIO_IRQ_LEVEL }, + [34] = LP_GPIO_OUT_HIGH, + [35] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT | GPIO_IRQ_LEVEL }, + [36] = LP_GPIO_OUT_LOW, + [37] = LP_GPIO_NATIVE, + [38] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT | GPIO_IRQ_LEVEL }, + [39] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT | GPIO_IRQ_LEVEL }, + [40] = LP_GPIO_NATIVE, + [41] = LP_GPIO_NATIVE, + [42] = LP_GPIO_NATIVE, + [43] = LP_GPIO_NATIVE, + [44] = LP_GPIO_OUT_LOW, + [45] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT | GPIO_IRQ_LEVEL, + .route = GPIO_ROUTE_SMI, + .pirq = GPIO_PIRQ_APIC_ROUTE }, + [46] = LP_GPIO_OUT_LOW, + [47] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT, + .pirq = GPIO_PIRQ_APIC_ROUTE }, + [48] = LP_GPIO_OUT_LOW, + [49] = LP_GPIO_OUT_LOW, + [50] = LP_GPIO_OUT_HIGH, + [51] = LP_GPIO_OUT_LOW, + [52] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_IRQ_LEVEL, + .pirq = GPIO_PIRQ_APIC_ROUTE }, + [53] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT, .pirq = GPIO_PIRQ_APIC_ROUTE }, + [54] = LP_GPIO_OUT_LOW, + [55] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT, + .pirq = GPIO_PIRQ_APIC_ROUTE }, + [56] = LP_GPIO_OUT_HIGH, + [57] = LP_GPIO_OUT_HIGH, + [58] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT }, + [59] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT | GPIO_IRQ_LEVEL }, + [60] = LP_GPIO_OUT_LOW, + [61] = LP_GPIO_NATIVE, + [62] = LP_GPIO_NATIVE, + [63] = LP_GPIO_NATIVE, + [64] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT | GPIO_IRQ_LEVEL }, + [65] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT | GPIO_IRQ_LEVEL }, + [66] = LP_GPIO_OUT_LOW, + [67] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_IRQ_LEVEL }, + [68] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_IRQ_LEVEL }, + [69] = LP_GPIO_OUT_HIGH, + [70] = LP_GPIO_OUT_LOW, + [71] = LP_GPIO_NATIVE, + [72] = LP_GPIO_NATIVE, + [73] = LP_GPIO_OUT_LOW, + [74] = LP_GPIO_NATIVE, + [75] = LP_GPIO_NATIVE, + [76] = LP_GPIO_OUT_HIGH, + [77] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT | GPIO_IRQ_LEVEL }, + [78] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_IRQ_LEVEL }, + [79] = LP_GPIO_OUT_LOW, + [80] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_IRQ_LEVEL }, + [81] = LP_GPIO_NATIVE, + [82] = LP_GPIO_NATIVE, + [83] = LP_GPIO_OUT_HIGH, + [84] = LP_GPIO_OUT_HIGH, + [85] = LP_GPIO_OUT_HIGH, + [86] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_IRQ_LEVEL }, + [87] = LP_GPIO_OUT_LOW, + [88] = LP_GPIO_OUT_LOW, + [89] = LP_GPIO_OUT_HIGH, + [90] = LP_GPIO_OUT_HIGH, + [91] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT | GPIO_IRQ_LEVEL }, + [92] = { .conf0 = GPIO_MODE_GPIO | GPIO_DIR_INPUT | GPIO_INVERT | GPIO_IRQ_LEVEL }, + [93] = LP_GPIO_OUT_LOW, + [94] = LP_GPIO_OUT_LOW, + LP_GPIO_END +}; diff --git a/src/mainboard/dell/e7240/hda_verb.c b/src/mainboard/dell/e7240/hda_verb.c new file mode 100644 index 0000000000..b052e15ead --- /dev/null +++ b/src/mainboard/dell/e7240/hda_verb.c @@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include + +const u32 cim_verb_data[] = { + 0x10ec0292, /* Codec Vendor / Device ID: Realtek */ + 0x102805ca, /* Subsystem ID */ + 12, /* Number of 4 dword sets */ + AZALIA_SUBVENDOR(0, 0x102805ca), + AZALIA_PIN_CFG(0, 0x12, 0x90a60140), + AZALIA_PIN_CFG(0, 0x13, AZALIA_PIN_CFG_NC(0)), + AZALIA_PIN_CFG(0, 0x14, 0x90170110), + AZALIA_PIN_CFG(0, 0x15, 0x0221401f), + AZALIA_PIN_CFG(0, 0x16, 0x01014020), + AZALIA_PIN_CFG(0, 0x18, AZALIA_PIN_CFG_NC(0)), + AZALIA_PIN_CFG(0, 0x19, 0x01a19030), + AZALIA_PIN_CFG(0, 0x1a, AZALIA_PIN_CFG_NC(0)), + AZALIA_PIN_CFG(0, 0x1b, AZALIA_PIN_CFG_NC(0)), + AZALIA_PIN_CFG(0, 0x1d, 0x40700001), + AZALIA_PIN_CFG(0, 0x1e, AZALIA_PIN_CFG_NC(0)), +}; + +const u32 pc_beep_verbs[0] = {}; + +AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/dell/e7240/romstage.c b/src/mainboard/dell/e7240/romstage.c new file mode 100644 index 0000000000..6b2cb7a80c --- /dev/null +++ b/src/mainboard/dell/e7240/romstage.c @@ -0,0 +1,43 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include +#include +#include + +void mainboard_config_rcba(void) +{ + RCBA16(D31IR) = DIR_ROUTE(PIRQA, PIRQD, PIRQC, PIRQA); + RCBA16(D29IR) = DIR_ROUTE(PIRQF, PIRQD, PIRQA, PIRQC); + RCBA16(D28IR) = DIR_ROUTE(PIRQA, PIRQA, PIRQA, PIRQA); + RCBA16(D27IR) = DIR_ROUTE(PIRQG, PIRQB, PIRQC, PIRQD); + RCBA16(D26IR) = DIR_ROUTE(PIRQA, PIRQF, PIRQC, PIRQD); + RCBA16(D25IR) = DIR_ROUTE(PIRQE, PIRQF, PIRQG, PIRQH); + RCBA16(D22IR) = DIR_ROUTE(PIRQA, PIRQD, PIRQC, PIRQB); + RCBA16(D20IR) = DIR_ROUTE(PIRQA, PIRQB, PIRQC, PIRQD); +} + +void mb_get_spd_map(struct spd_info *spdi) +{ + spdi->addresses[0] = 0x50; + spdi->addresses[2] = 0x52; +} + +const struct usb2_port_config mainboard_usb2_ports[MAX_USB2_PORTS] = { + /* Length, Enable, OCn#, Location */ + { 0x0040, 1, 0, USB_PORT_BACK_PANEL }, /* dock left */ + { 0x0040, 1, 1, USB_PORT_BACK_PANEL }, /* right, EHCI debug */ + { 0x0080, 1, USB_OC_PIN_SKIP, USB_PORT_DOCK }, /* WLAN + BT */ + { 0x0040, 1, USB_OC_PIN_SKIP, USB_PORT_BACK_PANEL }, /* webcam */ + { 0x0040, 1, USB_OC_PIN_SKIP, USB_PORT_BACK_PANEL }, /* USH / Smart Card */ + { 0x0110, 1, 2, USB_PORT_BACK_PANEL }, /* back right, dock back */ + { 0x0040, 1, USB_OC_PIN_SKIP, USB_PORT_DOCK }, /* WWAN */ + { 0x0040, 1, USB_OC_PIN_SKIP, USB_PORT_BACK_PANEL }, /* touchscreen */ +}; + +const struct usb3_port_config mainboard_usb3_ports[MAX_USB3_PORTS] = { + { 1, 1 }, /* right */ + { 1, 0 }, /* back left */ + { 1, 2 }, /* back right, dock back */ + { 1, USB_OC_PIN_SKIP } +};