Nicholas Sudsgaard has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/80695?usp=email )
Change subject: include/device: Merge enums from azalia_device.h and azalia.h ......................................................................
include/device: Merge enums from azalia_device.h and azalia.h
We were keeping 2 copies of the same thing (albeit there were some slight differences). As azalia_device.h is used much more in the codebase this was kept as the base and then some of the nice features of azalia.h were incorporated.
This also drops the AzaliaPinConfiguration enum as it was never used since added in 2013.
Change-Id: Ie874b083a18963679981a9cd2b25d123890d628e Signed-off-by: Nicholas Sudsgaard devel+coreboot@nsudsgaard.com --- D src/include/device/azalia.h M src/include/device/azalia_device.h 2 files changed, 90 insertions(+), 191 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/95/80695/1
diff --git a/src/include/device/azalia.h b/src/include/device/azalia.h deleted file mode 100644 index 24f91d9..0000000 --- a/src/include/device/azalia.h +++ /dev/null @@ -1,115 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -#ifndef AZALIA_H_ -#define AZALIA_H_ - -/* - * The tables found in this file are derived from the Intel High Definition - * Audio Specification Revision 1.0a, published 17 June 2010 - */ - -/* - * Page 177: Default Pin Configuration - */ - -enum AzaliaPinCfgPortConnectivity { - AZALIA_PINCFG_PORT_JACK = 0, - AZALIA_PINCFG_PORT_NC = 1, - AZALIA_PINCFG_PORT_FIXED = 2, - AZALIA_PINCFG_PORT_MULTIPLE = 3, -}; - -enum AzaliaPinCfgLocationGross { - AZALIA_PINCFG_LOCATION_EXTERNAL = 0x00, - AZALIA_PINCFG_LOCATION_INTERNAL = 0x10, - AZALIA_PINCFG_LOCATION_EXT_CHASSIS = 0x20, - AZALIA_PINCFG_LOCATION_OTHER = 0x30, -}; - -enum AzaliaPinCfgLocationFine { - AZALIA_PINCFG_LOCATION_NOT_APPLICABLE = 0x00, - AZALIA_PINCFG_LOCATION_REAR = 0x01, - AZALIA_PINCFG_LOCATION_FRONT = 0x02, - AZALIA_PINCFG_LOCATION_LEFT = 0x03, - AZALIA_PINCFG_LOCATION_RIGHT = 0x04, - AZALIA_PINCFG_LOCATION_TOP = 0x05, - AZALIA_PINCFG_LOCATION_BOTTOM = 0x06, -}; - -enum AzaliaPinCfgLocationSpecial { - AZALIA_PINCFG_LOCATION_REAR_PANEL = 0x07, - AZALIA_PINCFG_LOCATION_DRIVE_BAY = 0x08, - AZALIA_PINCFG_LOCATION_RISER_CARD = 0x17, - AZALIA_PINCFG_LOCATION_DIGITAL_DISPLAY = 0x18, - AZALIA_PINCFG_LOCATION_ATAPI = 0x19, - AZALIA_PINCFG_LOCATION_INSIDE_LID = 0x37, - AZALIA_PINCFG_LOCATION_OUTSIDE_LID = 0x38, -}; - -enum AzaliaPinCfgDefaultDevice { - AZALIA_PINCFG_DEVICE_LINEOUT = 0x0, - AZALIA_PINCFG_DEVICE_SPEAKER = 0x1, - AZALIA_PINCFG_DEVICE_HP_OUT = 0x2, - AZALIA_PINCFG_DEVICE_CD = 0x3, - AZALIA_PINCFG_DEVICE_SPDIF_OUT = 0x4, - AZALIA_PINCFG_DEVICE_DIGITAL_OUT = 0x5, - AZALIA_PINCFG_DEVICE_MODEM_LINE = 0x6, - AZALIA_PINCFG_DEVICE_MODEM_HANDSET = 0x7, - AZALIA_PINCFG_DEVICE_LINEIN = 0x8, - AZALIA_PINCFG_DEVICE_AUX = 0x9, - AZALIA_PINCFG_DEVICE_MICROPHONE = 0xA, - AZALIA_PINCFG_DEVICE_TELEPHONY = 0xB, - AZALIA_PINCFG_DEVICE_SPDIF_IN = 0xC, - AZALIA_PINCFG_DEVICE_DIGITAL_IN = 0xD, - AZALIA_PINCFG_DEVICE_OTHER = 0xF, -}; - -enum AzaliaPinCfgConnectionType { - AZALIA_PINCFG_CONN_UNKNOWN = 0x0, - AZALIA_PINCFG_CONN_MINI_HEADPHONE_JACK = 0x1, - AZALIA_PINCFG_CONN_STEREO_PHONE_JACK = 0x2, - AZALIA_PINCFG_CONN_INTERNAL_ATAPI = 0x3, - AZALIA_PINCFG_CONN_RCA = 0x4, - AZALIA_PINCFG_CONN_OPTICAL = 0x5, - AZALIA_PINCFG_CONN_OTHER_DIGITAL = 0x6, - AZALIA_PINCFG_CONN_OTHER_ANALOG = 0x7, - AZALIA_PINCFG_CONN_DIN_PLUG = 0x8, - AZALIA_PINCFG_CONN_XLR = 0x9, - AZALIA_PINCFG_CONN_MODEM_RJ11 = 0xA, - AZALIA_PINCFG_CONN_COMBINATION = 0xB, - AZALIA_PINCFG_CONN_OTHER = 0xF, -}; - -enum AzaliaPinCfgColor { - AZALIA_PINCFG_COLOR_UNKNOWN = 0x0, - AZALIA_PINCFG_COLOR_BLACK = 0x1, - AZALIA_PINCFG_COLOR_GREY = 0x2, - AZALIA_PINCFG_COLOR_BLUE = 0x3, - AZALIA_PINCFG_COLOR_GREEN = 0x4, - AZALIA_PINCFG_COLOR_RED = 0x5, - AZALIA_PINCFG_COLOR_ORANGE = 0x6, - AZALIA_PINCFG_COLOR_YELLOW = 0x7, - AZALIA_PINCFG_COLOR_PURPLE = 0x8, - AZALIA_PINCFG_COLOR_PINK = 0x9, - AZALIA_PINCFG_COLOR_WHITE = 0xE, - AZALIA_PINCFG_COLOR_OTHER = 0xF, -}; - -enum AzaliaPinCfgMisc { - AZALIA_PINCFG_MISC_IGNORE_PRESENCE = 0x1, -}; - -union AzaliaPinConfiguration { - unsigned int value; - struct __attribute__((aligned(4), packed)) { - enum AzaliaPinCfgPortConnectivity port:2; - unsigned char location:6; - enum AzaliaPinCfgDefaultDevice device:4; - enum AzaliaPinCfgConnectionType connection:4; - enum AzaliaPinCfgColor color:4; - unsigned char misc:4; - unsigned char association:4; - unsigned char sequence:4; - }; -}; - -#endif /* AZALIA_H_ */ diff --git a/src/include/device/azalia_device.h b/src/include/device/azalia_device.h index f7c1448..14a1e0a 100644 --- a/src/include/device/azalia_device.h +++ b/src/include/device/azalia_device.h @@ -4,8 +4,8 @@ #define DEVICE_AZALIA_H
#include <acpi/acpi.h> -#include <device/mmio.h> #include <device/device.h> +#include <device/mmio.h> #include <stdint.h>
#define HDA_GCAP_REG 0x00 @@ -36,98 +36,112 @@ extern const u32 pc_beep_verbs[]; extern const u32 pc_beep_verbs_size;
+/* + * The tables found in this file are derived from the Intel High Definition + * Audio Specification Revision 1.0a, published 17 June 2010 + * + * Page 177: Configuration Default + */ enum azalia_pin_connection { - JACK = 0, - NC, - INTEGRATED, - JACK_AND_INTEGRATED, + AZALIA_JACK = 0x0, + AZALIA_NC = 0x1, + AZALIA_INTEGRATED = 0x2, + AZALIA_JACK_AND_INTEGRATED = 0x3, };
-enum azalia_pin_color { - COLOR_UNKNOWN = 0, - BLACK, - GREY, - BLUE, - GREEN, - RED, - ORANGE, - YELLOW, - PURPLE, - PINK, - WHITE = 0xe, - COLOR_OTHER = 0xf, +enum azalia_pin_location_gross { + AZALIA_EXTERNAL_PRIMARY_CHASSIS = 0x00, + AZALIA_INTERNAL = 0x10, + AZALIA_SEPARATE_CHASSIS = 0x20, + AZALIA_LOCATION_OTHER = 0x30, };
-enum azalia_pin_type { - TYPE_UNKNOWN = 0, - STEREO_MONO_1_8, - STEREO_MONO_1_4, - ATAPI, - RCA, - OPTICAL, - OTHER_DIGITAL, - OTHER_ANALOG, - MULTICHANNEL_ANALOG, - XLR, - RJ_11, - COMBINATION, - TYPE_OTHER = 0xf +enum azalia_pin_location_geometric { + AZALIA_LOCATION_UNKNOWN = 0x0, + AZALIA_REAR = 0x1, + AZALIA_FRONT = 0x2, + AZALIA_LEFT = 0x3, + AZALIA_RIGHT = 0x4, + AZALIA_TOP = 0x5, + AZALIA_BOTTOM = 0x6, + AZALIA_SPECIAL7 = 0x7, + AZALIA_SPECIAL8 = 0x8, + AZALIA_SPECIAL9 = 0x9, +}; + +enum azalia_pin_location_special { + AZALIA_REAR_PANEL = AZALIA_EXTERNAL_PRIMARY_CHASSIS | AZALIA_SPECIAL7, + AZALIA_DRIVE_BAY = AZALIA_EXTERNAL_PRIMARY_CHASSIS | AZALIA_SPECIAL8, + AZALIA_RISER = AZALIA_INTERNAL | AZALIA_SPECIAL7, + AZALIA_DIGITAL_DISPLAY = AZALIA_INTERNAL | AZALIA_SPECIAL8, + AZALIA_ATAPI = AZALIA_INTERNAL | AZALIA_SPECIAL9, + AZALIA_MOBILE_LID_INSIDE = AZALIA_LOCATION_OTHER | AZALIA_SPECIAL7, + AZALIA_MOBILE_LID_OUTSIDE = AZALIA_LOCATION_OTHER | AZALIA_SPECIAL8, };
enum azalia_pin_device { - LINE_OUT = 0, - SPEAKER, - HP_OUT, - CD, - SPDIF_OUT, - DIGITAL_OTHER_OUT, - MODEM_LINE_SIDE, - MODEM_HANDSET_SIDE, - LINE_IN, - AUX, - MIC_IN, - TELEPHONY, - SPDIF_IN, - DIGITAL_OTHER_IN, - DEVICE_OTHER = 0xf, + AZALIA_LINE_OUT = 0x0, + AZALIA_SPEAKER = 0x1, + AZALIA_HP_OUT = 0x2, + AZALIA_CD = 0x3, + AZALIA_SPDIF_OUT = 0x4, + AZALIA_DIGITAL_OTHER_OUT = 0x5, + AZALIA_MODEM_LINE_SIDE = 0x6, + AZALIA_MODEM_HANDSET_SIDE = 0x7, + AZALIA_LINE_IN = 0x8, + AZALIA_AUX = 0x9, + AZALIA_MIC_IN = 0xa, + AZALIA_TELEPHONY = 0xb, + AZALIA_SPDIF_IN = 0xc, + AZALIA_DIGITAL_OTHER_IN = 0xd, + AZALIA_DEVICE_OTHER = 0xf, };
-enum azalia_pin_location_1 { - NA = 0, - REAR, - FRONT, - LEFT, - RIGHT, - TOP, - BOTTOM, - SPECIAL7, - SPECIAL8, - SPECIAL9, +enum azalia_pin_type { + AZALIA_TYPE_UNKNOWN = 0x0, + AZALIA_STEREO_MONO_1_8 = 0x1, + AZALIA_STEREO_MONO_1_4 = 0x2, + AZALIA_ATAPI_INTERNAL = 0x3, + AZALIA_RCA = 0x4, + AZALIA_OPTICAL = 0x5, + AZALIA_OTHER_DIGITAL = 0x6, + AZALIA_OTHER_ANALOG = 0x7, + AZALIA_MULTICHANNEL_ANALOG = 0x8, + AZALIA_XLR = 0x9, + AZALIA_RJ_11 = 0xa, + AZALIA_COMBINATION = 0xb, + AZALIA_TYPE_OTHER = 0xf, };
-enum azalia_pin_location_2 { - EXTERNAL_PRIMARY_CHASSIS = 0, - INTERNAL, - SEPARATE_CHASSIS, - LOCATION_OTHER +enum azalia_pin_color { + AZALIA_COLOR_UNKNOWN = 0x0, + AZALIA_BLACK = 0x1, + AZALIA_GREY = 0x2, + AZALIA_BLUE = 0x3, + AZALIA_GREEN = 0x4, + AZALIA_RED = 0x5, + AZALIA_ORANGE = 0x6, + AZALIA_YELLOW = 0x7, + AZALIA_PURPLE = 0x8, + AZALIA_PINK = 0x9, + AZALIA_WHITE = 0xe, + AZALIA_COLOR_OTHER = 0xf, };
enum azalia_pin_misc { - JACK_PRESENCE_DETECT = 0, - NO_JACK_PRESENCE_DETECT, + AZALIA_JACK_PRESENCE_DETECT = 0x0, + AZALIA_NO_JACK_PRESENCE_DETECT = 0x1, };
-#define AZALIA_PIN_DESC(conn, location2, location1, dev, type, color, misc, \ - association, sequence) \ - (((conn) << 30) | \ - ((location2) << 27) | \ - ((location1) << 24) | \ - ((dev) << 20) | \ - ((type) << 16) | \ - ((color) << 12) | \ - ((misc) << 8) | \ - ((association) << 4) | \ - ((sequence) << 0)) +#define AZALIA_PIN_DESC(conn, location, dev, type, color, misc, association, sequence) \ + ((((conn) << 30) & 0xc0000000) | \ + (((location) << 24) & 0x3f000000) | \ + (((dev) << 20) & 0x00f00000) | \ + (((type) << 16) & 0x000f0000) | \ + (((color) << 12) & 0x0000f000) | \ + (((misc) << 8) & 0x00000f00) | \ + (((association) << 4) & 0x000000f0) | \ + (((sequence) << 0) & 0x0000000f))
#define AZALIA_ARRAY_SIZES const u32 pc_beep_verbs_size = \ ARRAY_SIZE(pc_beep_verbs); \