OSDN Git Service

リファクタリング
[uzume/uzume_bfin.git] / uzume_prototype / kernel / uzume / i2s_subsystem.c
similarity index 83%
rename from uzume_prototype/kernel/uzume/uzume.c
rename to uzume_prototype/kernel/uzume/i2s_subsystem.c
index 35e33b3..1525c6d 100644 (file)
@@ -3,44 +3,18 @@
  * @file uzume.c
  * @brief CODECの初期化と制御
  */
-#include "t_services.h"
-#include "s_services.h"
+#include "i2s_subsystem.h"
+#include <s_services.h>
 #include "uzume.h"
 #include "kernel_id.h"
-#include <i2c_subsystem.h>
-/**
- * \brief コーデック初期化データ列の長さ
- * \details
- * TLV320AIC23に与える初期化データの長さである。長さはレジスタアドレスとデータの組が
- * 何組であるかを示す。
- */
-#define     CODECINITDATALEN        11      /* TLV320AIC23B初期化データ長 */
+#include <cdefBF592-A.h>
 
-#define     I2C_PORT        0
-#define     CODEC_ADDRESS   0x1A
-
-/**
- * \brief CODEC初期化データ列
- * \details
- * TLV320AIC23Bを初期化するためのデータ列である。
- */
-static unsigned char tlv320aic23init[CODECINITDATALEN][2] =
-{
-                { 30 | 0x00, 0x00 },     /* RESET. */
-                { 0 | 0x01, 0x17 },     /* L_in vol : LR simul-update, unmute, 0dB */
-                { 2 | 0x01, 0x17 },     /* R_in vol : LR simul-update, unmute, 0dB */
-                { 4 | 0x01, 0xF9 },     /* L_HP vol : LR simul-update, zero-cross, 0dB */
-                { 6 | 0x01, 0xF9 },     /* R_HP vol : LR simul-update, zero-cross, 0dB */
-                { 8 | 0x00, 0x12 },     /* Analog Audio Path : No Sidetone, No bypass, DAC for Out, Line out for ADC, Mic Mute */
-                { 10 | 0x00, 0x00 },    /* Digital Path: DAC unmute, De-emphasis 48k, ADC HPF enable */
-                { 12 | 0x00, 0x02 },    /* Power Down : Only Mic is down*/
-                { 14 | 0x00, 0x4E },    /* Digital Audio Format : Master, 32bit, I2S */
-                { 16 | 0x00, 0x01 },    /* Sanmpling Rate, 48kHz, USB mode*/
-//                { 16 | 0x00, 0x00 },    /* Sanmpling Rate, 48kHz, NORMAL mode*/
-                { 18 | 0x00, 0x01 }     /* Activateion : Active. */
-
-};
 
+// CODECのスロット番号
+#define ADC_L0  0
+#define ADC_R0  1
+#define DAC_L0  0
+#define DAC_R0  1
 
 /**
  * @brief DMAデスクリプタ型
@@ -102,7 +76,7 @@ static struct DMA_DESCRIPTOR rxDesc[3];
  * 左右チャンネルそれぞれに配列を与える。配列内部にはサンプル順にデータが並ぶ。
  * ステレオは2系統あるので左チャンネルも2系統分のデータがある。
  */
-static int leftIn[UZUME_BLOCKSIZE];
+static AUDIOSAMPLE leftIn[UZUME_BLOCKSIZE];
 /**
  * @brief 右入力データ引渡し変数
  * 
@@ -111,7 +85,7 @@ static int leftIn[UZUME_BLOCKSIZE];
  * 左右チャンネルそれぞれに配列を与える。配列内部にはサンプル順にデータが並ぶ。
  * ステレオは2系統あるので右チャンネルも2系統分のデータがある。
  */
-static int rightIn[UZUME_BLOCKSIZE];
+static AUDIOSAMPLE rightIn[UZUME_BLOCKSIZE];
 /**
  * @brief 左出力データ引渡し変数
  * 
@@ -119,7 +93,7 @@ static int rightIn[UZUME_BLOCKSIZE];
  * @ref codec_callback()関数から出力オーディオデータをうけとるための引数。
  * 左右チャンネルそれぞれに配列を与える。配列内部にはサンプル順にデータが並ぶ。
  */
-static int leftOut[UZUME_BLOCKSIZE];
+static AUDIOSAMPLE leftOut[UZUME_BLOCKSIZE];
 /**
  * @brief 右出力データ引渡し変数
  * 
@@ -127,26 +101,7 @@ static int leftOut[UZUME_BLOCKSIZE];
  * @ref codec_callback()関数から出力オーディオデータをうけとるための引数。
  * 左右チャンネルそれぞれに配列を与える。配列内部にはサンプル順にデータが並ぶ。
  */
-static int rightOut[UZUME_BLOCKSIZE];
-
-/**
- * @brief コーデックの初期化
- * @details
- * TLV32AIC23Bに初期化数値列をI2C経由で送り込む。タスクコンテキストで呼び出さなければならない。
- * 初期化後、TLV32AIC23Bはクロック信号を生成して動作を開始する。
- */
-void init_codec()
-{
-        int i;
-
-
-                /* TLV320AIC23Bに初期化データを送信する */
-        for ( i=0; i< CODECINITDATALEN; i++){
-                i2c_master_write( I2C_PORT, CODEC_ADDRESS, tlv320aic23init[i], 2 );
-        }
-}
-
-
+static AUDIOSAMPLE rightOut[UZUME_BLOCKSIZE];
 
 /**
  * @brief CODEC用SPORTを設定する