Ignore:
Timestamp:
Oct 23, 2006, 11:07:11 PM (19 years ago)
Author:
vladest
Message:

SB code update
HDA code update
Some other updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk/alsa-kernel/include/sound/emu10k1.h

    r34 r84  
    188188                                                /* NOTE: The rest of the bits in this register  */
    189189                                                /* _are_ relevant under Linux.                  */
    190 #define HCFG_CODECFORMAT_MASK   0x00070000      /* CODEC format                                 */
     190#define HCFG_PUSH_BUTTON_ENABLE 0x00100000      /* Enables Volume Inc/Dec and Mute functions    */
     191#define HCFG_BAUD_RATE          0x00080000      /* 0 = 48kHz, 1 = 44.1kHz                       */
     192#define HCFG_EXPANDED_MEM       0x00040000      /* 1 = any 16M of 4G addr, 0 = 32M of 2G addr   */
     193#define HCFG_CODECFORMAT_MASK   0x00030000      /* CODEC format                                 */
     194
     195/* Specific to Alice2, CA0102 */
     196#define HCFG_CODECFORMAT_AC97_1 0x00000000      /* AC97 CODEC format -- Ver 1.03                */
     197#define HCFG_CODECFORMAT_AC97_2 0x00010000      /* AC97 CODEC format -- Ver 2.1                 */
     198#define HCFG_AUTOMUTE_ASYNC     0x00008000      /* When set, the async sample rate convertors   */
     199                                                /* will automatically mute their output when    */
     200                                                /* they are not rate-locked to the external     */
     201                                                /* async audio source                           */
     202#define HCFG_AUTOMUTE_SPDIF     0x00004000      /* When set, the async sample rate convertors   */
     203                                                /* will automatically mute their output when    */
     204                                                /* the SPDIF V-bit indicates invalid audio      */
     205#define HCFG_EMU32_SLAVE        0x00002000      /* 0 = Master, 1 = Slave. Slave for EMU1010     */
     206#define HCFG_SLOW_RAMP          0x00001000      /* Increases Send Smoothing time constant       */
     207/* 0x00000800 not used on Alice2 */
     208#define HCFG_PHASE_TRACK_MASK   0x00000700      /* When set, forces corresponding input to      */
     209                                                /* phase track the previous input.              */
     210                                                /* I2S0 can phase track the last S/PDIF input   */
     211#define HCFG_I2S_ASRC_ENABLE    0x00000070      /* When set, enables asynchronous sample rate   */
     212                                                /* conversion for the corresponding             */
     213                                                /* I2S format input                             */
     214/* Rest of HCFG 0x0000000f same as below. LOCKSOUNDCACHE etc.  */
     215
     216
     217
     218/* Older chips */
    191219#define HCFG_CODECFORMAT_AC97   0x00000000      /* AC97 CODEC format -- Primary Output          */
    192220#define HCFG_CODECFORMAT_I2S    0x00010000      /* I2S CODEC format -- Secondary (Rear) Output  */
     
    245273#define A_IOCFG_DISABLE_ANALOG  0x0040          /* = 'enable' for Audigy2 (chiprev=4)           */
    246274#define A_IOCFG_ENABLE_DIGITAL  0x0004
     275#define A_IOCFG_ENABLE_DIGITAL_AUDIGY4  0x0080
    247276#define A_IOCFG_UNKNOWN_20      0x0020
    248277#define A_IOCFG_DISABLE_AC97_FRONT      0x0080  /* turn off ac97 front -> front (10k2.1)        */
     
    885914#define A_HIWORD_OPA_MASK       0x000007ff
    886915
     916/************************************************************************************************/
     917/* EMU1010m HANA FPGA registers                                                                 */
     918/************************************************************************************************/
     919#define EMU_HANA_DESTHI         0x00    /* 0000xxx  3 bits Link Destination */
     920#define EMU_HANA_DESTLO         0x01    /* 00xxxxx  5 bits */
     921#define EMU_HANA_SRCHI          0x02    /* 0000xxx  3 bits Link Source */
     922#define EMU_HANA_SRCLO          0x03    /* 00xxxxx  5 bits */
     923#define EMU_HANA_DOCK_PWR       0x04    /* 000000x  1 bits Audio Dock power */
     924#define EMU_HANA_DOCK_PWR_ON            0x01 /* Audio Dock power on */
     925#define EMU_HANA_WCLOCK         0x05    /* 0000xxx  3 bits Word Clock source select  */
     926                                        /* Must be written after power on to reset DLL */
     927                                        /* One is unable to detect the Audio dock without this */
     928#define EMU_HANA_WCLOCK_SRC_MASK        0x07
     929#define EMU_HANA_WCLOCK_INT_48K         0x00
     930#define EMU_HANA_WCLOCK_INT_44_1K       0x01
     931#define EMU_HANA_WCLOCK_HANA_SPDIF_IN   0x02
     932#define EMU_HANA_WCLOCK_HANA_ADAT_IN    0x03
     933#define EMU_HANA_WCLOCK_SYNC_BNCN       0x04
     934#define EMU_HANA_WCLOCK_2ND_HANA        0x05
     935#define EMU_HANA_WCLOCK_SRC_RESERVED    0x06
     936#define EMU_HANA_WCLOCK_OFF             0x07 /* For testing, forces fallback to DEFCLOCK */
     937#define EMU_HANA_WCLOCK_MULT_MASK       0x18
     938#define EMU_HANA_WCLOCK_1X              0x00
     939#define EMU_HANA_WCLOCK_2X              0x08
     940#define EMU_HANA_WCLOCK_4X              0x10
     941#define EMU_HANA_WCLOCK_MULT_RESERVED   0x18
     942
     943#define EMU_HANA_DEFCLOCK       0x06    /* 000000x  1 bits Default Word Clock  */
     944#define EMU_HANA_DEFCLOCK_48K           0x00
     945#define EMU_HANA_DEFCLOCK_44_1K         0x01
     946
     947#define EMU_HANA_UNMUTE         0x07    /* 000000x  1 bits Mute all audio outputs  */
     948#define EMU_MUTE                        0x00
     949#define EMU_UNMUTE                      0x01
     950
     951#define EMU_HANA_FPGA_CONFIG    0x08    /* 00000xx  2 bits Config control of FPGAs  */
     952#define EMU_HANA_FPGA_CONFIG_AUDIODOCK  0x01 /* Set in order to program FPGA on Audio Dock */
     953#define EMU_HANA_FPGA_CONFIG_HANA       0x02 /* Set in order to program FPGA on Hana */
     954
     955#define EMU_HANA_IRQ_ENABLE     0x09    /* 000xxxx  4 bits IRQ Enable  */
     956#define EMU_HANA_IRQ_WCLK_CHANGED       0x01
     957#define EMU_HANA_IRQ_ADAT               0x02
     958#define EMU_HANA_IRQ_DOCK               0x04
     959#define EMU_HANA_IRQ_DOCK_LOST          0x08
     960
     961#define EMU_HANA_SPDIF_MODE     0x0a    /* 00xxxxx  5 bits SPDIF MODE  */
     962#define EMU_HANA_SPDIF_MODE_TX_COMSUMER 0x00
     963#define EMU_HANA_SPDIF_MODE_TX_PRO      0x01
     964#define EMU_HANA_SPDIF_MODE_TX_NOCOPY   0x02
     965#define EMU_HANA_SPDIF_MODE_RX_COMSUMER 0x00
     966#define EMU_HANA_SPDIF_MODE_RX_PRO      0x04
     967#define EMU_HANA_SPDIF_MODE_RX_NOCOPY   0x08
     968#define EMU_HANA_SPDIF_MODE_RX_INVALID  0x10
     969
     970#define EMU_HANA_OPTICAL_TYPE   0x0b    /* 00000xx  2 bits ADAT or SPDIF in/out  */
     971#define EMU_HANA_OPTICAL_IN_SPDIF       0x00
     972#define EMU_HANA_OPTICAL_IN_ADAT        0x01
     973#define EMU_HANA_OPTICAL_OUT_SPDIF      0x00
     974#define EMU_HANA_OPTICAL_OUT_ADAT       0x02
     975
     976#define EMU_HANA_MIDI_IN                0x0c    /* 000000x  1 bit  Control MIDI  */
     977#define EMU_HANA_MIDI_IN_FROM_HAMOA     0x00 /* HAMOA MIDI in to Alice 2 MIDI B */
     978#define EMU_HANA_MIDI_IN_FROM_DOCK      0x01 /* Audio Dock MIDI in to Alice 2 MIDI B */
     979
     980#define EMU_HANA_DOCK_LEDS_1    0x0d    /* 000xxxx  4 bit  Audio Dock LEDs  */
     981#define EMU_HANA_DOCK_LEDS_1_MIDI1      0x01    /* MIDI 1 LED on */
     982#define EMU_HANA_DOCK_LEDS_1_MIDI2      0x02    /* MIDI 2 LED on */
     983#define EMU_HANA_DOCK_LEDS_1_SMPTE_IN   0x04    /* SMPTE IN LED on */
     984#define EMU_HANA_DOCK_LEDS_1_SMPTE_OUT  0x08    /* SMPTE OUT LED on */
     985
     986#define EMU_HANA_DOCK_LEDS_2    0x0e    /* 0xxxxxx  6 bit  Audio Dock LEDs  */
     987#define EMU_HANA_DOCK_LEDS_2_44K        0x01    /* 44.1 kHz LED on */
     988#define EMU_HANA_DOCK_LEDS_2_48K        0x02    /* 48 kHz LED on */
     989#define EMU_HANA_DOCK_LEDS_2_96K        0x04    /* 96 kHz LED on */
     990#define EMU_HANA_DOCK_LEDS_2_192K       0x08    /* 192 kHz LED on */
     991#define EMU_HANA_DOCK_LEDS_2_LOCK       0x10    /* LOCK LED on */
     992#define EMU_HANA_DOCK_LEDS_2_EXT        0x20    /* EXT LED on */
     993
     994#define EMU_HANA_DOCK_LEDS_3    0x0f    /* 0xxxxxx  6 bit  Audio Dock LEDs  */
     995#define EMU_HANA_DOCK_LEDS_3_CLIP_A     0x01    /* Mic A Clip LED on */
     996#define EMU_HANA_DOCK_LEDS_3_CLIP_B     0x02    /* Mic B Clip LED on */
     997#define EMU_HANA_DOCK_LEDS_3_SIGNAL_A   0x04    /* Signal A Clip LED on */
     998#define EMU_HANA_DOCK_LEDS_3_SIGNAL_B   0x08    /* Signal B Clip LED on */
     999#define EMU_HANA_DOCK_LEDS_3_MANUAL_CLIP        0x10    /* Manual Clip detection */
     1000#define EMU_HANA_DOCK_LEDS_3_MANUAL_SIGNAL      0x20    /* Manual Signal detection */
     1001
     1002#define EMU_HANA_ADC_PADS       0x10    /* 0000xxx  3 bit  Audio Dock ADC 14dB pads */
     1003#define EMU_HANA_DOCK_ADC_PAD1  0x01    /* 14dB Attenuation on Audio Dock ADC 1 */
     1004#define EMU_HANA_DOCK_ADC_PAD2  0x02    /* 14dB Attenuation on Audio Dock ADC 2 */
     1005#define EMU_HANA_DOCK_ADC_PAD3  0x04    /* 14dB Attenuation on Audio Dock ADC 3 */
     1006#define EMU_HANA_0202_ADC_PAD1  0x08    /* 14dB Attenuation on 0202 ADC 1 */
     1007
     1008#define EMU_HANA_DOCK_MISC      0x11    /* 0xxxxxx  6 bit  Audio Dock misc bits */
     1009#define EMU_HANA_DOCK_DAC1_MUTE 0x01    /* DAC 1 Mute */
     1010#define EMU_HANA_DOCK_DAC2_MUTE 0x02    /* DAC 2 Mute */
     1011#define EMU_HANA_DOCK_DAC3_MUTE 0x04    /* DAC 3 Mute */
     1012#define EMU_HANA_DOCK_DAC4_MUTE 0x08    /* DAC 4 Mute */
     1013#define EMU_HANA_DOCK_PHONES_192_DAC1   0x00    /* DAC 1 Headphones source at 192kHz */
     1014#define EMU_HANA_DOCK_PHONES_192_DAC2   0x10    /* DAC 2 Headphones source at 192kHz */
     1015#define EMU_HANA_DOCK_PHONES_192_DAC3   0x20    /* DAC 3 Headphones source at 192kHz */
     1016#define EMU_HANA_DOCK_PHONES_192_DAC4   0x30    /* DAC 4 Headphones source at 192kHz */
     1017
     1018#define EMU_HANA_MIDI_OUT       0x12    /* 00xxxxx  5 bit  Source for each MIDI out port */
     1019#define EMU_HANA_MIDI_OUT_0202  0x01 /* 0202 MIDI from Alice 2. 0 = A, 1 = B */
     1020#define EMU_HANA_MIDI_OUT_DOCK1 0x02 /* Audio Dock MIDI1 front, from Alice 2. 0 = A, 1 = B */
     1021#define EMU_HANA_MIDI_OUT_DOCK2 0x04 /* Audio Dock MIDI2 rear, from Alice 2. 0 = A, 1 = B */
     1022#define EMU_HANA_MIDI_OUT_SYNC2 0x08 /* Sync card. Not the actual MIDI out jack. 0 = A, 1 = B */
     1023#define EMU_HANA_MIDI_OUT_LOOP  0x10 /* 0 = bits (3:0) normal. 1 = MIDI loopback enabled. */
     1024
     1025#define EMU_HANA_DAC_PADS       0x13    /* 00xxxxx  5 bit  DAC 14dB attenuation pads */
     1026#define EMU_HANA_DOCK_DAC_PAD1  0x01    /* 14dB Attenuation on AudioDock DAC 1. Left and Right */
     1027#define EMU_HANA_DOCK_DAC_PAD2  0x02    /* 14dB Attenuation on AudioDock DAC 2. Left and Right */
     1028#define EMU_HANA_DOCK_DAC_PAD3  0x04    /* 14dB Attenuation on AudioDock DAC 3. Left and Right */
     1029#define EMU_HANA_DOCK_DAC_PAD4  0x08    /* 14dB Attenuation on AudioDock DAC 4. Left and Right */
     1030#define EMU_HANA_0202_DAC_PAD1  0x10    /* 14dB Attenuation on 0202 DAC 1. Left and Right */
     1031
     1032/* 0x14 - 0x1f Unused R/W registers */
     1033#define EMU_HANA_IRQ_STATUS     0x20    /* 000xxxx  4 bits IRQ Status  */
     1034#if 0  /* Already defined for reg 0x09 IRQ_ENABLE */
     1035#define EMU_HANA_IRQ_WCLK_CHANGED       0x01
     1036#define EMU_HANA_IRQ_ADAT               0x02
     1037#define EMU_HANA_IRQ_DOCK               0x04
     1038#define EMU_HANA_IRQ_DOCK_LOST          0x08
     1039#endif
     1040
     1041#define EMU_HANA_OPTION_CARDS   0x21    /* 000xxxx  4 bits Presence of option cards */
     1042#define EMU_HANA_OPTION_HAMOA   0x01    /* HAMOA card present */
     1043#define EMU_HANA_OPTION_SYNC    0x02    /* Sync card present */
     1044#define EMU_HANA_OPTION_DOCK_ONLINE     0x04    /* Audio Dock online and FPGA configured */
     1045#define EMU_HANA_OPTION_DOCK_OFFLINE    0x08    /* Audio Dock online and FPGA not configured */
     1046
     1047#define EMU_HANA_ID             0x22    /* 1010101  7 bits ID byte & 0x7f = 0x55 */
     1048
     1049#define EMU_HANA_MAJOR_REV      0x23    /* 0000xxx  3 bit  Hana FPGA Major rev */
     1050#define EMU_HANA_MINOR_REV      0x24    /* 0000xxx  3 bit  Hana FPGA Minor rev */
     1051
     1052#define EMU_DOCK_MAJOR_REV      0x25    /* 0000xxx  3 bit  Audio Dock FPGA Major rev */
     1053#define EMU_DOCK_MINOR_REV      0x26    /* 0000xxx  3 bit  Audio Dock FPGA Minor rev */
     1054
     1055#define EMU_DOCK_BOARD_ID       0x27    /* 00000xx  2 bits Audio Dock ID pins */
     1056#define EMU_DOCK_BOARD_ID0      0x00    /* ID bit 0 */
     1057#define EMU_DOCK_BOARD_ID1      0x03    /* ID bit 1 */
     1058
     1059#define EMU_HANA_WC_SPDIF_HI    0x28    /* 0xxxxxx  6 bit  SPDIF IN Word clock, upper 6 bits */
     1060#define EMU_HANA_WC_SPDIF_LO    0x29    /* 0xxxxxx  6 bit  SPDIF IN Word clock, lower 6 bits */
     1061
     1062#define EMU_HANA_WC_ADAT_HI     0x2a    /* 0xxxxxx  6 bit  ADAT IN Word clock, upper 6 bits */
     1063#define EMU_HANA_WC_ADAT_LO     0x2b    /* 0xxxxxx  6 bit  ADAT IN Word clock, lower 6 bits */
     1064
     1065#define EMU_HANA_WC_BNC_LO      0x2c    /* 0xxxxxx  6 bit  BNC IN Word clock, lower 6 bits */
     1066#define EMU_HANA_WC_BNC_HI      0x2d    /* 0xxxxxx  6 bit  BNC IN Word clock, upper 6 bits */
     1067
     1068#define EMU_HANA2_WC_SPDIF_HI   0x2e    /* 0xxxxxx  6 bit  HANA2 SPDIF IN Word clock, upper 6 bits */
     1069#define EMU_HANA2_WC_SPDIF_LO   0x2f    /* 0xxxxxx  6 bit  HANA2 SPDIF IN Word clock, lower 6 bits */
     1070/* 0x30 - 0x3f Unused Read only registers */
     1071
     1072/************************************************************************************************/
     1073/* EMU1010m HANA Destinations                                                                   */
     1074/************************************************************************************************/
     1075#define EMU_DST_ALICE2_EMU32_0  0x000f  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1076#define EMU_DST_ALICE2_EMU32_1  0x0000  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1077#define EMU_DST_ALICE2_EMU32_2  0x0001  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1078#define EMU_DST_ALICE2_EMU32_3  0x0002  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1079#define EMU_DST_ALICE2_EMU32_4  0x0003  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1080#define EMU_DST_ALICE2_EMU32_5  0x0004  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1081#define EMU_DST_ALICE2_EMU32_6  0x0005  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1082#define EMU_DST_ALICE2_EMU32_7  0x0006  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1083#define EMU_DST_ALICE2_EMU32_8  0x0007  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1084#define EMU_DST_ALICE2_EMU32_9  0x0008  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1085#define EMU_DST_ALICE2_EMU32_A  0x0009  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1086#define EMU_DST_ALICE2_EMU32_B  0x000a  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1087#define EMU_DST_ALICE2_EMU32_C  0x000b  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1088#define EMU_DST_ALICE2_EMU32_D  0x000c  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1089#define EMU_DST_ALICE2_EMU32_E  0x000d  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1090#define EMU_DST_ALICE2_EMU32_F  0x000e  /* 16 EMU32 channels to Alice2 +0 to +0xf */
     1091#define EMU_DST_DOCK_DAC1_LEFT1 0x0100  /* Audio Dock DAC1 Left, 1st or 48kHz only */
     1092#define EMU_DST_DOCK_DAC1_LEFT2 0x0101  /* Audio Dock DAC1 Left, 2nd or 96kHz */
     1093#define EMU_DST_DOCK_DAC1_LEFT3 0x0102  /* Audio Dock DAC1 Left, 3rd or 192kHz */
     1094#define EMU_DST_DOCK_DAC1_LEFT4 0x0103  /* Audio Dock DAC1 Left, 4th or 192kHz */
     1095#define EMU_DST_DOCK_DAC1_RIGHT1        0x0104  /* Audio Dock DAC1 Right, 1st or 48kHz only */
     1096#define EMU_DST_DOCK_DAC1_RIGHT2        0x0105  /* Audio Dock DAC1 Right, 2nd or 96kHz */
     1097#define EMU_DST_DOCK_DAC1_RIGHT3        0x0106  /* Audio Dock DAC1 Right, 3rd or 192kHz */
     1098#define EMU_DST_DOCK_DAC1_RIGHT4        0x0107  /* Audio Dock DAC1 Right, 4th or 192kHz */
     1099#define EMU_DST_DOCK_DAC2_LEFT1 0x0108  /* Audio Dock DAC2 Left, 1st or 48kHz only */
     1100#define EMU_DST_DOCK_DAC2_LEFT2 0x0109  /* Audio Dock DAC2 Left, 2nd or 96kHz */
     1101#define EMU_DST_DOCK_DAC2_LEFT3 0x010a  /* Audio Dock DAC2 Left, 3rd or 192kHz */
     1102#define EMU_DST_DOCK_DAC2_LEFT4 0x010b  /* Audio Dock DAC2 Left, 4th or 192kHz */
     1103#define EMU_DST_DOCK_DAC2_RIGHT1        0x010c  /* Audio Dock DAC2 Right, 1st or 48kHz only */
     1104#define EMU_DST_DOCK_DAC2_RIGHT2        0x010d  /* Audio Dock DAC2 Right, 2nd or 96kHz */
     1105#define EMU_DST_DOCK_DAC2_RIGHT3        0x010e  /* Audio Dock DAC2 Right, 3rd or 192kHz */
     1106#define EMU_DST_DOCK_DAC2_RIGHT4        0x010f  /* Audio Dock DAC2 Right, 4th or 192kHz */
     1107#define EMU_DST_DOCK_DAC3_LEFT1 0x0110  /* Audio Dock DAC1 Left, 1st or 48kHz only */
     1108#define EMU_DST_DOCK_DAC3_LEFT2 0x0111  /* Audio Dock DAC1 Left, 2nd or 96kHz */
     1109#define EMU_DST_DOCK_DAC3_LEFT3 0x0112  /* Audio Dock DAC1 Left, 3rd or 192kHz */
     1110#define EMU_DST_DOCK_DAC3_LEFT4 0x0113  /* Audio Dock DAC1 Left, 4th or 192kHz */
     1111#define EMU_DST_DOCK_PHONES_LEFT1       0x0112  /* Audio Dock PHONES Left, 1st or 48kHz only */
     1112#define EMU_DST_DOCK_PHONES_LEFT2       0x0113  /* Audio Dock PHONES Left, 2nd or 96kHz */
     1113#define EMU_DST_DOCK_DAC3_RIGHT1        0x0114  /* Audio Dock DAC1 Right, 1st or 48kHz only */
     1114#define EMU_DST_DOCK_DAC3_RIGHT2        0x0115  /* Audio Dock DAC1 Right, 2nd or 96kHz */
     1115#define EMU_DST_DOCK_DAC3_RIGHT3        0x0116  /* Audio Dock DAC1 Right, 3rd or 192kHz */
     1116#define EMU_DST_DOCK_DAC3_RIGHT4        0x0117  /* Audio Dock DAC1 Right, 4th or 192kHz */
     1117#define EMU_DST_DOCK_PHONES_RIGHT1      0x0116  /* Audio Dock PHONES Right, 1st or 48kHz only */
     1118#define EMU_DST_DOCK_PHONES_RIGHT2      0x0117  /* Audio Dock PHONES Right, 2nd or 96kHz */
     1119#define EMU_DST_DOCK_DAC4_LEFT1 0x0118  /* Audio Dock DAC2 Left, 1st or 48kHz only */
     1120#define EMU_DST_DOCK_DAC4_LEFT2 0x0119  /* Audio Dock DAC2 Left, 2nd or 96kHz */
     1121#define EMU_DST_DOCK_DAC4_LEFT3 0x011a  /* Audio Dock DAC2 Left, 3rd or 192kHz */
     1122#define EMU_DST_DOCK_DAC4_LEFT4 0x011b  /* Audio Dock DAC2 Left, 4th or 192kHz */
     1123#define EMU_DST_DOCK_SPDIF_LEFT1        0x011a  /* Audio Dock SPDIF Left, 1st or 48kHz only */
     1124#define EMU_DST_DOCK_SPDIF_LEFT2        0x011b  /* Audio Dock SPDIF Left, 2nd or 96kHz */
     1125#define EMU_DST_DOCK_DAC4_RIGHT1        0x011c  /* Audio Dock DAC2 Right, 1st or 48kHz only */
     1126#define EMU_DST_DOCK_DAC4_RIGHT2        0x011d  /* Audio Dock DAC2 Right, 2nd or 96kHz */
     1127#define EMU_DST_DOCK_DAC4_RIGHT3        0x011e  /* Audio Dock DAC2 Right, 3rd or 192kHz */
     1128#define EMU_DST_DOCK_DAC4_RIGHT4        0x011f  /* Audio Dock DAC2 Right, 4th or 192kHz */
     1129#define EMU_DST_DOCK_SPDIF_RIGHT1       0x011e  /* Audio Dock SPDIF Right, 1st or 48kHz only */
     1130#define EMU_DST_DOCK_SPDIF_RIGHT2       0x011f  /* Audio Dock SPDIF Right, 2nd or 96kHz */
     1131#define EMU_DST_HANA_SPDIF_LEFT1        0x0200  /* Hana SPDIF Left, 1st or 48kHz only */
     1132#define EMU_DST_HANA_SPDIF_LEFT2        0x0202  /* Hana SPDIF Left, 2nd or 96kHz */
     1133#define EMU_DST_HANA_SPDIF_RIGHT1       0x0201  /* Hana SPDIF Right, 1st or 48kHz only */
     1134#define EMU_DST_HANA_SPDIF_RIGHT2       0x0203  /* Hana SPDIF Right, 2nd or 96kHz */
     1135#define EMU_DST_HAMOA_DAC_LEFT1 0x0300  /* Hamoa DAC Left, 1st or 48kHz only */
     1136#define EMU_DST_HAMOA_DAC_LEFT2 0x0302  /* Hamoa DAC Left, 2nd or 96kHz */
     1137#define EMU_DST_HAMOA_DAC_LEFT3 0x0304  /* Hamoa DAC Left, 3rd or 192kHz */
     1138#define EMU_DST_HAMOA_DAC_LEFT4 0x0306  /* Hamoa DAC Left, 4th or 192kHz */
     1139#define EMU_DST_HAMOA_DAC_RIGHT1        0x0301  /* Hamoa DAC Right, 1st or 48kHz only */
     1140#define EMU_DST_HAMOA_DAC_RIGHT2        0x0303  /* Hamoa DAC Right, 2nd or 96kHz */
     1141#define EMU_DST_HAMOA_DAC_RIGHT3        0x0305  /* Hamoa DAC Right, 3rd or 192kHz */
     1142#define EMU_DST_HAMOA_DAC_RIGHT4        0x0307  /* Hamoa DAC Right, 4th or 192kHz */
     1143#define EMU_DST_HANA_ADAT       0x0400  /* Hana ADAT 8 channel out +0 to +7 */
     1144#define EMU_DST_ALICE_I2S0_LEFT         0x0500  /* Alice2 I2S0 Left */
     1145#define EMU_DST_ALICE_I2S0_RIGHT        0x0501  /* Alice2 I2S0 Right */
     1146#define EMU_DST_ALICE_I2S1_LEFT         0x0600  /* Alice2 I2S1 Left */
     1147#define EMU_DST_ALICE_I2S1_RIGHT        0x0601  /* Alice2 I2S1 Right */
     1148#define EMU_DST_ALICE_I2S2_LEFT         0x0700  /* Alice2 I2S2 Left */
     1149#define EMU_DST_ALICE_I2S2_RIGHT        0x0701  /* Alice2 I2S2 Right */
     1150
     1151/************************************************************************************************/
     1152/* EMU1010m HANA Sources                                                                        */
     1153/************************************************************************************************/
     1154#define EMU_SRC_SILENCE         0x0000  /* Silence */
     1155#define EMU_SRC_DOCK_MIC_A1     0x0100  /* Audio Dock Mic A, 1st or 48kHz only */
     1156#define EMU_SRC_DOCK_MIC_A2     0x0101  /* Audio Dock Mic A, 2nd or 96kHz */
     1157#define EMU_SRC_DOCK_MIC_A3     0x0102  /* Audio Dock Mic A, 3rd or 192kHz */
     1158#define EMU_SRC_DOCK_MIC_A4     0x0103  /* Audio Dock Mic A, 4th or 192kHz */
     1159#define EMU_SRC_DOCK_MIC_B1     0x0104  /* Audio Dock Mic B, 1st or 48kHz only */
     1160#define EMU_SRC_DOCK_MIC_B2     0x0105  /* Audio Dock Mic B, 2nd or 96kHz */
     1161#define EMU_SRC_DOCK_MIC_B3     0x0106  /* Audio Dock Mic B, 3rd or 192kHz */
     1162#define EMU_SRC_DOCK_MIC_B4     0x0107  /* Audio Dock Mic B, 4th or 192kHz */
     1163#define EMU_SRC_DOCK_ADC1_LEFT1 0x0108  /* Audio Dock ADC1 Left, 1st or 48kHz only */
     1164#define EMU_SRC_DOCK_ADC1_LEFT2 0x0109  /* Audio Dock ADC1 Left, 2nd or 96kHz */
     1165#define EMU_SRC_DOCK_ADC1_LEFT3 0x010a  /* Audio Dock ADC1 Left, 3rd or 192kHz */
     1166#define EMU_SRC_DOCK_ADC1_LEFT4 0x010b  /* Audio Dock ADC1 Left, 4th or 192kHz */
     1167#define EMU_SRC_DOCK_ADC1_RIGHT1        0x010c  /* Audio Dock ADC1 Right, 1st or 48kHz only */
     1168#define EMU_SRC_DOCK_ADC1_RIGHT2        0x010d  /* Audio Dock ADC1 Right, 2nd or 96kHz */
     1169#define EMU_SRC_DOCK_ADC1_RIGHT3        0x010e  /* Audio Dock ADC1 Right, 3rd or 192kHz */
     1170#define EMU_SRC_DOCK_ADC1_RIGHT4        0x010f  /* Audio Dock ADC1 Right, 4th or 192kHz */
     1171#define EMU_SRC_DOCK_ADC2_LEFT1 0x0110  /* Audio Dock ADC2 Left, 1st or 48kHz only */
     1172#define EMU_SRC_DOCK_ADC2_LEFT2 0x0111  /* Audio Dock ADC2 Left, 2nd or 96kHz */
     1173#define EMU_SRC_DOCK_ADC2_LEFT3 0x0112  /* Audio Dock ADC2 Left, 3rd or 192kHz */
     1174#define EMU_SRC_DOCK_ADC2_LEFT4 0x0113  /* Audio Dock ADC2 Left, 4th or 192kHz */
     1175#define EMU_SRC_DOCK_ADC2_RIGHT1        0x0114  /* Audio Dock ADC2 Right, 1st or 48kHz only */
     1176#define EMU_SRC_DOCK_ADC2_RIGHT2        0x0115  /* Audio Dock ADC2 Right, 2nd or 96kHz */
     1177#define EMU_SRC_DOCK_ADC2_RIGHT3        0x0116  /* Audio Dock ADC2 Right, 3rd or 192kHz */
     1178#define EMU_SRC_DOCK_ADC2_RIGHT4        0x0117  /* Audio Dock ADC2 Right, 4th or 192kHz */
     1179#define EMU_SRC_DOCK_ADC3_LEFT1 0x0118  /* Audio Dock ADC3 Left, 1st or 48kHz only */
     1180#define EMU_SRC_DOCK_ADC3_LEFT2 0x0119  /* Audio Dock ADC3 Left, 2nd or 96kHz */
     1181#define EMU_SRC_DOCK_ADC3_LEFT3 0x011a  /* Audio Dock ADC3 Left, 3rd or 192kHz */
     1182#define EMU_SRC_DOCK_ADC3_LEFT4 0x011b  /* Audio Dock ADC3 Left, 4th or 192kHz */
     1183#define EMU_SRC_DOCK_ADC3_RIGHT1        0x011c  /* Audio Dock ADC3 Right, 1st or 48kHz only */
     1184#define EMU_SRC_DOCK_ADC3_RIGHT2        0x011d  /* Audio Dock ADC3 Right, 2nd or 96kHz */
     1185#define EMU_SRC_DOCK_ADC3_RIGHT3        0x011e  /* Audio Dock ADC3 Right, 3rd or 192kHz */
     1186#define EMU_SRC_DOCK_ADC3_RIGHT4        0x011f  /* Audio Dock ADC3 Right, 4th or 192kHz */
     1187#define EMU_SRC_HAMOA_ADC_LEFT1 0x0200  /* Hamoa ADC Left, 1st or 48kHz only */
     1188#define EMU_SRC_HAMOA_ADC_LEFT2 0x0202  /* Hamoa ADC Left, 2nd or 96kHz */
     1189#define EMU_SRC_HAMOA_ADC_LEFT3 0x0204  /* Hamoa ADC Left, 3rd or 192kHz */
     1190#define EMU_SRC_HAMOA_ADC_LEFT4 0x0206  /* Hamoa ADC Left, 4th or 192kHz */
     1191#define EMU_SRC_HAMOA_ADC_RIGHT1        0x0201  /* Hamoa ADC Right, 1st or 48kHz only */
     1192#define EMU_SRC_HAMOA_ADC_RIGHT2        0x0203  /* Hamoa ADC Right, 2nd or 96kHz */
     1193#define EMU_SRC_HAMOA_ADC_RIGHT3        0x0205  /* Hamoa ADC Right, 3rd or 192kHz */
     1194#define EMU_SRC_HAMOA_ADC_RIGHT4        0x0207  /* Hamoa ADC Right, 4th or 192kHz */
     1195#define EMU_SRC_ALICE_EMU32A            0x0300  /* Alice2 EMU32a 16 outputs. +0 to +0xf */
     1196#define EMU_SRC_ALICE_EMU32B            0x0310  /* Alice2 EMU32b 16 outputs. +0 to +0xf */
     1197#define EMU_SRC_HANA_ADAT       0x0400  /* Hana ADAT 8 channel in +0 to +7 */
     1198#define EMU_SRC_HANA_SPDIF_LEFT1        0x0500  /* Hana SPDIF Left, 1st or 48kHz only */
     1199#define EMU_SRC_HANA_SPDIF_LEFT2        0x0502  /* Hana SPDIF Left, 2nd or 96kHz */
     1200#define EMU_SRC_HANA_SPDIF_RIGHT1       0x0501  /* Hana SPDIF Right, 1st or 48kHz only */
     1201#define EMU_SRC_HANA_SPDIF_RIGHT2       0x0503  /* Hana SPDIF Right, 2nd or 96kHz */
     1202/* 0x600 and 0x700 no used */
    8871203
    8881204/* ------------------- STRUCTURES -------------------- */
     
    10611377        unsigned char spdif_bug;    /* Has Spdif phasing bug */
    10621378        unsigned char ac97_chip;    /* Has an AC97 chip: 1 = mandatory, 2 = optional */
    1063         unsigned char ecard;        /* APS EEPROM */
     1379        unsigned char ecard;        /* APS EEPROM */
     1380        unsigned char emu1010;     /* EMU 1010m card */
     1381        unsigned char spi_dac;      /* SPI interface for DAC */
     1382        unsigned char i2c_adc;      /* I2C interface for ADC */
     1383        unsigned char adc_1361t;    /* Use Philips 1361T ADC */
    10641384        const char *driver;
    10651385        const char *name;
    10661386        const char *id;         /* for backward compatibility - can be NULL if not needed */
    10671387};
     1388
     1389struct snd_emu1010 {
     1390        unsigned int output_source[64];
     1391        unsigned int input_source[64];
     1392        unsigned int adc_pads; /* bit mask */
     1393        unsigned int dac_pads; /* bit mask */
     1394        unsigned int internal_clock; /* 44100 or 48000 */
     1395};
     1396
    10681397
    10691398struct snd_emu10k1 {
     
    11201449        spinlock_t emu_lock;
    11211450        spinlock_t voice_lock;
    1122         struct semaphore ptb_lock;
     1451        //struct semaphore ptb_lock;
    11231452
    11241453        struct snd_emu10k1_voice voices[NUM_G];
     
    11261455        struct snd_emu10k1_voice p16v_capture_voice;
    11271456        int p16v_device_offset;
    1128         u32 p16v_capture_source;
     1457        u32 p16v_capture_source;
     1458        struct snd_emu1010 emu1010;
    11291459        u32 p16v_capture_channel;
    11301460        struct snd_emu10k1_pcm_mixer pcm_mixer[32];
     
    11901520int snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct snd_hwdep ** rhwdep);
    11911521
    1192 irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs);
     1522irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id);
    11931523
    11941524void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int voice);
     
    12031533unsigned int snd_emu10k1_ptr20_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn);
    12041534void snd_emu10k1_ptr20_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data);
     1535int snd_emu10k1_spi_write(struct snd_emu10k1 * emu, unsigned int data);
     1536int snd_emu1010_fpga_write(struct snd_emu10k1 * emu, int reg, int value);
     1537int snd_emu1010_fpga_read(struct snd_emu10k1 * emu, int reg, int *value);
     1538int snd_emu1010_fpga_link_dst_src_write(struct snd_emu10k1 * emu, int dst, int src);
    12051539unsigned int snd_emu10k1_efx_read(struct snd_emu10k1 *emu, unsigned int pc);
    12061540void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb);
     
    15191853        unsigned int min;               /* minimum range */
    15201854        unsigned int max;               /* maximum range */
     1855        union {
     1856                snd_kcontrol_tlv_rw_t *c;
     1857                unsigned int *p;
     1858        } tlv;
    15211859        unsigned int translation;       /* translation type (EMU10K1_GPR_TRANSLATION*) */
    15221860};
Note: See TracChangeset for help on using the changeset viewer.