16b021cc2SWarner Losh /*- 2*4d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 33e21da8aSMarcelo Araujo * 46b021cc2SWarner Losh * Copyright (c) 2006 Stephane E. Potvin <sepotvin@videotron.ca> 56b021cc2SWarner Losh * All rights reserved. 66b021cc2SWarner Losh * 76b021cc2SWarner Losh * Redistribution and use in source and binary forms, with or without 86b021cc2SWarner Losh * modification, are permitted provided that the following conditions 96b021cc2SWarner Losh * are met: 106b021cc2SWarner Losh * 1. Redistributions of source code must retain the above copyright 116b021cc2SWarner Losh * notice, this list of conditions and the following disclaimer. 126b021cc2SWarner Losh * 2. Redistributions in binary form must reproduce the above copyright 136b021cc2SWarner Losh * notice, this list of conditions and the following disclaimer in the 146b021cc2SWarner Losh * documentation and/or other materials provided with the distribution. 156b021cc2SWarner Losh * 166b021cc2SWarner Losh * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 176b021cc2SWarner Losh * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 186b021cc2SWarner Losh * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 196b021cc2SWarner Losh * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 206b021cc2SWarner Losh * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 216b021cc2SWarner Losh * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 226b021cc2SWarner Losh * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 236b021cc2SWarner Losh * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 246b021cc2SWarner Losh * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 256b021cc2SWarner Losh * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 266b021cc2SWarner Losh * SUCH DAMAGE. 276b021cc2SWarner Losh */ 286b021cc2SWarner Losh 296b021cc2SWarner Losh #ifndef _HDA_REG_H_ 306b021cc2SWarner Losh #define _HDA_REG_H_ 316b021cc2SWarner Losh 326b021cc2SWarner Losh /**************************************************************************** 336b021cc2SWarner Losh * HDA Device Verbs 346b021cc2SWarner Losh ****************************************************************************/ 356b021cc2SWarner Losh 366b021cc2SWarner Losh /* HDA Command */ 376b021cc2SWarner Losh #define HDA_CMD_VERB_MASK 0x000fffff 386b021cc2SWarner Losh #define HDA_CMD_VERB_SHIFT 0 396b021cc2SWarner Losh #define HDA_CMD_NID_MASK 0x0ff00000 406b021cc2SWarner Losh #define HDA_CMD_NID_SHIFT 20 416b021cc2SWarner Losh #define HDA_CMD_CAD_MASK 0xf0000000 426b021cc2SWarner Losh #define HDA_CMD_CAD_SHIFT 28 436b021cc2SWarner Losh 446b021cc2SWarner Losh #define HDA_CMD_VERB_4BIT_SHIFT 16 456b021cc2SWarner Losh #define HDA_CMD_VERB_12BIT_SHIFT 8 466b021cc2SWarner Losh 476b021cc2SWarner Losh #define HDA_CMD_VERB_4BIT(verb, payload) \ 486b021cc2SWarner Losh (((verb) << HDA_CMD_VERB_4BIT_SHIFT) | (payload)) 496b021cc2SWarner Losh #define HDA_CMD_4BIT(cad, nid, verb, payload) \ 506b021cc2SWarner Losh (((cad) << HDA_CMD_CAD_SHIFT) | \ 516b021cc2SWarner Losh ((nid) << HDA_CMD_NID_SHIFT) | \ 526b021cc2SWarner Losh (HDA_CMD_VERB_4BIT((verb), (payload)))) 536b021cc2SWarner Losh 546b021cc2SWarner Losh #define HDA_CMD_VERB_12BIT(verb, payload) \ 556b021cc2SWarner Losh (((verb) << HDA_CMD_VERB_12BIT_SHIFT) | (payload)) 566b021cc2SWarner Losh #define HDA_CMD_12BIT(cad, nid, verb, payload) \ 576b021cc2SWarner Losh (((cad) << HDA_CMD_CAD_SHIFT) | \ 586b021cc2SWarner Losh ((nid) << HDA_CMD_NID_SHIFT) | \ 596b021cc2SWarner Losh (HDA_CMD_VERB_12BIT((verb), (payload)))) 606b021cc2SWarner Losh 616b021cc2SWarner Losh /* Get Parameter */ 626b021cc2SWarner Losh #define HDA_CMD_VERB_GET_PARAMETER 0xf00 636b021cc2SWarner Losh 646b021cc2SWarner Losh #define HDA_CMD_GET_PARAMETER(cad, nid, payload) \ 656b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 666b021cc2SWarner Losh HDA_CMD_VERB_GET_PARAMETER, (payload))) 676b021cc2SWarner Losh 686b021cc2SWarner Losh /* Connection Select Control */ 696b021cc2SWarner Losh #define HDA_CMD_VERB_GET_CONN_SELECT_CONTROL 0xf01 706b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONN_SELECT_CONTROL 0x701 716b021cc2SWarner Losh 726b021cc2SWarner Losh #define HDA_CMD_GET_CONN_SELECT_CONTROL(cad, nid) \ 736b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 746b021cc2SWarner Losh HDA_CMD_VERB_GET_CONN_SELECT_CONTROL, 0x0)) 756b021cc2SWarner Losh #define HDA_CMD_SET_CONNECTION_SELECT_CONTROL(cad, nid, payload) \ 766b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 776b021cc2SWarner Losh HDA_CMD_VERB_SET_CONN_SELECT_CONTROL, (payload))) 786b021cc2SWarner Losh 796b021cc2SWarner Losh /* Connection List Entry */ 806b021cc2SWarner Losh #define HDA_CMD_VERB_GET_CONN_LIST_ENTRY 0xf02 816b021cc2SWarner Losh 826b021cc2SWarner Losh #define HDA_CMD_GET_CONN_LIST_ENTRY(cad, nid, payload) \ 836b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 846b021cc2SWarner Losh HDA_CMD_VERB_GET_CONN_LIST_ENTRY, (payload))) 856b021cc2SWarner Losh 866b021cc2SWarner Losh #define HDA_CMD_GET_CONN_LIST_ENTRY_SIZE_SHORT 1 876b021cc2SWarner Losh #define HDA_CMD_GET_CONN_LIST_ENTRY_SIZE_LONG 2 886b021cc2SWarner Losh 896b021cc2SWarner Losh /* Processing State */ 906b021cc2SWarner Losh #define HDA_CMD_VERB_GET_PROCESSING_STATE 0xf03 916b021cc2SWarner Losh #define HDA_CMD_VERB_SET_PROCESSING_STATE 0x703 926b021cc2SWarner Losh 936b021cc2SWarner Losh #define HDA_CMD_GET_PROCESSING_STATE(cad, nid) \ 946b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 956b021cc2SWarner Losh HDA_CMD_VERB_GET_PROCESSING_STATE, 0x0)) 966b021cc2SWarner Losh #define HDA_CMD_SET_PROCESSING_STATE(cad, nid, payload) \ 976b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 986b021cc2SWarner Losh HDA_CMD_VERB_SET_PROCESSING_STATE, (payload))) 996b021cc2SWarner Losh 1006b021cc2SWarner Losh #define HDA_CMD_GET_PROCESSING_STATE_STATE_OFF 0x00 1016b021cc2SWarner Losh #define HDA_CMD_GET_PROCESSING_STATE_STATE_ON 0x01 1026b021cc2SWarner Losh #define HDA_CMD_GET_PROCESSING_STATE_STATE_BENIGN 0x02 1036b021cc2SWarner Losh 1046b021cc2SWarner Losh /* Coefficient Index */ 1056b021cc2SWarner Losh #define HDA_CMD_VERB_GET_COEFF_INDEX 0xd 1066b021cc2SWarner Losh #define HDA_CMD_VERB_SET_COEFF_INDEX 0x5 1076b021cc2SWarner Losh 1086b021cc2SWarner Losh #define HDA_CMD_GET_COEFF_INDEX(cad, nid) \ 1096b021cc2SWarner Losh (HDA_CMD_4BIT((cad), (nid), \ 1106b021cc2SWarner Losh HDA_CMD_VERB_GET_COEFF_INDEX, 0x0)) 1116b021cc2SWarner Losh #define HDA_CMD_SET_COEFF_INDEX(cad, nid, payload) \ 1126b021cc2SWarner Losh (HDA_CMD_4BIT((cad), (nid), \ 1136b021cc2SWarner Losh HDA_CMD_VERB_SET_COEFF_INDEX, (payload))) 1146b021cc2SWarner Losh 1156b021cc2SWarner Losh /* Processing Coefficient */ 1166b021cc2SWarner Losh #define HDA_CMD_VERB_GET_PROCESSING_COEFF 0xc 1176b021cc2SWarner Losh #define HDA_CMD_VERB_SET_PROCESSING_COEFF 0x4 1186b021cc2SWarner Losh 1196b021cc2SWarner Losh #define HDA_CMD_GET_PROCESSING_COEFF(cad, nid) \ 1206b021cc2SWarner Losh (HDA_CMD_4BIT((cad), (nid), \ 1216b021cc2SWarner Losh HDA_CMD_VERB_GET_PROCESSING_COEFF, 0x0)) 1226b021cc2SWarner Losh #define HDA_CMD_SET_PROCESSING_COEFF(cad, nid, payload) \ 1236b021cc2SWarner Losh (HDA_CMD_4BIT((cad), (nid), \ 1246b021cc2SWarner Losh HDA_CMD_VERB_SET_PROCESSING_COEFF, (payload))) 1256b021cc2SWarner Losh 1266b021cc2SWarner Losh /* Amplifier Gain/Mute */ 1276b021cc2SWarner Losh #define HDA_CMD_VERB_GET_AMP_GAIN_MUTE 0xb 1286b021cc2SWarner Losh #define HDA_CMD_VERB_SET_AMP_GAIN_MUTE 0x3 1296b021cc2SWarner Losh 1306b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE(cad, nid, payload) \ 1316b021cc2SWarner Losh (HDA_CMD_4BIT((cad), (nid), \ 1326b021cc2SWarner Losh HDA_CMD_VERB_GET_AMP_GAIN_MUTE, (payload))) 1336b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE(cad, nid, payload) \ 1346b021cc2SWarner Losh (HDA_CMD_4BIT((cad), (nid), \ 1356b021cc2SWarner Losh HDA_CMD_VERB_SET_AMP_GAIN_MUTE, (payload))) 1366b021cc2SWarner Losh 1376b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_INPUT 0x0000 1386b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_OUTPUT 0x8000 1396b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_RIGHT 0x0000 1406b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_LEFT 0x2000 1416b021cc2SWarner Losh 1426b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_MASK 0x00000008 1436b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_SHIFT 7 1446b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_MASK 0x00000007 1456b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_SHIFT 0 1466b021cc2SWarner Losh 1476b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_MUTE(rsp) \ 1486b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_MASK) >> \ 1496b021cc2SWarner Losh HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_SHIFT) 1506b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_GAIN(rsp) \ 1516b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_MASK) >> \ 1526b021cc2SWarner Losh HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_SHIFT) 1536b021cc2SWarner Losh 1546b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_OUTPUT 0x8000 1556b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_INPUT 0x4000 1566b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_LEFT 0x2000 1576b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_RIGHT 0x1000 1586b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_MASK 0x0f00 1596b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_SHIFT 8 1606b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_MUTE 0x0080 1616b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_MASK 0x0007 1626b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_SHIFT 0 1636b021cc2SWarner Losh 1646b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_INDEX(index) \ 1656b021cc2SWarner Losh (((index) << HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_SHIFT) & \ 1666b021cc2SWarner Losh HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_MASK) 1676b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_GAIN(index) \ 1686b021cc2SWarner Losh (((index) << HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_SHIFT) & \ 1696b021cc2SWarner Losh HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_MASK) 1706b021cc2SWarner Losh 1716b021cc2SWarner Losh /* Converter format */ 1726b021cc2SWarner Losh #define HDA_CMD_VERB_GET_CONV_FMT 0xa 1736b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONV_FMT 0x2 1746b021cc2SWarner Losh 1756b021cc2SWarner Losh #define HDA_CMD_GET_CONV_FMT(cad, nid) \ 1766b021cc2SWarner Losh (HDA_CMD_4BIT((cad), (nid), \ 1776b021cc2SWarner Losh HDA_CMD_VERB_GET_CONV_FMT, 0x0)) 1786b021cc2SWarner Losh #define HDA_CMD_SET_CONV_FMT(cad, nid, payload) \ 1796b021cc2SWarner Losh (HDA_CMD_4BIT((cad), (nid), \ 1806b021cc2SWarner Losh HDA_CMD_VERB_SET_CONV_FMT, (payload))) 1816b021cc2SWarner Losh 1826b021cc2SWarner Losh /* Digital Converter Control */ 1836b021cc2SWarner Losh #define HDA_CMD_VERB_GET_DIGITAL_CONV_FMT1 0xf0d 1846b021cc2SWarner Losh #define HDA_CMD_VERB_GET_DIGITAL_CONV_FMT2 0xf0e 1856b021cc2SWarner Losh #define HDA_CMD_VERB_SET_DIGITAL_CONV_FMT1 0x70d 1866b021cc2SWarner Losh #define HDA_CMD_VERB_SET_DIGITAL_CONV_FMT2 0x70e 1876b021cc2SWarner Losh 1886b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT(cad, nid) \ 1896b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 1906b021cc2SWarner Losh HDA_CMD_VERB_GET_DIGITAL_CONV_FMT1, 0x0)) 1916b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1(cad, nid, payload) \ 1926b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 1936b021cc2SWarner Losh HDA_CMD_VERB_SET_DIGITAL_CONV_FMT1, (payload))) 1946b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT2(cad, nid, payload) \ 1956b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 1966b021cc2SWarner Losh HDA_CMD_VERB_SET_DIGITAL_CONV_FMT2, (payload))) 1976b021cc2SWarner Losh 1986b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_CC_MASK 0x7f00 1996b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_CC_SHIFT 8 2006b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_L_MASK 0x0080 2016b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_L_SHIFT 7 2026b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_MASK 0x0040 2036b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_SHIFT 6 2046b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_MASK 0x0020 2056b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_SHIFT 5 2066b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_MASK 0x0010 2076b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_SHIFT 4 2086b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_MASK 0x0008 2096b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_SHIFT 3 2106b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_MASK 0x0004 2116b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_SHIFT 2 2126b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_V_MASK 0x0002 2136b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_V_SHIFT 1 2146b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_MASK 0x0001 2156b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_SHIFT 0 2166b021cc2SWarner Losh 2176b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_CC(rsp) \ 2186b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_CC_MASK) >> \ 2196b021cc2SWarner Losh HDA_CMD_GET_DIGITAL_CONV_FMT_CC_SHIFT) 2206b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_L(rsp) \ 2216b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_L_MASK) >> \ 2226b021cc2SWarner Losh HDA_CMD_GET_DIGITAL_CONV_FMT_L_SHIFT) 2236b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRO(rsp) \ 2246b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_MASK) >> \ 2256b021cc2SWarner Losh HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_SHIFT) 2266b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO(rsp) \ 2276b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_MASK) >> \ 2286b021cc2SWarner Losh HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_SHIFT) 2296b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_COPY(rsp) \ 2306b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_MASK) >> \ 2316b021cc2SWarner Losh HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_SHIFT) 2326b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRE(rsp) \ 2336b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_MASK) >> \ 2346b021cc2SWarner Losh HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_SHIFT) 2356b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG(rsp) \ 2366b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_MASK) >> \ 2376b021cc2SWarner Losh HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_SHIFT) 2386b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_V(rsp) \ 2396b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_V_MASK) >> \ 2406b021cc2SWarner Losh HDA_CMD_GET_DIGITAL_CONV_FMT_V_SHIFT) 2416b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN(rsp) \ 2426b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_MASK) >> \ 2436b021cc2SWarner Losh HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_SHIFT) 2446b021cc2SWarner Losh 2456b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_L 0x80 2466b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_PRO 0x40 2476b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_NAUDIO 0x20 2486b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_COPY 0x10 2496b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_PRE 0x08 2506b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_VCFG 0x04 2516b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_V 0x02 2526b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_DIGEN 0x01 2536b021cc2SWarner Losh 2546b021cc2SWarner Losh /* Power State */ 2556b021cc2SWarner Losh #define HDA_CMD_VERB_GET_POWER_STATE 0xf05 2566b021cc2SWarner Losh #define HDA_CMD_VERB_SET_POWER_STATE 0x705 2576b021cc2SWarner Losh 2586b021cc2SWarner Losh #define HDA_CMD_GET_POWER_STATE(cad, nid) \ 2596b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 2606b021cc2SWarner Losh HDA_CMD_VERB_GET_POWER_STATE, 0x0)) 2616b021cc2SWarner Losh #define HDA_CMD_SET_POWER_STATE(cad, nid, payload) \ 2626b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 2636b021cc2SWarner Losh HDA_CMD_VERB_SET_POWER_STATE, (payload))) 2646b021cc2SWarner Losh 2656b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_D0 0x00 2666b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_D1 0x01 2676b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_D2 0x02 2686b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_D3 0x03 2696b021cc2SWarner Losh 2706b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_ACT_MASK 0x000000f0 2716b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_ACT_SHIFT 4 2726b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_SET_MASK 0x0000000f 2736b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_SET_SHIFT 0 2746b021cc2SWarner Losh 2756b021cc2SWarner Losh #define HDA_CMD_GET_POWER_STATE_ACT(rsp) \ 2766b021cc2SWarner Losh (((rsp) & HDA_CMD_POWER_STATE_ACT_MASK) >> \ 2776b021cc2SWarner Losh HDA_CMD_POWER_STATE_ACT_SHIFT) 2786b021cc2SWarner Losh #define HDA_CMD_GET_POWER_STATE_SET(rsp) \ 2796b021cc2SWarner Losh (((rsp) & HDA_CMD_POWER_STATE_SET_MASK) >> \ 2806b021cc2SWarner Losh HDA_CMD_POWER_STATE_SET_SHIFT) 2816b021cc2SWarner Losh 2826b021cc2SWarner Losh #define HDA_CMD_SET_POWER_STATE_ACT(ps) \ 2836b021cc2SWarner Losh (((ps) << HDA_CMD_POWER_STATE_ACT_SHIFT) & \ 2846b021cc2SWarner Losh HDA_CMD_POWER_STATE_ACT_MASK) 2856b021cc2SWarner Losh #define HDA_CMD_SET_POWER_STATE_SET(ps) \ 2866b021cc2SWarner Losh (((ps) << HDA_CMD_POWER_STATE_SET_SHIFT) & \ 2876b021cc2SWarner Losh HDA_CMD_POWER_STATE_ACT_MASK) 2886b021cc2SWarner Losh 2896b021cc2SWarner Losh /* Converter Stream, Channel */ 2906b021cc2SWarner Losh #define HDA_CMD_VERB_GET_CONV_STREAM_CHAN 0xf06 2916b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONV_STREAM_CHAN 0x706 2926b021cc2SWarner Losh 2936b021cc2SWarner Losh #define HDA_CMD_GET_CONV_STREAM_CHAN(cad, nid) \ 2946b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 2956b021cc2SWarner Losh HDA_CMD_VERB_GET_CONV_STREAM_CHAN, 0x0)) 2966b021cc2SWarner Losh #define HDA_CMD_SET_CONV_STREAM_CHAN(cad, nid, payload) \ 2976b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 2986b021cc2SWarner Losh HDA_CMD_VERB_SET_CONV_STREAM_CHAN, (payload))) 2996b021cc2SWarner Losh 3006b021cc2SWarner Losh #define HDA_CMD_CONV_STREAM_CHAN_STREAM_MASK 0x000000f0 3016b021cc2SWarner Losh #define HDA_CMD_CONV_STREAM_CHAN_STREAM_SHIFT 4 3026b021cc2SWarner Losh #define HDA_CMD_CONV_STREAM_CHAN_CHAN_MASK 0x0000000f 3036b021cc2SWarner Losh #define HDA_CMD_CONV_STREAM_CHAN_CHAN_SHIFT 0 3046b021cc2SWarner Losh 3056b021cc2SWarner Losh #define HDA_CMD_GET_CONV_STREAM_CHAN_STREAM(rsp) \ 3066b021cc2SWarner Losh (((rsp) & HDA_CMD_CONV_STREAM_CHAN_STREAM_MASK) >> \ 3076b021cc2SWarner Losh HDA_CMD_CONV_STREAM_CHAN_STREAM_SHIFT) 3086b021cc2SWarner Losh #define HDA_CMD_GET_CONV_STREAM_CHAN_CHAN(rsp) \ 3096b021cc2SWarner Losh (((rsp) & HDA_CMD_CONV_STREAM_CHAN_CHAN_MASK) >> \ 3106b021cc2SWarner Losh HDA_CMD_CONV_STREAM_CHAN_CHAN_SHIFT) 3116b021cc2SWarner Losh 3126b021cc2SWarner Losh #define HDA_CMD_SET_CONV_STREAM_CHAN_STREAM(param) \ 3136b021cc2SWarner Losh (((param) << HDA_CMD_CONV_STREAM_CHAN_STREAM_SHIFT) & \ 3146b021cc2SWarner Losh HDA_CMD_CONV_STREAM_CHAN_STREAM_MASK) 3156b021cc2SWarner Losh #define HDA_CMD_SET_CONV_STREAM_CHAN_CHAN(param) \ 3166b021cc2SWarner Losh (((param) << HDA_CMD_CONV_STREAM_CHAN_CHAN_SHIFT) & \ 3176b021cc2SWarner Losh HDA_CMD_CONV_STREAM_CHAN_CHAN_MASK) 3186b021cc2SWarner Losh 3196b021cc2SWarner Losh /* Input Converter SDI Select */ 3206b021cc2SWarner Losh #define HDA_CMD_VERB_GET_INPUT_CONVERTER_SDI_SELECT 0xf04 3216b021cc2SWarner Losh #define HDA_CMD_VERB_SET_INPUT_CONVERTER_SDI_SELECT 0x704 3226b021cc2SWarner Losh 3236b021cc2SWarner Losh #define HDA_CMD_GET_INPUT_CONVERTER_SDI_SELECT(cad, nid) \ 3246b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 3256b021cc2SWarner Losh HDA_CMD_VERB_GET_INPUT_CONVERTER_SDI_SELECT, 0x0)) 3266b021cc2SWarner Losh #define HDA_CMD_SET_INPUT_CONVERTER_SDI_SELECT(cad, nid, payload) \ 3276b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 3286b021cc2SWarner Losh HDA_CMD_VERB_SET_INPUT_CONVERTER_SDI_SELECT, (payload))) 3296b021cc2SWarner Losh 3306b021cc2SWarner Losh /* Pin Widget Control */ 3316b021cc2SWarner Losh #define HDA_CMD_VERB_GET_PIN_WIDGET_CTRL 0xf07 3326b021cc2SWarner Losh #define HDA_CMD_VERB_SET_PIN_WIDGET_CTRL 0x707 3336b021cc2SWarner Losh 3346b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL(cad, nid) \ 3356b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 3366b021cc2SWarner Losh HDA_CMD_VERB_GET_PIN_WIDGET_CTRL, 0x0)) 3376b021cc2SWarner Losh #define HDA_CMD_SET_PIN_WIDGET_CTRL(cad, nid, payload) \ 3386b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 3396b021cc2SWarner Losh HDA_CMD_VERB_SET_PIN_WIDGET_CTRL, (payload))) 3406b021cc2SWarner Losh 3416b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_MASK 0x00000080 3426b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_SHIFT 7 3436b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE_MASK 0x00000040 3446b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE_SHIFT 6 3456b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_MASK 0x00000020 3466b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_SHIFT 5 3476b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK 0x00000007 3486b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT 0 3496b021cc2SWarner Losh 3506b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE(rsp) \ 3516b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_MASK) >> \ 3526b021cc2SWarner Losh HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_SHIFT) 3536b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE(rsp) \ 3546b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE_MASK) >> \ 3556b021cc2SWarner Losh HDA_GET_CMD_PIN_WIDGET_CTRL_OUT_ENABLE_SHIFT) 3566b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE(rsp) \ 3576b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_MASK) >> \ 3586b021cc2SWarner Losh HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_SHIFT) 3596b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE(rsp) \ 3606b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK) >> \ 3616b021cc2SWarner Losh HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT) 3626b021cc2SWarner Losh 3636b021cc2SWarner Losh #define HDA_CMD_SET_PIN_WIDGET_CTRL_HPHN_ENABLE 0x80 3646b021cc2SWarner Losh #define HDA_CMD_SET_PIN_WIDGET_CTRL_OUT_ENABLE 0x40 3656b021cc2SWarner Losh #define HDA_CMD_SET_PIN_WIDGET_CTRL_IN_ENABLE 0x20 3666b021cc2SWarner Losh #define HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK 0x07 3676b021cc2SWarner Losh #define HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT 0 3686b021cc2SWarner Losh 3696b021cc2SWarner Losh #define HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE(param) \ 3706b021cc2SWarner Losh (((param) << HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT) & \ 3716b021cc2SWarner Losh HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK) 3726b021cc2SWarner Losh 3736b021cc2SWarner Losh #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_HIZ 0 3746b021cc2SWarner Losh #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_50 1 3756b021cc2SWarner Losh #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_GROUND 2 3766b021cc2SWarner Losh #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_80 4 3776b021cc2SWarner Losh #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_100 5 3786b021cc2SWarner Losh 3796b021cc2SWarner Losh /* Unsolicited Response */ 3806b021cc2SWarner Losh #define HDA_CMD_VERB_GET_UNSOLICITED_RESPONSE 0xf08 3816b021cc2SWarner Losh #define HDA_CMD_VERB_SET_UNSOLICITED_RESPONSE 0x708 3826b021cc2SWarner Losh 3836b021cc2SWarner Losh #define HDA_CMD_GET_UNSOLICITED_RESPONSE(cad, nid) \ 3846b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 3856b021cc2SWarner Losh HDA_CMD_VERB_GET_UNSOLICITED_RESPONSE, 0x0)) 3866b021cc2SWarner Losh #define HDA_CMD_SET_UNSOLICITED_RESPONSE(cad, nid, payload) \ 3876b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 3886b021cc2SWarner Losh HDA_CMD_VERB_SET_UNSOLICITED_RESPONSE, (payload))) 3896b021cc2SWarner Losh 3906b021cc2SWarner Losh #define HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_MASK 0x00000080 3916b021cc2SWarner Losh #define HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_SHIFT 7 3926b021cc2SWarner Losh #define HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_MASK 0x0000001f 3936b021cc2SWarner Losh #define HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_SHIFT 0 3946b021cc2SWarner Losh 3956b021cc2SWarner Losh #define HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE(rsp) \ 3966b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_MASK) >> \ 3976b021cc2SWarner Losh HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_SHIFT) 3986b021cc2SWarner Losh #define HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG(rsp) \ 3996b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_MASK) >> \ 4006b021cc2SWarner Losh HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_SHIFT) 4016b021cc2SWarner Losh 4026b021cc2SWarner Losh #define HDA_CMD_SET_UNSOLICITED_RESPONSE_ENABLE 0x80 4036b021cc2SWarner Losh #define HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_MASK 0x3f 4046b021cc2SWarner Losh #define HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_SHIFT 0 4056b021cc2SWarner Losh 4066b021cc2SWarner Losh #define HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG(param) \ 4076b021cc2SWarner Losh (((param) << HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_SHIFT) & \ 4086b021cc2SWarner Losh HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_MASK) 4096b021cc2SWarner Losh 4106b021cc2SWarner Losh /* Pin Sense */ 4116b021cc2SWarner Losh #define HDA_CMD_VERB_GET_PIN_SENSE 0xf09 4126b021cc2SWarner Losh #define HDA_CMD_VERB_SET_PIN_SENSE 0x709 4136b021cc2SWarner Losh 4146b021cc2SWarner Losh #define HDA_CMD_GET_PIN_SENSE(cad, nid) \ 4156b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 4166b021cc2SWarner Losh HDA_CMD_VERB_GET_PIN_SENSE, 0x0)) 4176b021cc2SWarner Losh #define HDA_CMD_SET_PIN_SENSE(cad, nid, payload) \ 4186b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 4196b021cc2SWarner Losh HDA_CMD_VERB_SET_PIN_SENSE, (payload))) 4206b021cc2SWarner Losh 4216b021cc2SWarner Losh #define HDA_CMD_GET_PIN_SENSE_PRESENCE_DETECT 0x80000000 4226b021cc2SWarner Losh #define HDA_CMD_GET_PIN_SENSE_ELD_VALID 0x40000000 4236b021cc2SWarner Losh #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE_MASK 0x7fffffff 4246b021cc2SWarner Losh #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE_SHIFT 0 4256b021cc2SWarner Losh 4266b021cc2SWarner Losh #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE(rsp) \ 4276b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_PIN_SENSE_IMP_SENSE_MASK) >> \ 4286b021cc2SWarner Losh HDA_CMD_GET_PIN_SENSE_IMP_SENSE_SHIFT) 4296b021cc2SWarner Losh 4306b021cc2SWarner Losh #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE_INVALID 0x7fffffff 4316b021cc2SWarner Losh 4326b021cc2SWarner Losh #define HDA_CMD_SET_PIN_SENSE_LEFT_CHANNEL 0x00 4336b021cc2SWarner Losh #define HDA_CMD_SET_PIN_SENSE_RIGHT_CHANNEL 0x01 4346b021cc2SWarner Losh 4356b021cc2SWarner Losh /* EAPD/BTL Enable */ 4366b021cc2SWarner Losh #define HDA_CMD_VERB_GET_EAPD_BTL_ENABLE 0xf0c 4376b021cc2SWarner Losh #define HDA_CMD_VERB_SET_EAPD_BTL_ENABLE 0x70c 4386b021cc2SWarner Losh 4396b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE(cad, nid) \ 4406b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 4416b021cc2SWarner Losh HDA_CMD_VERB_GET_EAPD_BTL_ENABLE, 0x0)) 4426b021cc2SWarner Losh #define HDA_CMD_SET_EAPD_BTL_ENABLE(cad, nid, payload) \ 4436b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 4446b021cc2SWarner Losh HDA_CMD_VERB_SET_EAPD_BTL_ENABLE, (payload))) 4456b021cc2SWarner Losh 4466b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_MASK 0x00000004 4476b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_SHIFT 2 4486b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_MASK 0x00000002 4496b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_SHIFT 1 4506b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_MASK 0x00000001 4516b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_SHIFT 0 4526b021cc2SWarner Losh 4536b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP(rsp) \ 4546b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_MASK) >> \ 4556b021cc2SWarner Losh HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_SHIFT) 4566b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD(rsp) \ 4576b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_MASK) >> \ 4586b021cc2SWarner Losh HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_SHIFT) 4596b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_BTL(rsp) \ 4606b021cc2SWarner Losh (((rsp) & HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_MASK) >> \ 4616b021cc2SWarner Losh HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_SHIFT) 4626b021cc2SWarner Losh 4636b021cc2SWarner Losh #define HDA_CMD_SET_EAPD_BTL_ENABLE_LR_SWAP 0x04 4646b021cc2SWarner Losh #define HDA_CMD_SET_EAPD_BTL_ENABLE_EAPD 0x02 4656b021cc2SWarner Losh #define HDA_CMD_SET_EAPD_BTL_ENABLE_BTL 0x01 4666b021cc2SWarner Losh 4676b021cc2SWarner Losh /* GPI Data */ 4686b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPI_DATA 0xf10 4696b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPI_DATA 0x710 4706b021cc2SWarner Losh 4716b021cc2SWarner Losh #define HDA_CMD_GET_GPI_DATA(cad, nid) \ 4726b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 4736b021cc2SWarner Losh HDA_CMD_VERB_GET_GPI_DATA, 0x0)) 4746b021cc2SWarner Losh #define HDA_CMD_SET_GPI_DATA(cad, nid) \ 4756b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 4766b021cc2SWarner Losh HDA_CMD_VERB_SET_GPI_DATA, (payload))) 4776b021cc2SWarner Losh 4786b021cc2SWarner Losh /* GPI Wake Enable Mask */ 4796b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPI_WAKE_ENABLE_MASK 0xf11 4806b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPI_WAKE_ENABLE_MASK 0x711 4816b021cc2SWarner Losh 4826b021cc2SWarner Losh #define HDA_CMD_GET_GPI_WAKE_ENABLE_MASK(cad, nid) \ 4836b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 4846b021cc2SWarner Losh HDA_CMD_VERB_GET_GPI_WAKE_ENABLE_MASK, 0x0)) 4856b021cc2SWarner Losh #define HDA_CMD_SET_GPI_WAKE_ENABLE_MASK(cad, nid, payload) \ 4866b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 4876b021cc2SWarner Losh HDA_CMD_VERB_SET_GPI_WAKE_ENABLE_MASK, (payload))) 4886b021cc2SWarner Losh 4896b021cc2SWarner Losh /* GPI Unsolicited Enable Mask */ 4906b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPI_UNSOLICITED_ENABLE_MASK 0xf12 4916b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPI_UNSOLICITED_ENABLE_MASK 0x712 4926b021cc2SWarner Losh 4936b021cc2SWarner Losh #define HDA_CMD_GET_GPI_UNSOLICITED_ENABLE_MASK(cad, nid) \ 4946b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 4956b021cc2SWarner Losh HDA_CMD_VERB_GET_GPI_UNSOLICITED_ENABLE_MASK, 0x0)) 4966b021cc2SWarner Losh #define HDA_CMD_SET_GPI_UNSOLICITED_ENABLE_MASK(cad, nid, payload) \ 4976b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 4986b021cc2SWarner Losh HDA_CMD_VERB_SET_GPI_UNSOLICITED_ENABLE_MASK, (payload))) 4996b021cc2SWarner Losh 5006b021cc2SWarner Losh /* GPI Sticky Mask */ 5016b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPI_STICKY_MASK 0xf13 5026b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPI_STICKY_MASK 0x713 5036b021cc2SWarner Losh 5046b021cc2SWarner Losh #define HDA_CMD_GET_GPI_STICKY_MASK(cad, nid) \ 5056b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5066b021cc2SWarner Losh HDA_CMD_VERB_GET_GPI_STICKY_MASK, 0x0)) 5076b021cc2SWarner Losh #define HDA_CMD_SET_GPI_STICKY_MASK(cad, nid, payload) \ 5086b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5096b021cc2SWarner Losh HDA_CMD_VERB_SET_GPI_STICKY_MASK, (payload))) 5106b021cc2SWarner Losh 5116b021cc2SWarner Losh /* GPO Data */ 5126b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPO_DATA 0xf14 5136b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPO_DATA 0x714 5146b021cc2SWarner Losh 5156b021cc2SWarner Losh #define HDA_CMD_GET_GPO_DATA(cad, nid) \ 5166b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5176b021cc2SWarner Losh HDA_CMD_VERB_GET_GPO_DATA, 0x0)) 5186b021cc2SWarner Losh #define HDA_CMD_SET_GPO_DATA(cad, nid, payload) \ 5196b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5206b021cc2SWarner Losh HDA_CMD_VERB_SET_GPO_DATA, (payload))) 5216b021cc2SWarner Losh 5226b021cc2SWarner Losh /* GPIO Data */ 5236b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPIO_DATA 0xf15 5246b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPIO_DATA 0x715 5256b021cc2SWarner Losh 5266b021cc2SWarner Losh #define HDA_CMD_GET_GPIO_DATA(cad, nid) \ 5276b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5286b021cc2SWarner Losh HDA_CMD_VERB_GET_GPIO_DATA, 0x0)) 5296b021cc2SWarner Losh #define HDA_CMD_SET_GPIO_DATA(cad, nid, payload) \ 5306b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5316b021cc2SWarner Losh HDA_CMD_VERB_SET_GPIO_DATA, (payload))) 5326b021cc2SWarner Losh 5336b021cc2SWarner Losh /* GPIO Enable Mask */ 5346b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPIO_ENABLE_MASK 0xf16 5356b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPIO_ENABLE_MASK 0x716 5366b021cc2SWarner Losh 5376b021cc2SWarner Losh #define HDA_CMD_GET_GPIO_ENABLE_MASK(cad, nid) \ 5386b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5396b021cc2SWarner Losh HDA_CMD_VERB_GET_GPIO_ENABLE_MASK, 0x0)) 5406b021cc2SWarner Losh #define HDA_CMD_SET_GPIO_ENABLE_MASK(cad, nid, payload) \ 5416b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5426b021cc2SWarner Losh HDA_CMD_VERB_SET_GPIO_ENABLE_MASK, (payload))) 5436b021cc2SWarner Losh 5446b021cc2SWarner Losh /* GPIO Direction */ 5456b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPIO_DIRECTION 0xf17 5466b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPIO_DIRECTION 0x717 5476b021cc2SWarner Losh 5486b021cc2SWarner Losh #define HDA_CMD_GET_GPIO_DIRECTION(cad, nid) \ 5496b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5506b021cc2SWarner Losh HDA_CMD_VERB_GET_GPIO_DIRECTION, 0x0)) 5516b021cc2SWarner Losh #define HDA_CMD_SET_GPIO_DIRECTION(cad, nid, payload) \ 5526b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5536b021cc2SWarner Losh HDA_CMD_VERB_SET_GPIO_DIRECTION, (payload))) 5546b021cc2SWarner Losh 5556b021cc2SWarner Losh /* GPIO Wake Enable Mask */ 5566b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPIO_WAKE_ENABLE_MASK 0xf18 5576b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPIO_WAKE_ENABLE_MASK 0x718 5586b021cc2SWarner Losh 5596b021cc2SWarner Losh #define HDA_CMD_GET_GPIO_WAKE_ENABLE_MASK(cad, nid) \ 5606b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5616b021cc2SWarner Losh HDA_CMD_VERB_GET_GPIO_WAKE_ENABLE_MASK, 0x0)) 5626b021cc2SWarner Losh #define HDA_CMD_SET_GPIO_WAKE_ENABLE_MASK(cad, nid, payload) \ 5636b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5646b021cc2SWarner Losh HDA_CMD_VERB_SET_GPIO_WAKE_ENABLE_MASK, (payload))) 5656b021cc2SWarner Losh 5666b021cc2SWarner Losh /* GPIO Unsolicited Enable Mask */ 5676b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPIO_UNSOLICITED_ENABLE_MASK 0xf19 5686b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPIO_UNSOLICITED_ENABLE_MASK 0x719 5696b021cc2SWarner Losh 5706b021cc2SWarner Losh #define HDA_CMD_GET_GPIO_UNSOLICITED_ENABLE_MASK(cad, nid) \ 5716b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5726b021cc2SWarner Losh HDA_CMD_VERB_GET_GPIO_UNSOLICITED_ENABLE_MASK, 0x0)) 5736b021cc2SWarner Losh #define HDA_CMD_SET_GPIO_UNSOLICITED_ENABLE_MASK(cad, nid, payload) \ 5746b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5756b021cc2SWarner Losh HDA_CMD_VERB_SET_GPIO_UNSOLICITED_ENABLE_MASK, (payload))) 5766b021cc2SWarner Losh 5776b021cc2SWarner Losh /* GPIO_STICKY_MASK */ 5786b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPIO_STICKY_MASK 0xf1a 5796b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPIO_STICKY_MASK 0x71a 5806b021cc2SWarner Losh 5816b021cc2SWarner Losh #define HDA_CMD_GET_GPIO_STICKY_MASK(cad, nid) \ 5826b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5836b021cc2SWarner Losh HDA_CMD_VERB_GET_GPIO_STICKY_MASK, 0x0)) 5846b021cc2SWarner Losh #define HDA_CMD_SET_GPIO_STICKY_MASK(cad, nid, payload) \ 5856b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5866b021cc2SWarner Losh HDA_CMD_VERB_SET_GPIO_STICKY_MASK, (payload))) 5876b021cc2SWarner Losh 5886b021cc2SWarner Losh /* Beep Generation */ 5896b021cc2SWarner Losh #define HDA_CMD_VERB_GET_BEEP_GENERATION 0xf0a 5906b021cc2SWarner Losh #define HDA_CMD_VERB_SET_BEEP_GENERATION 0x70a 5916b021cc2SWarner Losh 5926b021cc2SWarner Losh #define HDA_CMD_GET_BEEP_GENERATION(cad, nid) \ 5936b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5946b021cc2SWarner Losh HDA_CMD_VERB_GET_BEEP_GENERATION, 0x0)) 5956b021cc2SWarner Losh #define HDA_CMD_SET_BEEP_GENERATION(cad, nid, payload) \ 5966b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 5976b021cc2SWarner Losh HDA_CMD_VERB_SET_BEEP_GENERATION, (payload))) 5986b021cc2SWarner Losh 5996b021cc2SWarner Losh /* Volume Knob */ 6006b021cc2SWarner Losh #define HDA_CMD_VERB_GET_VOLUME_KNOB 0xf0f 6016b021cc2SWarner Losh #define HDA_CMD_VERB_SET_VOLUME_KNOB 0x70f 6026b021cc2SWarner Losh 6036b021cc2SWarner Losh #define HDA_CMD_GET_VOLUME_KNOB(cad, nid) \ 6046b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6056b021cc2SWarner Losh HDA_CMD_VERB_GET_VOLUME_KNOB, 0x0)) 6066b021cc2SWarner Losh #define HDA_CMD_SET_VOLUME_KNOB(cad, nid, payload) \ 6076b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6086b021cc2SWarner Losh HDA_CMD_VERB_SET_VOLUME_KNOB, (payload))) 6096b021cc2SWarner Losh 6106b021cc2SWarner Losh /* Subsystem ID */ 6116b021cc2SWarner Losh #define HDA_CMD_VERB_GET_SUBSYSTEM_ID 0xf20 6126b021cc2SWarner Losh #define HDA_CMD_VERB_SET_SUSBYSTEM_ID1 0x720 6136b021cc2SWarner Losh #define HDA_CMD_VERB_SET_SUBSYSTEM_ID2 0x721 6146b021cc2SWarner Losh #define HDA_CMD_VERB_SET_SUBSYSTEM_ID3 0x722 6156b021cc2SWarner Losh #define HDA_CMD_VERB_SET_SUBSYSTEM_ID4 0x723 6166b021cc2SWarner Losh 6176b021cc2SWarner Losh #define HDA_CMD_GET_SUBSYSTEM_ID(cad, nid) \ 6186b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6196b021cc2SWarner Losh HDA_CMD_VERB_GET_SUBSYSTEM_ID, 0x0)) 6206b021cc2SWarner Losh #define HDA_CMD_SET_SUBSYSTEM_ID1(cad, nid, payload) \ 6216b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6226b021cc2SWarner Losh HDA_CMD_VERB_SET_SUSBYSTEM_ID1, (payload))) 6236b021cc2SWarner Losh #define HDA_CMD_SET_SUBSYSTEM_ID2(cad, nid, payload) \ 6246b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6256b021cc2SWarner Losh HDA_CMD_VERB_SET_SUSBYSTEM_ID2, (payload))) 6266b021cc2SWarner Losh #define HDA_CMD_SET_SUBSYSTEM_ID3(cad, nid, payload) \ 6276b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6286b021cc2SWarner Losh HDA_CMD_VERB_SET_SUSBYSTEM_ID3, (payload))) 6296b021cc2SWarner Losh #define HDA_CMD_SET_SUBSYSTEM_ID4(cad, nid, payload) \ 6306b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6316b021cc2SWarner Losh HDA_CMD_VERB_SET_SUSBYSTEM_ID4, (payload))) 6326b021cc2SWarner Losh 6336b021cc2SWarner Losh /* Configuration Default */ 6346b021cc2SWarner Losh #define HDA_CMD_VERB_GET_CONFIGURATION_DEFAULT 0xf1c 6356b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT1 0x71c 6366b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT2 0x71d 6376b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT3 0x71e 6386b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT4 0x71f 6396b021cc2SWarner Losh 6406b021cc2SWarner Losh #define HDA_CMD_GET_CONFIGURATION_DEFAULT(cad, nid) \ 6416b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6426b021cc2SWarner Losh HDA_CMD_VERB_GET_CONFIGURATION_DEFAULT, 0x0)) 6436b021cc2SWarner Losh #define HDA_CMD_SET_CONFIGURATION_DEFAULT1(cad, nid, payload) \ 6446b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6456b021cc2SWarner Losh HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT1, (payload))) 6466b021cc2SWarner Losh #define HDA_CMD_SET_CONFIGURATION_DEFAULT2(cad, nid, payload) \ 6476b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6486b021cc2SWarner Losh HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT2, (payload))) 6496b021cc2SWarner Losh #define HDA_CMD_SET_CONFIGURATION_DEFAULT3(cad, nid, payload) \ 6506b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6516b021cc2SWarner Losh HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT3, (payload))) 6526b021cc2SWarner Losh #define HDA_CMD_SET_CONFIGURATION_DEFAULT4(cad, nid, payload) \ 6536b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6546b021cc2SWarner Losh HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT4, (payload))) 6556b021cc2SWarner Losh 6566b021cc2SWarner Losh /* Stripe Control */ 6576b021cc2SWarner Losh #define HDA_CMD_VERB_GET_STRIPE_CONTROL 0xf24 6586b021cc2SWarner Losh #define HDA_CMD_VERB_SET_STRIPE_CONTROL 0x724 6596b021cc2SWarner Losh 6606b021cc2SWarner Losh #define HDA_CMD_GET_STRIPE_CONTROL(cad, nid) \ 6616b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6626b021cc2SWarner Losh HDA_CMD_VERB_GET_STRIPE_CONTROL, 0x0)) 6636b021cc2SWarner Losh #define HDA_CMD_SET_STRIPE_CONTROL(cad, nid, payload) \ 6646b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6656b021cc2SWarner Losh HDA_CMD_VERB_SET_STRIPE_CONTROL, (payload))) 6666b021cc2SWarner Losh 6676b021cc2SWarner Losh /* Channel Count Control */ 6686b021cc2SWarner Losh #define HDA_CMD_VERB_GET_CONV_CHAN_COUNT 0xf2d 6696b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONV_CHAN_COUNT 0x72d 6706b021cc2SWarner Losh 6716b021cc2SWarner Losh #define HDA_CMD_GET_CONV_CHAN_COUNT(cad, nid) \ 6726b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6736b021cc2SWarner Losh HDA_CMD_VERB_GET_CONV_CHAN_COUNT, 0x0)) 6746b021cc2SWarner Losh #define HDA_CMD_SET_CONV_CHAN_COUNT(cad, nid, payload) \ 6756b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6766b021cc2SWarner Losh HDA_CMD_VERB_SET_CONV_CHAN_COUNT, (payload))) 6776b021cc2SWarner Losh 6786b021cc2SWarner Losh #define HDA_CMD_VERB_GET_HDMI_DIP_SIZE 0xf2e 6796b021cc2SWarner Losh 6806b021cc2SWarner Losh #define HDA_CMD_GET_HDMI_DIP_SIZE(cad, nid, arg) \ 6816b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6826b021cc2SWarner Losh HDA_CMD_VERB_GET_HDMI_DIP_SIZE, (arg))) 6836b021cc2SWarner Losh 6846b021cc2SWarner Losh #define HDA_CMD_VERB_GET_HDMI_ELDD 0xf2f 6856b021cc2SWarner Losh 6866b021cc2SWarner Losh #define HDA_CMD_GET_HDMI_ELDD(cad, nid, off) \ 6876b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6886b021cc2SWarner Losh HDA_CMD_VERB_GET_HDMI_ELDD, (off))) 6896b021cc2SWarner Losh 6906b021cc2SWarner Losh #define HDA_CMD_VERB_GET_HDMI_DIP_INDEX 0xf30 6916b021cc2SWarner Losh #define HDA_CMD_VERB_SET_HDMI_DIP_INDEX 0x730 6926b021cc2SWarner Losh 6936b021cc2SWarner Losh #define HDA_CMD_GET_HDMI_DIP_INDEX(cad, nid) \ 6946b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6956b021cc2SWarner Losh HDA_CMD_VERB_GET_HDMI_DIP_INDEX, 0x0)) 6966b021cc2SWarner Losh #define HDA_CMD_SET_HDMI_DIP_INDEX(cad, nid, payload) \ 6976b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 6986b021cc2SWarner Losh HDA_CMD_VERB_SET_HDMI_DIP_INDEX, (payload))) 6996b021cc2SWarner Losh 7006b021cc2SWarner Losh #define HDA_CMD_VERB_GET_HDMI_DIP_DATA 0xf31 7016b021cc2SWarner Losh #define HDA_CMD_VERB_SET_HDMI_DIP_DATA 0x731 7026b021cc2SWarner Losh 7036b021cc2SWarner Losh #define HDA_CMD_GET_HDMI_DIP_DATA(cad, nid) \ 7046b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 7056b021cc2SWarner Losh HDA_CMD_VERB_GET_HDMI_DIP_DATA, 0x0)) 7066b021cc2SWarner Losh #define HDA_CMD_SET_HDMI_DIP_DATA(cad, nid, payload) \ 7076b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 7086b021cc2SWarner Losh HDA_CMD_VERB_SET_HDMI_DIP_DATA, (payload))) 7096b021cc2SWarner Losh 7106b021cc2SWarner Losh #define HDA_CMD_VERB_GET_HDMI_DIP_XMIT 0xf32 7116b021cc2SWarner Losh #define HDA_CMD_VERB_SET_HDMI_DIP_XMIT 0x732 7126b021cc2SWarner Losh 7136b021cc2SWarner Losh #define HDA_CMD_GET_HDMI_DIP_XMIT(cad, nid) \ 7146b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 7156b021cc2SWarner Losh HDA_CMD_VERB_GET_HDMI_DIP_XMIT, 0x0)) 7166b021cc2SWarner Losh #define HDA_CMD_SET_HDMI_DIP_XMIT(cad, nid, payload) \ 7176b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 7186b021cc2SWarner Losh HDA_CMD_VERB_SET_HDMI_DIP_XMIT, (payload))) 7196b021cc2SWarner Losh 7206b021cc2SWarner Losh #define HDA_CMD_VERB_GET_HDMI_CP_CTRL 0xf33 7216b021cc2SWarner Losh #define HDA_CMD_VERB_SET_HDMI_CP_CTRL 0x733 7226b021cc2SWarner Losh 7236b021cc2SWarner Losh #define HDA_CMD_VERB_GET_HDMI_CHAN_SLOT 0xf34 7246b021cc2SWarner Losh #define HDA_CMD_VERB_SET_HDMI_CHAN_SLOT 0x734 7256b021cc2SWarner Losh 7266b021cc2SWarner Losh #define HDA_CMD_GET_HDMI_CHAN_SLOT(cad, nid) \ 7276b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 7286b021cc2SWarner Losh HDA_CMD_VERB_GET_HDMI_CHAN_SLOT, 0x0)) 7296b021cc2SWarner Losh #define HDA_CMD_SET_HDMI_CHAN_SLOT(cad, nid, payload) \ 7306b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 7316b021cc2SWarner Losh HDA_CMD_VERB_SET_HDMI_CHAN_SLOT, (payload))) 7326b021cc2SWarner Losh 7336b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_REF_STREAM_HEADER 0 7346b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_LPCM 1 7356b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_AC3 2 7366b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_MPEG1 3 7376b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_MP3 4 7386b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_MPEG2 5 7396b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_AACLC 6 7406b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_DTS 7 7416b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_ATRAC 8 7426b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_SACD 9 7436b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_EAC3 10 7446b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_DTS_HD 11 7456b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_MLP 12 7466b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_DST 13 7476b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_WMAPRO 14 7486b021cc2SWarner Losh #define HDA_HDMI_CODING_TYPE_REF_CTX 15 7496b021cc2SWarner Losh 7506b021cc2SWarner Losh /* Function Reset */ 7516b021cc2SWarner Losh #define HDA_CMD_VERB_FUNCTION_RESET 0x7ff 7526b021cc2SWarner Losh 7536b021cc2SWarner Losh #define HDA_CMD_FUNCTION_RESET(cad, nid) \ 7546b021cc2SWarner Losh (HDA_CMD_12BIT((cad), (nid), \ 7556b021cc2SWarner Losh HDA_CMD_VERB_FUNCTION_RESET, 0x0)) 7566b021cc2SWarner Losh 7576b021cc2SWarner Losh 7586b021cc2SWarner Losh /**************************************************************************** 7596b021cc2SWarner Losh * HDA Device Parameters 7606b021cc2SWarner Losh ****************************************************************************/ 7616b021cc2SWarner Losh 7626b021cc2SWarner Losh /* Vendor ID */ 7636b021cc2SWarner Losh #define HDA_PARAM_VENDOR_ID 0x00 7646b021cc2SWarner Losh 7656b021cc2SWarner Losh #define HDA_PARAM_VENDOR_ID_VENDOR_ID_MASK 0xffff0000 7666b021cc2SWarner Losh #define HDA_PARAM_VENDOR_ID_VENDOR_ID_SHIFT 16 7676b021cc2SWarner Losh #define HDA_PARAM_VENDOR_ID_DEVICE_ID_MASK 0x0000ffff 7686b021cc2SWarner Losh #define HDA_PARAM_VENDOR_ID_DEVICE_ID_SHIFT 0 7696b021cc2SWarner Losh 7706b021cc2SWarner Losh #define HDA_PARAM_VENDOR_ID_VENDOR_ID(param) \ 7716b021cc2SWarner Losh (((param) & HDA_PARAM_VENDOR_ID_VENDOR_ID_MASK) >> \ 7726b021cc2SWarner Losh HDA_PARAM_VENDOR_ID_VENDOR_ID_SHIFT) 7736b021cc2SWarner Losh #define HDA_PARAM_VENDOR_ID_DEVICE_ID(param) \ 7746b021cc2SWarner Losh (((param) & HDA_PARAM_VENDOR_ID_DEVICE_ID_MASK) >> \ 7756b021cc2SWarner Losh HDA_PARAM_VENDOR_ID_DEVICE_ID_SHIFT) 7766b021cc2SWarner Losh 7776b021cc2SWarner Losh /* Revision ID */ 7786b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID 0x02 7796b021cc2SWarner Losh 7806b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_MAJREV_MASK 0x00f00000 7816b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_MAJREV_SHIFT 20 7826b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_MINREV_MASK 0x000f0000 7836b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_MINREV_SHIFT 16 7846b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_REVISION_ID_MASK 0x0000ff00 7856b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_REVISION_ID_SHIFT 8 7866b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_STEPPING_ID_MASK 0x000000ff 7876b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_STEPPING_ID_SHIFT 0 7886b021cc2SWarner Losh 7896b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_MAJREV(param) \ 7906b021cc2SWarner Losh (((param) & HDA_PARAM_REVISION_ID_MAJREV_MASK) >> \ 7916b021cc2SWarner Losh HDA_PARAM_REVISION_ID_MAJREV_SHIFT) 7926b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_MINREV(param) \ 7936b021cc2SWarner Losh (((param) & HDA_PARAM_REVISION_ID_MINREV_MASK) >> \ 7946b021cc2SWarner Losh HDA_PARAM_REVISION_ID_MINREV_SHIFT) 7956b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_REVISION_ID(param) \ 7966b021cc2SWarner Losh (((param) & HDA_PARAM_REVISION_ID_REVISION_ID_MASK) >> \ 7976b021cc2SWarner Losh HDA_PARAM_REVISION_ID_REVISION_ID_SHIFT) 7986b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_STEPPING_ID(param) \ 7996b021cc2SWarner Losh (((param) & HDA_PARAM_REVISION_ID_STEPPING_ID_MASK) >> \ 8006b021cc2SWarner Losh HDA_PARAM_REVISION_ID_STEPPING_ID_SHIFT) 8016b021cc2SWarner Losh 8026b021cc2SWarner Losh /* Subordinate Node Cound */ 8036b021cc2SWarner Losh #define HDA_PARAM_SUB_NODE_COUNT 0x04 8046b021cc2SWarner Losh 8056b021cc2SWarner Losh #define HDA_PARAM_SUB_NODE_COUNT_START_MASK 0x00ff0000 8066b021cc2SWarner Losh #define HDA_PARAM_SUB_NODE_COUNT_START_SHIFT 16 8076b021cc2SWarner Losh #define HDA_PARAM_SUB_NODE_COUNT_TOTAL_MASK 0x000000ff 8086b021cc2SWarner Losh #define HDA_PARAM_SUB_NODE_COUNT_TOTAL_SHIFT 0 8096b021cc2SWarner Losh 8106b021cc2SWarner Losh #define HDA_PARAM_SUB_NODE_COUNT_START(param) \ 8116b021cc2SWarner Losh (((param) & HDA_PARAM_SUB_NODE_COUNT_START_MASK) >> \ 8126b021cc2SWarner Losh HDA_PARAM_SUB_NODE_COUNT_START_SHIFT) 8136b021cc2SWarner Losh #define HDA_PARAM_SUB_NODE_COUNT_TOTAL(param) \ 8146b021cc2SWarner Losh (((param) & HDA_PARAM_SUB_NODE_COUNT_TOTAL_MASK) >> \ 8156b021cc2SWarner Losh HDA_PARAM_SUB_NODE_COUNT_TOTAL_SHIFT) 8166b021cc2SWarner Losh 8176b021cc2SWarner Losh /* Function Group Type */ 8186b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE 0x05 8196b021cc2SWarner Losh 8206b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_UNSOL_MASK 0x00000100 8216b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_UNSOL_SHIFT 8 8226b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_MASK 0x000000ff 8236b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_SHIFT 0 8246b021cc2SWarner Losh 8256b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_UNSOL(param) \ 8266b021cc2SWarner Losh (((param) & HDA_PARAM_FCT_GRP_TYPE_UNSOL_MASK) >> \ 8276b021cc2SWarner Losh HDA_PARAM_FCT_GROUP_TYPE_UNSOL_SHIFT) 8286b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE(param) \ 8296b021cc2SWarner Losh (((param) & HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_MASK) >> \ 8306b021cc2SWarner Losh HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_SHIFT) 8316b021cc2SWarner Losh 8326b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_AUDIO 0x01 8336b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_MODEM 0x02 8346b021cc2SWarner Losh 8356b021cc2SWarner Losh /* Audio Function Group Capabilities */ 8366b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP 0x08 8376b021cc2SWarner Losh 8386b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_MASK 0x00010000 8396b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_SHIFT 16 8406b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_MASK 0x00000f00 8416b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_SHIFT 8 8426b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_MASK 0x0000000f 8436b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_SHIFT 0 8446b021cc2SWarner Losh 8456b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN(param) \ 8466b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_MASK) >> \ 8476b021cc2SWarner Losh HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_SHIFT) 8486b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY(param) \ 8496b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_MASK) >> \ 8506b021cc2SWarner Losh HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_SHIFT) 8516b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY(param) \ 8526b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_MASK) >> \ 8536b021cc2SWarner Losh HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_SHIFT) 8546b021cc2SWarner Losh 8556b021cc2SWarner Losh /* Audio Widget Capabilities */ 8566b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP 0x09 8576b021cc2SWarner Losh 8586b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_MASK 0x00f00000 8596b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_SHIFT 20 8606b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_MASK 0x000f0000 8616b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_SHIFT 16 8626b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_MASK 0x0000e000 8636b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_SHIFT 13 8646b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CP_MASK 0x00001000 8656b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CP_SHIFT 12 8666b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_MASK 0x00000800 8676b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_SHIFT 11 8686b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_MASK 0x00000400 8696b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_SHIFT 10 8706b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_MASK 0x00000200 8716b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_SHIFT 9 8726b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_MASK 0x00000100 8736b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_SHIFT 8 8746b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_MASK 0x00000080 8756b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_SHIFT 7 8766b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_MASK 0x00000040 8776b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_SHIFT 6 8786b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_MASK 0x00000020 8796b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_SHIFT 5 8806b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_MASK 0x00000010 8816b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_SHIFT 4 8826b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_MASK 0x00000008 8836b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_SHIFT 3 8846b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_MASK 0x00000004 8856b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_SHIFT 2 8866b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_MASK 0x00000002 8876b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_SHIFT 1 8886b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_MASK 0x00000001 8896b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_SHIFT 0 8906b021cc2SWarner Losh 8916b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE(param) \ 8926b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_MASK) >> \ 8936b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_SHIFT) 8946b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_DELAY(param) \ 8956b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_MASK) >> \ 8966b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_SHIFT) 8976b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CC(param) \ 8986b021cc2SWarner Losh ((((param) & HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_MASK) >> \ 8996b021cc2SWarner Losh (HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_SHIFT - 1)) | \ 9006b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_MASK) >> \ 9016b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_SHIFT)) 9026b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CP(param) \ 9036b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_CP_MASK) >> \ 9046b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_CP_SHIFT) 9056b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP(param) \ 9066b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_MASK) >> \ 9076b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_SHIFT) 9086b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL(param) \ 9096b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_MASK) >> \ 9106b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_SHIFT) 9116b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL(param) \ 9126b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_MASK) >> \ 9136b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_SHIFT) 9146b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST(param) \ 9156b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_MASK) >> \ 9166b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_SHIFT) 9176b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP(param) \ 9186b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_MASK) >> \ 9196b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_SHIFT) 9206b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET(param) \ 9216b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_MASK) >> \ 9226b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_SHIFT) 9236b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE(param) \ 9246b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_MASK) >> \ 9256b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_SHIFT) 9266b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR(param) \ 9276b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_MASK) >> \ 9286b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_SHIFT) 9296b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR(param) \ 9306b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_MASK) >> \ 9316b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_SHIFT) 9326b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP(param) \ 9336b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_MASK) >> \ 9346b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_SHIFT) 9356b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP(param) \ 9366b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_MASK) >> \ 9376b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_SHIFT) 9386b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_STEREO(param) \ 9396b021cc2SWarner Losh (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_MASK) >> \ 9406b021cc2SWarner Losh HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_SHIFT) 9416b021cc2SWarner Losh 9426b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_OUTPUT 0x0 9436b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_INPUT 0x1 9446b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_MIXER 0x2 9456b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_SELECTOR 0x3 9466b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_PIN_COMPLEX 0x4 9476b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_POWER_WIDGET 0x5 9486b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_VOLUME_WIDGET 0x6 9496b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_BEEP_WIDGET 0x7 9506b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_VENDOR_WIDGET 0xf 9516b021cc2SWarner Losh 9526b021cc2SWarner Losh /* Supported PCM Size, Rates */ 9536b021cc2SWarner Losh 9546b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE 0x0a 9556b021cc2SWarner Losh 9566b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_MASK 0x00100000 9576b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_SHIFT 20 9586b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_MASK 0x00080000 9596b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_SHIFT 19 9606b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_MASK 0x00040000 9616b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_SHIFT 18 9626b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_MASK 0x00020000 9636b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_SHIFT 17 9646b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_MASK 0x00010000 9656b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_SHIFT 16 9666b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_MASK 0x00000001 9676b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_SHIFT 0 9686b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_MASK 0x00000002 9696b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_SHIFT 1 9706b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_MASK 0x00000004 9716b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_SHIFT 2 9726b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_MASK 0x00000008 9736b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_SHIFT 3 9746b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_MASK 0x00000010 9756b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_SHIFT 4 9766b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_MASK 0x00000020 9776b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_SHIFT 5 9786b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_MASK 0x00000040 9796b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_SHIFT 6 9806b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_MASK 0x00000080 9816b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_SHIFT 7 9826b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_MASK 0x00000100 9836b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_SHIFT 8 9846b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_MASK 0x00000200 9856b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_SHIFT 9 9866b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_MASK 0x00000400 9876b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_SHIFT 10 9886b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_MASK 0x00000800 9896b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_SHIFT 11 9906b021cc2SWarner Losh 9916b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT(param) \ 9926b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_MASK) >> \ 9936b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_SHIFT) 9946b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT(param) \ 9956b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_MASK) >> \ 9966b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_SHIFT) 9976b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT(param) \ 9986b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_MASK) >> \ 9996b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_SHIFT) 10006b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT(param) \ 10016b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_MASK) >> \ 10026b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_SHIFT) 10036b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT(param) \ 10046b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_MASK) >> \ 10056b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_SHIFT) 10066b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ(param) \ 10076b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_MASK) >> \ 10086b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_SHIFT) 10096b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ(param) \ 10106b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_MASK) >> \ 10116b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_SHIFT) 10126b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ(param) \ 10136b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_MASK) >> \ 10146b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_SHIFT) 10156b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ(param) \ 10166b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_MASK) >> \ 10176b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_SHIFT) 10186b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ(param) \ 10196b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_MASK) >> \ 10206b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_SHIFT) 10216b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ(param) \ 10226b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_MASK) >> \ 10236b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_SHIFT) 10246b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ(param) \ 10256b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_MASK) >> \ 10266b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_SHIFT) 10276b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ(param) \ 10286b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_MASK) >> \ 10296b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_SHIFT) 10306b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ(param) \ 10316b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_MASK) >> \ 10326b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_SHIFT) 10336b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ(param) \ 10346b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_MASK) >> \ 10356b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_SHIFT) 10366b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ(param) \ 10376b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_MASK) >> \ 10386b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_SHIFT) 10396b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ(param) \ 10406b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_MASK) >> \ 10416b021cc2SWarner Losh HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_SHIFT) 10426b021cc2SWarner Losh 10436b021cc2SWarner Losh /* Supported Stream Formats */ 10446b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS 0x0b 10456b021cc2SWarner Losh 10466b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_AC3_MASK 0x00000004 10476b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_AC3_SHIFT 2 10486b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_MASK 0x00000002 10496b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_SHIFT 1 10506b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_PCM_MASK 0x00000001 10516b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_PCM_SHIFT 0 10526b021cc2SWarner Losh 10536b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_AC3(param) \ 10546b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_STREAM_FORMATS_AC3_MASK) >> \ 10556b021cc2SWarner Losh HDA_PARAM_SUPP_STREAM_FORMATS_AC3_SHIFT) 10566b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32(param) \ 10576b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_MASK) >> \ 10586b021cc2SWarner Losh HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_SHIFT) 10596b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_PCM(param) \ 10606b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_STREAM_FORMATS_PCM_MASK) >> \ 10616b021cc2SWarner Losh HDA_PARAM_SUPP_STREAM_FORMATS_PCM_SHIFT) 10626b021cc2SWarner Losh 10636b021cc2SWarner Losh /* Pin Capabilities */ 10646b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP 0x0c 10656b021cc2SWarner Losh 10666b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HBR_MASK 0x08000000 10676b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HBR_SHIFT 27 10686b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_DP_MASK 0x01000000 10696b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_DP_SHIFT 24 10706b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_EAPD_CAP_MASK 0x00010000 10716b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_EAPD_CAP_SHIFT 16 10726b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_MASK 0x0000ff00 10736b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_SHIFT 8 10746b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_100_MASK 0x00002000 10756b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_100_SHIFT 13 10766b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_80_MASK 0x00001000 10776b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_80_SHIFT 12 10786b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_MASK 0x00000400 10796b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_SHIFT 10 10806b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_50_MASK 0x00000200 10816b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_50_SHIFT 9 10826b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_MASK 0x00000100 10836b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_SHIFT 8 10846b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HDMI_MASK 0x00000080 10856b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HDMI_SHIFT 7 10866b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_MASK 0x00000040 10876b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_SHIFT 6 10886b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_INPUT_CAP_MASK 0x00000020 10896b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_INPUT_CAP_SHIFT 5 10906b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_OUTPUT_CAP_MASK 0x00000010 10916b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_OUTPUT_CAP_SHIFT 4 10926b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HEADPHONE_CAP_MASK 0x00000008 10936b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HEADPHONE_CAP_SHIFT 3 10946b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_MASK 0x00000004 10956b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_SHIFT 2 10966b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_TRIGGER_REQD_MASK 0x00000002 10976b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_TRIGGER_REQD_SHIFT 1 10986b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_MASK 0x00000001 10996b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_SHIFT 0 11006b021cc2SWarner Losh 11016b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HBR(param) \ 11026b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_HBR_MASK) >> \ 11036b021cc2SWarner Losh HDA_PARAM_PIN_CAP_HBR_SHIFT) 11046b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_DP(param) \ 11056b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_DP_MASK) >> \ 11066b021cc2SWarner Losh HDA_PARAM_PIN_CAP_DP_SHIFT) 11076b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_EAPD_CAP(param) \ 11086b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_EAPD_CAP_MASK) >> \ 11096b021cc2SWarner Losh HDA_PARAM_PIN_CAP_EAPD_CAP_SHIFT) 11106b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL(param) \ 11116b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_MASK) >> \ 11126b021cc2SWarner Losh HDA_PARAM_PIN_CAP_VREF_CTRL_SHIFT) 11136b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_100(param) \ 11146b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_100_MASK) >> \ 11156b021cc2SWarner Losh HDA_PARAM_PIN_CAP_VREF_CTRL_100_SHIFT) 11166b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_80(param) \ 11176b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_80_MASK) >> \ 11186b021cc2SWarner Losh HDA_PARAM_PIN_CAP_VREF_CTRL_80_SHIFT) 11196b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND(param) \ 11206b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_MASK) >> \ 11216b021cc2SWarner Losh HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_SHIFT) 11226b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_50(param) \ 11236b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_50_MASK) >> \ 11246b021cc2SWarner Losh HDA_PARAM_PIN_CAP_VREF_CTRL_50_SHIFT) 11256b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ(param) \ 11266b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_MASK) >> \ 11276b021cc2SWarner Losh HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_SHIFT) 11286b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HDMI(param) \ 11296b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_HDMI_MASK) >> \ 11306b021cc2SWarner Losh HDA_PARAM_PIN_CAP_HDMI_SHIFT) 11316b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_BALANCED_IO_PINS(param) \ 11326b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_MASK) >> \ 11336b021cc2SWarner Losh HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_SHIFT) 11346b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_INPUT_CAP(param) \ 11356b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_INPUT_CAP_MASK) >> \ 11366b021cc2SWarner Losh HDA_PARAM_PIN_CAP_INPUT_CAP_SHIFT) 11376b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_OUTPUT_CAP(param) \ 11386b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_OUTPUT_CAP_MASK) >> \ 11396b021cc2SWarner Losh HDA_PARAM_PIN_CAP_OUTPUT_CAP_SHIFT) 11406b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HEADPHONE_CAP(param) \ 11416b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_HEADPHONE_CAP_MASK) >> \ 11426b021cc2SWarner Losh HDA_PARAM_PIN_CAP_HEADPHONE_CAP_SHIFT) 11436b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP(param) \ 11446b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_MASK) >> \ 11456b021cc2SWarner Losh HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_SHIFT) 11466b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_TRIGGER_REQD(param) \ 11476b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_TRIGGER_REQD_MASK) >> \ 11486b021cc2SWarner Losh HDA_PARAM_PIN_CAP_TRIGGER_REQD_SHIFT) 11496b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_IMP_SENSE_CAP(param) \ 11506b021cc2SWarner Losh (((param) & HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_MASK) >> \ 11516b021cc2SWarner Losh HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_SHIFT) 11526b021cc2SWarner Losh 11536b021cc2SWarner Losh /* Input Amplifier Capabilities */ 11546b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP 0x0d 11556b021cc2SWarner Losh 11566b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_MASK 0x80000000 11576b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_SHIFT 31 11586b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_MASK 0x007f0000 11596b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_SHIFT 16 11606b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_MASK 0x00007f00 11616b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_SHIFT 8 11626b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_OFFSET_MASK 0x0000007f 11636b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_OFFSET_SHIFT 0 11646b021cc2SWarner Losh 11656b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP(param) \ 11666b021cc2SWarner Losh (((param) & HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_MASK) >> \ 11676b021cc2SWarner Losh HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_SHIFT) 11686b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_STEPSIZE(param) \ 11696b021cc2SWarner Losh (((param) & HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_MASK) >> \ 11706b021cc2SWarner Losh HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_SHIFT) 11716b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS(param) \ 11726b021cc2SWarner Losh (((param) & HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_MASK) >> \ 11736b021cc2SWarner Losh HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_SHIFT) 11746b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_OFFSET(param) \ 11756b021cc2SWarner Losh (((param) & HDA_PARAM_INPUT_AMP_CAP_OFFSET_MASK) >> \ 11766b021cc2SWarner Losh HDA_PARAM_INPUT_AMP_CAP_OFFSET_SHIFT) 11776b021cc2SWarner Losh 11786b021cc2SWarner Losh /* Output Amplifier Capabilities */ 11796b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP 0x12 11806b021cc2SWarner Losh 11816b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_MASK 0x80000000 11826b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_SHIFT 31 11836b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_MASK 0x007f0000 11846b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_SHIFT 16 11856b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_MASK 0x00007f00 11866b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_SHIFT 8 11876b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_MASK 0x0000007f 11886b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_SHIFT 0 11896b021cc2SWarner Losh 11906b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP(param) \ 11916b021cc2SWarner Losh (((param) & HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_MASK) >> \ 11926b021cc2SWarner Losh HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_SHIFT) 11936b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE(param) \ 11946b021cc2SWarner Losh (((param) & HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_MASK) >> \ 11956b021cc2SWarner Losh HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_SHIFT) 11966b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS(param) \ 11976b021cc2SWarner Losh (((param) & HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_MASK) >> \ 11986b021cc2SWarner Losh HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_SHIFT) 11996b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_OFFSET(param) \ 12006b021cc2SWarner Losh (((param) & HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_MASK) >> \ 12016b021cc2SWarner Losh HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_SHIFT) 12026b021cc2SWarner Losh 12036b021cc2SWarner Losh /* Connection List Length */ 12046b021cc2SWarner Losh #define HDA_PARAM_CONN_LIST_LENGTH 0x0e 12056b021cc2SWarner Losh 12066b021cc2SWarner Losh #define HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_MASK 0x00000080 12076b021cc2SWarner Losh #define HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_SHIFT 7 12086b021cc2SWarner Losh #define HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_MASK 0x0000007f 12096b021cc2SWarner Losh #define HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_SHIFT 0 12106b021cc2SWarner Losh 12116b021cc2SWarner Losh #define HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM(param) \ 12126b021cc2SWarner Losh (((param) & HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_MASK) >> \ 12136b021cc2SWarner Losh HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_SHIFT) 12146b021cc2SWarner Losh #define HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH(param) \ 12156b021cc2SWarner Losh (((param) & HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_MASK) >> \ 12166b021cc2SWarner Losh HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_SHIFT) 12176b021cc2SWarner Losh 12186b021cc2SWarner Losh /* Supported Power States */ 12196b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES 0x0f 12206b021cc2SWarner Losh 12216b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D3_MASK 0x00000008 12226b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D3_SHIFT 3 12236b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D2_MASK 0x00000004 12246b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D2_SHIFT 2 12256b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D1_MASK 0x00000002 12266b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D1_SHIFT 1 12276b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D0_MASK 0x00000001 12286b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D0_SHIFT 0 12296b021cc2SWarner Losh 12306b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D3(param) \ 12316b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_POWER_STATES_D3_MASK) >> \ 12326b021cc2SWarner Losh HDA_PARAM_SUPP_POWER_STATES_D3_SHIFT) 12336b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D2(param) \ 12346b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_POWER_STATES_D2_MASK) >> \ 12356b021cc2SWarner Losh HDA_PARAM_SUPP_POWER_STATES_D2_SHIFT) 12366b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D1(param) \ 12376b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_POWER_STATES_D1_MASK) >> \ 12386b021cc2SWarner Losh HDA_PARAM_SUPP_POWER_STATES_D1_SHIFT) 12396b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D0(param) \ 12406b021cc2SWarner Losh (((param) & HDA_PARAM_SUPP_POWER_STATES_D0_MASK) >> \ 12416b021cc2SWarner Losh HDA_PARAM_SUPP_POWER_STATES_D0_SHIFT) 12426b021cc2SWarner Losh 12436b021cc2SWarner Losh /* Processing Capabilities */ 12446b021cc2SWarner Losh #define HDA_PARAM_PROCESSING_CAP 0x10 12456b021cc2SWarner Losh 12466b021cc2SWarner Losh #define HDA_PARAM_PROCESSING_CAP_NUMCOEFF_MASK 0x0000ff00 12476b021cc2SWarner Losh #define HDA_PARAM_PROCESSING_CAP_NUMCOEFF_SHIFT 8 12486b021cc2SWarner Losh #define HDA_PARAM_PROCESSING_CAP_BENIGN_MASK 0x00000001 12496b021cc2SWarner Losh #define HDA_PARAM_PROCESSING_CAP_BENIGN_SHIFT 0 12506b021cc2SWarner Losh 12516b021cc2SWarner Losh #define HDA_PARAM_PROCESSING_CAP_NUMCOEFF(param) \ 12526b021cc2SWarner Losh (((param) & HDA_PARAM_PROCESSING_CAP_NUMCOEFF_MASK) >> \ 12536b021cc2SWarner Losh HDA_PARAM_PROCESSING_CAP_NUMCOEFF_SHIFT) 12546b021cc2SWarner Losh #define HDA_PARAM_PROCESSING_CAP_BENIGN(param) \ 12556b021cc2SWarner Losh (((param) & HDA_PARAM_PROCESSING_CAP_BENIGN_MASK) >> \ 12566b021cc2SWarner Losh HDA_PARAM_PROCESSING_CAP_BENIGN_SHIFT) 12576b021cc2SWarner Losh 12586b021cc2SWarner Losh /* GPIO Count */ 12596b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT 0x11 12606b021cc2SWarner Losh 12616b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_GPI_WAKE_MASK 0x80000000 12626b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_GPI_WAKE_SHIFT 31 12636b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_GPI_UNSOL_MASK 0x40000000 12646b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_GPI_UNSOL_SHIFT 30 12656b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPI_MASK 0x00ff0000 12666b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPI_SHIFT 16 12676b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPO_MASK 0x0000ff00 12686b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPO_SHIFT 8 12696b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPIO_MASK 0x000000ff 12706b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPIO_SHIFT 0 12716b021cc2SWarner Losh 12726b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_GPI_WAKE(param) \ 12736b021cc2SWarner Losh (((param) & HDA_PARAM_GPIO_COUNT_GPI_WAKE_MASK) >> \ 12746b021cc2SWarner Losh HDA_PARAM_GPIO_COUNT_GPI_WAKE_SHIFT) 12756b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_GPI_UNSOL(param) \ 12766b021cc2SWarner Losh (((param) & HDA_PARAM_GPIO_COUNT_GPI_UNSOL_MASK) >> \ 12776b021cc2SWarner Losh HDA_PARAM_GPIO_COUNT_GPI_UNSOL_SHIFT) 12786b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPI(param) \ 12796b021cc2SWarner Losh (((param) & HDA_PARAM_GPIO_COUNT_NUM_GPI_MASK) >> \ 12806b021cc2SWarner Losh HDA_PARAM_GPIO_COUNT_NUM_GPI_SHIFT) 12816b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPO(param) \ 12826b021cc2SWarner Losh (((param) & HDA_PARAM_GPIO_COUNT_NUM_GPO_MASK) >> \ 12836b021cc2SWarner Losh HDA_PARAM_GPIO_COUNT_NUM_GPO_SHIFT) 12846b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPIO(param) \ 12856b021cc2SWarner Losh (((param) & HDA_PARAM_GPIO_COUNT_NUM_GPIO_MASK) >> \ 12866b021cc2SWarner Losh HDA_PARAM_GPIO_COUNT_NUM_GPIO_SHIFT) 12876b021cc2SWarner Losh 12886b021cc2SWarner Losh /* Volume Knob Capabilities */ 12896b021cc2SWarner Losh #define HDA_PARAM_VOLUME_KNOB_CAP 0x13 12906b021cc2SWarner Losh 12916b021cc2SWarner Losh #define HDA_PARAM_VOLUME_KNOB_CAP_DELTA_MASK 0x00000080 12926b021cc2SWarner Losh #define HDA_PARAM_VOLUME_KNOB_CAP_DELTA_SHIFT 7 12936b021cc2SWarner Losh #define HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_MASK 0x0000007f 12946b021cc2SWarner Losh #define HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_SHIFT 0 12956b021cc2SWarner Losh 12966b021cc2SWarner Losh #define HDA_PARAM_VOLUME_KNOB_CAP_DELTA(param) \ 12976b021cc2SWarner Losh (((param) & HDA_PARAM_VOLUME_KNOB_CAP_DELTA_MASK) >> \ 12986b021cc2SWarner Losh HDA_PARAM_VOLUME_KNOB_CAP_DELTA_SHIFT) 12996b021cc2SWarner Losh #define HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS(param) \ 13006b021cc2SWarner Losh (((param) & HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_MASK) >> \ 13016b021cc2SWarner Losh HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_SHIFT) 13026b021cc2SWarner Losh 13036b021cc2SWarner Losh 13046b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_SEQUENCE_MASK 0x0000000f 13056b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_SEQUENCE_SHIFT 0 13066b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_ASSOCIATION_MASK 0x000000f0 13076b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_ASSOCIATION_SHIFT 4 13086b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_MISC_MASK 0x00000f00 13096b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_MISC_SHIFT 8 13106b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_COLOR_MASK 0x0000f000 13116b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_COLOR_SHIFT 12 13126b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_MASK 0x000f0000 13136b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_SHIFT 16 13146b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_MASK 0x00f00000 13156b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_SHIFT 20 13166b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_LOCATION_MASK 0x3f000000 13176b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_LOCATION_SHIFT 24 13186b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK 0xc0000000 13196b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_SHIFT 30 13206b021cc2SWarner Losh 13216b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_SEQUENCE(conf) \ 13226b021cc2SWarner Losh (((conf) & HDA_CONFIG_DEFAULTCONF_SEQUENCE_MASK) >> \ 13236b021cc2SWarner Losh HDA_CONFIG_DEFAULTCONF_SEQUENCE_SHIFT) 13246b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_ASSOCIATION(conf) \ 13256b021cc2SWarner Losh (((conf) & HDA_CONFIG_DEFAULTCONF_ASSOCIATION_MASK) >> \ 13266b021cc2SWarner Losh HDA_CONFIG_DEFAULTCONF_ASSOCIATION_SHIFT) 13276b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_MISC(conf) \ 13286b021cc2SWarner Losh (((conf) & HDA_CONFIG_DEFAULTCONF_MISC_MASK) >> \ 13296b021cc2SWarner Losh HDA_CONFIG_DEFAULTCONF_MISC_SHIFT) 13306b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_COLOR(conf) \ 13316b021cc2SWarner Losh (((conf) & HDA_CONFIG_DEFAULTCONF_COLOR_MASK) >> \ 13326b021cc2SWarner Losh HDA_CONFIG_DEFAULTCONF_COLOR_SHIFT) 13336b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE(conf) \ 13346b021cc2SWarner Losh (((conf) & HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_MASK) >> \ 13356b021cc2SWarner Losh HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_SHIFT) 13366b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE(conf) \ 13376b021cc2SWarner Losh (((conf) & HDA_CONFIG_DEFAULTCONF_DEVICE_MASK) >> \ 13386b021cc2SWarner Losh HDA_CONFIG_DEFAULTCONF_DEVICE_SHIFT) 13396b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_LOCATION(conf) \ 13406b021cc2SWarner Losh (((conf) & HDA_CONFIG_DEFAULTCONF_LOCATION_MASK) >> \ 13416b021cc2SWarner Losh HDA_CONFIG_DEFAULTCONF_LOCATION_SHIFT) 13426b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY(conf) \ 13436b021cc2SWarner Losh (((conf) & HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK) >> \ 13446b021cc2SWarner Losh HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_SHIFT) 13456b021cc2SWarner Losh 13466b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_JACK (0<<30) 13476b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_NONE (1<<30) 13486b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED (2<<30) 13496b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_BOTH (3<<30) 13506b021cc2SWarner Losh 13516b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_OUT (0<<20) 13526b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_SPEAKER (1<<20) 13536b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_HP_OUT (2<<20) 13546b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_CD (3<<20) 13556b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_SPDIF_OUT (4<<20) 13566b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_DIGITAL_OTHER_OUT (5<<20) 13576b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_MODEM_LINE (6<<20) 13586b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_MODEM_HANDSET (7<<20) 13596b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_IN (8<<20) 13606b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_AUX (9<<20) 13616b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN (10<<20) 13626b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_TELEPHONY (11<<20) 13636b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_SPDIF_IN (12<<20) 13646b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_DIGITAL_OTHER_IN (13<<20) 13656b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_OTHER (15<<20) 13666b021cc2SWarner Losh 13676b021cc2SWarner Losh #endif /* _HDA_REG_H_ */ 1368