/*
 *  Copyright (c) by Jaroslav Kysela <perex@perex.cz>
 *  Universal interface for Audio Codec '97
 *
 *  For more details look to AC '97 component specification revision 2.2
 *  by Intel Corporation (http://developer.intel.com).
 *
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 *
 */

#define AC97_ID_AK4540		0x414b4d00
#define AC97_ID_AK4542		0x414b4d01
#define AC97_ID_AD1819		0x41445303
#define AC97_ID_AD1881		0x41445340
#define AC97_ID_AD1881A		0x41445348
#define AC97_ID_AD1885		0x41445360
#define AC97_ID_AD1886		0x41445361
#define AC97_ID_AD1887		0x41445362
#define AC97_ID_AD1886A		0x41445363
#define AC97_ID_AD1980 		0x41445370
#define AC97_ID_TR28028		0x54524108
#define AC97_ID_STAC9700	0x83847600
#define AC97_ID_STAC9704	0x83847604
#define AC97_ID_STAC9705	0x83847605
#define AC97_ID_STAC9708	0x83847608
#define AC97_ID_STAC9721	0x83847609
#define AC97_ID_STAC9744	0x83847644
#define AC97_ID_STAC9756	0x83847656
#define AC97_ID_CS4297A		0x43525910
#define AC97_ID_CS4299		0x43525930
#define AC97_ID_CS4201		0x43525948
#define AC97_ID_CS4205		0x43525958
#define AC97_ID_CS_MASK		0xfffffff8	/* bit 0-2: rev */
#define AC97_ID_ALC100		0x414c4300
#define AC97_ID_ALC650		0x414c4720
#define AC97_ID_ALC650D		0x414c4721
#define AC97_ID_ALC650E		0x414c4722
#define AC97_ID_ALC650F		0x414c4723
#define AC97_ID_ALC655		0x414c4760
#define AC97_ID_ALC658		0x414c4780
#define AC97_ID_ALC658D		0x414c4781
#define AC97_ID_ALC850		0x414c4790
#define AC97_ID_YMF743		0x594d4800
#define AC97_ID_YMF753		0x594d4803
#define AC97_ID_VT1616		0x49434551
#define AC97_ID_CM9738		0x434d4941
#define AC97_ID_CM9739		0x434d4961
#define AC97_ID_CM9761_78	0x434d4978
#define AC97_ID_CM9761_82	0x434d4982
#define AC97_ID_CM9761_83	0x434d4983
#define AC97_ID_ST7597		0x53544d02
#define AC97_ID_ST_AC97_ID4	0x53544d04
