1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #include <device/azalia.h>
5 #include <northbridge/amd/agesa/BiosCallOuts.h>
6 #include <northbridge/amd/agesa/state_machine.h>
7 #include <FchPlatform.h>
9 const BIOS_CALLOUT_STRUCT BiosCallouts
[] =
11 {AGESA_DO_RESET
, agesa_Reset
},
12 {AGESA_READ_SPD
, agesa_ReadSpd
},
13 {AGESA_READ_SPD_RECOVERY
, agesa_NoopUnsupported
},
14 {AGESA_RUNFUNC_ONAP
, agesa_RunFuncOnAp
},
15 {AGESA_GET_IDS_INIT_DATA
, agesa_EmptyIdsInitData
},
16 {AGESA_HOOKBEFORE_DQS_TRAINING
, agesa_NoopSuccess
},
17 {AGESA_HOOKBEFORE_EXIT_SELF_REF
, agesa_NoopSuccess
},
18 {AGESA_GNB_GFX_GET_VBIOS_IMAGE
, agesa_GfxGetVbiosImage
}
20 const int BiosCalloutsLen
= ARRAY_SIZE(BiosCallouts
);
23 * CODEC Initialization Table for Azalia HD Audio using Realtek ALC662 chip
25 static const CODEC_ENTRY Alc662_VerbTbl
[] =
27 { 0x14, /*01014010*/ /* Port D - green headphone jack */
28 (AZALIA_PINCFG_PORT_JACK
<< 30)
29 | ((AZALIA_PINCFG_LOCATION_EXTERNAL
| AZALIA_PINCFG_LOCATION_REAR
) << 24)
30 | (AZALIA_PINCFG_DEVICE_LINEOUT
<< 20)
31 | (AZALIA_PINCFG_CONN_MINI_HEADPHONE_JACK
<< 16)
32 | (AZALIA_PINCFG_COLOR_GREEN
<< 12)
36 { 0x15, /*0x90170120*/ /* Port A - white speaker header */
37 (AZALIA_PINCFG_PORT_FIXED
<< 30)
38 | (AZALIA_PINCFG_LOCATION_INTERNAL
<< 24)
39 | (AZALIA_PINCFG_DEVICE_SPEAKER
<< 20)
40 | (AZALIA_PINCFG_CONN_OTHER_ANALOG
<< 16)
41 | (AZALIA_PINCFG_COLOR_WHITE
<< 12)
42 | (AZALIA_PINCFG_MISC_IGNORE_PRESENCE
<< 8)
46 { 0x16, 0x411111F0 }, /* Port G - not connected */
47 { 0x18, /*0x01A19040*/ /* Port B - pink headphone jack */
48 (AZALIA_PINCFG_PORT_JACK
<< 30)
49 | ((AZALIA_PINCFG_LOCATION_EXTERNAL
| AZALIA_PINCFG_LOCATION_REAR
) << 24)
50 | (AZALIA_PINCFG_DEVICE_MICROPHONE
<< 20)
51 | (AZALIA_PINCFG_CONN_MINI_HEADPHONE_JACK
<< 16)
52 | (AZALIA_PINCFG_COLOR_PINK
<< 12)
56 { 0x19, /*0x02A19050*/ /* Port F - front panel header mic */
57 (AZALIA_PINCFG_PORT_NC
<< 30)
58 | ((AZALIA_PINCFG_LOCATION_EXTERNAL
| AZALIA_PINCFG_LOCATION_FRONT
) << 24)
59 | (AZALIA_PINCFG_DEVICE_MICROPHONE
<< 20)
60 | (AZALIA_PINCFG_CONN_MINI_HEADPHONE_JACK
<< 16)
61 | (AZALIA_PINCFG_COLOR_PINK
<< 12)
65 { 0x1A, /*0x0181304F*/ /* Port C - NL blue headphone jack */
66 (AZALIA_PINCFG_PORT_NC
<< 30)
67 | ((AZALIA_PINCFG_LOCATION_EXTERNAL
| AZALIA_PINCFG_LOCATION_REAR
) << 24)
68 | (AZALIA_PINCFG_DEVICE_LINEIN
<< 20)
69 | (AZALIA_PINCFG_CONN_MINI_HEADPHONE_JACK
<< 16)
70 | (AZALIA_PINCFG_COLOR_BLUE
<< 12)
74 { 0x1B, /*0x02214030*/ /* Port E - front panel line-out */
75 (AZALIA_PINCFG_PORT_NC
<< 30)
76 | ((AZALIA_PINCFG_LOCATION_EXTERNAL
| AZALIA_PINCFG_LOCATION_FRONT
) << 24)
77 | (AZALIA_PINCFG_DEVICE_HP_OUT
<< 20)
78 | (AZALIA_PINCFG_CONN_MINI_HEADPHONE_JACK
<< 16)
79 | (AZALIA_PINCFG_COLOR_GREEN
<< 12)
83 { 0x1C, 0x411111F0 }, /* CD-in - Not Connected */
84 { 0x1D, 0x411111F0 }, /* PC Beep - Not Connected */
85 { 0x1E, 0x411111F0 }, /* S/PDIF - Not connected */
89 static const CODEC_TBL_LIST CodecTableList
[] =
91 {0x10ec0662, (CODEC_ENTRY
*)Alc662_VerbTbl
},
92 {(UINT32
)0x0FFFFFFFF, (CODEC_ENTRY
*)0x0FFFFFFFFUL
}
95 void board_FCH_InitReset(struct sysinfo
*cb_NA
, FCH_RESET_DATA_BLOCK
*FchParams_reset
)
99 void board_FCH_InitEnv(struct sysinfo
*cb_NA
, FCH_DATA_BLOCK
*FchParams_env
)
101 /* Azalia Controller OEM Codec Table Pointer */
102 FchParams_env
->Azalia
.AzaliaOemCodecTablePtr
= (CODEC_TBL_LIST
*)CodecTableList
;