Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * HD-audio codec verbs
0004  */
0005 
0006 #ifndef __SOUND_HDA_VERBS_H
0007 #define __SOUND_HDA_VERBS_H
0008 
0009 /*
0010  * nodes
0011  */
0012 #define AC_NODE_ROOT        0x00
0013 
0014 /*
0015  * function group types
0016  */
0017 enum {
0018     AC_GRP_AUDIO_FUNCTION = 0x01,
0019     AC_GRP_MODEM_FUNCTION = 0x02,
0020 };
0021 
0022 /*
0023  * widget types
0024  */
0025 enum {
0026     AC_WID_AUD_OUT,     /* Audio Out */
0027     AC_WID_AUD_IN,      /* Audio In */
0028     AC_WID_AUD_MIX,     /* Audio Mixer */
0029     AC_WID_AUD_SEL,     /* Audio Selector */
0030     AC_WID_PIN,     /* Pin Complex */
0031     AC_WID_POWER,       /* Power */
0032     AC_WID_VOL_KNB,     /* Volume Knob */
0033     AC_WID_BEEP,        /* Beep Generator */
0034     AC_WID_VENDOR = 0x0f    /* Vendor specific */
0035 };
0036 
0037 /*
0038  * GET verbs
0039  */
0040 #define AC_VERB_GET_STREAM_FORMAT       0x0a00
0041 #define AC_VERB_GET_AMP_GAIN_MUTE       0x0b00
0042 #define AC_VERB_GET_PROC_COEF           0x0c00
0043 #define AC_VERB_GET_COEF_INDEX          0x0d00
0044 #define AC_VERB_PARAMETERS          0x0f00
0045 #define AC_VERB_GET_CONNECT_SEL         0x0f01
0046 #define AC_VERB_GET_CONNECT_LIST        0x0f02
0047 #define AC_VERB_GET_PROC_STATE          0x0f03
0048 #define AC_VERB_GET_SDI_SELECT          0x0f04
0049 #define AC_VERB_GET_POWER_STATE         0x0f05
0050 #define AC_VERB_GET_CONV            0x0f06
0051 #define AC_VERB_GET_PIN_WIDGET_CONTROL      0x0f07
0052 #define AC_VERB_GET_UNSOLICITED_RESPONSE    0x0f08
0053 #define AC_VERB_GET_PIN_SENSE           0x0f09
0054 #define AC_VERB_GET_BEEP_CONTROL        0x0f0a
0055 #define AC_VERB_GET_EAPD_BTLENABLE      0x0f0c
0056 #define AC_VERB_GET_DIGI_CONVERT_1      0x0f0d
0057 #define AC_VERB_GET_DIGI_CONVERT_2      0x0f0e /* unused */
0058 #define AC_VERB_GET_VOLUME_KNOB_CONTROL     0x0f0f
0059 /* f10-f1a: GPIO */
0060 #define AC_VERB_GET_GPIO_DATA           0x0f15
0061 #define AC_VERB_GET_GPIO_MASK           0x0f16
0062 #define AC_VERB_GET_GPIO_DIRECTION      0x0f17
0063 #define AC_VERB_GET_GPIO_WAKE_MASK      0x0f18
0064 #define AC_VERB_GET_GPIO_UNSOLICITED_RSP_MASK   0x0f19
0065 #define AC_VERB_GET_GPIO_STICKY_MASK        0x0f1a
0066 #define AC_VERB_GET_CONFIG_DEFAULT      0x0f1c
0067 /* f20: AFG/MFG */
0068 #define AC_VERB_GET_SUBSYSTEM_ID        0x0f20
0069 #define AC_VERB_GET_STRIPE_CONTROL      0x0f24
0070 #define AC_VERB_GET_CVT_CHAN_COUNT      0x0f2d
0071 #define AC_VERB_GET_HDMI_DIP_SIZE       0x0f2e
0072 #define AC_VERB_GET_HDMI_ELDD           0x0f2f
0073 #define AC_VERB_GET_HDMI_DIP_INDEX      0x0f30
0074 #define AC_VERB_GET_HDMI_DIP_DATA       0x0f31
0075 #define AC_VERB_GET_HDMI_DIP_XMIT       0x0f32
0076 #define AC_VERB_GET_HDMI_CP_CTRL        0x0f33
0077 #define AC_VERB_GET_HDMI_CHAN_SLOT      0x0f34
0078 #define AC_VERB_GET_DEVICE_SEL          0xf35
0079 #define AC_VERB_GET_DEVICE_LIST         0xf36
0080 
0081 /*
0082  * SET verbs
0083  */
0084 #define AC_VERB_SET_STREAM_FORMAT       0x200
0085 #define AC_VERB_SET_AMP_GAIN_MUTE       0x300
0086 #define AC_VERB_SET_PROC_COEF           0x400
0087 #define AC_VERB_SET_COEF_INDEX          0x500
0088 #define AC_VERB_SET_CONNECT_SEL         0x701
0089 #define AC_VERB_SET_PROC_STATE          0x703
0090 #define AC_VERB_SET_SDI_SELECT          0x704
0091 #define AC_VERB_SET_POWER_STATE         0x705
0092 #define AC_VERB_SET_CHANNEL_STREAMID        0x706
0093 #define AC_VERB_SET_PIN_WIDGET_CONTROL      0x707
0094 #define AC_VERB_SET_UNSOLICITED_ENABLE      0x708
0095 #define AC_VERB_SET_PIN_SENSE           0x709
0096 #define AC_VERB_SET_BEEP_CONTROL        0x70a
0097 #define AC_VERB_SET_EAPD_BTLENABLE      0x70c
0098 #define AC_VERB_SET_DIGI_CONVERT_1      0x70d
0099 #define AC_VERB_SET_DIGI_CONVERT_2      0x70e
0100 #define AC_VERB_SET_DIGI_CONVERT_3      0x73e
0101 #define AC_VERB_SET_VOLUME_KNOB_CONTROL     0x70f
0102 #define AC_VERB_SET_GPIO_DATA           0x715
0103 #define AC_VERB_SET_GPIO_MASK           0x716
0104 #define AC_VERB_SET_GPIO_DIRECTION      0x717
0105 #define AC_VERB_SET_GPIO_WAKE_MASK      0x718
0106 #define AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK   0x719
0107 #define AC_VERB_SET_GPIO_STICKY_MASK        0x71a
0108 #define AC_VERB_SET_CONFIG_DEFAULT_BYTES_0  0x71c
0109 #define AC_VERB_SET_CONFIG_DEFAULT_BYTES_1  0x71d
0110 #define AC_VERB_SET_CONFIG_DEFAULT_BYTES_2  0x71e
0111 #define AC_VERB_SET_CONFIG_DEFAULT_BYTES_3  0x71f
0112 #define AC_VERB_SET_EAPD                0x788
0113 #define AC_VERB_SET_CODEC_RESET         0x7ff
0114 #define AC_VERB_SET_STRIPE_CONTROL      0x724
0115 #define AC_VERB_SET_CVT_CHAN_COUNT      0x72d
0116 #define AC_VERB_SET_HDMI_DIP_INDEX      0x730
0117 #define AC_VERB_SET_HDMI_DIP_DATA       0x731
0118 #define AC_VERB_SET_HDMI_DIP_XMIT       0x732
0119 #define AC_VERB_SET_HDMI_CP_CTRL        0x733
0120 #define AC_VERB_SET_HDMI_CHAN_SLOT      0x734
0121 #define AC_VERB_SET_DEVICE_SEL          0x735
0122 
0123 /*
0124  * Parameter IDs
0125  */
0126 #define AC_PAR_VENDOR_ID        0x00
0127 #define AC_PAR_SUBSYSTEM_ID     0x01
0128 #define AC_PAR_REV_ID           0x02
0129 #define AC_PAR_NODE_COUNT       0x04
0130 #define AC_PAR_FUNCTION_TYPE        0x05
0131 #define AC_PAR_AUDIO_FG_CAP     0x08
0132 #define AC_PAR_AUDIO_WIDGET_CAP     0x09
0133 #define AC_PAR_PCM          0x0a
0134 #define AC_PAR_STREAM           0x0b
0135 #define AC_PAR_PIN_CAP          0x0c
0136 #define AC_PAR_AMP_IN_CAP       0x0d
0137 #define AC_PAR_CONNLIST_LEN     0x0e
0138 #define AC_PAR_POWER_STATE      0x0f
0139 #define AC_PAR_PROC_CAP         0x10
0140 #define AC_PAR_GPIO_CAP         0x11
0141 #define AC_PAR_AMP_OUT_CAP      0x12
0142 #define AC_PAR_VOL_KNB_CAP      0x13
0143 #define AC_PAR_DEVLIST_LEN      0x15
0144 #define AC_PAR_HDMI_LPCM_CAP        0x20
0145 
0146 /*
0147  * AC_VERB_PARAMETERS results (32bit)
0148  */
0149 
0150 /* Function Group Type */
0151 #define AC_FGT_TYPE         (0xff<<0)
0152 #define AC_FGT_TYPE_SHIFT       0
0153 #define AC_FGT_UNSOL_CAP        (1<<8)
0154 
0155 /* Audio Function Group Capabilities */
0156 #define AC_AFG_OUT_DELAY        (0xf<<0)
0157 #define AC_AFG_IN_DELAY         (0xf<<8)
0158 #define AC_AFG_BEEP_GEN         (1<<16)
0159 
0160 /* Audio Widget Capabilities */
0161 #define AC_WCAP_STEREO          (1<<0)  /* stereo I/O */
0162 #define AC_WCAP_IN_AMP          (1<<1)  /* AMP-in present */
0163 #define AC_WCAP_OUT_AMP         (1<<2)  /* AMP-out present */
0164 #define AC_WCAP_AMP_OVRD        (1<<3)  /* AMP-parameter override */
0165 #define AC_WCAP_FORMAT_OVRD     (1<<4)  /* format override */
0166 #define AC_WCAP_STRIPE          (1<<5)  /* stripe */
0167 #define AC_WCAP_PROC_WID        (1<<6)  /* Proc Widget */
0168 #define AC_WCAP_UNSOL_CAP       (1<<7)  /* Unsol capable */
0169 #define AC_WCAP_CONN_LIST       (1<<8)  /* connection list */
0170 #define AC_WCAP_DIGITAL         (1<<9)  /* digital I/O */
0171 #define AC_WCAP_POWER           (1<<10) /* power control */
0172 #define AC_WCAP_LR_SWAP         (1<<11) /* L/R swap */
0173 #define AC_WCAP_CP_CAPS         (1<<12) /* content protection */
0174 #define AC_WCAP_CHAN_CNT_EXT        (7<<13) /* channel count ext */
0175 #define AC_WCAP_DELAY           (0xf<<16)
0176 #define AC_WCAP_DELAY_SHIFT     16
0177 #define AC_WCAP_TYPE            (0xf<<20)
0178 #define AC_WCAP_TYPE_SHIFT      20
0179 
0180 /* supported PCM rates and bits */
0181 #define AC_SUPPCM_RATES         (0xfff << 0)
0182 #define AC_SUPPCM_BITS_8        (1<<16)
0183 #define AC_SUPPCM_BITS_16       (1<<17)
0184 #define AC_SUPPCM_BITS_20       (1<<18)
0185 #define AC_SUPPCM_BITS_24       (1<<19)
0186 #define AC_SUPPCM_BITS_32       (1<<20)
0187 
0188 /* supported PCM stream format */
0189 #define AC_SUPFMT_PCM           (1<<0)
0190 #define AC_SUPFMT_FLOAT32       (1<<1)
0191 #define AC_SUPFMT_AC3           (1<<2)
0192 
0193 /* GP I/O count */
0194 #define AC_GPIO_IO_COUNT        (0xff<<0)
0195 #define AC_GPIO_O_COUNT         (0xff<<8)
0196 #define AC_GPIO_O_COUNT_SHIFT       8
0197 #define AC_GPIO_I_COUNT         (0xff<<16)
0198 #define AC_GPIO_I_COUNT_SHIFT       16
0199 #define AC_GPIO_UNSOLICITED     (1<<30)
0200 #define AC_GPIO_WAKE            (1<<31)
0201 
0202 /* Converter stream, channel */
0203 #define AC_CONV_CHANNEL         (0xf<<0)
0204 #define AC_CONV_STREAM          (0xf<<4)
0205 #define AC_CONV_STREAM_SHIFT        4
0206 
0207 /* Input converter SDI select */
0208 #define AC_SDI_SELECT           (0xf<<0)
0209 
0210 /* stream format id */
0211 #define AC_FMT_CHAN_SHIFT       0
0212 #define AC_FMT_CHAN_MASK        (0x0f << 0)
0213 #define AC_FMT_BITS_SHIFT       4
0214 #define AC_FMT_BITS_MASK        (7 << 4)
0215 #define AC_FMT_BITS_8           (0 << 4)
0216 #define AC_FMT_BITS_16          (1 << 4)
0217 #define AC_FMT_BITS_20          (2 << 4)
0218 #define AC_FMT_BITS_24          (3 << 4)
0219 #define AC_FMT_BITS_32          (4 << 4)
0220 #define AC_FMT_DIV_SHIFT        8
0221 #define AC_FMT_DIV_MASK         (7 << 8)
0222 #define AC_FMT_MULT_SHIFT       11
0223 #define AC_FMT_MULT_MASK        (7 << 11)
0224 #define AC_FMT_BASE_SHIFT       14
0225 #define AC_FMT_BASE_48K         (0 << 14)
0226 #define AC_FMT_BASE_44K         (1 << 14)
0227 #define AC_FMT_TYPE_SHIFT       15
0228 #define AC_FMT_TYPE_PCM         (0 << 15)
0229 #define AC_FMT_TYPE_NON_PCM     (1 << 15)
0230 
0231 /* Unsolicited response control */
0232 #define AC_UNSOL_TAG            (0x3f<<0)
0233 #define AC_UNSOL_ENABLED        (1<<7)
0234 #define AC_USRSP_EN         AC_UNSOL_ENABLED
0235 
0236 /* Unsolicited responses */
0237 #define AC_UNSOL_RES_TAG        (0x3f<<26)
0238 #define AC_UNSOL_RES_TAG_SHIFT      26
0239 #define AC_UNSOL_RES_SUBTAG     (0x1f<<21)
0240 #define AC_UNSOL_RES_SUBTAG_SHIFT   21
0241 #define AC_UNSOL_RES_DE         (0x3f<<15)  /* Device Entry
0242                              * (for DP1.2 MST)
0243                              */
0244 #define AC_UNSOL_RES_DE_SHIFT       15
0245 #define AC_UNSOL_RES_IA         (1<<2)  /* Inactive (for DP1.2 MST) */
0246 #define AC_UNSOL_RES_ELDV       (1<<1)  /* ELD Data valid (for HDMI) */
0247 #define AC_UNSOL_RES_PD         (1<<0)  /* pinsense detect */
0248 #define AC_UNSOL_RES_CP_STATE       (1<<1)  /* content protection */
0249 #define AC_UNSOL_RES_CP_READY       (1<<0)  /* content protection */
0250 
0251 /* Pin widget capabilies */
0252 #define AC_PINCAP_IMP_SENSE     (1<<0)  /* impedance sense capable */
0253 #define AC_PINCAP_TRIG_REQ      (1<<1)  /* trigger required */
0254 #define AC_PINCAP_PRES_DETECT       (1<<2)  /* presence detect capable */
0255 #define AC_PINCAP_HP_DRV        (1<<3)  /* headphone drive capable */
0256 #define AC_PINCAP_OUT           (1<<4)  /* output capable */
0257 #define AC_PINCAP_IN            (1<<5)  /* input capable */
0258 #define AC_PINCAP_BALANCE       (1<<6)  /* balanced I/O capable */
0259 /* Note: This LR_SWAP pincap is defined in the Realtek ALC883 specification,
0260  *       but is marked reserved in the Intel HDA specification.
0261  */
0262 #define AC_PINCAP_LR_SWAP       (1<<7)  /* L/R swap */
0263 /* Note: The same bit as LR_SWAP is newly defined as HDMI capability
0264  *       in HD-audio specification
0265  */
0266 #define AC_PINCAP_HDMI          (1<<7)  /* HDMI pin */
0267 #define AC_PINCAP_DP            (1<<24) /* DisplayPort pin, can
0268                          * coexist with AC_PINCAP_HDMI
0269                          */
0270 #define AC_PINCAP_VREF          (0x37<<8)
0271 #define AC_PINCAP_VREF_SHIFT        8
0272 #define AC_PINCAP_EAPD          (1<<16) /* EAPD capable */
0273 #define AC_PINCAP_HBR           (1<<27) /* High Bit Rate */
0274 /* Vref status (used in pin cap) */
0275 #define AC_PINCAP_VREF_HIZ      (1<<0)  /* Hi-Z */
0276 #define AC_PINCAP_VREF_50       (1<<1)  /* 50% */
0277 #define AC_PINCAP_VREF_GRD      (1<<2)  /* ground */
0278 #define AC_PINCAP_VREF_80       (1<<4)  /* 80% */
0279 #define AC_PINCAP_VREF_100      (1<<5)  /* 100% */
0280 
0281 /* Amplifier capabilities */
0282 #define AC_AMPCAP_OFFSET        (0x7f<<0)  /* 0dB offset */
0283 #define AC_AMPCAP_OFFSET_SHIFT      0
0284 #define AC_AMPCAP_NUM_STEPS     (0x7f<<8)  /* number of steps */
0285 #define AC_AMPCAP_NUM_STEPS_SHIFT   8
0286 #define AC_AMPCAP_STEP_SIZE     (0x7f<<16) /* step size 0-32dB
0287                             * in 0.25dB
0288                             */
0289 #define AC_AMPCAP_STEP_SIZE_SHIFT   16
0290 #define AC_AMPCAP_MUTE          (1<<31)    /* mute capable */
0291 #define AC_AMPCAP_MUTE_SHIFT        31
0292 
0293 /* driver-specific amp-caps: using bits 24-30 */
0294 #define AC_AMPCAP_MIN_MUTE      (1 << 30) /* min-volume = mute */
0295 
0296 /* Connection list */
0297 #define AC_CLIST_LENGTH         (0x7f<<0)
0298 #define AC_CLIST_LONG           (1<<7)
0299 
0300 /* Supported power status */
0301 #define AC_PWRST_D0SUP          (1<<0)
0302 #define AC_PWRST_D1SUP          (1<<1)
0303 #define AC_PWRST_D2SUP          (1<<2)
0304 #define AC_PWRST_D3SUP          (1<<3)
0305 #define AC_PWRST_D3COLDSUP      (1<<4)
0306 #define AC_PWRST_S3D3COLDSUP        (1<<29)
0307 #define AC_PWRST_CLKSTOP        (1<<30)
0308 #define AC_PWRST_EPSS           (1U<<31)
0309 
0310 /* Power state values */
0311 #define AC_PWRST_SETTING        (0xf<<0)
0312 #define AC_PWRST_ACTUAL         (0xf<<4)
0313 #define AC_PWRST_ACTUAL_SHIFT       4
0314 #define AC_PWRST_D0         0x00
0315 #define AC_PWRST_D1         0x01
0316 #define AC_PWRST_D2         0x02
0317 #define AC_PWRST_D3         0x03
0318 #define AC_PWRST_ERROR                  (1<<8)
0319 #define AC_PWRST_CLK_STOP_OK            (1<<9)
0320 #define AC_PWRST_SETTING_RESET          (1<<10)
0321 
0322 /* Processing capabilies */
0323 #define AC_PCAP_BENIGN          (1<<0)
0324 #define AC_PCAP_NUM_COEF        (0xff<<8)
0325 #define AC_PCAP_NUM_COEF_SHIFT      8
0326 
0327 /* Volume knobs capabilities */
0328 #define AC_KNBCAP_NUM_STEPS     (0x7f<<0)
0329 #define AC_KNBCAP_DELTA         (1<<7)
0330 
0331 /* HDMI LPCM capabilities */
0332 #define AC_LPCMCAP_48K_CP_CHNS      (0x0f<<0) /* max channels w/ CP-on */
0333 #define AC_LPCMCAP_48K_NO_CHNS      (0x0f<<4) /* max channels w/o CP-on */
0334 #define AC_LPCMCAP_48K_20BIT        (1<<8)  /* 20b bitrate supported */
0335 #define AC_LPCMCAP_48K_24BIT        (1<<9)  /* 24b bitrate supported */
0336 #define AC_LPCMCAP_96K_CP_CHNS      (0x0f<<10) /* max channels w/ CP-on */
0337 #define AC_LPCMCAP_96K_NO_CHNS      (0x0f<<14) /* max channels w/o CP-on */
0338 #define AC_LPCMCAP_96K_20BIT        (1<<18) /* 20b bitrate supported */
0339 #define AC_LPCMCAP_96K_24BIT        (1<<19) /* 24b bitrate supported */
0340 #define AC_LPCMCAP_192K_CP_CHNS     (0x0f<<20) /* max channels w/ CP-on */
0341 #define AC_LPCMCAP_192K_NO_CHNS     (0x0f<<24) /* max channels w/o CP-on */
0342 #define AC_LPCMCAP_192K_20BIT       (1<<28) /* 20b bitrate supported */
0343 #define AC_LPCMCAP_192K_24BIT       (1<<29) /* 24b bitrate supported */
0344 #define AC_LPCMCAP_44K          (1<<30) /* 44.1kHz support */
0345 #define AC_LPCMCAP_44K_MS       (1<<31) /* 44.1kHz-multiplies support */
0346 
0347 /* Display pin's device list length */
0348 #define AC_DEV_LIST_LEN_MASK        0x3f
0349 #define AC_MAX_DEV_LIST_LEN     64
0350 
0351 /*
0352  * Control Parameters
0353  */
0354 
0355 /* Amp gain/mute */
0356 #define AC_AMP_MUTE         (1<<7)
0357 #define AC_AMP_GAIN         (0x7f)
0358 #define AC_AMP_GET_INDEX        (0xf<<0)
0359 
0360 #define AC_AMP_GET_LEFT         (1<<13)
0361 #define AC_AMP_GET_RIGHT        (0<<13)
0362 #define AC_AMP_GET_OUTPUT       (1<<15)
0363 #define AC_AMP_GET_INPUT        (0<<15)
0364 
0365 #define AC_AMP_SET_INDEX        (0xf<<8)
0366 #define AC_AMP_SET_INDEX_SHIFT      8
0367 #define AC_AMP_SET_RIGHT        (1<<12)
0368 #define AC_AMP_SET_LEFT         (1<<13)
0369 #define AC_AMP_SET_INPUT        (1<<14)
0370 #define AC_AMP_SET_OUTPUT       (1<<15)
0371 
0372 /* DIGITAL1 bits */
0373 #define AC_DIG1_ENABLE          (1<<0)
0374 #define AC_DIG1_V           (1<<1)
0375 #define AC_DIG1_VCFG            (1<<2)
0376 #define AC_DIG1_EMPHASIS        (1<<3)
0377 #define AC_DIG1_COPYRIGHT       (1<<4)
0378 #define AC_DIG1_NONAUDIO        (1<<5)
0379 #define AC_DIG1_PROFESSIONAL        (1<<6)
0380 #define AC_DIG1_LEVEL           (1<<7)
0381 
0382 /* DIGITAL2 bits */
0383 #define AC_DIG2_CC          (0x7f<<0)
0384 
0385 /* DIGITAL3 bits */
0386 #define AC_DIG3_ICT         (0xf<<0)
0387 #define AC_DIG3_KAE         (1<<7)
0388 
0389 /* Pin widget control - 8bit */
0390 #define AC_PINCTL_EPT           (0x3<<0)
0391 #define AC_PINCTL_EPT_NATIVE        0
0392 #define AC_PINCTL_EPT_HBR       3
0393 #define AC_PINCTL_VREFEN        (0x7<<0)
0394 #define AC_PINCTL_VREF_HIZ      0   /* Hi-Z */
0395 #define AC_PINCTL_VREF_50       1   /* 50% */
0396 #define AC_PINCTL_VREF_GRD      2   /* ground */
0397 #define AC_PINCTL_VREF_80       4   /* 80% */
0398 #define AC_PINCTL_VREF_100      5   /* 100% */
0399 #define AC_PINCTL_IN_EN         (1<<5)
0400 #define AC_PINCTL_OUT_EN        (1<<6)
0401 #define AC_PINCTL_HP_EN         (1<<7)
0402 
0403 /* Pin sense - 32bit */
0404 #define AC_PINSENSE_IMPEDANCE_MASK  (0x7fffffff)
0405 #define AC_PINSENSE_PRESENCE        (1<<31)
0406 #define AC_PINSENSE_ELDV        (1<<30) /* ELD valid (HDMI) */
0407 
0408 /* EAPD/BTL enable - 32bit */
0409 #define AC_EAPDBTL_BALANCED     (1<<0)
0410 #define AC_EAPDBTL_EAPD         (1<<1)
0411 #define AC_EAPDBTL_LR_SWAP      (1<<2)
0412 
0413 /* HDMI ELD data */
0414 #define AC_ELDD_ELD_VALID       (1<<31)
0415 #define AC_ELDD_ELD_DATA        0xff
0416 
0417 /* HDMI DIP size */
0418 #define AC_DIPSIZE_ELD_BUF      (1<<3) /* ELD buf size of packet size */
0419 #define AC_DIPSIZE_PACK_IDX     (0x07<<0) /* packet index */
0420 
0421 /* HDMI DIP index */
0422 #define AC_DIPIDX_PACK_IDX      (0x07<<5) /* packet idnex */
0423 #define AC_DIPIDX_BYTE_IDX      (0x1f<<0) /* byte index */
0424 
0425 /* HDMI DIP xmit (transmit) control */
0426 #define AC_DIPXMIT_MASK         (0x3<<6)
0427 #define AC_DIPXMIT_DISABLE      (0x0<<6) /* disable xmit */
0428 #define AC_DIPXMIT_ONCE         (0x2<<6) /* xmit once then disable */
0429 #define AC_DIPXMIT_BEST         (0x3<<6) /* best effort */
0430 
0431 /* HDMI content protection (CP) control */
0432 #define AC_CPCTRL_CES           (1<<9) /* current encryption state */
0433 #define AC_CPCTRL_READY         (1<<8) /* ready bit */
0434 #define AC_CPCTRL_SUBTAG        (0x1f<<3) /* subtag for unsol-resp */
0435 #define AC_CPCTRL_STATE         (3<<0) /* current CP request state */
0436 
0437 /* Converter channel <-> HDMI slot mapping */
0438 #define AC_CVTMAP_HDMI_SLOT     (0xf<<0) /* HDMI slot number */
0439 #define AC_CVTMAP_CHAN          (0xf<<4) /* converter channel number */
0440 
0441 /* configuration default - 32bit */
0442 #define AC_DEFCFG_SEQUENCE      (0xf<<0)
0443 #define AC_DEFCFG_DEF_ASSOC     (0xf<<4)
0444 #define AC_DEFCFG_ASSOC_SHIFT       4
0445 #define AC_DEFCFG_MISC          (0xf<<8)
0446 #define AC_DEFCFG_MISC_SHIFT        8
0447 #define AC_DEFCFG_MISC_NO_PRESENCE  (1<<0)
0448 #define AC_DEFCFG_COLOR         (0xf<<12)
0449 #define AC_DEFCFG_COLOR_SHIFT       12
0450 #define AC_DEFCFG_CONN_TYPE     (0xf<<16)
0451 #define AC_DEFCFG_CONN_TYPE_SHIFT   16
0452 #define AC_DEFCFG_DEVICE        (0xf<<20)
0453 #define AC_DEFCFG_DEVICE_SHIFT      20
0454 #define AC_DEFCFG_LOCATION      (0x3f<<24)
0455 #define AC_DEFCFG_LOCATION_SHIFT    24
0456 #define AC_DEFCFG_PORT_CONN     (0x3<<30)
0457 #define AC_DEFCFG_PORT_CONN_SHIFT   30
0458 
0459 /* Display pin's device list entry */
0460 #define AC_DE_PD            (1<<0)
0461 #define AC_DE_ELDV          (1<<1)
0462 #define AC_DE_IA            (1<<2)
0463 
0464 /* device types (0x0-0xf) */
0465 enum {
0466     AC_JACK_LINE_OUT,
0467     AC_JACK_SPEAKER,
0468     AC_JACK_HP_OUT,
0469     AC_JACK_CD,
0470     AC_JACK_SPDIF_OUT,
0471     AC_JACK_DIG_OTHER_OUT,
0472     AC_JACK_MODEM_LINE_SIDE,
0473     AC_JACK_MODEM_HAND_SIDE,
0474     AC_JACK_LINE_IN,
0475     AC_JACK_AUX,
0476     AC_JACK_MIC_IN,
0477     AC_JACK_TELEPHONY,
0478     AC_JACK_SPDIF_IN,
0479     AC_JACK_DIG_OTHER_IN,
0480     AC_JACK_OTHER = 0xf,
0481 };
0482 
0483 /* jack connection types (0x0-0xf) */
0484 enum {
0485     AC_JACK_CONN_UNKNOWN,
0486     AC_JACK_CONN_1_8,
0487     AC_JACK_CONN_1_4,
0488     AC_JACK_CONN_ATAPI,
0489     AC_JACK_CONN_RCA,
0490     AC_JACK_CONN_OPTICAL,
0491     AC_JACK_CONN_OTHER_DIGITAL,
0492     AC_JACK_CONN_OTHER_ANALOG,
0493     AC_JACK_CONN_DIN,
0494     AC_JACK_CONN_XLR,
0495     AC_JACK_CONN_RJ11,
0496     AC_JACK_CONN_COMB,
0497     AC_JACK_CONN_OTHER = 0xf,
0498 };
0499 
0500 /* jack colors (0x0-0xf) */
0501 enum {
0502     AC_JACK_COLOR_UNKNOWN,
0503     AC_JACK_COLOR_BLACK,
0504     AC_JACK_COLOR_GREY,
0505     AC_JACK_COLOR_BLUE,
0506     AC_JACK_COLOR_GREEN,
0507     AC_JACK_COLOR_RED,
0508     AC_JACK_COLOR_ORANGE,
0509     AC_JACK_COLOR_YELLOW,
0510     AC_JACK_COLOR_PURPLE,
0511     AC_JACK_COLOR_PINK,
0512     AC_JACK_COLOR_WHITE = 0xe,
0513     AC_JACK_COLOR_OTHER,
0514 };
0515 
0516 /* Jack location (0x0-0x3f) */
0517 /* common case */
0518 enum {
0519     AC_JACK_LOC_NONE,
0520     AC_JACK_LOC_REAR,
0521     AC_JACK_LOC_FRONT,
0522     AC_JACK_LOC_LEFT,
0523     AC_JACK_LOC_RIGHT,
0524     AC_JACK_LOC_TOP,
0525     AC_JACK_LOC_BOTTOM,
0526 };
0527 /* bits 4-5 */
0528 enum {
0529     AC_JACK_LOC_EXTERNAL = 0x00,
0530     AC_JACK_LOC_INTERNAL = 0x10,
0531     AC_JACK_LOC_SEPARATE = 0x20,
0532     AC_JACK_LOC_OTHER    = 0x30,
0533 };
0534 enum {
0535     /* external on primary chasis */
0536     AC_JACK_LOC_REAR_PANEL = 0x07,
0537     AC_JACK_LOC_DRIVE_BAY,
0538     /* internal */
0539     AC_JACK_LOC_RISER = 0x17,
0540     AC_JACK_LOC_HDMI,
0541     AC_JACK_LOC_ATAPI,
0542     /* others */
0543     AC_JACK_LOC_MOBILE_IN = 0x37,
0544     AC_JACK_LOC_MOBILE_OUT,
0545 };
0546 
0547 /* Port connectivity (0-3) */
0548 enum {
0549     AC_JACK_PORT_COMPLEX,
0550     AC_JACK_PORT_NONE,
0551     AC_JACK_PORT_FIXED,
0552     AC_JACK_PORT_BOTH,
0553 };
0554 
0555 /* max. codec address */
0556 #define HDA_MAX_CODEC_ADDRESS   0x0f
0557 
0558 #endif /* __SOUND_HDA_VERBS_H */