Home | History | Annotate | Download | only in sound
      1 /*
      2  *  linux/include/linux/l3/uda1341.h
      3  *
      4  * Philips UDA1341 mixer device driver for ALSA
      5  *
      6  * Copyright (c) 2002 Tomas Kasparek <tomas.kasparek (at) seznam.cz>
      7  *
      8  * This program is free software; you can redistribute it and/or
      9  * modify it under the terms of the GNU General Public License.
     10  *
     11  * History:
     12  *
     13  * 2002-03-13 Tomas Kasparek Initial release - based on uda1341.h from OSS
     14  * 2002-03-30 Tomas Kasparek Proc filesystem support, complete mixer and DSP
     15  *                           features support
     16  */
     17 
     18 /* $Id: uda1341.h,v 1.8 2005/11/17 14:17:21 tiwai Exp $ */
     19 
     20 #define UDA1341_ALSA_NAME "snd-uda1341"
     21 
     22 /*
     23  * Default rate set after inicialization
     24  */
     25 #define AUDIO_RATE_DEFAULT	44100
     26 
     27 /*
     28  * UDA1341 L3 address and command types
     29  */
     30 #define UDA1341_L3ADDR		5
     31 #define UDA1341_DATA0		(UDA1341_L3ADDR << 2 | 0)
     32 #define UDA1341_DATA1		(UDA1341_L3ADDR << 2 | 1)
     33 #define UDA1341_STATUS		(UDA1341_L3ADDR << 2 | 2)
     34 
     35 enum uda1341_onoff {
     36 	OFF=0,
     37 	ON,
     38 };
     39 
     40 enum uda1341_format {
     41 	I2S=0,
     42 	LSB16,
     43 	LSB18,
     44 	LSB20,
     45 	MSB,
     46 	LSB16MSB,
     47 	LSB18MSB,
     48 	LSB20MSB,
     49 };
     50 
     51 enum uda1341_fs {
     52 	F512=0,
     53 	F384,
     54 	F256,
     55 	Funused,
     56 };
     57 
     58 enum uda1341_peak {
     59 	BEFORE=0,
     60 	AFTER,
     61 };
     62 
     63 enum uda1341_filter {
     64 	FLAT=0,
     65 	MIN,
     66 	MIN2,
     67 	MAX,
     68 };
     69 
     70 enum uda1341_mixer {
     71 	DOUBLE,
     72 	LINE,
     73 	MIC,
     74 	MIXER,
     75 };
     76 
     77 enum uda1341_deemp {
     78 	NONE,
     79 	D32,
     80 	D44,
     81 	D48,
     82 };
     83 
     84 enum uda1341_config {
     85 	CMD_READ_REG = 0,
     86 	CMD_RESET,
     87 	CMD_FS,
     88 	CMD_FORMAT,
     89 	CMD_OGAIN,
     90 	CMD_IGAIN,
     91 	CMD_DAC,
     92 	CMD_ADC,
     93 	CMD_VOLUME,
     94 	CMD_BASS,
     95 	CMD_TREBBLE,
     96 	CMD_PEAK,
     97 	CMD_DEEMP,
     98 	CMD_MUTE,
     99 	CMD_FILTER,
    100 	CMD_CH1,
    101 	CMD_CH2,
    102 	CMD_MIC,
    103 	CMD_MIXER,
    104 	CMD_AGC,
    105 	CMD_IG,
    106 	CMD_AGC_TIME,
    107 	CMD_AGC_LEVEL,
    108 #ifdef CONFIG_PM
    109 	CMD_SUSPEND,
    110 	CMD_RESUME,
    111 #endif
    112 	CMD_LAST,
    113 };
    114 
    115 enum write_through {
    116 	//used in update_bits (write_cfg) to avoid l3_write - just update local copy of regs.
    117 	REGS_ONLY=0,
    118 	//update local regs and write value to uda1341 - do l3_write
    119 	FLUSH,
    120 };
    121 
    122 int __init snd_chip_uda1341_mixer_new(struct snd_card *card, struct l3_client **clnt);
    123 
    124 /*
    125  * Local variables:
    126  * indent-tabs-mode: t
    127  * End:
    128  */
    129