OSDN Git Service

First commitment for the BlackTank LPC1769.
[blacktank/blacktank.git] / codec_subsystem.c
1 /**
2  * \file codec_subsystem.c
3  * \brief TLV320AIC23B操作関数
4  * \date 2011/02/19
5  * \author takemasa
6  */
7
8 #include "codec_subsystem.h"
9 #include "i2c_subsystem.h"
10
11 #include <LPC17xx.h>
12 #include <kernel.h>
13 #include <t_syslog.h>
14
15 /**
16  * \brief コーデック初期化データ列の長さ
17  * \details
18  * TLV320AIC23に与える初期化データの長さである。長さはレジスタアドレスとデータの組が
19  * 何組であるかを示す。
20  */
21 #define         CODECINITDATALEN        10      /* TLV320AIC23B初期化データ長 */
22
23
24 /**
25  * \brief CODEC初期化データ列
26  * \details
27  * TLV320AIC23Bを初期化するためのデータ列である。
28  */
29 static unsigned char tlv320aic23init[CODECINITDATALEN][2] = {
30     {0 | 0x01, 0x17},           /* L_in vol : LR simul-update, unmute, 0dB */
31     {2 | 0x01, 0x17},           /* R_in vol : LR simul-update, unmute, 0dB */
32     {4 | 0x01, 0xF9},           /* L_HP vol : LR simul-update, zero-cross, 0dB */
33     {6 | 0x01, 0xF9},           /* R_HP vol : LR simul-update, zero-cross, 0dB */
34     {8 | 0x00, 0x12},           /* Analog Audio Path : No Sidetone, No bypass, DAC for Out, Line out for ADC, Mic Mute */
35     {10 | 0x00, 0x06},          /* Digital Paht: DAC unmute, De-emphasis 48k, ADC LPF enable */
36     {12 | 0x00, 0x02},          /* Power Down : Only Mic is down */
37     {14 | 0x00, 0x4E},          /* Digital Audio Format : Master, 24bit, I2S */
38 //              { 16 | 0x00, 0x01 },    /* Sanmpling Rate, 48kHz, USB mode*/
39     {16 | 0x00, 0x00},          /* Sanmpling Rate, 48kHz, NORMAL mode */
40     {18 | 0x00, 0x01}           /* Activateion : Active. */
41
42 };
43
44 void codec_init()
45 {
46     int i;
47
48     /* TLV320AIC23Bに初期化データを送信する */
49     for (i = 0; i < CODECINITDATALEN; i++) {
50         i2c_send_2bytes(0x1A, tlv320aic23init[i][0], tlv320aic23init[i][1]);    /* Activate all functionality of TLV320AIC23B */
51         tslp_tsk(10);
52     }
53 }