mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-07-15 17:58:46 +02:00
2edd583aee
Courtesy of Kat Inskip who ported this board. Headphone output doesn't work at the moment, due to incorrect verb. Intel VBT is also wrong. Both are taken from another board. This will be amended later with the correct verb and VBT. Signed-off-by: Leah Rowe <leah@libreboot.org>
333 lines
11 KiB
Diff
333 lines
11 KiB
Diff
From 36126c093a9b9e01d41f0a68977cd09070c3c276 Mon Sep 17 00:00:00 2001
|
|
From: Nicholas Chin <nic.c3.14@gmail.com>
|
|
Date: Thu, 26 Sep 2024 19:51:25 -0600
|
|
Subject: [PATCH 20/48] mb/dell/gm45_latitudes: Add E4300 variant
|
|
|
|
Change-Id: I0f2059501b11be103187e3ce1a7c04ab85ae63d2
|
|
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
|
|
---
|
|
src/mainboard/dell/gm45_latitude/Kconfig | 5 +
|
|
src/mainboard/dell/gm45_latitude/Kconfig.name | 3 +
|
|
.../gm45_latitude/variants/e4300/data.vbt | Bin 0 -> 3881 bytes
|
|
.../variants/e4300/gma-mainboard.ads | 17 +++
|
|
.../dell/gm45_latitude/variants/e4300/gpio.c | 138 ++++++++++++++++++
|
|
.../gm45_latitude/variants/e4300/hda_verb.c | 37 +++++
|
|
.../variants/e4300/overridetree.cb | 10 ++
|
|
7 files changed, 210 insertions(+)
|
|
create mode 100644 src/mainboard/dell/gm45_latitude/variants/e4300/data.vbt
|
|
create mode 100644 src/mainboard/dell/gm45_latitude/variants/e4300/gma-mainboard.ads
|
|
create mode 100644 src/mainboard/dell/gm45_latitude/variants/e4300/gpio.c
|
|
create mode 100644 src/mainboard/dell/gm45_latitude/variants/e4300/hda_verb.c
|
|
create mode 100644 src/mainboard/dell/gm45_latitude/variants/e4300/overridetree.cb
|
|
|
|
diff --git a/src/mainboard/dell/gm45_latitude/Kconfig b/src/mainboard/dell/gm45_latitude/Kconfig
|
|
index 5020744990..d27d5728a8 100644
|
|
--- a/src/mainboard/dell/gm45_latitude/Kconfig
|
|
+++ b/src/mainboard/dell/gm45_latitude/Kconfig
|
|
@@ -21,6 +21,9 @@ config BOARD_DELL_GM45_LATITUDE_COMMON
|
|
config BOARD_DELL_E6400
|
|
select BOARD_DELL_GM45_LATITUDE_COMMON
|
|
|
|
+config BOARD_DELL_E4300
|
|
+ select BOARD_DELL_GM45_LATITUDE_COMMON
|
|
+
|
|
if BOARD_DELL_GM45_LATITUDE_COMMON
|
|
config INTEL_GMA_DPLL_REF_FREQ
|
|
default 100000000
|
|
@@ -30,12 +33,14 @@ config MAINBOARD_DIR
|
|
|
|
config MAINBOARD_PART_NUMBER
|
|
default "Latitude E6400" if BOARD_DELL_E6400
|
|
+ default "Latitude E4300" if BOARD_DELL_E4300
|
|
|
|
config OVERRIDE_DEVICETREE
|
|
default "variants/\$(CONFIG_VARIANT_DIR)/overridetree.cb"
|
|
|
|
config VARIANT_DIR
|
|
default "e6400" if BOARD_DELL_E6400
|
|
+ default "e4300" if BOARD_DELL_E4300
|
|
|
|
config USBDEBUG_HCD_INDEX
|
|
default 1
|
|
diff --git a/src/mainboard/dell/gm45_latitude/Kconfig.name b/src/mainboard/dell/gm45_latitude/Kconfig.name
|
|
index aefe777109..4dc95f46be 100644
|
|
--- a/src/mainboard/dell/gm45_latitude/Kconfig.name
|
|
+++ b/src/mainboard/dell/gm45_latitude/Kconfig.name
|
|
@@ -1,4 +1,7 @@
|
|
## SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
+config BOARD_DELL_E4300
|
|
+ bool "Latitude E4300"
|
|
+
|
|
config BOARD_DELL_E6400
|
|
bool "Latitude E6400"
|
|
diff --git a/src/mainboard/dell/gm45_latitude/variants/e4300/data.vbt b/src/mainboard/dell/gm45_latitude/variants/e4300/data.vbt
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..fa2f3db13f688b5687df16a155781d8674ea26f3
|
|
GIT binary patch
|
|
literal 3881
|
|
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
|
|
JE5(FU=`RLB=-&VU
|
|
|
|
literal 0
|
|
HcmV?d00001
|
|
|
|
diff --git a/src/mainboard/dell/gm45_latitude/variants/e4300/gma-mainboard.ads b/src/mainboard/dell/gm45_latitude/variants/e4300/gma-mainboard.ads
|
|
new file mode 100644
|
|
index 0000000000..89b81b3d69
|
|
--- /dev/null
|
|
+++ b/src/mainboard/dell/gm45_latitude/variants/e4300/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, -- dock DP
|
|
+ Analog, -- mainboard VGA
|
|
+ LVDS,
|
|
+ others => Disabled);
|
|
+
|
|
+end GMA.Mainboard;
|
|
diff --git a/src/mainboard/dell/gm45_latitude/variants/e4300/gpio.c b/src/mainboard/dell/gm45_latitude/variants/e4300/gpio.c
|
|
new file mode 100644
|
|
index 0000000000..b50f8da0b5
|
|
--- /dev/null
|
|
+++ b/src/mainboard/dell/gm45_latitude/variants/e4300/gpio.c
|
|
@@ -0,0 +1,138 @@
|
|
+/* SPDX-License-Identifier: GPL-2.0-only */
|
|
+
|
|
+#include <southbridge/intel/common/gpio.h>
|
|
+
|
|
+static const struct pch_gpio_set1 pch_gpio_set1_mode = {
|
|
+ .gpio0 = GPIO_MODE_NATIVE,
|
|
+ .gpio1 = GPIO_MODE_GPIO,
|
|
+ .gpio2 = GPIO_MODE_GPIO,
|
|
+ .gpio3 = GPIO_MODE_GPIO,
|
|
+ .gpio4 = GPIO_MODE_GPIO,
|
|
+ .gpio5 = GPIO_MODE_GPIO,
|
|
+ .gpio6 = GPIO_MODE_GPIO,
|
|
+ .gpio7 = GPIO_MODE_GPIO,
|
|
+ .gpio8 = GPIO_MODE_GPIO,
|
|
+ .gpio9 = GPIO_MODE_NATIVE,
|
|
+ .gpio10 = GPIO_MODE_NATIVE,
|
|
+ .gpio11 = GPIO_MODE_NATIVE,
|
|
+ .gpio12 = GPIO_MODE_NATIVE,
|
|
+ .gpio13 = GPIO_MODE_GPIO,
|
|
+ .gpio14 = GPIO_MODE_GPIO,
|
|
+ .gpio15 = GPIO_MODE_NATIVE,
|
|
+ .gpio16 = GPIO_MODE_NATIVE,
|
|
+ .gpio17 = GPIO_MODE_GPIO,
|
|
+ .gpio18 = GPIO_MODE_GPIO,
|
|
+ .gpio19 = GPIO_MODE_GPIO,
|
|
+ .gpio20 = GPIO_MODE_GPIO,
|
|
+ .gpio21 = GPIO_MODE_GPIO,
|
|
+ .gpio22 = GPIO_MODE_GPIO,
|
|
+ .gpio23 = GPIO_MODE_NATIVE,
|
|
+ .gpio24 = GPIO_MODE_GPIO,
|
|
+ .gpio25 = GPIO_MODE_NATIVE,
|
|
+ .gpio26 = GPIO_MODE_NATIVE,
|
|
+ .gpio27 = GPIO_MODE_GPIO,
|
|
+ .gpio28 = GPIO_MODE_GPIO,
|
|
+ .gpio29 = GPIO_MODE_NATIVE,
|
|
+ .gpio30 = GPIO_MODE_NATIVE,
|
|
+ .gpio31 = GPIO_MODE_NATIVE,
|
|
+};
|
|
+
|
|
+static const struct pch_gpio_set1 pch_gpio_set1_direction = {
|
|
+ .gpio1 = GPIO_DIR_INPUT,
|
|
+ .gpio2 = GPIO_DIR_INPUT,
|
|
+ .gpio3 = GPIO_DIR_INPUT,
|
|
+ .gpio4 = GPIO_DIR_INPUT,
|
|
+ .gpio5 = GPIO_DIR_INPUT,
|
|
+ .gpio6 = GPIO_DIR_INPUT,
|
|
+ .gpio7 = GPIO_DIR_INPUT,
|
|
+ .gpio8 = GPIO_DIR_INPUT,
|
|
+ .gpio13 = GPIO_DIR_INPUT,
|
|
+ .gpio14 = GPIO_DIR_INPUT,
|
|
+ .gpio17 = GPIO_DIR_INPUT,
|
|
+ .gpio18 = GPIO_DIR_INPUT,
|
|
+ .gpio19 = GPIO_DIR_INPUT,
|
|
+ .gpio20 = GPIO_DIR_INPUT,
|
|
+ .gpio21 = GPIO_DIR_INPUT,
|
|
+ .gpio22 = GPIO_DIR_INPUT,
|
|
+ .gpio24 = GPIO_DIR_INPUT,
|
|
+ .gpio27 = GPIO_DIR_INPUT,
|
|
+ .gpio28 = GPIO_DIR_INPUT,
|
|
+};
|
|
+
|
|
+static const struct pch_gpio_set1 pch_gpio_set1_level = {
|
|
+};
|
|
+
|
|
+static const struct pch_gpio_set1 pch_gpio_set1_blink = {
|
|
+};
|
|
+
|
|
+static const struct pch_gpio_set1 pch_gpio_set1_invert = {
|
|
+ .gpio1 = GPIO_INVERT,
|
|
+ .gpio7 = GPIO_INVERT,
|
|
+ .gpio8 = GPIO_INVERT,
|
|
+};
|
|
+
|
|
+static const struct pch_gpio_set2 pch_gpio_set2_mode = {
|
|
+ .gpio32 = GPIO_MODE_NATIVE,
|
|
+ .gpio33 = GPIO_MODE_GPIO,
|
|
+ .gpio34 = GPIO_MODE_GPIO,
|
|
+ .gpio35 = GPIO_MODE_NATIVE,
|
|
+ .gpio36 = GPIO_MODE_GPIO,
|
|
+ .gpio37 = GPIO_MODE_GPIO,
|
|
+ .gpio38 = GPIO_MODE_GPIO,
|
|
+ .gpio39 = GPIO_MODE_GPIO,
|
|
+ .gpio40 = GPIO_MODE_NATIVE,
|
|
+ .gpio41 = GPIO_MODE_NATIVE,
|
|
+ .gpio42 = GPIO_MODE_NATIVE,
|
|
+ .gpio43 = GPIO_MODE_NATIVE,
|
|
+ .gpio44 = GPIO_MODE_NATIVE,
|
|
+ .gpio45 = GPIO_MODE_NATIVE,
|
|
+ .gpio46 = GPIO_MODE_NATIVE,
|
|
+ .gpio47 = GPIO_MODE_NATIVE,
|
|
+ .gpio48 = GPIO_MODE_GPIO,
|
|
+ .gpio49 = GPIO_MODE_GPIO,
|
|
+ .gpio50 = GPIO_MODE_NATIVE,
|
|
+ .gpio51 = GPIO_MODE_NATIVE,
|
|
+ .gpio52 = GPIO_MODE_GPIO,
|
|
+ .gpio53 = GPIO_MODE_GPIO,
|
|
+ .gpio54 = GPIO_MODE_NATIVE,
|
|
+ .gpio55 = GPIO_MODE_NATIVE,
|
|
+ .gpio56 = GPIO_MODE_GPIO,
|
|
+ .gpio57 = GPIO_MODE_GPIO,
|
|
+ .gpio58 = GPIO_MODE_NATIVE,
|
|
+ .gpio59 = GPIO_MODE_NATIVE,
|
|
+ .gpio60 = GPIO_MODE_GPIO,
|
|
+};
|
|
+
|
|
+static const struct pch_gpio_set2 pch_gpio_set2_direction = {
|
|
+ .gpio33 = GPIO_DIR_INPUT,
|
|
+ .gpio34 = GPIO_DIR_INPUT,
|
|
+ .gpio36 = GPIO_DIR_INPUT,
|
|
+ .gpio37 = GPIO_DIR_INPUT,
|
|
+ .gpio38 = GPIO_DIR_INPUT,
|
|
+ .gpio39 = GPIO_DIR_INPUT,
|
|
+ .gpio48 = GPIO_DIR_INPUT,
|
|
+ .gpio49 = GPIO_DIR_INPUT,
|
|
+ .gpio52 = GPIO_DIR_INPUT,
|
|
+ .gpio53 = GPIO_DIR_INPUT,
|
|
+ .gpio56 = GPIO_DIR_INPUT,
|
|
+ .gpio57 = GPIO_DIR_INPUT,
|
|
+ .gpio60 = GPIO_DIR_INPUT,
|
|
+};
|
|
+
|
|
+static const struct pch_gpio_set2 pch_gpio_set2_level = {
|
|
+};
|
|
+
|
|
+const struct pch_gpio_map mainboard_gpio_map = {
|
|
+ .set1 = {
|
|
+ .mode = &pch_gpio_set1_mode,
|
|
+ .direction = &pch_gpio_set1_direction,
|
|
+ .level = &pch_gpio_set1_level,
|
|
+ .blink = &pch_gpio_set1_blink,
|
|
+ .invert = &pch_gpio_set1_invert,
|
|
+ },
|
|
+ .set2 = {
|
|
+ .mode = &pch_gpio_set2_mode,
|
|
+ .direction = &pch_gpio_set2_direction,
|
|
+ .level = &pch_gpio_set2_level,
|
|
+ },
|
|
+};
|
|
diff --git a/src/mainboard/dell/gm45_latitude/variants/e4300/hda_verb.c b/src/mainboard/dell/gm45_latitude/variants/e4300/hda_verb.c
|
|
new file mode 100644
|
|
index 0000000000..a9948a93dd
|
|
--- /dev/null
|
|
+++ b/src/mainboard/dell/gm45_latitude/variants/e4300/hda_verb.c
|
|
@@ -0,0 +1,37 @@
|
|
+/* SPDX-License-Identifier: GPL-2.0-only */
|
|
+
|
|
+#include <device/azalia_device.h>
|
|
+
|
|
+const u32 cim_verb_data[] = {
|
|
+ /* coreboot specific header */
|
|
+ 0x111d76b2, /* IDT 92HD71B7X */
|
|
+ 0x1028024d, /* Subsystem ID */
|
|
+ 13, /* Number of entries */
|
|
+
|
|
+ /* Pin Widget Verb Table */
|
|
+
|
|
+ AZALIA_PIN_CFG(0, 0x0a, 0x0421101f),
|
|
+ AZALIA_PIN_CFG(0, 0x0b, 0x04a11021),
|
|
+ AZALIA_PIN_CFG(0, 0x0c, 0x40f000f0),
|
|
+ AZALIA_PIN_CFG(0, 0x0d, 0x90170110),
|
|
+ AZALIA_PIN_CFG(0, 0x0e, 0x23a1102e),
|
|
+ AZALIA_PIN_CFG(0, 0x0f, 0x23011050),
|
|
+ AZALIA_PIN_CFG(0, 0x14, 0x40f000f2),
|
|
+ AZALIA_PIN_CFG(0, 0x18, 0x90a601a0),
|
|
+ AZALIA_PIN_CFG(0, 0x19, 0x40f000f4),
|
|
+ AZALIA_PIN_CFG(0, 0x1e, 0x40f000f5),
|
|
+ AZALIA_PIN_CFG(0, 0x1f, 0x40f000f6),
|
|
+ AZALIA_PIN_CFG(0, 0x20, 0x40f000f7),
|
|
+ AZALIA_PIN_CFG(0, 0x27, 0x40f000f0),
|
|
+};
|
|
+
|
|
+const u32 pc_beep_verbs[] = {
|
|
+ 0x00170500, /* power up codec */
|
|
+ 0x00d70500, /* power up speakers */
|
|
+ 0x00d70102, /* select mixer (input 0x2) for speakers */
|
|
+ 0x00d70740, /* enable speakers output */
|
|
+ 0x02770720, /* enable beep input */
|
|
+ 0x01737217, /* unmute beep (mixer's input 0x2), set amp 0dB */
|
|
+ 0x00d37000, /* unmute speakers */
|
|
+};
|
|
+AZALIA_ARRAY_SIZES;
|
|
diff --git a/src/mainboard/dell/gm45_latitude/variants/e4300/overridetree.cb b/src/mainboard/dell/gm45_latitude/variants/e4300/overridetree.cb
|
|
new file mode 100644
|
|
index 0000000000..20dfa245fb
|
|
--- /dev/null
|
|
+++ b/src/mainboard/dell/gm45_latitude/variants/e4300/overridetree.cb
|
|
@@ -0,0 +1,10 @@
|
|
+## SPDX-License-Identifier: GPL-2.0-or-later
|
|
+
|
|
+chip northbridge/intel/gm45
|
|
+ device domain 0 on
|
|
+ subsystemid 0x1028 0x024d inherit
|
|
+ chip southbridge/intel/i82801ix
|
|
+ device pci 1c.2 off end # PCIe Port #3
|
|
+ end
|
|
+ end
|
|
+end
|
|
--
|
|
2.47.3
|
|
|