0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef __AWACS_H
0010 #define __AWACS_H
0011
0012
0013
0014
0015
0016 struct awacs_regs {
0017 unsigned control;
0018 unsigned pad0[3];
0019 unsigned codec_ctrl;
0020 unsigned pad1[3];
0021 unsigned codec_stat;
0022 unsigned pad2[3];
0023 unsigned clip_count;
0024 unsigned pad3[3];
0025 unsigned byteswap;
0026 };
0027
0028
0029
0030
0031
0032
0033
0034 #define MASK_ISFSEL (0xf)
0035 #define MASK_OSFSEL (0xf << 4)
0036 #define MASK_RATE (0x7 << 8)
0037 #define MASK_CNTLERR (0x1 << 11)
0038 #define MASK_PORTCHG (0x1 << 12)
0039 #define MASK_IEE (0x1 << 13)
0040 #define MASK_IEPC (0x1 << 14)
0041 #define MASK_SSFSEL (0x3 << 15)
0042
0043
0044
0045 #define MASK_NEWECMD (0x1 << 24)
0046 #define MASK_EMODESEL (0x3 << 22)
0047 #define MASK_EXMODEADDR (0x3ff << 12)
0048 #define MASK_EXMODEDATA (0xfff)
0049
0050
0051
0052 #define MASK_ADDR0 (0x0 << 12)
0053 #define MASK_ADDR_MUX MASK_ADDR0
0054 #define MASK_ADDR_GAIN MASK_ADDR0
0055
0056 #define MASK_ADDR1 (0x1 << 12)
0057 #define MASK_ADDR_MUTE MASK_ADDR1
0058 #define MASK_ADDR_RATE MASK_ADDR1
0059
0060 #define MASK_ADDR2 (0x2 << 12)
0061 #define MASK_ADDR_VOLA MASK_ADDR2
0062 #define MASK_ADDR_VOLHD MASK_ADDR2
0063
0064 #define MASK_ADDR4 (0x4 << 12)
0065 #define MASK_ADDR_VOLC MASK_ADDR4
0066 #define MASK_ADDR_VOLSPK MASK_ADDR4
0067
0068
0069 #define MASK_ADDR5 (0x5 << 12)
0070 #define MASK_ADDR6 (0x6 << 12)
0071 #define MASK_ADDR7 (0x7 << 12)
0072
0073
0074
0075 #define MASK_GAINRIGHT (0xf)
0076 #define MASK_GAINLEFT (0xf << 4)
0077 #define MASK_GAINLINE (0x1 << 8)
0078 #define MASK_GAINMIC (0x0 << 8)
0079 #define MASK_MUX_CD (0x1 << 9)
0080 #define MASK_MUX_MIC (0x1 << 10)
0081 #define MASK_MUX_AUDIN (0x1 << 11)
0082 #define MASK_MUX_LINE MASK_MUX_AUDIN
0083 #define SHIFT_GAINLINE 8
0084 #define SHIFT_MUX_CD 9
0085 #define SHIFT_MUX_MIC 10
0086 #define SHIFT_MUX_LINE 11
0087
0088 #define GAINRIGHT(x) ((x) & MASK_GAINRIGHT)
0089 #define GAINLEFT(x) (((x) << 4) & MASK_GAINLEFT)
0090
0091
0092
0093 #define MASK_ADDR1RES1 (0x3)
0094 #define MASK_RECALIBRATE (0x1 << 2)
0095 #define MASK_SAMPLERATE (0x7 << 3)
0096 #define MASK_LOOPTHRU (0x1 << 6)
0097 #define SHIFT_LOOPTHRU 6
0098 #define MASK_CMUTE (0x1 << 7)
0099 #define MASK_SPKMUTE MASK_CMUTE
0100 #define SHIFT_SPKMUTE 7
0101 #define MASK_ADDR1RES2 (0x1 << 8)
0102 #define MASK_AMUTE (0x1 << 9)
0103 #define MASK_HDMUTE MASK_AMUTE
0104 #define SHIFT_HDMUTE 9
0105 #define MASK_PAROUT (0x3 << 10)
0106 #define MASK_PAROUT0 (0x1 << 10)
0107 #define MASK_PAROUT1 (0x1 << 11)
0108 #define SHIFT_PAROUT 10
0109 #define SHIFT_PAROUT0 10
0110 #define SHIFT_PAROUT1 11
0111
0112 #define SAMPLERATE_48000 (0x0 << 3)
0113 #define SAMPLERATE_32000 (0x1 << 3)
0114 #define SAMPLERATE_24000 (0x2 << 3)
0115 #define SAMPLERATE_19200 (0x3 << 3)
0116 #define SAMPLERATE_16000 (0x4 << 3)
0117 #define SAMPLERATE_12000 (0x5 << 3)
0118 #define SAMPLERATE_9600 (0x6 << 3)
0119 #define SAMPLERATE_8000 (0x7 << 3)
0120
0121
0122
0123 #define MASK_OUTVOLRIGHT (0xf)
0124 #define MASK_ADDR2RES1 (0x2 << 4)
0125 #define MASK_ADDR4RES1 MASK_ADDR2RES1
0126 #define MASK_OUTVOLLEFT (0xf << 6)
0127 #define MASK_ADDR2RES2 (0x2 << 10)
0128 #define MASK_ADDR4RES2 MASK_ADDR2RES2
0129
0130 #define VOLRIGHT(x) (((~(x)) & MASK_OUTVOLRIGHT))
0131 #define VOLLEFT(x) (((~(x)) << 6) & MASK_OUTVOLLEFT)
0132
0133
0134 #define MASK_MIC_BOOST (0x4)
0135 #define SHIFT_MIC_BOOST 2
0136
0137
0138
0139 #define MASK_EXTEND (0x1 << 23)
0140 #define MASK_VALID (0x1 << 22)
0141 #define MASK_OFLEFT (0x1 << 21)
0142 #define MASK_OFRIGHT (0x1 << 20)
0143 #define MASK_ERRCODE (0xf << 16)
0144 #define MASK_REVISION (0xf << 12)
0145 #define MASK_MFGID (0xf << 8)
0146 #define MASK_CODSTATRES (0xf << 4)
0147 #define MASK_INSENSE (0xf)
0148 #define MASK_HDPCONN 8
0149 #define MASK_LOCONN 4
0150 #define MASK_LICONN 2
0151 #define MASK_MICCONN 1
0152 #define MASK_LICONN_IMAC 8
0153 #define MASK_HDPRCONN_IMAC 4
0154 #define MASK_HDPLCONN_IMAC 2
0155 #define MASK_LOCONN_IMAC 1
0156
0157
0158
0159 #define MASK_CLIPLEFT (0xff << 7)
0160 #define MASK_CLIPRIGHT (0xff)
0161
0162
0163
0164 #define MASK_CSERR (0x1 << 7)
0165 #define MASK_EOI (0x1 << 6)
0166
0167 #define MASK_CSUNUSED (0x1f << 1)
0168 #define MASK_WAIT (0x1)
0169
0170
0171
0172 #define RATE_48000 (0x0 << 8)
0173 #define RATE_44100 (0x0 << 8)
0174 #define RATE_32000 (0x1 << 8)
0175 #define RATE_29400 (0x1 << 8)
0176 #define RATE_24000 (0x2 << 8)
0177 #define RATE_22050 (0x2 << 8)
0178 #define RATE_19200 (0x3 << 8)
0179 #define RATE_17640 (0x3 << 8)
0180 #define RATE_16000 (0x4 << 8)
0181 #define RATE_14700 (0x4 << 8)
0182 #define RATE_12000 (0x5 << 8)
0183 #define RATE_11025 (0x5 << 8)
0184 #define RATE_9600 (0x6 << 8)
0185 #define RATE_8820 (0x6 << 8)
0186 #define RATE_8000 (0x7 << 8)
0187 #define RATE_7350 (0x7 << 8)
0188
0189 #define RATE_LOW 1
0190
0191
0192 #endif