3 #ifndef DEVICE_AZALIA_H
4 #define DEVICE_AZALIA_H
11 #define HDA_GCAP_REG 0x00
12 #define HDA_GCTL_REG 0x08
13 #define HDA_GCTL_CRST (1 << 0)
14 #define HDA_STATESTS_REG 0x0e
15 #define HDA_IC_REG 0x60
16 #define HDA_IR_REG 0x64
17 #define HDA_ICII_REG 0x68
18 #define HDA_ICII_BUSY (1 << 0)
19 #define HDA_ICII_VALID (1 << 1)
115 #define AZALIA_PIN_DESC(conn, location2, location1, dev, type, color, no_presence_detect, \
116 association, sequence) \
118 ((location2) << 27) | \
119 ((location1) << 24) | \
123 ((no_presence_detect) << 8) | \
124 ((association) << 4) | \
127 #define AZALIA_ARRAY_SIZES const u32 pc_beep_verbs_size = \
128 ARRAY_SIZE(pc_beep_verbs); \
129 const u32 cim_verb_data_size = sizeof(cim_verb_data)
131 #define AZALIA_VERB_12B(codec, pin, verb, val) \
132 ((codec) << 28 | (pin) << 20 | (verb) << 8 | (val))
134 #define AZALIA_PIN_CFG(codec, pin, val) \
135 AZALIA_VERB_12B(codec, pin, 0x71c, ((val) >> 0) & 0xff), \
136 AZALIA_VERB_12B(codec, pin, 0x71d, ((val) >> 8) & 0xff), \
137 AZALIA_VERB_12B(codec, pin, 0x71e, ((val) >> 16) & 0xff), \
138 AZALIA_VERB_12B(codec, pin, 0x71f, ((val) >> 24) & 0xff)
140 #define AZALIA_PIN_CFG_NC(n) (0x411111f0 | ((n) & 0xf))
142 #define AZALIA_RESET(pin) \
143 AZALIA_VERB_12B(0, pin, 0x7ff, 0), \
144 AZALIA_VERB_12B(0, pin, 0x7ff, 0), \
145 AZALIA_VERB_12B(0, pin, 0x7ff, 0), \
146 AZALIA_VERB_12B(0, pin, 0x7ff, 0)
148 #define AZALIA_SUBVENDOR(codec, val) \
149 AZALIA_VERB_12B(codec, 1, 0x720, ((val) >> 0) & 0xff), \
150 AZALIA_VERB_12B(codec, 1, 0x721, ((val) >> 8) & 0xff), \
151 AZALIA_VERB_12B(codec, 1, 0x722, ((val) >> 16) & 0xff), \
152 AZALIA_VERB_12B(codec, 1, 0x723, ((val) >> 24) & 0xff)
int azalia_enter_reset(u8 *base)
const u32 cim_verb_data[]
void mainboard_azalia_program_runtime_verbs(u8 *base, u32 viddid)
void azalia_codec_init(u8 *base, int addr, const u32 *verb_table, u32 verb_table_bytes)
const u32 cim_verb_data_size
const u32 pc_beep_verbs[]
@ EXTERNAL_PRIMARY_CHASSIS
void azalia_audio_init(struct device *dev)
int azalia_set_bits(void *port, u32 mask, u32 val)
int azalia_program_verb_table(u8 *base, const u32 *verbs, u32 verb_size)
void azalia_codecs_init(u8 *base, u16 codec_mask)
struct device_operations default_azalia_audio_ops
int azalia_exit_reset(u8 *base)
u32 azalia_find_verb(const u32 *verb_table, u32 verb_table_bytes, u32 viddid, const u32 **verb)
const u32 pc_beep_verbs_size