From 0d5b7df96a2ee186b7b085dca9cf9a33f791c430 Mon Sep 17 00:00:00 2001
From: graydon <weidong.gao@cretone.cn>
Date: 星期六, 30 八月 2025 20:27:15 +0800
Subject: [PATCH] 增加双USB

---
 src/tg/tg_adapter.cpp |  117 ++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 81 insertions(+), 36 deletions(-)

diff --git a/src/tg/tg_adapter.cpp b/src/tg/tg_adapter.cpp
index 8a30391..12c68f0 100644
--- a/src/tg/tg_adapter.cpp
+++ b/src/tg/tg_adapter.cpp
@@ -2,35 +2,40 @@
 #include "tg_config.h"
 #include "tg_adapter.h"
 
+//参数logic_channel逻辑通道从0开始.
 s32 tg_hw_adapter_t::get_physical_channel(s32 input , s32 logic_channel)
 {
 	//s32 phy_channel[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19};
 	if(input) {
 		s32 input_num = ana_input_num + dante_input_num ;
+//		s32 local_ch = ana_input_num + usb_input_num;	// C H G 18
 		if(logic_channel < ana_input_num) {
 			//analog
-			return logic_channel + 1;
+			return logic_channel+1;
 		}
 		else if(logic_channel < input_num) {
 			//dante
-			return 17+ (logic_channel-ana_input_num);
+			return 19 + (logic_channel - ana_input_num);
 		}
 		else {
 			//usb
-			return 49 + (logic_channel-input_num);
+			return 17 + (logic_channel - input_num);
 		}
 	}
-	else {
+	else {	//output
 		s32 output_num = ana_output_num + dante_output_num ;
-		//output
+//		s32 local_ch = ana_output_num + usb_output_num;	// C H G 18
+		//analog
 		if(logic_channel < ana_output_num) {
-			return logic_channel +1;
+			return logic_channel;
 		}
 		else if(logic_channel < output_num) {
-			return 17+ (logic_channel-ana_output_num);
+			//dante
+			return 19 + (logic_channel - ana_output_num);
 		}
 		else {
-			return 49 + (logic_channel-output_num);
+			//usb
+			return 17 + (logic_channel - output_num);
 		}
 	}
 }
@@ -100,33 +105,34 @@
 	AddRoute(SourceSignal::SPT0_BD1_O, DestSignal::DAI0_PB12_I);
 
 	//USB Slave. SCLK(DAI0_8),LRCLK(DAI0_9), RX(DAI0_7),TX(DAI0_10)
-	for(i =4 ;i < 5; i++) {
+	//sport2A<->input;	sport2B<->output
+	for(i =4 ;i < 6; i++) {
 		conf->sports[i].spid = i;
 		conf->sports[i].clke = utrue;
 		conf->sports[i].enable = utrue;
 		conf->sports[i].enable_sec = ufalse;
 		conf->sports[i].lfs = ufalse;
 		conf->sports[i].mfd = 1;
-		conf->sports[i].opmode = 0 ; //tdm
+		conf->sports[i].opmode = 1 ; //i2s
 		conf->sports[i].rx = ufalse;
-		conf->sports[i].slots = 8;
-		conf->sports[i].vld = 8;
+		conf->sports[i].slots = 2;
+		conf->sports[i].vld = 2;
 		conf->sports[i].follow_intr_no = intr_sport_no(4);
 	}
 	conf->sports[4].interrupt = utrue;
 	conf->sports[4].rx = utrue;
 
 	//USB pcg.
-	conf->pcgs[1].enable = utrue;
-	conf->pcgs[1].opmode = 0;
-	conf->pcgs[1].fs_div = mclk / conf->mSampleRate ;
-	conf->pcgs[1].sclk_div = mclk / (conf->mSampleRate * 2 * 32);
-	AddRoute(SourceSignal::DAI0_PB02_O, DestSignal::PCG_EXTB_I);
+//	conf->pcgs[1].enable = utrue;
+//	conf->pcgs[1].opmode = 0;
+//	conf->pcgs[1].fs_div = mclk / conf->mSampleRate ;
+//	conf->pcgs[1].sclk_div = mclk / (conf->mSampleRate * 2 * 32);
+//	AddRoute(SourceSignal::DAI0_PB02_O, DestSignal::PCG_EXTB_I);
 
-	AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI0_PBEN09_I);//fs
-	AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI0_PBEN08_I);//sclk
-	AddRoute(SourceSignal::PCG_FSB_O, DestSignal::DAI0_PB09_I);
-	AddRoute(SourceSignal::PCG_CLKB_O, DestSignal::DAI0_PB08_I);
+//	AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI0_PBEN09_I);//fs
+//	AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI0_PBEN08_I);//sclk
+//	AddRoute(SourceSignal::PCG_FSB_O, DestSignal::DAI0_PB09_I);
+//	AddRoute(SourceSignal::PCG_CLKB_O, DestSignal::DAI0_PB08_I);
 
 	AddRoute(SourceSignal::DAI0_PB08_O, DestSignal::SPT2_ACLK_I);
 	AddRoute(SourceSignal::DAI0_PB09_O, DestSignal::SPT2_AFS_I);
@@ -137,12 +143,51 @@
 	AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI0_PBEN10_I);
 	AddRoute(SourceSignal::SPT2_BD0_O, DestSignal::DAI0_PB10_I);
 
-	//Dante。
+	//Dante Slave
 	//MCLK(DAI1_2),LRCLK(DAI1_20),SCLK(DAI1_19)
-	//RX0(DAI1_12),RX1(DAI1_10),RX2(DAI1_8),RX3(DAI1_6)
-	//TX0(DAI1_11),TX1(DAI1_9),TX2(DAI1_7),TX3(DAI1_5)
+	//TX0(DAI1_12),TX1(DAI1_10),TX2(DAI1_8),TX3(DAI1_6)
+	//RX0(DAI1_11),RX1(DAI1_9),RX2(DAI1_7),RX3(DAI1_5)
 	//sport4a,4b<->RX;sport5a,5b<->TX
 	for(i = 8 ;i < 12 ;i ++) {
+			conf->sports[i].spid = i;
+			conf->sports[i].clke = utrue;
+			conf->sports[i].enable = utrue;
+			conf->sports[i].enable_sec = ufalse;
+			conf->sports[i].lfs = ufalse;
+			conf->sports[i].mfd = 1;
+			conf->sports[i].opmode = 0 ; //tdm
+			conf->sports[i].rx = ufalse;
+			conf->sports[i].slots = 16;
+			conf->sports[i].vld = 16;
+			conf->sports[i].follow_intr_no = intr_sport_no(8);
+		}
+		conf->sports[8].interrupt = utrue;
+		conf->sports[8].rx = conf->sports[9].rx = utrue;
+
+		AddRoute(SourceSignal::DAI1_PB19_O, DestSignal::SPT4_ACLK_I);
+		AddRoute(SourceSignal::DAI1_PB19_O, DestSignal::SPT4_BCLK_I);
+		AddRoute(SourceSignal::DAI1_PB19_O, DestSignal::SPT5_ACLK_I);
+		AddRoute(SourceSignal::DAI1_PB19_O, DestSignal::SPT5_BCLK_I);
+		AddRoute(SourceSignal::DAI1_PB20_O, DestSignal::SPT4_AFS_I);
+		AddRoute(SourceSignal::DAI1_PB20_O, DestSignal::SPT4_BFS_I);
+		AddRoute(SourceSignal::DAI1_PB20_O, DestSignal::SPT5_AFS_I);
+		AddRoute(SourceSignal::DAI1_PB20_O, DestSignal::SPT5_BFS_I);
+
+		AddRoute(SourceSignal::DAI1_PB11_O, DestSignal::SPT4_AD0_I);
+		AddRoute(SourceSignal::DAI1_PB09_O, DestSignal::SPT4_BD0_I);
+//		AddRoute(SourceSignal::DAI1_PB07_O, DestSignal::SPT4_AD0_I);
+//		AddRoute(SourceSignal::DAI1_PB05_O, DestSignal::SPT4_BD0_I);
+
+		AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI1_PBEN12_I);
+		AddRoute(SourceSignal::SPT5_AD0_O, DestSignal::DAI1_PB12_I);
+		AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI1_PBEN10_I);
+		AddRoute(SourceSignal::SPT5_BD0_O, DestSignal::DAI1_PB10_I);
+//		AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI1_PBEN08_I);
+//		AddRoute(SourceSignal::SPT5_AD0_O, DestSignal::DAI1_PB08_I);
+//		AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI1_PBEN06_I);
+//		AddRoute(SourceSignal::SPT5_BD0_O, DestSignal::DAI1_PB06_I);
+	/* TDM8
+	 	for(i = 8 ;i < 12 ;i ++) {
 		conf->sports[i].spid = i;
 		conf->sports[i].clke = utrue;
 		conf->sports[i].enable = utrue;
@@ -167,17 +212,17 @@
 	AddRoute(SourceSignal::DAI1_PB20_O, DestSignal::SPT5_AFS_I);
 	AddRoute(SourceSignal::DAI1_PB20_O, DestSignal::SPT5_BFS_I);
 
-	AddRoute(SourceSignal::DAI1_PB12_O, DestSignal::SPT4_AD0_I);
-	AddRoute(SourceSignal::DAI1_PB10_O, DestSignal::SPT4_AD1_I);
-	AddRoute(SourceSignal::DAI1_PB08_O, DestSignal::SPT4_BD0_I);
-	AddRoute(SourceSignal::DAI1_PB06_O, DestSignal::SPT4_BD1_I);
+	AddRoute(SourceSignal::DAI1_PB11_O, DestSignal::SPT4_AD0_I);
+	AddRoute(SourceSignal::DAI1_PB09_O, DestSignal::SPT4_AD1_I);
+	AddRoute(SourceSignal::DAI1_PB07_O, DestSignal::SPT4_BD0_I);
+	AddRoute(SourceSignal::DAI1_PB05_O, DestSignal::SPT4_BD1_I);
 
-	AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI1_PBEN11_I);
-	AddRoute(SourceSignal::SPT5_AD0_O, DestSignal::DAI1_PB11_I);
-	AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI1_PBEN09_I);
-	AddRoute(SourceSignal::SPT5_AD1_O, DestSignal::DAI1_PB09_I);
-	AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI1_PBEN07_I);
-	AddRoute(SourceSignal::SPT5_BD0_O, DestSignal::DAI1_PB07_I);
-	AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI1_PBEN05_I);
-	AddRoute(SourceSignal::SPT5_BD1_O, DestSignal::DAI1_PB05_I);
+	AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI1_PBEN12_I);
+	AddRoute(SourceSignal::SPT5_AD0_O, DestSignal::DAI1_PB12_I);
+	AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI1_PBEN10_I);
+	AddRoute(SourceSignal::SPT5_AD1_O, DestSignal::DAI1_PB10_I);
+	AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI1_PBEN08_I);
+	AddRoute(SourceSignal::SPT5_BD0_O, DestSignal::DAI1_PB08_I);
+	AddRoute(SourceSignal::LOGIC_HIGH, DestSignal::DAI1_PBEN06_I);
+	AddRoute(SourceSignal::SPT5_BD1_O, DestSignal::DAI1_PB06_I);*/
 }

--
Gitblit v1.9.3