فهرست منبع

update: air8101,pins,以太网复用名称从ENET规范改为ETH,把其他功能复用也加上,由于是固定接口,不需要复用,逻辑跳过

??? 3 ماه پیش
والد
کامیت
328f41c1cf
3فایلهای تغییر یافته به همراه49 افزوده شده و 41 حذف شده
  1. 18 15
      components/pins/include/luat_pins.h
  2. 31 25
      components/pins/src/luat_pins.c
  3. 0 1
      luat/include/luat_mcu.h

+ 18 - 15
components/pins/include/luat_pins.h

@@ -58,17 +58,17 @@ typedef enum
 	LUAT_PIN_SIM_RST,
 	LUAT_PIN_SIM_QTY,
 
-	LUAT_PIN_ENET_PHY_INT = 0,
-	LUAT_PIN_ENET_MDC,
-	LUAT_PIN_ENET_MDIO,
-	LUAT_PIN_ENET_RXD0,
-	LUAT_PIN_ENET_RXD1,
-	LUAT_PIN_ENET_RXDV,
-	LUAT_PIN_ENET_TXD0,
-	LUAT_PIN_ENET_TXD1,
-	LUAT_PIN_ENET_TXEN,
-	LUAT_PIN_ENET_REF_CLK,
-	LUAT_PIN_ENET_QTY,
+	LUAT_PIN_ETH_PHY_INT = 0,
+	LUAT_PIN_ETH_MDC,
+	LUAT_PIN_ETH_MDIO,
+	LUAT_PIN_ETH_REF_CLK,
+	LUAT_PIN_ETH_RXD0,
+	LUAT_PIN_ETH_RXD1,
+	LUAT_PIN_ETH_RXDV,
+	LUAT_PIN_ETH_TXD0,
+	LUAT_PIN_ETH_TXD1,
+	LUAT_PIN_ETH_TXEN,
+	LUAT_PIN_ETH_QTY,
 
 	LUAT_PIN_ONLY_ONE_QTY = 1,
 	LUAT_PIN_FUNCTION_MAX = LUAT_PIN_SDIO_QTY,
@@ -147,15 +147,18 @@ typedef struct
 	luat_pin_iomux_info pin_list[LUAT_PIN_QSPI_QTY];
 }luat_qspi_pin_iomux_t;
 
+
 typedef struct
 {
-	luat_pin_iomux_info pin_list[LUAT_PIN_SIM_QTY];
-}luat_sim_pin_iomux_t;
+	luat_pin_iomux_info pin_list[LUAT_PIN_ETH_QTY];
+}luat_eth_pin_iomux_t;
+
 
 typedef struct
 {
-	luat_pin_iomux_info pin_list[LUAT_PIN_ENET_QTY];
-}luat_enet_pin_iomux_t;
+	luat_pin_iomux_info pin_list[LUAT_PIN_SIM_QTY];
+}luat_sim_pin_iomux_t;
+
 /**
  * @brief 获取某种外设的全部pin复用信息
  * @param type 外设类型,见LUAT_MCU_PERIPHERAL_E

+ 31 - 25
components/pins/src/luat_pins.c

@@ -39,7 +39,7 @@ static luat_pin_peripheral_function_description_u luat_pin_function_analyze(char
 	size_t org_len = len;
 	size_t offset = 0;
 	const char *peripheral_names[LUAT_MCU_PERIPHERAL_QTY] = {
-			"UART","I2C","SPI","PWM","CAN","GPIO","I2S","SDIO","LCD","CAMERA","ONEWIRE","KEYBORAD","ETH","QSPI","USIM","ENET"
+			"UART","I2C","SPI","PWM","CAN","GPIO","I2S","SDIO","LCD","CAMERA","ONEWIRE","KEYBORAD","ETH","QSPI","USIM"
 	};
 	const char *function0_names[4] = {
 			"RX","SCL","MOSI","PHY_INT"
@@ -253,29 +253,7 @@ static luat_pin_peripheral_function_description_u luat_pin_function_analyze(char
 					goto LUAT_PIN_FUNCTION_ANALYZE_DONE;
 				}
 				break;
-			case LUAT_MCU_PERIPHERAL_SIM:
-				if (description.peripheral_id) description.peripheral_id = 1;
-				function_id = search(string, len, function2_names, sizeof(function2_names)/4);
-				if (function_id >= 0)
-				{
-					description.function_id = 1;
-					goto LUAT_PIN_FUNCTION_ANALYZE_DONE;
-				}
-				function_id = search(string, len, function4_names, sizeof(function4_names)/4);
-				if (function_id >= 0)
-				{
-					description.function_id = 0;
-					goto LUAT_PIN_FUNCTION_ANALYZE_DONE;
-				}
-				function_id = search(string, len, function5_names, sizeof(function5_names)/4);
-				if (function_id >= 0)
-				{
-					description.function_id = 2;
-					goto LUAT_PIN_FUNCTION_ANALYZE_DONE;
-				}
-				break;
-			case LUAT_MCU_PERIPHERAL_ENET:
-				LLOGD("ENET %.*s, %d", len, string, len);
+			case LUAT_MCU_PERIPHERAL_ETH:
 				if (strnstr(string, "_RXD", len))
 				{
 					if (string[4] == 'V')
@@ -328,6 +306,27 @@ static luat_pin_peripheral_function_description_u luat_pin_function_analyze(char
 					goto LUAT_PIN_FUNCTION_ANALYZE_DONE;
 				}
 				break;
+			case LUAT_MCU_PERIPHERAL_SIM:
+				if (description.peripheral_id) description.peripheral_id = 1;
+				function_id = search(string, len, function2_names, sizeof(function2_names)/4);
+				if (function_id >= 0)
+				{
+					description.function_id = 1;
+					goto LUAT_PIN_FUNCTION_ANALYZE_DONE;
+				}
+				function_id = search(string, len, function4_names, sizeof(function4_names)/4);
+				if (function_id >= 0)
+				{
+					description.function_id = 0;
+					goto LUAT_PIN_FUNCTION_ANALYZE_DONE;
+				}
+				function_id = search(string, len, function5_names, sizeof(function5_names)/4);
+				if (function_id >= 0)
+				{
+					description.function_id = 2;
+					goto LUAT_PIN_FUNCTION_ANALYZE_DONE;
+				}
+				break;
 			default:
 				break;
 			}
@@ -378,9 +377,16 @@ int luat_pins_setup(uint16_t pin, const char* func_name, size_t name_len, int al
 	#endif
 	#ifdef __BK72XX__
 	if (pin == 26 || pin == 27){	// air8101的26/27不支持配置,只能作为uart0调试串口
-		LLOGE("pin%d不支持修改", pin);
+		LLOGE("pin%d 是UART0功能, 不支持修改", pin);
 		goto LUAT_PIN_SETUP_DONE;
 	}
+	if (memcmp("DVP_", func_name, 4) == 0 
+		|| memcmp("QSPI", func_name, 4) == 0 
+		|| memcmp("RGB_", func_name, 4) == 0 
+		|| memcmp("SWCLK", func_name, 5) == 0 
+		|| memcmp("SWDIO", func_name, 5) == 0){
+		return 1;
+	}
 	#endif
 	if (func_name != NULL)
 	{

+ 0 - 1
luat/include/luat_mcu.h

@@ -19,7 +19,6 @@ typedef enum
 	LUAT_MCU_PERIPHERAL_ETH,
 	LUAT_MCU_PERIPHERAL_QSPI,
 	LUAT_MCU_PERIPHERAL_SIM,
-	LUAT_MCU_PERIPHERAL_ENET,
 	LUAT_MCU_PERIPHERAL_QTY
 }LUAT_MCU_PERIPHERAL_E;