summaryrefslogtreecommitdiff
path: root/src/mainboard/prodrive/hermes/hda_verb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/prodrive/hermes/hda_verb.c')
-rw-r--r--src/mainboard/prodrive/hermes/hda_verb.c229
1 files changed, 7 insertions, 222 deletions
diff --git a/src/mainboard/prodrive/hermes/hda_verb.c b/src/mainboard/prodrive/hermes/hda_verb.c
index be7dbb4ec6..23c542c478 100644
--- a/src/mainboard/prodrive/hermes/hda_verb.c
+++ b/src/mainboard/prodrive/hermes/hda_verb.c
@@ -2,232 +2,17 @@
#include <device/azalia_device.h>
#include <types.h>
+#include <console/console.h>
#include "variants/baseboard/include/eeprom.h"
-
-const u32 cim_verb_data[] = {
- 0x10ec0888, /* Codec Vendor / Device ID: Realtek ALC888 */
- 0x10ec0888, /* Subsystem ID */
- 10, /* Number of 4 dword sets */
- AZALIA_SUBVENDOR(0, 0x10ec0888),
-
- /* Port A: Front, Audio Header #1 */
- AZALIA_PIN_CFG(0, 0x14, AZALIA_PIN_DESC(
- INTEGRATED,
- INTERNAL,
- SPECIAL7,
- LINE_OUT,
- OTHER_ANALOG,
- COLOR_UNKNOWN,
- false,
- 0xf,
- 0
- )),
- /* Port B: Mic1, Line input (pink) */
- AZALIA_PIN_CFG(0, 0x15, AZALIA_PIN_DESC(
- JACK,
- EXTERNAL_PRIMARY_CHASSIS,
- REAR, //FIXME
- LINE_IN,
- STEREO_MONO_1_8,
- PINK,
- false,
- 0xf,
- 0
- )),
- /* Port C: Line, Speaker (only L) */
- AZALIA_PIN_CFG(0, 0x16, AZALIA_PIN_DESC(
- INTEGRATED,
- INTERNAL,
- NA,
- SPEAKER,
- TYPE_UNKNOWN,
- COLOR_UNKNOWN,
- false,
- 0xf,
- 0
- )),
- /* Port D: Sidesurr, Line out (green) */
- AZALIA_PIN_CFG(0, 0x17, AZALIA_PIN_DESC(
- //JACK,
- LINE_OUT,
- EXTERNAL_PRIMARY_CHASSIS,
- REAR, //FIXME
- LINE_OUT,
- STEREO_MONO_1_8,
- GREEN,
- false,
- 0xf,
- 0
- )),
- /* Port E: Line2, Line input (blue) */
- AZALIA_PIN_CFG(0, 0x18, AZALIA_PIN_DESC(
- JACK,
- EXTERNAL_PRIMARY_CHASSIS,
- REAR, //FIXME
- LINE_IN,
- STEREO_MONO_1_8,
- BLUE,
- false,
- 0xf,
- 0
- )),
- /* Port F: Mic2, Audio Header #2 */
- AZALIA_PIN_CFG(0, 0x19, AZALIA_PIN_DESC(
- INTEGRATED,
- INTERNAL,
- SPECIAL7,
- LINE_IN,
- OTHER_ANALOG,
- COLOR_UNKNOWN,
- false,
- 0xf,
- 0
- )),
- /* Port G: Not connected */
- AZALIA_PIN_CFG(0, 0x1a, AZALIA_PIN_DESC(
- NC,
- LOCATION_OTHER,
- NA,
- DEVICE_OTHER,
- TYPE_OTHER,
- COLOR_OTHER,
- true,
- 0,
- 0
- )),
- /* Port H: Not connected */
- AZALIA_PIN_CFG(0, 0x1b, AZALIA_PIN_DESC(
- NC,
- LOCATION_OTHER,
- NA,
- DEVICE_OTHER,
- TYPE_OTHER,
- COLOR_OTHER,
- true,
- 0,
- 0
- )),
-
- /* S/PDIF-OUT */
- AZALIA_PIN_CFG(0, 0x1e, AZALIA_PIN_DESC(
- INTEGRATED,
- INTERNAL,
- NA,
- SPDIF_OUT,
- OTHER_DIGITAL,
- COLOR_UNKNOWN,
- true,
- 0xf,
- 0
- )),
- /* S/PDIF-IN */
- AZALIA_PIN_CFG(0, 0x1f, AZALIA_PIN_DESC(
- INTEGRATED,
- INTERNAL,
- NA,
- SPDIF_IN,
- OTHER_DIGITAL,
- COLOR_UNKNOWN,
- true,
- 0xf,
- 0
- )),
-
- //FIXME COdec ID
- /*
- * VerbTable: CFL Display Audio Codec
- * Revision ID = 0xFF
- * Codec Vendor: 0x8086280B
- */
-
- 0x8086280B,
- 0xFFFFFFFF,
- 5, /* Number of 4 dword sets */
-
- /*
- * Display Audio Verb Table
- * For GEN9, the Vendor Node ID is 08h
- * Port to be exposed to the inbox driver in the vanilla mode
- * PORT C - BIT[7:6] = 01b
- */
- 0x00878140,
- 0x00878140,
- 0x00878140,
- 0x00878140,
- /* Pin Widget 5 - PORT B - Configuration Default: 0x18560010 */
- AZALIA_PIN_CFG(2, 0x05, 0x18560010),
- /* Pin Widget 6 - PORT C - Configuration Default: 0x18560020 */
- AZALIA_PIN_CFG(2, 0x06, 0x18560020),
- /* Pin Widget 7 - PORT D - Configuration Default: 0x18560030 */
- AZALIA_PIN_CFG(2, 0x07, 0x18560030),
- /* Disable the third converter and third Pin (NID 08h) */
- 0x00878140,
- 0x00878140,
- 0x00878140,
- 0x00878140,
-};
-
-const u32 pc_beep_verbs[0] = {};
-
-AZALIA_ARRAY_SIZES;
-
-static u32 get_port_c_vref_cfg(uint8_t blue_rear_vref)
-{
- switch (blue_rear_vref) {
- default:
- case 0:
- return 0x02040000;
- case 1:
- return 0x02041000;
- case 2:
- return 0x02044000;
- case 3:
- return 0x02045000;
- case 4:
- return 0x02046000;
- }
-}
-
-static u32 get_internal_audio_cfg(uint8_t internal_audio_connection)
-{
- switch (internal_audio_connection) {
- default:
- case 0:
- return AZALIA_PIN_CFG_NC(0);
- case 1:
- return 0x022a4c40;
- case 2:
- return AZALIA_PIN_DESC(
- INTEGRATED,
- INTERNAL,
- NA,
- SPEAKER,
- TYPE_UNKNOWN,
- COLOR_UNKNOWN,
- false,
- 0xf,
- 0);
- }
-}
+#include "variants/baseboard/include/variant/variants.h"
void mainboard_azalia_program_runtime_verbs(u8 *base, u32 viddid)
{
- if (viddid != 0x10ec0888)
- return;
+ if (viddid == 0x10ec0888) {
+ u8 hsi = get_bmc_hsi();
- const struct eeprom_board_settings *const board_cfg = get_board_settings();
-
- if (!board_cfg)
- return;
-
- const u32 config = get_internal_audio_cfg(board_cfg->internal_audio_connection);
-
- const u32 verbs[] = {
- AZALIA_PIN_CFG(0, 0x1b, config),
- 0x0205000d,
- get_port_c_vref_cfg(board_cfg->blue_rear_vref),
- };
-
- azalia_program_verb_table(base, verbs, ARRAY_SIZE(verbs));
+ if (hsi >= 4)
+ mainboard_r0x_configure_alc888(base, viddid);
+ }
}