summaryrefslogtreecommitdiff
path: root/config/coreboot/dell7/patches/0002-dell-optiplex_3050-add-hda_verb.c.patch
blob: 376a87619449dbed92f92ef6af880025e206497c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
From 6140f780837726a24d6c473ac50a62fdd5ee8f2d Mon Sep 17 00:00:00 2001
From: Leah Rowe <info@minifree.org>
Date: Sun, 6 Oct 2024 17:25:27 +0100
Subject: [PATCH 2/4] dell/optiplex_3050: add hda_verb.c

Configured for the line jack at the front of the machine.

Based on dumps from the vendor BIOS.

Signed-off-by: Leah Rowe <info@minifree.org>
---
 src/mainboard/dell/optiplex_3050/Kconfig     |  1 +
 src/mainboard/dell/optiplex_3050/Makefile.mk |  3 +-
 src/mainboard/dell/optiplex_3050/hda_verb.c  | 90 ++++++++++++++++++++
 3 files changed, 93 insertions(+), 1 deletion(-)
 create mode 100644 src/mainboard/dell/optiplex_3050/hda_verb.c

diff --git a/src/mainboard/dell/optiplex_3050/Kconfig b/src/mainboard/dell/optiplex_3050/Kconfig
index 2f0dccb98d..eab6034158 100644
--- a/src/mainboard/dell/optiplex_3050/Kconfig
+++ b/src/mainboard/dell/optiplex_3050/Kconfig
@@ -16,6 +16,7 @@ config BOARD_SPECIFIC_OPTIONS
 	select SKYLAKE_SOC_PCH_H
 	select SOC_INTEL_KABYLAKE
 	select SUPERIO_SMSC_SCH555x
+	select SOC_INTEL_COMMON_BLOCK_HDA_VERB
 
 config CBFS_SIZE
 	default 0x900000
diff --git a/src/mainboard/dell/optiplex_3050/Makefile.mk b/src/mainboard/dell/optiplex_3050/Makefile.mk
index d50ea40879..90b3cc4c48 100644
--- a/src/mainboard/dell/optiplex_3050/Makefile.mk
+++ b/src/mainboard/dell/optiplex_3050/Makefile.mk
@@ -5,5 +5,6 @@ bootblock-y += sch5555_ec.c
 
 romstage-y += romstage.c
 
-ramstage-y += ramstage.c sch5555_ec.c
+ramstage-y += ramstage.c sch5555_ec.c hda_verb.c
+
 ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/dell/optiplex_3050/hda_verb.c b/src/mainboard/dell/optiplex_3050/hda_verb.c
new file mode 100644
index 0000000000..621e4f7a52
--- /dev/null
+++ b/src/mainboard/dell/optiplex_3050/hda_verb.c
@@ -0,0 +1,90 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <device/azalia_device.h>
+
+const u32 cim_verb_data[] = {
+	/* coreboot specific header, codec 0 */
+	0x10ec0255, /* Realtek ALC3234 */
+	0x102807a3, /* Subsystem ID */
+	11,	    /* Number of entries */
+
+	/* Pin Widget Verb Table */
+
+	AZALIA_SUBVENDOR(0, 0x102807a3),
+
+	AZALIA_PIN_CFG(0, 0x12, 0x40000000), // does not describe a jack or internal device
+	AZALIA_PIN_CFG(0, 0x14, AZALIA_PIN_DESC(
+		AZALIA_INTEGRATED,
+		AZALIA_INTERNAL,
+		AZALIA_SPEAKER,
+		AZALIA_OTHER_ANALOG,
+		AZALIA_COLOR_UNKNOWN,
+		AZALIA_NO_JACK_PRESENCE_DETECT,
+		5, 0
+	)),
+	AZALIA_PIN_CFG(0, 0x17, AZALIA_PIN_CFG_NC(0)),
+	AZALIA_PIN_CFG(0, 0x18, AZALIA_PIN_CFG_NC(0)),
+	AZALIA_PIN_CFG(0, 0x19, AZALIA_PIN_CFG_NC(0)),
+	AZALIA_PIN_CFG(0, 0x1a, AZALIA_PIN_CFG_NC(0)),
+	AZALIA_PIN_CFG(0, 0x1b, AZALIA_PIN_DESC(
+		AZALIA_JACK,
+		AZALIA_EXTERNAL_PRIMARY_CHASSIS | AZALIA_FRONT,
+		AZALIA_LINE_OUT,
+		AZALIA_STEREO_MONO_1_8,
+		AZALIA_BLACK,
+		AZALIA_JACK_PRESENCE_DETECT,
+		2, 0
+	)),
+	AZALIA_PIN_CFG(0, 0x1d, 0x4054c029), // does not describe a jack or internal device
+	AZALIA_PIN_CFG(0, 0x1e, AZALIA_PIN_CFG_NC(0)),
+	AZALIA_PIN_CFG(0, 0x21, AZALIA_PIN_DESC(
+		AZALIA_JACK,
+		AZALIA_EXTERNAL_PRIMARY_CHASSIS | AZALIA_FRONT,
+		AZALIA_HP_OUT,
+		AZALIA_STEREO_MONO_1_8,
+		AZALIA_BLACK,
+		AZALIA_JACK_PRESENCE_DETECT,
+		5, 15
+	)),
+
+	/* coreboot specific header, codec 2 */
+	0x80862809, /* Intel Skylake HDMI */
+	0x80860101, /* Subsystem ID */
+	4,	    /* Number of entries */
+
+	/* Pin Widget Verb Table */
+
+	AZALIA_SUBVENDOR(2, 0x80860101),
+
+	AZALIA_PIN_CFG(2, 0x05, AZALIA_PIN_DESC(
+		AZALIA_JACK,
+		AZALIA_DIGITAL_DISPLAY,
+		AZALIA_DIGITAL_OTHER_OUT,
+		AZALIA_OTHER_DIGITAL,
+		AZALIA_COLOR_UNKNOWN,
+		AZALIA_JACK_PRESENCE_DETECT,
+		1, 0
+	)),
+	AZALIA_PIN_CFG(2, 0x06, AZALIA_PIN_DESC(
+		AZALIA_JACK,
+		AZALIA_DIGITAL_DISPLAY,
+		AZALIA_DIGITAL_OTHER_OUT,
+		AZALIA_OTHER_DIGITAL,
+		AZALIA_COLOR_UNKNOWN,
+		AZALIA_JACK_PRESENCE_DETECT,
+		1, 0
+	)),
+	AZALIA_PIN_CFG(2, 0x07, AZALIA_PIN_DESC(
+		AZALIA_JACK,
+		AZALIA_DIGITAL_DISPLAY,
+		AZALIA_DIGITAL_OTHER_OUT,
+		AZALIA_OTHER_DIGITAL,
+		AZALIA_COLOR_UNKNOWN,
+		AZALIA_JACK_PRESENCE_DETECT,
+		1, 0
+	)),
+};
+
+const u32 pc_beep_verbs[] = {};
+
+AZALIA_ARRAY_SIZES;
-- 
2.39.5