blob: 2af4696cd087b8a4b3242f42238a4aafd46bab06 [file] [log] [blame]
Bruce Griffith5bdcff52013-08-23 19:48:17 -06001/*
2 * This file is part of the coreboot project.
3 *
4 * Copyright (C) 2013 Sage Electronic Engineering, LLC
5 *
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.
9 *
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.
Bruce Griffith5bdcff52013-08-23 19:48:17 -060014 */
15#ifndef AZALIA_H_
16#define AZALIA_H_
17
18/*
19 * The tables found in this file are derived from the Intel High Definition
20 * Audio Specification Revision 1.0a, published 17 June 2010
21 */
22
23/*
24 * Page 177: Default Pin Configuration
25 */
26
27enum 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,
32};
33
34enum 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,
39};
40
41enum 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,
49};
50
51enum 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,
59};
60
61enum 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,
77};
78
79enum 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,
93};
94
95enum 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,
108};
109
110enum AzaliaPinCfgMisc {
111 AZALIA_PINCFG_MISC_IGNORE_PRESENCE = 0x1,
112};
113
114union AzaliaPinConfiguration {
115 unsigned int value;
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;
125 };
126};
127
128#endif /* AZALIA_H_ */