2 * This file is part of the coreboot project.
4 * Copyright (C) 2013 Sage Electronic Engineering, LLC
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
19 * The tables found in this file are derived from the Intel High Definition
20 * Audio Specification Revision 1.0a, published 17 June 2010
24 * Page 177: Default Pin Configuration
27 enum AzaliaPinCfgPortConnectivity
{
28 AZALIA_PINCFG_PORT_JACK
= 0b00,
29 AZALIA_PINCFG_PORT_NC
= 0b01,
30 AZALIA_PINCFG_PORT_FIXED
= 0b10,
31 AZALIA_PINCFG_PORT_MULTIPLE
= 0b11,
34 enum AzaliaPinCfgLocationGross
{
35 AZALIA_PINCFG_LOCATION_EXTERNAL
= 0x00,
36 AZALIA_PINCFG_LOCATION_INTERNAL
= 0x10,
37 AZALIA_PINCFG_LOCATION_EXT_CHASSIS
= 0x20,
38 AZALIA_PINCFG_LOCATION_OTHER
= 0x30,
41 enum AzaliaPinCfgLocationFine
{
42 AZALIA_PINCFG_LOCATION_NOT_APPLICABLE
= 0x00,
43 AZALIA_PINCFG_LOCATION_REAR
= 0x01,
44 AZALIA_PINCFG_LOCATION_FRONT
= 0x02,
45 AZALIA_PINCFG_LOCATION_LEFT
= 0x03,
46 AZALIA_PINCFG_LOCATION_RIGHT
= 0x04,
47 AZALIA_PINCFG_LOCATION_TOP
= 0x05,
48 AZALIA_PINCFG_LOCATION_BOTTOM
= 0x06,
51 enum AzaliaPinCfgLocationSpecial
{
52 AZALIA_PINCFG_LOCATION_REAR_PANEL
= 0x07,
53 AZALIA_PINCFG_LOCATION_DRIVE_BAY
= 0x08,
54 AZALIA_PINCFG_LOCATION_RISER_CARD
= 0x17,
55 AZALIA_PINCFG_LOCATION_DIGITAL_DISPLAY
= 0x18,
56 AZALIA_PINCFG_LOCATION_ATAPI
= 0x19,
57 AZALIA_PINCFG_LOCATION_INSIDE_LID
= 0x37,
58 AZALIA_PINCFG_LOCATION_OUTSIDE_LID
= 0x38,
61 enum AzaliaPinCfgDefaultDevice
{
62 AZALIA_PINCFG_DEVICE_LINEOUT
= 0x0,
63 AZALIA_PINCFG_DEVICE_SPEAKER
= 0x1,
64 AZALIA_PINCFG_DEVICE_HP_OUT
= 0x2,
65 AZALIA_PINCFG_DEVICE_CD
= 0x3,
66 AZALIA_PINCFG_DEVICE_SPDIF_OUT
= 0x4,
67 AZALIA_PINCFG_DEVICE_DIGITAL_OUT
= 0x5,
68 AZALIA_PINCFG_DEVICE_MODEM_LINE
= 0x6,
69 AZALIA_PINCFG_DEVICE_MODEM_HANDSET
= 0x7,
70 AZALIA_PINCFG_DEVICE_LINEIN
= 0x8,
71 AZALIA_PINCFG_DEVICE_AUX
= 0x9,
72 AZALIA_PINCFG_DEVICE_MICROPHONE
= 0xA,
73 AZALIA_PINCFG_DEVICE_TELEPHONY
= 0xB,
74 AZALIA_PINCFG_DEVICE_SPDIF_IN
= 0xC,
75 AZALIA_PINCFG_DEVICE_DIGITAL_IN
= 0xD,
76 AZALIA_PINCFG_DEVICE_OTHER
= 0xF,
79 enum AzaliaPinCfgConnectionType
{
80 AZALIA_PINCFG_CONN_UNKNOWN
= 0x0,
81 AZALIA_PINCFG_CONN_MINI_HEADPHONE_JACK
= 0x1,
82 AZALIA_PINCFG_CONN_STEREO_PHONE_JACK
= 0x2,
83 AZALIA_PINCFG_CONN_INTERNAL_ATAPI
= 0x3,
84 AZALIA_PINCFG_CONN_RCA
= 0x4,
85 AZALIA_PINCFG_CONN_OPTICAL
= 0x5,
86 AZALIA_PINCFG_CONN_OTHER_DIGITAL
= 0x6,
87 AZALIA_PINCFG_CONN_OTHER_ANALOG
= 0x7,
88 AZALIA_PINCFG_CONN_DIN_PLUG
= 0x8,
89 AZALIA_PINCFG_CONN_XLR
= 0x9,
90 AZALIA_PINCFG_CONN_MODEM_RJ11
= 0xA,
91 AZALIA_PINCFG_CONN_COMBINATION
= 0xB,
92 AZALIA_PINCFG_CONN_OTHER
= 0xF,
95 enum AzaliaPinCfgColor
{
96 AZALIA_PINCFG_COLOR_UNKNOWN
= 0x0,
97 AZALIA_PINCFG_COLOR_BLACK
= 0x1,
98 AZALIA_PINCFG_COLOR_GREY
= 0x2,
99 AZALIA_PINCFG_COLOR_BLUE
= 0x3,
100 AZALIA_PINCFG_COLOR_GREEN
= 0x4,
101 AZALIA_PINCFG_COLOR_RED
= 0x5,
102 AZALIA_PINCFG_COLOR_ORANGE
= 0x6,
103 AZALIA_PINCFG_COLOR_YELLOW
= 0x7,
104 AZALIA_PINCFG_COLOR_PURPLE
= 0x8,
105 AZALIA_PINCFG_COLOR_PINK
= 0x9,
106 AZALIA_PINCFG_COLOR_WHITE
= 0xE,
107 AZALIA_PINCFG_COLOR_OTHER
= 0xF,
110 enum AzaliaPinCfgMisc
{
111 AZALIA_PINCFG_MISC_IGNORE_PRESENCE
= 0x1,
114 union AzaliaPinConfiguration
{
116 struct __attribute__((aligned(4),packed
)) {
117 enum AzaliaPinCfgPortConnectivity port
:2;
118 unsigned char location
:6;
119 enum AzaliaPinCfgDefaultDevice device
:4;
120 enum AzaliaPinCfgConnectionType connection
:4;
121 enum AzaliaPinCfgColor color
:4;
122 unsigned char misc
:4;
123 unsigned char association
:4;
124 unsigned char sequence
:4;
128 #endif /* AZALIA_H_ */