1558a398bSSimon Schubert /*- 2558a398bSSimon Schubert * Copyright (c) 2006 Stephane E. Potvin <sepotvin@videotron.ca> 3558a398bSSimon Schubert * All rights reserved. 4558a398bSSimon Schubert * 5558a398bSSimon Schubert * Redistribution and use in source and binary forms, with or without 6558a398bSSimon Schubert * modification, are permitted provided that the following conditions 7558a398bSSimon Schubert * are met: 8558a398bSSimon Schubert * 1. Redistributions of source code must retain the above copyright 9558a398bSSimon Schubert * notice, this list of conditions and the following disclaimer. 10558a398bSSimon Schubert * 2. Redistributions in binary form must reproduce the above copyright 11558a398bSSimon Schubert * notice, this list of conditions and the following disclaimer in the 12558a398bSSimon Schubert * documentation and/or other materials provided with the distribution. 13558a398bSSimon Schubert * 14558a398bSSimon Schubert * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15558a398bSSimon Schubert * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16558a398bSSimon Schubert * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17558a398bSSimon Schubert * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18558a398bSSimon Schubert * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19558a398bSSimon Schubert * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20558a398bSSimon Schubert * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21558a398bSSimon Schubert * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22558a398bSSimon Schubert * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23558a398bSSimon Schubert * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24558a398bSSimon Schubert * SUCH DAMAGE. 25558a398bSSimon Schubert * 26*2a1ad637SFrançois Tigeot * $FreeBSD: head/sys/dev/sound/pci/hda/hda_reg.h 230312 2012-01-18 19:12:33Z mav $ 27558a398bSSimon Schubert */ 28558a398bSSimon Schubert 29558a398bSSimon Schubert #ifndef _HDA_REG_H_ 30558a398bSSimon Schubert #define _HDA_REG_H_ 31558a398bSSimon Schubert 32558a398bSSimon Schubert /**************************************************************************** 33558a398bSSimon Schubert * HDA Device Verbs 34558a398bSSimon Schubert ****************************************************************************/ 35558a398bSSimon Schubert 36558a398bSSimon Schubert /* HDA Command */ 37558a398bSSimon Schubert #define HDA_CMD_VERB_MASK 0x000fffff 38558a398bSSimon Schubert #define HDA_CMD_VERB_SHIFT 0 39558a398bSSimon Schubert #define HDA_CMD_NID_MASK 0x0ff00000 40558a398bSSimon Schubert #define HDA_CMD_NID_SHIFT 20 41558a398bSSimon Schubert #define HDA_CMD_CAD_MASK 0xf0000000 42558a398bSSimon Schubert #define HDA_CMD_CAD_SHIFT 28 43558a398bSSimon Schubert 44558a398bSSimon Schubert #define HDA_CMD_VERB_4BIT_SHIFT 16 45558a398bSSimon Schubert #define HDA_CMD_VERB_12BIT_SHIFT 8 46558a398bSSimon Schubert 47558a398bSSimon Schubert #define HDA_CMD_VERB_4BIT(verb, payload) \ 48558a398bSSimon Schubert (((verb) << HDA_CMD_VERB_4BIT_SHIFT) | (payload)) 49558a398bSSimon Schubert #define HDA_CMD_4BIT(cad, nid, verb, payload) \ 50558a398bSSimon Schubert (((cad) << HDA_CMD_CAD_SHIFT) | \ 51558a398bSSimon Schubert ((nid) << HDA_CMD_NID_SHIFT) | \ 52558a398bSSimon Schubert (HDA_CMD_VERB_4BIT((verb), (payload)))) 53558a398bSSimon Schubert 54558a398bSSimon Schubert #define HDA_CMD_VERB_12BIT(verb, payload) \ 55558a398bSSimon Schubert (((verb) << HDA_CMD_VERB_12BIT_SHIFT) | (payload)) 56558a398bSSimon Schubert #define HDA_CMD_12BIT(cad, nid, verb, payload) \ 57558a398bSSimon Schubert (((cad) << HDA_CMD_CAD_SHIFT) | \ 58558a398bSSimon Schubert ((nid) << HDA_CMD_NID_SHIFT) | \ 59558a398bSSimon Schubert (HDA_CMD_VERB_12BIT((verb), (payload)))) 60558a398bSSimon Schubert 61558a398bSSimon Schubert /* Get Parameter */ 62558a398bSSimon Schubert #define HDA_CMD_VERB_GET_PARAMETER 0xf00 63558a398bSSimon Schubert 64558a398bSSimon Schubert #define HDA_CMD_GET_PARAMETER(cad, nid, payload) \ 65558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 66558a398bSSimon Schubert HDA_CMD_VERB_GET_PARAMETER, (payload))) 67558a398bSSimon Schubert 68558a398bSSimon Schubert /* Connection Select Control */ 69558a398bSSimon Schubert #define HDA_CMD_VERB_GET_CONN_SELECT_CONTROL 0xf01 70558a398bSSimon Schubert #define HDA_CMD_VERB_SET_CONN_SELECT_CONTROL 0x701 71558a398bSSimon Schubert 72558a398bSSimon Schubert #define HDA_CMD_GET_CONN_SELECT_CONTROL(cad, nid) \ 73558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 74558a398bSSimon Schubert HDA_CMD_VERB_GET_CONN_SELECT_CONTROL, 0x0)) 75558a398bSSimon Schubert #define HDA_CMD_SET_CONNECTION_SELECT_CONTROL(cad, nid, payload) \ 76558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 77558a398bSSimon Schubert HDA_CMD_VERB_SET_CONN_SELECT_CONTROL, (payload))) 78558a398bSSimon Schubert 79558a398bSSimon Schubert /* Connection List Entry */ 80558a398bSSimon Schubert #define HDA_CMD_VERB_GET_CONN_LIST_ENTRY 0xf02 81558a398bSSimon Schubert 82558a398bSSimon Schubert #define HDA_CMD_GET_CONN_LIST_ENTRY(cad, nid, payload) \ 83558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 84558a398bSSimon Schubert HDA_CMD_VERB_GET_CONN_LIST_ENTRY, (payload))) 85558a398bSSimon Schubert 86558a398bSSimon Schubert #define HDA_CMD_GET_CONN_LIST_ENTRY_SIZE_SHORT 1 87558a398bSSimon Schubert #define HDA_CMD_GET_CONN_LIST_ENTRY_SIZE_LONG 2 88558a398bSSimon Schubert 89558a398bSSimon Schubert /* Processing State */ 90558a398bSSimon Schubert #define HDA_CMD_VERB_GET_PROCESSING_STATE 0xf03 91558a398bSSimon Schubert #define HDA_CMD_VERB_SET_PROCESSING_STATE 0x703 92558a398bSSimon Schubert 93558a398bSSimon Schubert #define HDA_CMD_GET_PROCESSING_STATE(cad, nid) \ 94558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 95558a398bSSimon Schubert HDA_CMD_VERB_GET_PROCESSING_STATE, 0x0)) 96558a398bSSimon Schubert #define HDA_CMD_SET_PROCESSING_STATE(cad, nid, payload) \ 97558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 98558a398bSSimon Schubert HDA_CMD_VERB_SET_PROCESSING_STATE, (payload))) 99558a398bSSimon Schubert 100558a398bSSimon Schubert #define HDA_CMD_GET_PROCESSING_STATE_STATE_OFF 0x00 101558a398bSSimon Schubert #define HDA_CMD_GET_PROCESSING_STATE_STATE_ON 0x01 102558a398bSSimon Schubert #define HDA_CMD_GET_PROCESSING_STATE_STATE_BENIGN 0x02 103558a398bSSimon Schubert 104558a398bSSimon Schubert /* Coefficient Index */ 105558a398bSSimon Schubert #define HDA_CMD_VERB_GET_COEFF_INDEX 0xd 106558a398bSSimon Schubert #define HDA_CMD_VERB_SET_COEFF_INDEX 0x5 107558a398bSSimon Schubert 108558a398bSSimon Schubert #define HDA_CMD_GET_COEFF_INDEX(cad, nid) \ 109558a398bSSimon Schubert (HDA_CMD_4BIT((cad), (nid), \ 110558a398bSSimon Schubert HDA_CMD_VERB_GET_COEFF_INDEX, 0x0)) 111558a398bSSimon Schubert #define HDA_CMD_SET_COEFF_INDEX(cad, nid, payload) \ 112558a398bSSimon Schubert (HDA_CMD_4BIT((cad), (nid), \ 113558a398bSSimon Schubert HDA_CMD_VERB_SET_COEFF_INDEX, (payload))) 114558a398bSSimon Schubert 115558a398bSSimon Schubert /* Processing Coefficient */ 116558a398bSSimon Schubert #define HDA_CMD_VERB_GET_PROCESSING_COEFF 0xc 117558a398bSSimon Schubert #define HDA_CMD_VERB_SET_PROCESSING_COEFF 0x4 118558a398bSSimon Schubert 119558a398bSSimon Schubert #define HDA_CMD_GET_PROCESSING_COEFF(cad, nid) \ 120558a398bSSimon Schubert (HDA_CMD_4BIT((cad), (nid), \ 121558a398bSSimon Schubert HDA_CMD_VERB_GET_PROCESSING_COEFF, 0x0)) 122558a398bSSimon Schubert #define HDA_CMD_SET_PROCESSING_COEFF(cad, nid, payload) \ 123558a398bSSimon Schubert (HDA_CMD_4BIT((cad), (nid), \ 124558a398bSSimon Schubert HDA_CMD_VERB_SET_PROCESSING_COEFF, (payload))) 125558a398bSSimon Schubert 126558a398bSSimon Schubert /* Amplifier Gain/Mute */ 127558a398bSSimon Schubert #define HDA_CMD_VERB_GET_AMP_GAIN_MUTE 0xb 128558a398bSSimon Schubert #define HDA_CMD_VERB_SET_AMP_GAIN_MUTE 0x3 129558a398bSSimon Schubert 130558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE(cad, nid, payload) \ 131558a398bSSimon Schubert (HDA_CMD_4BIT((cad), (nid), \ 132558a398bSSimon Schubert HDA_CMD_VERB_GET_AMP_GAIN_MUTE, (payload))) 133558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE(cad, nid, payload) \ 134558a398bSSimon Schubert (HDA_CMD_4BIT((cad), (nid), \ 135558a398bSSimon Schubert HDA_CMD_VERB_SET_AMP_GAIN_MUTE, (payload))) 136558a398bSSimon Schubert 137558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_INPUT 0x0000 138558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_OUTPUT 0x8000 139558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_RIGHT 0x0000 140558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_LEFT 0x2000 141558a398bSSimon Schubert 142558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_MASK 0x00000008 143558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_SHIFT 7 144558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_MASK 0x00000007 145558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_SHIFT 0 146558a398bSSimon Schubert 147558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_MUTE(rsp) \ 148558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_MASK) >> \ 149558a398bSSimon Schubert HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_SHIFT) 150558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_GAIN(rsp) \ 151558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_MASK) >> \ 152558a398bSSimon Schubert HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_SHIFT) 153558a398bSSimon Schubert 154558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_OUTPUT 0x8000 155558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_INPUT 0x4000 156558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_LEFT 0x2000 157558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_RIGHT 0x1000 158558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_MASK 0x0f00 159558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_SHIFT 8 160558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_MUTE 0x0080 161558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_MASK 0x0007 162558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_SHIFT 0 163558a398bSSimon Schubert 164558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_INDEX(index) \ 165558a398bSSimon Schubert (((index) << HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_SHIFT) & \ 166558a398bSSimon Schubert HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_MASK) 167558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_GAIN(index) \ 168558a398bSSimon Schubert (((index) << HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_SHIFT) & \ 169558a398bSSimon Schubert HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_MASK) 170558a398bSSimon Schubert 171558a398bSSimon Schubert /* Converter format */ 172558a398bSSimon Schubert #define HDA_CMD_VERB_GET_CONV_FMT 0xa 173558a398bSSimon Schubert #define HDA_CMD_VERB_SET_CONV_FMT 0x2 174558a398bSSimon Schubert 175558a398bSSimon Schubert #define HDA_CMD_GET_CONV_FMT(cad, nid) \ 176558a398bSSimon Schubert (HDA_CMD_4BIT((cad), (nid), \ 177558a398bSSimon Schubert HDA_CMD_VERB_GET_CONV_FMT, 0x0)) 178558a398bSSimon Schubert #define HDA_CMD_SET_CONV_FMT(cad, nid, payload) \ 179558a398bSSimon Schubert (HDA_CMD_4BIT((cad), (nid), \ 180558a398bSSimon Schubert HDA_CMD_VERB_SET_CONV_FMT, (payload))) 181558a398bSSimon Schubert 182558a398bSSimon Schubert /* Digital Converter Control */ 183*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_DIGITAL_CONV_FMT1 0xf0d 184*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_DIGITAL_CONV_FMT2 0xf0e 185558a398bSSimon Schubert #define HDA_CMD_VERB_SET_DIGITAL_CONV_FMT1 0x70d 186558a398bSSimon Schubert #define HDA_CMD_VERB_SET_DIGITAL_CONV_FMT2 0x70e 187558a398bSSimon Schubert 188558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT(cad, nid) \ 189558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 190*2a1ad637SFrançois Tigeot HDA_CMD_VERB_GET_DIGITAL_CONV_FMT1, 0x0)) 191558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1(cad, nid, payload) \ 192558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 193558a398bSSimon Schubert HDA_CMD_VERB_SET_DIGITAL_CONV_FMT1, (payload))) 194558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT2(cad, nid, payload) \ 195558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 196558a398bSSimon Schubert HDA_CMD_VERB_SET_DIGITAL_CONV_FMT2, (payload))) 197558a398bSSimon Schubert 198558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_CC_MASK 0x7f00 199558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_CC_SHIFT 8 200558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_L_MASK 0x0080 201558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_L_SHIFT 7 202558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_MASK 0x0040 203558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_SHIFT 6 204558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_MASK 0x0020 205558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_SHIFT 5 206558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_MASK 0x0010 207558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_SHIFT 4 208558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_MASK 0x0008 209558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_SHIFT 3 210558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_MASK 0x0004 211558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_SHIFT 2 212558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_V_MASK 0x0002 213558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_V_SHIFT 1 214558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_MASK 0x0001 215558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_SHIFT 0 216558a398bSSimon Schubert 217558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_CC(rsp) \ 218558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_CC_MASK) >> \ 219558a398bSSimon Schubert HDA_CMD_GET_DIGITAL_CONV_FMT_CC_SHIFT) 220558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_L(rsp) \ 221558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_L_MASK) >> \ 222558a398bSSimon Schubert HDA_CMD_GET_DIGITAL_CONV_FMT_L_SHIFT) 223558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRO(rsp) \ 224558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_MASK) >> \ 225558a398bSSimon Schubert HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_SHIFT) 226558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO(rsp) \ 227558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_MASK) >> \ 228558a398bSSimon Schubert HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_SHIFT) 229558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_COPY(rsp) \ 230558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_MASK) >> \ 231558a398bSSimon Schubert HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_SHIFT) 232558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRE(rsp) \ 233558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_MASK) >> \ 234558a398bSSimon Schubert HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_SHIFT) 235558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG(rsp) \ 236558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_MASK) >> \ 237558a398bSSimon Schubert HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_SHIFT) 238558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_V(rsp) \ 239558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_V_MASK) >> \ 240558a398bSSimon Schubert HDA_CMD_GET_DIGITAL_CONV_FMT_V_SHIFT) 241558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN(rsp) \ 242558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_MASK) >> \ 243558a398bSSimon Schubert HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_SHIFT) 244558a398bSSimon Schubert 245558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_L 0x80 246558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_PRO 0x40 247558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_NAUDIO 0x20 248558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_COPY 0x10 249558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_PRE 0x08 250558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_VCFG 0x04 251558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_V 0x02 252558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_DIGEN 0x01 253558a398bSSimon Schubert 254558a398bSSimon Schubert /* Power State */ 255558a398bSSimon Schubert #define HDA_CMD_VERB_GET_POWER_STATE 0xf05 256558a398bSSimon Schubert #define HDA_CMD_VERB_SET_POWER_STATE 0x705 257558a398bSSimon Schubert 258558a398bSSimon Schubert #define HDA_CMD_GET_POWER_STATE(cad, nid) \ 259558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 260558a398bSSimon Schubert HDA_CMD_VERB_GET_POWER_STATE, 0x0)) 261558a398bSSimon Schubert #define HDA_CMD_SET_POWER_STATE(cad, nid, payload) \ 262558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 263558a398bSSimon Schubert HDA_CMD_VERB_SET_POWER_STATE, (payload))) 264558a398bSSimon Schubert 265558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_D0 0x00 266558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_D1 0x01 267558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_D2 0x02 268558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_D3 0x03 269558a398bSSimon Schubert 270558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_ACT_MASK 0x000000f0 271558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_ACT_SHIFT 4 272558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_SET_MASK 0x0000000f 273558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_SET_SHIFT 0 274558a398bSSimon Schubert 275558a398bSSimon Schubert #define HDA_CMD_GET_POWER_STATE_ACT(rsp) \ 276558a398bSSimon Schubert (((rsp) & HDA_CMD_POWER_STATE_ACT_MASK) >> \ 277558a398bSSimon Schubert HDA_CMD_POWER_STATE_ACT_SHIFT) 278558a398bSSimon Schubert #define HDA_CMD_GET_POWER_STATE_SET(rsp) \ 279558a398bSSimon Schubert (((rsp) & HDA_CMD_POWER_STATE_SET_MASK) >> \ 280558a398bSSimon Schubert HDA_CMD_POWER_STATE_SET_SHIFT) 281558a398bSSimon Schubert 282558a398bSSimon Schubert #define HDA_CMD_SET_POWER_STATE_ACT(ps) \ 283558a398bSSimon Schubert (((ps) << HDA_CMD_POWER_STATE_ACT_SHIFT) & \ 284558a398bSSimon Schubert HDA_CMD_POWER_STATE_ACT_MASK) 285558a398bSSimon Schubert #define HDA_CMD_SET_POWER_STATE_SET(ps) \ 286558a398bSSimon Schubert (((ps) << HDA_CMD_POWER_STATE_SET_SHIFT) & \ 287558a398bSSimon Schubert HDA_CMD_POWER_STATE_ACT_MASK) 288558a398bSSimon Schubert 289558a398bSSimon Schubert /* Converter Stream, Channel */ 290558a398bSSimon Schubert #define HDA_CMD_VERB_GET_CONV_STREAM_CHAN 0xf06 291558a398bSSimon Schubert #define HDA_CMD_VERB_SET_CONV_STREAM_CHAN 0x706 292558a398bSSimon Schubert 293558a398bSSimon Schubert #define HDA_CMD_GET_CONV_STREAM_CHAN(cad, nid) \ 294558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 295558a398bSSimon Schubert HDA_CMD_VERB_GET_CONV_STREAM_CHAN, 0x0)) 296558a398bSSimon Schubert #define HDA_CMD_SET_CONV_STREAM_CHAN(cad, nid, payload) \ 297558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 298558a398bSSimon Schubert HDA_CMD_VERB_SET_CONV_STREAM_CHAN, (payload))) 299558a398bSSimon Schubert 300558a398bSSimon Schubert #define HDA_CMD_CONV_STREAM_CHAN_STREAM_MASK 0x000000f0 301558a398bSSimon Schubert #define HDA_CMD_CONV_STREAM_CHAN_STREAM_SHIFT 4 302558a398bSSimon Schubert #define HDA_CMD_CONV_STREAM_CHAN_CHAN_MASK 0x0000000f 303558a398bSSimon Schubert #define HDA_CMD_CONV_STREAM_CHAN_CHAN_SHIFT 0 304558a398bSSimon Schubert 305558a398bSSimon Schubert #define HDA_CMD_GET_CONV_STREAM_CHAN_STREAM(rsp) \ 306558a398bSSimon Schubert (((rsp) & HDA_CMD_CONV_STREAM_CHAN_STREAM_MASK) >> \ 307558a398bSSimon Schubert HDA_CMD_CONV_STREAM_CHAN_STREAM_SHIFT) 308558a398bSSimon Schubert #define HDA_CMD_GET_CONV_STREAM_CHAN_CHAN(rsp) \ 309558a398bSSimon Schubert (((rsp) & HDA_CMD_CONV_STREAM_CHAN_CHAN_MASK) >> \ 310558a398bSSimon Schubert HDA_CMD_CONV_STREAM_CHAN_CHAN_SHIFT) 311558a398bSSimon Schubert 312558a398bSSimon Schubert #define HDA_CMD_SET_CONV_STREAM_CHAN_STREAM(param) \ 313558a398bSSimon Schubert (((param) << HDA_CMD_CONV_STREAM_CHAN_STREAM_SHIFT) & \ 314558a398bSSimon Schubert HDA_CMD_CONV_STREAM_CHAN_STREAM_MASK) 315558a398bSSimon Schubert #define HDA_CMD_SET_CONV_STREAM_CHAN_CHAN(param) \ 316558a398bSSimon Schubert (((param) << HDA_CMD_CONV_STREAM_CHAN_CHAN_SHIFT) & \ 317558a398bSSimon Schubert HDA_CMD_CONV_STREAM_CHAN_CHAN_MASK) 318558a398bSSimon Schubert 319558a398bSSimon Schubert /* Input Converter SDI Select */ 320558a398bSSimon Schubert #define HDA_CMD_VERB_GET_INPUT_CONVERTER_SDI_SELECT 0xf04 321558a398bSSimon Schubert #define HDA_CMD_VERB_SET_INPUT_CONVERTER_SDI_SELECT 0x704 322558a398bSSimon Schubert 323558a398bSSimon Schubert #define HDA_CMD_GET_INPUT_CONVERTER_SDI_SELECT(cad, nid) \ 324558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 325558a398bSSimon Schubert HDA_CMD_VERB_GET_INPUT_CONVERTER_SDI_SELECT, 0x0)) 326558a398bSSimon Schubert #define HDA_CMD_SET_INPUT_CONVERTER_SDI_SELECT(cad, nid, payload) \ 327558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 328558a398bSSimon Schubert HDA_CMD_VERB_SET_INPUT_CONVERTER_SDI_SELECT, (payload))) 329558a398bSSimon Schubert 330558a398bSSimon Schubert /* Pin Widget Control */ 331558a398bSSimon Schubert #define HDA_CMD_VERB_GET_PIN_WIDGET_CTRL 0xf07 332558a398bSSimon Schubert #define HDA_CMD_VERB_SET_PIN_WIDGET_CTRL 0x707 333558a398bSSimon Schubert 334558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL(cad, nid) \ 335558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 336558a398bSSimon Schubert HDA_CMD_VERB_GET_PIN_WIDGET_CTRL, 0x0)) 337558a398bSSimon Schubert #define HDA_CMD_SET_PIN_WIDGET_CTRL(cad, nid, payload) \ 338558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 339558a398bSSimon Schubert HDA_CMD_VERB_SET_PIN_WIDGET_CTRL, (payload))) 340558a398bSSimon Schubert 341558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_MASK 0x00000080 342558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_SHIFT 7 343558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE_MASK 0x00000040 344558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE_SHIFT 6 345558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_MASK 0x00000020 346558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_SHIFT 5 347558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK 0x00000007 348558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT 0 349558a398bSSimon Schubert 350558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE(rsp) \ 351558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_MASK) >> \ 352558a398bSSimon Schubert HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_SHIFT) 353558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE(rsp) \ 354558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE_MASK) >> \ 355558a398bSSimon Schubert HDA_GET_CMD_PIN_WIDGET_CTRL_OUT_ENABLE_SHIFT) 356558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE(rsp) \ 357558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_MASK) >> \ 358558a398bSSimon Schubert HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_SHIFT) 359558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE(rsp) \ 360558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK) >> \ 361558a398bSSimon Schubert HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT) 362558a398bSSimon Schubert 363558a398bSSimon Schubert #define HDA_CMD_SET_PIN_WIDGET_CTRL_HPHN_ENABLE 0x80 364558a398bSSimon Schubert #define HDA_CMD_SET_PIN_WIDGET_CTRL_OUT_ENABLE 0x40 365558a398bSSimon Schubert #define HDA_CMD_SET_PIN_WIDGET_CTRL_IN_ENABLE 0x20 366558a398bSSimon Schubert #define HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK 0x07 367558a398bSSimon Schubert #define HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT 0 368558a398bSSimon Schubert 369558a398bSSimon Schubert #define HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE(param) \ 370558a398bSSimon Schubert (((param) << HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT) & \ 371558a398bSSimon Schubert HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK) 372558a398bSSimon Schubert 373558a398bSSimon Schubert #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_HIZ 0 374558a398bSSimon Schubert #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_50 1 375558a398bSSimon Schubert #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_GROUND 2 376558a398bSSimon Schubert #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_80 4 377558a398bSSimon Schubert #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_100 5 378558a398bSSimon Schubert 379558a398bSSimon Schubert /* Unsolicited Response */ 380558a398bSSimon Schubert #define HDA_CMD_VERB_GET_UNSOLICITED_RESPONSE 0xf08 381558a398bSSimon Schubert #define HDA_CMD_VERB_SET_UNSOLICITED_RESPONSE 0x708 382558a398bSSimon Schubert 383558a398bSSimon Schubert #define HDA_CMD_GET_UNSOLICITED_RESPONSE(cad, nid) \ 384558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 385558a398bSSimon Schubert HDA_CMD_VERB_GET_UNSOLICITED_RESPONSE, 0x0)) 386558a398bSSimon Schubert #define HDA_CMD_SET_UNSOLICITED_RESPONSE(cad, nid, payload) \ 387558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 388558a398bSSimon Schubert HDA_CMD_VERB_SET_UNSOLICITED_RESPONSE, (payload))) 389558a398bSSimon Schubert 390558a398bSSimon Schubert #define HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_MASK 0x00000080 391558a398bSSimon Schubert #define HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_SHIFT 7 392558a398bSSimon Schubert #define HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_MASK 0x0000001f 393558a398bSSimon Schubert #define HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_SHIFT 0 394558a398bSSimon Schubert 395558a398bSSimon Schubert #define HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE(rsp) \ 396558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_MASK) >> \ 397558a398bSSimon Schubert HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_SHIFT) 398558a398bSSimon Schubert #define HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG(rsp) \ 399558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_MASK) >> \ 400558a398bSSimon Schubert HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_SHIFT) 401558a398bSSimon Schubert 402558a398bSSimon Schubert #define HDA_CMD_SET_UNSOLICITED_RESPONSE_ENABLE 0x80 403*2a1ad637SFrançois Tigeot #define HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_MASK 0x3f 404558a398bSSimon Schubert #define HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_SHIFT 0 405558a398bSSimon Schubert 406558a398bSSimon Schubert #define HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG(param) \ 407558a398bSSimon Schubert (((param) << HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_SHIFT) & \ 408558a398bSSimon Schubert HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_MASK) 409558a398bSSimon Schubert 410558a398bSSimon Schubert /* Pin Sense */ 411558a398bSSimon Schubert #define HDA_CMD_VERB_GET_PIN_SENSE 0xf09 412558a398bSSimon Schubert #define HDA_CMD_VERB_SET_PIN_SENSE 0x709 413558a398bSSimon Schubert 414558a398bSSimon Schubert #define HDA_CMD_GET_PIN_SENSE(cad, nid) \ 415558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 416558a398bSSimon Schubert HDA_CMD_VERB_GET_PIN_SENSE, 0x0)) 417558a398bSSimon Schubert #define HDA_CMD_SET_PIN_SENSE(cad, nid, payload) \ 418558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 419558a398bSSimon Schubert HDA_CMD_VERB_SET_PIN_SENSE, (payload))) 420558a398bSSimon Schubert 421*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_PIN_SENSE_PRESENCE_DETECT 0x80000000 422*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_PIN_SENSE_ELD_VALID 0x40000000 423558a398bSSimon Schubert #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE_MASK 0x7fffffff 424558a398bSSimon Schubert #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE_SHIFT 0 425558a398bSSimon Schubert 426558a398bSSimon Schubert #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE(rsp) \ 427558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_PIN_SENSE_IMP_SENSE_MASK) >> \ 428558a398bSSimon Schubert HDA_CMD_GET_PIN_SENSE_IMP_SENSE_SHIFT) 429558a398bSSimon Schubert 430558a398bSSimon Schubert #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE_INVALID 0x7fffffff 431558a398bSSimon Schubert 432558a398bSSimon Schubert #define HDA_CMD_SET_PIN_SENSE_LEFT_CHANNEL 0x00 433558a398bSSimon Schubert #define HDA_CMD_SET_PIN_SENSE_RIGHT_CHANNEL 0x01 434558a398bSSimon Schubert 435558a398bSSimon Schubert /* EAPD/BTL Enable */ 436558a398bSSimon Schubert #define HDA_CMD_VERB_GET_EAPD_BTL_ENABLE 0xf0c 437558a398bSSimon Schubert #define HDA_CMD_VERB_SET_EAPD_BTL_ENABLE 0x70c 438558a398bSSimon Schubert 439558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE(cad, nid) \ 440558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 441558a398bSSimon Schubert HDA_CMD_VERB_GET_EAPD_BTL_ENABLE, 0x0)) 442558a398bSSimon Schubert #define HDA_CMD_SET_EAPD_BTL_ENABLE(cad, nid, payload) \ 443558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 444558a398bSSimon Schubert HDA_CMD_VERB_SET_EAPD_BTL_ENABLE, (payload))) 445558a398bSSimon Schubert 446558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_MASK 0x00000004 447558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_SHIFT 2 448558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_MASK 0x00000002 449558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_SHIFT 1 450558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_MASK 0x00000001 451558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_SHIFT 0 452558a398bSSimon Schubert 453558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP(rsp) \ 454558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_MASK) >> \ 455558a398bSSimon Schubert HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_SHIFT) 456558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD(rsp) \ 457558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_MASK) >> \ 458558a398bSSimon Schubert HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_SHIFT) 459558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_BTL(rsp) \ 460558a398bSSimon Schubert (((rsp) & HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_MASK) >> \ 461558a398bSSimon Schubert HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_SHIFT) 462558a398bSSimon Schubert 463558a398bSSimon Schubert #define HDA_CMD_SET_EAPD_BTL_ENABLE_LR_SWAP 0x04 464558a398bSSimon Schubert #define HDA_CMD_SET_EAPD_BTL_ENABLE_EAPD 0x02 465558a398bSSimon Schubert #define HDA_CMD_SET_EAPD_BTL_ENABLE_BTL 0x01 466558a398bSSimon Schubert 467558a398bSSimon Schubert /* GPI Data */ 468558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPI_DATA 0xf10 469558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPI_DATA 0x710 470558a398bSSimon Schubert 471558a398bSSimon Schubert #define HDA_CMD_GET_GPI_DATA(cad, nid) \ 472558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 473558a398bSSimon Schubert HDA_CMD_VERB_GET_GPI_DATA, 0x0)) 474558a398bSSimon Schubert #define HDA_CMD_SET_GPI_DATA(cad, nid) \ 475558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 476558a398bSSimon Schubert HDA_CMD_VERB_SET_GPI_DATA, (payload))) 477558a398bSSimon Schubert 478558a398bSSimon Schubert /* GPI Wake Enable Mask */ 479558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPI_WAKE_ENABLE_MASK 0xf11 480558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPI_WAKE_ENABLE_MASK 0x711 481558a398bSSimon Schubert 482558a398bSSimon Schubert #define HDA_CMD_GET_GPI_WAKE_ENABLE_MASK(cad, nid) \ 483558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 484558a398bSSimon Schubert HDA_CMD_VERB_GET_GPI_WAKE_ENABLE_MASK, 0x0)) 485558a398bSSimon Schubert #define HDA_CMD_SET_GPI_WAKE_ENABLE_MASK(cad, nid, payload) \ 486558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 487558a398bSSimon Schubert HDA_CMD_VERB_SET_GPI_WAKE_ENABLE_MASK, (payload))) 488558a398bSSimon Schubert 489558a398bSSimon Schubert /* GPI Unsolicited Enable Mask */ 490558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPI_UNSOLICITED_ENABLE_MASK 0xf12 491558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPI_UNSOLICITED_ENABLE_MASK 0x712 492558a398bSSimon Schubert 493558a398bSSimon Schubert #define HDA_CMD_GET_GPI_UNSOLICITED_ENABLE_MASK(cad, nid) \ 494558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 495558a398bSSimon Schubert HDA_CMD_VERB_GET_GPI_UNSOLICITED_ENABLE_MASK, 0x0)) 496558a398bSSimon Schubert #define HDA_CMD_SET_GPI_UNSOLICITED_ENABLE_MASK(cad, nid, payload) \ 497558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 498558a398bSSimon Schubert HDA_CMD_VERB_SET_GPI_UNSOLICITED_ENABLE_MASK, (payload))) 499558a398bSSimon Schubert 500558a398bSSimon Schubert /* GPI Sticky Mask */ 501558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPI_STICKY_MASK 0xf13 502558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPI_STICKY_MASK 0x713 503558a398bSSimon Schubert 504558a398bSSimon Schubert #define HDA_CMD_GET_GPI_STICKY_MASK(cad, nid) \ 505558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 506558a398bSSimon Schubert HDA_CMD_VERB_GET_GPI_STICKY_MASK, 0x0)) 507558a398bSSimon Schubert #define HDA_CMD_SET_GPI_STICKY_MASK(cad, nid, payload) \ 508558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 509558a398bSSimon Schubert HDA_CMD_VERB_SET_GPI_STICKY_MASK, (payload))) 510558a398bSSimon Schubert 511558a398bSSimon Schubert /* GPO Data */ 512558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPO_DATA 0xf14 513558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPO_DATA 0x714 514558a398bSSimon Schubert 515558a398bSSimon Schubert #define HDA_CMD_GET_GPO_DATA(cad, nid) \ 516558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 517558a398bSSimon Schubert HDA_CMD_VERB_GET_GPO_DATA, 0x0)) 518558a398bSSimon Schubert #define HDA_CMD_SET_GPO_DATA(cad, nid, payload) \ 519558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 520558a398bSSimon Schubert HDA_CMD_VERB_SET_GPO_DATA, (payload))) 521558a398bSSimon Schubert 522558a398bSSimon Schubert /* GPIO Data */ 523558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPIO_DATA 0xf15 524558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPIO_DATA 0x715 525558a398bSSimon Schubert 526558a398bSSimon Schubert #define HDA_CMD_GET_GPIO_DATA(cad, nid) \ 527558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 528558a398bSSimon Schubert HDA_CMD_VERB_GET_GPIO_DATA, 0x0)) 529558a398bSSimon Schubert #define HDA_CMD_SET_GPIO_DATA(cad, nid, payload) \ 530558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 531558a398bSSimon Schubert HDA_CMD_VERB_SET_GPIO_DATA, (payload))) 532558a398bSSimon Schubert 533558a398bSSimon Schubert /* GPIO Enable Mask */ 534558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPIO_ENABLE_MASK 0xf16 535558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPIO_ENABLE_MASK 0x716 536558a398bSSimon Schubert 537558a398bSSimon Schubert #define HDA_CMD_GET_GPIO_ENABLE_MASK(cad, nid) \ 538558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 539558a398bSSimon Schubert HDA_CMD_VERB_GET_GPIO_ENABLE_MASK, 0x0)) 540558a398bSSimon Schubert #define HDA_CMD_SET_GPIO_ENABLE_MASK(cad, nid, payload) \ 541558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 542558a398bSSimon Schubert HDA_CMD_VERB_SET_GPIO_ENABLE_MASK, (payload))) 543558a398bSSimon Schubert 544558a398bSSimon Schubert /* GPIO Direction */ 545558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPIO_DIRECTION 0xf17 546558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPIO_DIRECTION 0x717 547558a398bSSimon Schubert 548558a398bSSimon Schubert #define HDA_CMD_GET_GPIO_DIRECTION(cad, nid) \ 549558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 550558a398bSSimon Schubert HDA_CMD_VERB_GET_GPIO_DIRECTION, 0x0)) 551558a398bSSimon Schubert #define HDA_CMD_SET_GPIO_DIRECTION(cad, nid, payload) \ 552558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 553558a398bSSimon Schubert HDA_CMD_VERB_SET_GPIO_DIRECTION, (payload))) 554558a398bSSimon Schubert 555558a398bSSimon Schubert /* GPIO Wake Enable Mask */ 556558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPIO_WAKE_ENABLE_MASK 0xf18 557558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPIO_WAKE_ENABLE_MASK 0x718 558558a398bSSimon Schubert 559558a398bSSimon Schubert #define HDA_CMD_GET_GPIO_WAKE_ENABLE_MASK(cad, nid) \ 560558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 561558a398bSSimon Schubert HDA_CMD_VERB_GET_GPIO_WAKE_ENABLE_MASK, 0x0)) 562558a398bSSimon Schubert #define HDA_CMD_SET_GPIO_WAKE_ENABLE_MASK(cad, nid, payload) \ 563558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 564558a398bSSimon Schubert HDA_CMD_VERB_SET_GPIO_WAKE_ENABLE_MASK, (payload))) 565558a398bSSimon Schubert 566558a398bSSimon Schubert /* GPIO Unsolicited Enable Mask */ 567558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPIO_UNSOLICITED_ENABLE_MASK 0xf19 568558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPIO_UNSOLICITED_ENABLE_MASK 0x719 569558a398bSSimon Schubert 570558a398bSSimon Schubert #define HDA_CMD_GET_GPIO_UNSOLICITED_ENABLE_MASK(cad, nid) \ 571558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 572558a398bSSimon Schubert HDA_CMD_VERB_GET_GPIO_UNSOLICITED_ENABLE_MASK, 0x0)) 573558a398bSSimon Schubert #define HDA_CMD_SET_GPIO_UNSOLICITED_ENABLE_MASK(cad, nid, payload) \ 574558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 575558a398bSSimon Schubert HDA_CMD_VERB_SET_GPIO_UNSOLICITED_ENABLE_MASK, (payload))) 576558a398bSSimon Schubert 577558a398bSSimon Schubert /* GPIO_STICKY_MASK */ 578558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPIO_STICKY_MASK 0xf1a 579558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPIO_STICKY_MASK 0x71a 580558a398bSSimon Schubert 581558a398bSSimon Schubert #define HDA_CMD_GET_GPIO_STICKY_MASK(cad, nid) \ 582558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 583558a398bSSimon Schubert HDA_CMD_VERB_GET_GPIO_STICKY_MASK, 0x0)) 584558a398bSSimon Schubert #define HDA_CMD_SET_GPIO_STICKY_MASK(cad, nid, payload) \ 585558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 586558a398bSSimon Schubert HDA_CMD_VERB_SET_GPIO_STICKY_MASK, (payload))) 587558a398bSSimon Schubert 588558a398bSSimon Schubert /* Beep Generation */ 589558a398bSSimon Schubert #define HDA_CMD_VERB_GET_BEEP_GENERATION 0xf0a 590558a398bSSimon Schubert #define HDA_CMD_VERB_SET_BEEP_GENERATION 0x70a 591558a398bSSimon Schubert 592558a398bSSimon Schubert #define HDA_CMD_GET_BEEP_GENERATION(cad, nid) \ 593558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 594558a398bSSimon Schubert HDA_CMD_VERB_GET_BEEP_GENERATION, 0x0)) 595558a398bSSimon Schubert #define HDA_CMD_SET_BEEP_GENERATION(cad, nid, payload) \ 596558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 597558a398bSSimon Schubert HDA_CMD_VERB_SET_BEEP_GENERATION, (payload))) 598558a398bSSimon Schubert 599558a398bSSimon Schubert /* Volume Knob */ 600558a398bSSimon Schubert #define HDA_CMD_VERB_GET_VOLUME_KNOB 0xf0f 601558a398bSSimon Schubert #define HDA_CMD_VERB_SET_VOLUME_KNOB 0x70f 602558a398bSSimon Schubert 603558a398bSSimon Schubert #define HDA_CMD_GET_VOLUME_KNOB(cad, nid) \ 604558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 605558a398bSSimon Schubert HDA_CMD_VERB_GET_VOLUME_KNOB, 0x0)) 606558a398bSSimon Schubert #define HDA_CMD_SET_VOLUME_KNOB(cad, nid, payload) \ 607558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 608558a398bSSimon Schubert HDA_CMD_VERB_SET_VOLUME_KNOB, (payload))) 609558a398bSSimon Schubert 610558a398bSSimon Schubert /* Subsystem ID */ 611558a398bSSimon Schubert #define HDA_CMD_VERB_GET_SUBSYSTEM_ID 0xf20 612558a398bSSimon Schubert #define HDA_CMD_VERB_SET_SUSBYSTEM_ID1 0x720 613558a398bSSimon Schubert #define HDA_CMD_VERB_SET_SUBSYSTEM_ID2 0x721 614558a398bSSimon Schubert #define HDA_CMD_VERB_SET_SUBSYSTEM_ID3 0x722 615558a398bSSimon Schubert #define HDA_CMD_VERB_SET_SUBSYSTEM_ID4 0x723 616558a398bSSimon Schubert 617558a398bSSimon Schubert #define HDA_CMD_GET_SUBSYSTEM_ID(cad, nid) \ 618558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 619558a398bSSimon Schubert HDA_CMD_VERB_GET_SUBSYSTEM_ID, 0x0)) 620558a398bSSimon Schubert #define HDA_CMD_SET_SUBSYSTEM_ID1(cad, nid, payload) \ 621558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 622558a398bSSimon Schubert HDA_CMD_VERB_SET_SUSBYSTEM_ID1, (payload))) 623558a398bSSimon Schubert #define HDA_CMD_SET_SUBSYSTEM_ID2(cad, nid, payload) \ 624558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 625558a398bSSimon Schubert HDA_CMD_VERB_SET_SUSBYSTEM_ID2, (payload))) 626558a398bSSimon Schubert #define HDA_CMD_SET_SUBSYSTEM_ID3(cad, nid, payload) \ 627558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 628558a398bSSimon Schubert HDA_CMD_VERB_SET_SUSBYSTEM_ID3, (payload))) 629558a398bSSimon Schubert #define HDA_CMD_SET_SUBSYSTEM_ID4(cad, nid, payload) \ 630558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 631558a398bSSimon Schubert HDA_CMD_VERB_SET_SUSBYSTEM_ID4, (payload))) 632558a398bSSimon Schubert 633558a398bSSimon Schubert /* Configuration Default */ 634558a398bSSimon Schubert #define HDA_CMD_VERB_GET_CONFIGURATION_DEFAULT 0xf1c 635558a398bSSimon Schubert #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT1 0x71c 636558a398bSSimon Schubert #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT2 0x71d 637558a398bSSimon Schubert #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT3 0x71e 638558a398bSSimon Schubert #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT4 0x71f 639558a398bSSimon Schubert 640558a398bSSimon Schubert #define HDA_CMD_GET_CONFIGURATION_DEFAULT(cad, nid) \ 641558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 642558a398bSSimon Schubert HDA_CMD_VERB_GET_CONFIGURATION_DEFAULT, 0x0)) 643558a398bSSimon Schubert #define HDA_CMD_SET_CONFIGURATION_DEFAULT1(cad, nid, payload) \ 644558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 645558a398bSSimon Schubert HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT1, (payload))) 646558a398bSSimon Schubert #define HDA_CMD_SET_CONFIGURATION_DEFAULT2(cad, nid, payload) \ 647558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 648558a398bSSimon Schubert HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT2, (payload))) 649558a398bSSimon Schubert #define HDA_CMD_SET_CONFIGURATION_DEFAULT3(cad, nid, payload) \ 650558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 651558a398bSSimon Schubert HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT3, (payload))) 652558a398bSSimon Schubert #define HDA_CMD_SET_CONFIGURATION_DEFAULT4(cad, nid, payload) \ 653558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 654558a398bSSimon Schubert HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT4, (payload))) 655558a398bSSimon Schubert 656558a398bSSimon Schubert /* Stripe Control */ 657558a398bSSimon Schubert #define HDA_CMD_VERB_GET_STRIPE_CONTROL 0xf24 658558a398bSSimon Schubert #define HDA_CMD_VERB_SET_STRIPE_CONTROL 0x724 659558a398bSSimon Schubert 660*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_STRIPE_CONTROL(cad, nid) \ 661558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 662558a398bSSimon Schubert HDA_CMD_VERB_GET_STRIPE_CONTROL, 0x0)) 663*2a1ad637SFrançois Tigeot #define HDA_CMD_SET_STRIPE_CONTROL(cad, nid, payload) \ 664558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 665558a398bSSimon Schubert HDA_CMD_VERB_SET_STRIPE_CONTROL, (payload))) 666558a398bSSimon Schubert 667*2a1ad637SFrançois Tigeot /* Channel Count Control */ 668*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_CONV_CHAN_COUNT 0xf2d 669*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_SET_CONV_CHAN_COUNT 0x72d 670*2a1ad637SFrançois Tigeot 671*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_CONV_CHAN_COUNT(cad, nid) \ 672*2a1ad637SFrançois Tigeot (HDA_CMD_12BIT((cad), (nid), \ 673*2a1ad637SFrançois Tigeot HDA_CMD_VERB_GET_CONV_CHAN_COUNT, 0x0)) 674*2a1ad637SFrançois Tigeot #define HDA_CMD_SET_CONV_CHAN_COUNT(cad, nid, payload) \ 675*2a1ad637SFrançois Tigeot (HDA_CMD_12BIT((cad), (nid), \ 676*2a1ad637SFrançois Tigeot HDA_CMD_VERB_SET_CONV_CHAN_COUNT, (payload))) 677*2a1ad637SFrançois Tigeot 678*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_HDMI_DIP_SIZE 0xf2e 679*2a1ad637SFrançois Tigeot 680*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_HDMI_DIP_SIZE(cad, nid, arg) \ 681*2a1ad637SFrançois Tigeot (HDA_CMD_12BIT((cad), (nid), \ 682*2a1ad637SFrançois Tigeot HDA_CMD_VERB_GET_HDMI_DIP_SIZE, (arg))) 683*2a1ad637SFrançois Tigeot 684*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_HDMI_ELDD 0xf2f 685*2a1ad637SFrançois Tigeot 686*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_HDMI_ELDD(cad, nid, off) \ 687*2a1ad637SFrançois Tigeot (HDA_CMD_12BIT((cad), (nid), \ 688*2a1ad637SFrançois Tigeot HDA_CMD_VERB_GET_HDMI_ELDD, (off))) 689*2a1ad637SFrançois Tigeot 690*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_HDMI_DIP_INDEX 0xf30 691*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_SET_HDMI_DIP_INDEX 0x730 692*2a1ad637SFrançois Tigeot 693*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_HDMI_DIP_INDEX(cad, nid) \ 694*2a1ad637SFrançois Tigeot (HDA_CMD_12BIT((cad), (nid), \ 695*2a1ad637SFrançois Tigeot HDA_CMD_VERB_GET_HDMI_DIP_INDEX, 0x0)) 696*2a1ad637SFrançois Tigeot #define HDA_CMD_SET_HDMI_DIP_INDEX(cad, nid, payload) \ 697*2a1ad637SFrançois Tigeot (HDA_CMD_12BIT((cad), (nid), \ 698*2a1ad637SFrançois Tigeot HDA_CMD_VERB_SET_HDMI_DIP_INDEX, (payload))) 699*2a1ad637SFrançois Tigeot 700*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_HDMI_DIP_DATA 0xf31 701*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_SET_HDMI_DIP_DATA 0x731 702*2a1ad637SFrançois Tigeot 703*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_HDMI_DIP_DATA(cad, nid) \ 704*2a1ad637SFrançois Tigeot (HDA_CMD_12BIT((cad), (nid), \ 705*2a1ad637SFrançois Tigeot HDA_CMD_VERB_GET_HDMI_DIP_DATA, 0x0)) 706*2a1ad637SFrançois Tigeot #define HDA_CMD_SET_HDMI_DIP_DATA(cad, nid, payload) \ 707*2a1ad637SFrançois Tigeot (HDA_CMD_12BIT((cad), (nid), \ 708*2a1ad637SFrançois Tigeot HDA_CMD_VERB_SET_HDMI_DIP_DATA, (payload))) 709*2a1ad637SFrançois Tigeot 710*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_HDMI_DIP_XMIT 0xf32 711*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_SET_HDMI_DIP_XMIT 0x732 712*2a1ad637SFrançois Tigeot 713*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_HDMI_DIP_XMIT(cad, nid) \ 714*2a1ad637SFrançois Tigeot (HDA_CMD_12BIT((cad), (nid), \ 715*2a1ad637SFrançois Tigeot HDA_CMD_VERB_GET_HDMI_DIP_XMIT, 0x0)) 716*2a1ad637SFrançois Tigeot #define HDA_CMD_SET_HDMI_DIP_XMIT(cad, nid, payload) \ 717*2a1ad637SFrançois Tigeot (HDA_CMD_12BIT((cad), (nid), \ 718*2a1ad637SFrançois Tigeot HDA_CMD_VERB_SET_HDMI_DIP_XMIT, (payload))) 719*2a1ad637SFrançois Tigeot 720*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_HDMI_CP_CTRL 0xf33 721*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_SET_HDMI_CP_CTRL 0x733 722*2a1ad637SFrançois Tigeot 723*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_HDMI_CHAN_SLOT 0xf34 724*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_SET_HDMI_CHAN_SLOT 0x734 725*2a1ad637SFrançois Tigeot 726*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_HDMI_CHAN_SLOT(cad, nid) \ 727*2a1ad637SFrançois Tigeot (HDA_CMD_12BIT((cad), (nid), \ 728*2a1ad637SFrançois Tigeot HDA_CMD_VERB_GET_HDMI_CHAN_SLOT, 0x0)) 729*2a1ad637SFrançois Tigeot #define HDA_CMD_SET_HDMI_CHAN_SLOT(cad, nid, payload) \ 730*2a1ad637SFrançois Tigeot (HDA_CMD_12BIT((cad), (nid), \ 731*2a1ad637SFrançois Tigeot HDA_CMD_VERB_SET_HDMI_CHAN_SLOT, (payload))) 732*2a1ad637SFrançois Tigeot 733*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_REF_STREAM_HEADER 0 734*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_LPCM 1 735*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_AC3 2 736*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_MPEG1 3 737*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_MP3 4 738*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_MPEG2 5 739*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_AACLC 6 740*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_DTS 7 741*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_ATRAC 8 742*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_SACD 9 743*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_EAC3 10 744*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_DTS_HD 11 745*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_MLP 12 746*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_DST 13 747*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_WMAPRO 14 748*2a1ad637SFrançois Tigeot #define HDA_HDMI_CODING_TYPE_REF_CTX 15 749*2a1ad637SFrançois Tigeot 750558a398bSSimon Schubert /* Function Reset */ 751558a398bSSimon Schubert #define HDA_CMD_VERB_FUNCTION_RESET 0x7ff 752558a398bSSimon Schubert 753558a398bSSimon Schubert #define HDA_CMD_FUNCTION_RESET(cad, nid) \ 754558a398bSSimon Schubert (HDA_CMD_12BIT((cad), (nid), \ 755558a398bSSimon Schubert HDA_CMD_VERB_FUNCTION_RESET, 0x0)) 756558a398bSSimon Schubert 757558a398bSSimon Schubert 758558a398bSSimon Schubert /**************************************************************************** 759558a398bSSimon Schubert * HDA Device Parameters 760558a398bSSimon Schubert ****************************************************************************/ 761558a398bSSimon Schubert 762558a398bSSimon Schubert /* Vendor ID */ 763558a398bSSimon Schubert #define HDA_PARAM_VENDOR_ID 0x00 764558a398bSSimon Schubert 765558a398bSSimon Schubert #define HDA_PARAM_VENDOR_ID_VENDOR_ID_MASK 0xffff0000 766558a398bSSimon Schubert #define HDA_PARAM_VENDOR_ID_VENDOR_ID_SHIFT 16 767558a398bSSimon Schubert #define HDA_PARAM_VENDOR_ID_DEVICE_ID_MASK 0x0000ffff 768558a398bSSimon Schubert #define HDA_PARAM_VENDOR_ID_DEVICE_ID_SHIFT 0 769558a398bSSimon Schubert 770558a398bSSimon Schubert #define HDA_PARAM_VENDOR_ID_VENDOR_ID(param) \ 771558a398bSSimon Schubert (((param) & HDA_PARAM_VENDOR_ID_VENDOR_ID_MASK) >> \ 772558a398bSSimon Schubert HDA_PARAM_VENDOR_ID_VENDOR_ID_SHIFT) 773558a398bSSimon Schubert #define HDA_PARAM_VENDOR_ID_DEVICE_ID(param) \ 774558a398bSSimon Schubert (((param) & HDA_PARAM_VENDOR_ID_DEVICE_ID_MASK) >> \ 775558a398bSSimon Schubert HDA_PARAM_VENDOR_ID_DEVICE_ID_SHIFT) 776558a398bSSimon Schubert 777558a398bSSimon Schubert /* Revision ID */ 778558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID 0x02 779558a398bSSimon Schubert 780558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_MAJREV_MASK 0x00f00000 781558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_MAJREV_SHIFT 20 782558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_MINREV_MASK 0x000f0000 783558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_MINREV_SHIFT 16 784558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_REVISION_ID_MASK 0x0000ff00 785558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_REVISION_ID_SHIFT 8 786558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_STEPPING_ID_MASK 0x000000ff 787558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_STEPPING_ID_SHIFT 0 788558a398bSSimon Schubert 789558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_MAJREV(param) \ 790558a398bSSimon Schubert (((param) & HDA_PARAM_REVISION_ID_MAJREV_MASK) >> \ 791558a398bSSimon Schubert HDA_PARAM_REVISION_ID_MAJREV_SHIFT) 792558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_MINREV(param) \ 793558a398bSSimon Schubert (((param) & HDA_PARAM_REVISION_ID_MINREV_MASK) >> \ 794558a398bSSimon Schubert HDA_PARAM_REVISION_ID_MINREV_SHIFT) 795558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_REVISION_ID(param) \ 796558a398bSSimon Schubert (((param) & HDA_PARAM_REVISION_ID_REVISION_ID_MASK) >> \ 797558a398bSSimon Schubert HDA_PARAM_REVISION_ID_REVISION_ID_SHIFT) 798558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_STEPPING_ID(param) \ 799558a398bSSimon Schubert (((param) & HDA_PARAM_REVISION_ID_STEPPING_ID_MASK) >> \ 800558a398bSSimon Schubert HDA_PARAM_REVISION_ID_STEPPING_ID_SHIFT) 801558a398bSSimon Schubert 802*2a1ad637SFrançois Tigeot /* Subordinate Node Cound */ 803558a398bSSimon Schubert #define HDA_PARAM_SUB_NODE_COUNT 0x04 804558a398bSSimon Schubert 805558a398bSSimon Schubert #define HDA_PARAM_SUB_NODE_COUNT_START_MASK 0x00ff0000 806558a398bSSimon Schubert #define HDA_PARAM_SUB_NODE_COUNT_START_SHIFT 16 807558a398bSSimon Schubert #define HDA_PARAM_SUB_NODE_COUNT_TOTAL_MASK 0x000000ff 808558a398bSSimon Schubert #define HDA_PARAM_SUB_NODE_COUNT_TOTAL_SHIFT 0 809558a398bSSimon Schubert 810558a398bSSimon Schubert #define HDA_PARAM_SUB_NODE_COUNT_START(param) \ 811558a398bSSimon Schubert (((param) & HDA_PARAM_SUB_NODE_COUNT_START_MASK) >> \ 812558a398bSSimon Schubert HDA_PARAM_SUB_NODE_COUNT_START_SHIFT) 813558a398bSSimon Schubert #define HDA_PARAM_SUB_NODE_COUNT_TOTAL(param) \ 814558a398bSSimon Schubert (((param) & HDA_PARAM_SUB_NODE_COUNT_TOTAL_MASK) >> \ 815558a398bSSimon Schubert HDA_PARAM_SUB_NODE_COUNT_TOTAL_SHIFT) 816558a398bSSimon Schubert 817558a398bSSimon Schubert /* Function Group Type */ 818558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE 0x05 819558a398bSSimon Schubert 820558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_UNSOL_MASK 0x00000100 821558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_UNSOL_SHIFT 8 822558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_MASK 0x000000ff 823558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_SHIFT 0 824558a398bSSimon Schubert 825558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_UNSOL(param) \ 826558a398bSSimon Schubert (((param) & HDA_PARAM_FCT_GRP_TYPE_UNSOL_MASK) >> \ 827558a398bSSimon Schubert HDA_PARAM_FCT_GROUP_TYPE_UNSOL_SHIFT) 828558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE(param) \ 829558a398bSSimon Schubert (((param) & HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_MASK) >> \ 830558a398bSSimon Schubert HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_SHIFT) 831558a398bSSimon Schubert 832558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_AUDIO 0x01 833558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_MODEM 0x02 834558a398bSSimon Schubert 835558a398bSSimon Schubert /* Audio Function Group Capabilities */ 836558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP 0x08 837558a398bSSimon Schubert 838558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_MASK 0x00010000 839558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_SHIFT 16 840558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_MASK 0x00000f00 841558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_SHIFT 8 842558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_MASK 0x0000000f 843558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_SHIFT 0 844558a398bSSimon Schubert 845558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN(param) \ 846558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_MASK) >> \ 847558a398bSSimon Schubert HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_SHIFT) 848558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY(param) \ 849558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_MASK) >> \ 850558a398bSSimon Schubert HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_SHIFT) 851558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY(param) \ 852558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_MASK) >> \ 853558a398bSSimon Schubert HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_SHIFT) 854558a398bSSimon Schubert 855558a398bSSimon Schubert /* Audio Widget Capabilities */ 856558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP 0x09 857558a398bSSimon Schubert 858558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_MASK 0x00f00000 859558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_SHIFT 20 860558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_MASK 0x000f0000 861558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_SHIFT 16 862*2a1ad637SFrançois Tigeot #define HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_MASK 0x0000e000 863*2a1ad637SFrançois Tigeot #define HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_SHIFT 13 864*2a1ad637SFrançois Tigeot #define HDA_PARAM_AUDIO_WIDGET_CAP_CP_MASK 0x00001000 865*2a1ad637SFrançois Tigeot #define HDA_PARAM_AUDIO_WIDGET_CAP_CP_SHIFT 12 866558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_MASK 0x00000800 867558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_SHIFT 11 868558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_MASK 0x00000400 869558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_SHIFT 10 870558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_MASK 0x00000200 871558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_SHIFT 9 872558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_MASK 0x00000100 873558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_SHIFT 8 874558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_MASK 0x00000080 875558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_SHIFT 7 876558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_MASK 0x00000040 877558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_SHIFT 6 878558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_MASK 0x00000020 879558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_SHIFT 5 880558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_MASK 0x00000010 881558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_SHIFT 4 882558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_MASK 0x00000008 883558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_SHIFT 3 884558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_MASK 0x00000004 885558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_SHIFT 2 886558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_MASK 0x00000002 887558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_SHIFT 1 888558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_MASK 0x00000001 889558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_SHIFT 0 890558a398bSSimon Schubert 891558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE(param) \ 892558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_MASK) >> \ 893558a398bSSimon Schubert HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_SHIFT) 894558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_DELAY(param) \ 895558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_MASK) >> \ 896558a398bSSimon Schubert HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_SHIFT) 897*2a1ad637SFrançois Tigeot #define HDA_PARAM_AUDIO_WIDGET_CAP_CC(param) \ 898*2a1ad637SFrançois Tigeot ((((param) & HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_MASK) >> \ 899*2a1ad637SFrançois Tigeot (HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_SHIFT - 1)) | \ 900*2a1ad637SFrançois Tigeot (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_MASK) >> \ 901*2a1ad637SFrançois Tigeot HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_SHIFT)) 902*2a1ad637SFrançois Tigeot #define HDA_PARAM_AUDIO_WIDGET_CAP_CP(param) \ 903*2a1ad637SFrançois Tigeot (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_CP_MASK) >> \ 904*2a1ad637SFrançois Tigeot HDA_PARAM_AUDIO_WIDGET_CAP_CP_SHIFT) 905558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP(param) \ 906558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_MASK) >> \ 907558a398bSSimon Schubert HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_SHIFT) 908558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL(param) \ 909558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_MASK) >> \ 910558a398bSSimon Schubert HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_SHIFT) 911558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL(param) \ 912558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_MASK) >> \ 913558a398bSSimon Schubert HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_SHIFT) 914558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST(param) \ 915558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_MASK) >> \ 916558a398bSSimon Schubert HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_SHIFT) 917558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP(param) \ 918558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_MASK) >> \ 919558a398bSSimon Schubert HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_SHIFT) 920558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET(param) \ 921558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_MASK) >> \ 922558a398bSSimon Schubert HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_SHIFT) 923558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE(param) \ 924558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_MASK) >> \ 925558a398bSSimon Schubert HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_SHIFT) 926558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR(param) \ 927558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_MASK) >> \ 928558a398bSSimon Schubert HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_SHIFT) 929558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR(param) \ 930558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_MASK) >> \ 931558a398bSSimon Schubert HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_SHIFT) 932558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP(param) \ 933558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_MASK) >> \ 934558a398bSSimon Schubert HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_SHIFT) 935558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP(param) \ 936558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_MASK) >> \ 937558a398bSSimon Schubert HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_SHIFT) 938558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_STEREO(param) \ 939558a398bSSimon Schubert (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_MASK) >> \ 940558a398bSSimon Schubert HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_SHIFT) 941558a398bSSimon Schubert 942558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_OUTPUT 0x0 943558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_INPUT 0x1 944558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_MIXER 0x2 945558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_SELECTOR 0x3 946558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_PIN_COMPLEX 0x4 947558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_POWER_WIDGET 0x5 948558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_VOLUME_WIDGET 0x6 949558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_BEEP_WIDGET 0x7 950558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_VENDOR_WIDGET 0xf 951558a398bSSimon Schubert 952558a398bSSimon Schubert /* Supported PCM Size, Rates */ 953558a398bSSimon Schubert 954558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE 0x0a 955558a398bSSimon Schubert 956558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_MASK 0x00100000 957558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_SHIFT 20 958558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_MASK 0x00080000 959558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_SHIFT 19 960558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_MASK 0x00040000 961558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_SHIFT 18 962558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_MASK 0x00020000 963558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_SHIFT 17 964558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_MASK 0x00010000 965558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_SHIFT 16 9664886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_MASK 0x00000001 9674886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_SHIFT 0 9684886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_MASK 0x00000002 9694886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_SHIFT 1 9704886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_MASK 0x00000004 9714886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_SHIFT 2 9724886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_MASK 0x00000008 9734886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_SHIFT 3 9744886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_MASK 0x00000010 9754886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_SHIFT 4 9764886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_MASK 0x00000020 9774886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_SHIFT 5 9784886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_MASK 0x00000040 9794886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_SHIFT 6 9804886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_MASK 0x00000080 9814886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_SHIFT 7 9824886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_MASK 0x00000100 9834886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_SHIFT 8 9844886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_MASK 0x00000200 9854886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_SHIFT 9 9864886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_MASK 0x00000400 9874886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_SHIFT 10 9884886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_MASK 0x00000800 9894886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_SHIFT 11 990558a398bSSimon Schubert 991558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT(param) \ 992558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_MASK) >> \ 993558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_SHIFT) 994558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT(param) \ 995558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_MASK) >> \ 996558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_SHIFT) 997558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT(param) \ 998558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_MASK) >> \ 999558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_SHIFT) 1000558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT(param) \ 1001558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_MASK) >> \ 1002558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_SHIFT) 1003558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT(param) \ 1004558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_MASK) >> \ 1005558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_SHIFT) 1006558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ(param) \ 1007558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_MASK) >> \ 1008558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_SHIFT) 1009558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ(param) \ 1010558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_MASK) >> \ 1011558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_SHIFT) 1012558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ(param) \ 1013558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_MASK) >> \ 1014558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_SHIFT) 1015558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ(param) \ 1016558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_MASK) >> \ 1017558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_SHIFT) 1018558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ(param) \ 1019558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_MASK) >> \ 1020558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_SHIFT) 1021558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ(param) \ 1022558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_MASK) >> \ 1023558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_SHIFT) 1024558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ(param) \ 1025558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_MASK) >> \ 1026558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_SHIFT) 1027558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ(param) \ 1028558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_MASK) >> \ 1029558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_SHIFT) 1030558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ(param) \ 1031558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_MASK) >> \ 1032558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_SHIFT) 1033558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ(param) \ 1034558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_MASK) >> \ 1035558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_SHIFT) 1036558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ(param) \ 1037558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_MASK) >> \ 1038558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_SHIFT) 1039558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ(param) \ 1040558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_MASK) >> \ 1041558a398bSSimon Schubert HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_SHIFT) 1042558a398bSSimon Schubert 1043558a398bSSimon Schubert /* Supported Stream Formats */ 1044558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS 0x0b 1045558a398bSSimon Schubert 1046558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_AC3_MASK 0x00000004 1047558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_AC3_SHIFT 2 1048558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_MASK 0x00000002 1049558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_SHIFT 1 1050558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_PCM_MASK 0x00000001 1051558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_PCM_SHIFT 0 1052558a398bSSimon Schubert 1053558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_AC3(param) \ 1054558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_STREAM_FORMATS_AC3_MASK) >> \ 1055558a398bSSimon Schubert HDA_PARAM_SUPP_STREAM_FORMATS_AC3_SHIFT) 1056558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32(param) \ 1057558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_MASK) >> \ 1058558a398bSSimon Schubert HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_SHIFT) 1059558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_PCM(param) \ 1060558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_STREAM_FORMATS_PCM_MASK) >> \ 1061558a398bSSimon Schubert HDA_PARAM_SUPP_STREAM_FORMATS_PCM_SHIFT) 1062558a398bSSimon Schubert 1063558a398bSSimon Schubert /* Pin Capabilities */ 1064558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP 0x0c 1065558a398bSSimon Schubert 1066*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_HBR_MASK 0x08000000 1067*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_HBR_SHIFT 27 1068*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_DP_MASK 0x01000000 1069*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_DP_SHIFT 24 1070558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_EAPD_CAP_MASK 0x00010000 1071558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_EAPD_CAP_SHIFT 16 1072558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_MASK 0x0000ff00 1073558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_SHIFT 8 1074558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_100_MASK 0x00002000 1075558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_100_SHIFT 13 1076558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_80_MASK 0x00001000 1077558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_80_SHIFT 12 1078558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_MASK 0x00000400 1079558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_SHIFT 10 1080558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_50_MASK 0x00000200 1081558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_50_SHIFT 9 1082558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_MASK 0x00000100 1083558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_SHIFT 8 1084*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_HDMI_MASK 0x00000080 1085*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_HDMI_SHIFT 7 1086558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_MASK 0x00000040 1087558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_SHIFT 6 1088558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_INPUT_CAP_MASK 0x00000020 1089558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_INPUT_CAP_SHIFT 5 1090558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_OUTPUT_CAP_MASK 0x00000010 1091558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_OUTPUT_CAP_SHIFT 4 1092558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_HEADPHONE_CAP_MASK 0x00000008 1093558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_HEADPHONE_CAP_SHIFT 3 1094558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_MASK 0x00000004 1095558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_SHIFT 2 1096558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_TRIGGER_REQD_MASK 0x00000002 1097558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_TRIGGER_REQD_SHIFT 1 1098558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_MASK 0x00000001 1099558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_SHIFT 0 1100558a398bSSimon Schubert 1101*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_HBR(param) \ 1102*2a1ad637SFrançois Tigeot (((param) & HDA_PARAM_PIN_CAP_HBR_MASK) >> \ 1103*2a1ad637SFrançois Tigeot HDA_PARAM_PIN_CAP_HBR_SHIFT) 1104*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_DP(param) \ 1105*2a1ad637SFrançois Tigeot (((param) & HDA_PARAM_PIN_CAP_DP_MASK) >> \ 1106*2a1ad637SFrançois Tigeot HDA_PARAM_PIN_CAP_DP_SHIFT) 1107558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_EAPD_CAP(param) \ 1108558a398bSSimon Schubert (((param) & HDA_PARAM_PIN_CAP_EAPD_CAP_MASK) >> \ 1109558a398bSSimon Schubert HDA_PARAM_PIN_CAP_EAPD_CAP_SHIFT) 1110558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL(param) \ 1111558a398bSSimon Schubert (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_MASK) >> \ 1112558a398bSSimon Schubert HDA_PARAM_PIN_CAP_VREF_CTRL_SHIFT) 1113558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_100(param) \ 1114558a398bSSimon Schubert (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_100_MASK) >> \ 1115558a398bSSimon Schubert HDA_PARAM_PIN_CAP_VREF_CTRL_100_SHIFT) 1116558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_80(param) \ 1117558a398bSSimon Schubert (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_80_MASK) >> \ 1118558a398bSSimon Schubert HDA_PARAM_PIN_CAP_VREF_CTRL_80_SHIFT) 1119558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND(param) \ 1120558a398bSSimon Schubert (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_MASK) >> \ 1121558a398bSSimon Schubert HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_SHIFT) 1122558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_50(param) \ 1123558a398bSSimon Schubert (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_50_MASK) >> \ 1124558a398bSSimon Schubert HDA_PARAM_PIN_CAP_VREF_CTRL_50_SHIFT) 1125558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ(param) \ 1126558a398bSSimon Schubert (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_MASK) >> \ 1127558a398bSSimon Schubert HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_SHIFT) 1128*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_HDMI(param) \ 1129*2a1ad637SFrançois Tigeot (((param) & HDA_PARAM_PIN_CAP_HDMI_MASK) >> \ 1130*2a1ad637SFrançois Tigeot HDA_PARAM_PIN_CAP_HDMI_SHIFT) 1131558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_BALANCED_IO_PINS(param) \ 1132558a398bSSimon Schubert (((param) & HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_MASK) >> \ 1133558a398bSSimon Schubert HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_SHIFT) 1134558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_INPUT_CAP(param) \ 1135558a398bSSimon Schubert (((param) & HDA_PARAM_PIN_CAP_INPUT_CAP_MASK) >> \ 1136558a398bSSimon Schubert HDA_PARAM_PIN_CAP_INPUT_CAP_SHIFT) 1137558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_OUTPUT_CAP(param) \ 1138558a398bSSimon Schubert (((param) & HDA_PARAM_PIN_CAP_OUTPUT_CAP_MASK) >> \ 1139558a398bSSimon Schubert HDA_PARAM_PIN_CAP_OUTPUT_CAP_SHIFT) 1140558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_HEADPHONE_CAP(param) \ 1141558a398bSSimon Schubert (((param) & HDA_PARAM_PIN_CAP_HEADPHONE_CAP_MASK) >> \ 1142558a398bSSimon Schubert HDA_PARAM_PIN_CAP_HEADPHONE_CAP_SHIFT) 1143558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP(param) \ 1144558a398bSSimon Schubert (((param) & HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_MASK) >> \ 1145*2a1ad637SFrançois Tigeot HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_SHIFT) 1146558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_TRIGGER_REQD(param) \ 1147558a398bSSimon Schubert (((param) & HDA_PARAM_PIN_CAP_TRIGGER_REQD_MASK) >> \ 1148558a398bSSimon Schubert HDA_PARAM_PIN_CAP_TRIGGER_REQD_SHIFT) 1149558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_IMP_SENSE_CAP(param) \ 1150558a398bSSimon Schubert (((param) & HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_MASK) >> \ 1151558a398bSSimon Schubert HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_SHIFT) 1152558a398bSSimon Schubert 1153558a398bSSimon Schubert /* Input Amplifier Capabilities */ 1154558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP 0x0d 1155558a398bSSimon Schubert 1156558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_MASK 0x80000000 1157558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_SHIFT 31 1158558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_MASK 0x007f0000 1159558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_SHIFT 16 1160558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_MASK 0x00007f00 1161558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_SHIFT 8 1162558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_OFFSET_MASK 0x0000007f 1163558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_OFFSET_SHIFT 0 1164558a398bSSimon Schubert 1165558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP(param) \ 1166558a398bSSimon Schubert (((param) & HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_MASK) >> \ 1167558a398bSSimon Schubert HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_SHIFT) 1168558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_STEPSIZE(param) \ 1169558a398bSSimon Schubert (((param) & HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_MASK) >> \ 1170558a398bSSimon Schubert HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_SHIFT) 1171558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS(param) \ 1172558a398bSSimon Schubert (((param) & HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_MASK) >> \ 1173558a398bSSimon Schubert HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_SHIFT) 1174558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_OFFSET(param) \ 1175558a398bSSimon Schubert (((param) & HDA_PARAM_INPUT_AMP_CAP_OFFSET_MASK) >> \ 1176558a398bSSimon Schubert HDA_PARAM_INPUT_AMP_CAP_OFFSET_SHIFT) 1177558a398bSSimon Schubert 1178558a398bSSimon Schubert /* Output Amplifier Capabilities */ 1179558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP 0x12 1180558a398bSSimon Schubert 1181558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_MASK 0x80000000 1182558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_SHIFT 31 1183558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_MASK 0x007f0000 1184558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_SHIFT 16 1185558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_MASK 0x00007f00 1186558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_SHIFT 8 1187558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_MASK 0x0000007f 1188558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_SHIFT 0 1189558a398bSSimon Schubert 1190558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP(param) \ 1191558a398bSSimon Schubert (((param) & HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_MASK) >> \ 1192558a398bSSimon Schubert HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_SHIFT) 1193558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE(param) \ 1194558a398bSSimon Schubert (((param) & HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_MASK) >> \ 1195558a398bSSimon Schubert HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_SHIFT) 1196558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS(param) \ 1197558a398bSSimon Schubert (((param) & HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_MASK) >> \ 1198558a398bSSimon Schubert HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_SHIFT) 1199558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_OFFSET(param) \ 1200558a398bSSimon Schubert (((param) & HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_MASK) >> \ 1201558a398bSSimon Schubert HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_SHIFT) 1202558a398bSSimon Schubert 1203558a398bSSimon Schubert /* Connection List Length */ 1204558a398bSSimon Schubert #define HDA_PARAM_CONN_LIST_LENGTH 0x0e 1205558a398bSSimon Schubert 1206558a398bSSimon Schubert #define HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_MASK 0x00000080 1207558a398bSSimon Schubert #define HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_SHIFT 7 1208558a398bSSimon Schubert #define HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_MASK 0x0000007f 1209558a398bSSimon Schubert #define HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_SHIFT 0 1210558a398bSSimon Schubert 1211558a398bSSimon Schubert #define HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM(param) \ 1212558a398bSSimon Schubert (((param) & HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_MASK) >> \ 1213558a398bSSimon Schubert HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_SHIFT) 1214558a398bSSimon Schubert #define HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH(param) \ 1215558a398bSSimon Schubert (((param) & HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_MASK) >> \ 1216558a398bSSimon Schubert HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_SHIFT) 1217558a398bSSimon Schubert 1218558a398bSSimon Schubert /* Supported Power States */ 1219558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES 0x0f 1220558a398bSSimon Schubert 1221558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D3_MASK 0x00000008 1222558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D3_SHIFT 3 1223558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D2_MASK 0x00000004 1224558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D2_SHIFT 2 1225558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D1_MASK 0x00000002 1226558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D1_SHIFT 1 1227558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D0_MASK 0x00000001 1228558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D0_SHIFT 0 1229558a398bSSimon Schubert 1230558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D3(param) \ 1231558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_POWER_STATES_D3_MASK) >> \ 1232558a398bSSimon Schubert HDA_PARAM_SUPP_POWER_STATES_D3_SHIFT) 1233558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D2(param) \ 1234558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_POWER_STATES_D2_MASK) >> \ 1235558a398bSSimon Schubert HDA_PARAM_SUPP_POWER_STATES_D2_SHIFT) 1236558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D1(param) \ 1237558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_POWER_STATES_D1_MASK) >> \ 1238558a398bSSimon Schubert HDA_PARAM_SUPP_POWER_STATES_D1_SHIFT) 1239558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D0(param) \ 1240558a398bSSimon Schubert (((param) & HDA_PARAM_SUPP_POWER_STATES_D0_MASK) >> \ 1241558a398bSSimon Schubert HDA_PARAM_SUPP_POWER_STATES_D0_SHIFT) 1242558a398bSSimon Schubert 1243558a398bSSimon Schubert /* Processing Capabilities */ 1244558a398bSSimon Schubert #define HDA_PARAM_PROCESSING_CAP 0x10 1245558a398bSSimon Schubert 1246558a398bSSimon Schubert #define HDA_PARAM_PROCESSING_CAP_NUMCOEFF_MASK 0x0000ff00 1247558a398bSSimon Schubert #define HDA_PARAM_PROCESSING_CAP_NUMCOEFF_SHIFT 8 1248558a398bSSimon Schubert #define HDA_PARAM_PROCESSING_CAP_BENIGN_MASK 0x00000001 1249558a398bSSimon Schubert #define HDA_PARAM_PROCESSING_CAP_BENIGN_SHIFT 0 1250558a398bSSimon Schubert 1251558a398bSSimon Schubert #define HDA_PARAM_PROCESSING_CAP_NUMCOEFF(param) \ 1252558a398bSSimon Schubert (((param) & HDA_PARAM_PROCESSING_CAP_NUMCOEFF_MASK) >> \ 1253558a398bSSimon Schubert HDA_PARAM_PROCESSING_CAP_NUMCOEFF_SHIFT) 1254558a398bSSimon Schubert #define HDA_PARAM_PROCESSING_CAP_BENIGN(param) \ 1255558a398bSSimon Schubert (((param) & HDA_PARAM_PROCESSING_CAP_BENIGN_MASK) >> \ 1256558a398bSSimon Schubert HDA_PARAM_PROCESSING_CAP_BENIGN_SHIFT) 1257558a398bSSimon Schubert 1258558a398bSSimon Schubert /* GPIO Count */ 1259558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT 0x11 1260558a398bSSimon Schubert 1261558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_GPI_WAKE_MASK 0x80000000 1262558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_GPI_WAKE_SHIFT 31 1263558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_GPI_UNSOL_MASK 0x40000000 1264558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_GPI_UNSOL_SHIFT 30 1265558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPI_MASK 0x00ff0000 1266558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPI_SHIFT 16 1267558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPO_MASK 0x0000ff00 1268558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPO_SHIFT 8 1269558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPIO_MASK 0x000000ff 1270558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPIO_SHIFT 0 1271558a398bSSimon Schubert 1272558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_GPI_WAKE(param) \ 1273558a398bSSimon Schubert (((param) & HDA_PARAM_GPIO_COUNT_GPI_WAKE_MASK) >> \ 1274558a398bSSimon Schubert HDA_PARAM_GPIO_COUNT_GPI_WAKE_SHIFT) 1275558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_GPI_UNSOL(param) \ 1276558a398bSSimon Schubert (((param) & HDA_PARAM_GPIO_COUNT_GPI_UNSOL_MASK) >> \ 1277558a398bSSimon Schubert HDA_PARAM_GPIO_COUNT_GPI_UNSOL_SHIFT) 1278558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPI(param) \ 1279558a398bSSimon Schubert (((param) & HDA_PARAM_GPIO_COUNT_NUM_GPI_MASK) >> \ 1280558a398bSSimon Schubert HDA_PARAM_GPIO_COUNT_NUM_GPI_SHIFT) 1281558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPO(param) \ 1282558a398bSSimon Schubert (((param) & HDA_PARAM_GPIO_COUNT_NUM_GPO_MASK) >> \ 1283558a398bSSimon Schubert HDA_PARAM_GPIO_COUNT_NUM_GPO_SHIFT) 1284558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPIO(param) \ 1285558a398bSSimon Schubert (((param) & HDA_PARAM_GPIO_COUNT_NUM_GPIO_MASK) >> \ 1286558a398bSSimon Schubert HDA_PARAM_GPIO_COUNT_NUM_GPIO_SHIFT) 1287558a398bSSimon Schubert 1288558a398bSSimon Schubert /* Volume Knob Capabilities */ 1289558a398bSSimon Schubert #define HDA_PARAM_VOLUME_KNOB_CAP 0x13 1290558a398bSSimon Schubert 1291558a398bSSimon Schubert #define HDA_PARAM_VOLUME_KNOB_CAP_DELTA_MASK 0x00000080 1292558a398bSSimon Schubert #define HDA_PARAM_VOLUME_KNOB_CAP_DELTA_SHIFT 7 1293558a398bSSimon Schubert #define HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_MASK 0x0000007f 1294558a398bSSimon Schubert #define HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_SHIFT 0 1295558a398bSSimon Schubert 1296558a398bSSimon Schubert #define HDA_PARAM_VOLUME_KNOB_CAP_DELTA(param) \ 1297558a398bSSimon Schubert (((param) & HDA_PARAM_VOLUME_KNOB_CAP_DELTA_MASK) >> \ 1298558a398bSSimon Schubert HDA_PARAM_VOLUME_KNOB_CAP_DELTA_SHIFT) 1299558a398bSSimon Schubert #define HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS(param) \ 1300558a398bSSimon Schubert (((param) & HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_MASK) >> \ 1301558a398bSSimon Schubert HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_SHIFT) 1302558a398bSSimon Schubert 1303558a398bSSimon Schubert 1304*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_SEQUENCE_MASK 0x0000000f 1305*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_SEQUENCE_SHIFT 0 1306*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_ASSOCIATION_MASK 0x000000f0 1307*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_ASSOCIATION_SHIFT 4 1308*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_MISC_MASK 0x00000f00 1309*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_MISC_SHIFT 8 1310*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_COLOR_MASK 0x0000f000 1311*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_COLOR_SHIFT 12 1312*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_MASK 0x000f0000 1313*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_SHIFT 16 1314*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_DEVICE_MASK 0x00f00000 1315*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_DEVICE_SHIFT 20 1316*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_LOCATION_MASK 0x3f000000 1317*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_LOCATION_SHIFT 24 1318*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK 0xc0000000 1319*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_SHIFT 30 1320*2a1ad637SFrançois Tigeot 1321*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_SEQUENCE(conf) \ 1322*2a1ad637SFrançois Tigeot (((conf) & HDA_CONFIG_DEFAULTCONF_SEQUENCE_MASK) >> \ 1323*2a1ad637SFrançois Tigeot HDA_CONFIG_DEFAULTCONF_SEQUENCE_SHIFT) 1324*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_ASSOCIATION(conf) \ 1325*2a1ad637SFrançois Tigeot (((conf) & HDA_CONFIG_DEFAULTCONF_ASSOCIATION_MASK) >> \ 1326*2a1ad637SFrançois Tigeot HDA_CONFIG_DEFAULTCONF_ASSOCIATION_SHIFT) 1327*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_MISC(conf) \ 1328*2a1ad637SFrançois Tigeot (((conf) & HDA_CONFIG_DEFAULTCONF_MISC_MASK) >> \ 1329*2a1ad637SFrançois Tigeot HDA_CONFIG_DEFAULTCONF_MISC_SHIFT) 1330*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_COLOR(conf) \ 1331*2a1ad637SFrançois Tigeot (((conf) & HDA_CONFIG_DEFAULTCONF_COLOR_MASK) >> \ 1332*2a1ad637SFrançois Tigeot HDA_CONFIG_DEFAULTCONF_COLOR_SHIFT) 1333*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE(conf) \ 1334*2a1ad637SFrançois Tigeot (((conf) & HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_MASK) >> \ 1335*2a1ad637SFrançois Tigeot HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_SHIFT) 1336*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_DEVICE(conf) \ 1337*2a1ad637SFrançois Tigeot (((conf) & HDA_CONFIG_DEFAULTCONF_DEVICE_MASK) >> \ 1338*2a1ad637SFrançois Tigeot HDA_CONFIG_DEFAULTCONF_DEVICE_SHIFT) 1339*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_LOCATION(conf) \ 1340*2a1ad637SFrançois Tigeot (((conf) & HDA_CONFIG_DEFAULTCONF_LOCATION_MASK) >> \ 1341*2a1ad637SFrançois Tigeot HDA_CONFIG_DEFAULTCONF_LOCATION_SHIFT) 1342*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY(conf) \ 1343*2a1ad637SFrançois Tigeot (((conf) & HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK) >> \ 1344*2a1ad637SFrançois Tigeot HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_SHIFT) 1345558a398bSSimon Schubert 1346558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_JACK (0<<30) 1347558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_NONE (1<<30) 1348558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED (2<<30) 1349558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_BOTH (3<<30) 1350558a398bSSimon Schubert 1351558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_OUT (0<<20) 1352558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_SPEAKER (1<<20) 1353558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_HP_OUT (2<<20) 1354558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_CD (3<<20) 1355558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_SPDIF_OUT (4<<20) 1356558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_DIGITAL_OTHER_OUT (5<<20) 1357558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_MODEM_LINE (6<<20) 1358558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_MODEM_HANDSET (7<<20) 1359558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_IN (8<<20) 1360558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_AUX (9<<20) 1361558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN (10<<20) 1362558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_TELEPHONY (11<<20) 1363558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_SPDIF_IN (12<<20) 1364558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_DIGITAL_OTHER_IN (13<<20) 1365558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_OTHER (15<<20) 1366558a398bSSimon Schubert 1367558a398bSSimon Schubert #endif 1368