summaryrefslogtreecommitdiff
path: root/config/coreboot/default/patches/0064-dell-optiplex_3050-add-hda_verb.c.patch
blob: d1427e225bd6ee864a71920ea6a48ff16e52acf1 (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
From 6731fef7759f4c67a6d0e85d16de9d99302c9b49 Mon Sep 17 00:00:00 2001
From: Leah Rowe <info@minifree.org>
Date: Sun, 6 Oct 2024 17:25:27 +0100
Subject: [PATCH 1/1] 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 |  2 +
 src/mainboard/dell/optiplex_3050/hda_verb.c  | 90 ++++++++++++++++++++
 3 files changed, 93 insertions(+)
 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 763acda0b2..777e29745a 100644
--- a/src/mainboard/dell/optiplex_3050/Kconfig
+++ b/src/mainboard/dell/optiplex_3050/Kconfig
@@ -18,6 +18,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 c078124332..1e2626967a 100644
--- a/src/mainboard/dell/optiplex_3050/Makefile.mk
+++ b/src/mainboard/dell/optiplex_3050/Makefile.mk
@@ -6,4 +6,6 @@ bootblock-y += sch5555_ec.c
 romstage-y += romstage.c
 
 ramstage-y += ramstage.c
+ramstage-y += 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