Explorar o código

1.build_adb脚本添加参数支持选择usb口;2.修改串口流控管脚配置;3.关闭usb dma,规避和mmc1 dma的冲突

huangliang hai 7 meses
pai
achega
bebd5f1ffd

+ 25 - 24
buildroot-external/board/arkmicro/ark1668ed_devb/rootfs_overlay/etc/build_adb.sh

@@ -2,11 +2,12 @@
 
 
 if [ $# -eq 0 ];
 if [ $# -eq 0 ];
 then
 then
-    usb_idx=0
+    usb_idx=1
 else
 else
-	usb_idx=$1
+	usb_idx=2
 fi
 fi
 
 
+echo "usb index $usb_idx"
 
 
 # config adb function
 # config adb function
 KER_CONF="`grep '/sys/kernel/config' /proc/mounts`"
 KER_CONF="`grep '/sys/kernel/config' /proc/mounts`"
@@ -14,51 +15,51 @@ if  [ -z "$KER_CONF" ];  then
     mount -t configfs none /sys/kernel/config
     mount -t configfs none /sys/kernel/config
 fi
 fi
 
 
-if  [ ! -d /sys/kernel/config/usb_gadget/g1 ];  then
-    mkdir /sys/kernel/config/usb_gadget/g1
+if  [ ! -d /sys/kernel/config/usb_gadget/g$usb_idx ];  then
+    mkdir /sys/kernel/config/usb_gadget/g$usb_idx
 fi
 fi
 
 
-if  [ ! -d /sys/kernel/config/usb_gadget/g1/strings/0x409 ];  then
-    mkdir /sys/kernel/config/usb_gadget/g1/strings/0x409
+if  [ ! -d /sys/kernel/config/usb_gadget/g$usb_idx/strings/0x409 ];  then
+    mkdir /sys/kernel/config/usb_gadget/g$usb_idx/strings/0x409
 fi
 fi
 
 
-if  [ ! -d /sys/kernel/config/usb_gadget/g1/functions/adb.g1 ];  then
-    mkdir /sys/kernel/config/usb_gadget/g1/functions/adb.g1
+if  [ ! -d /sys/kernel/config/usb_gadget/g$usb_idx/functions/adb.g$usb_idx ];  then
+    mkdir /sys/kernel/config/usb_gadget/g$usb_idx/functions/adb.g$usb_idx
 fi
 fi
 
 
-if  [ ! -d /sys/kernel/config/usb_gadget/g1/configs/c.1 ];  then
-    mkdir /sys/kernel/config/usb_gadget/g1/configs/c.1
+if  [ ! -d /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1 ];  then
+    mkdir /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1
 fi
 fi
 
 
-if  [ ! -d /sys/kernel/config/usb_gadget/g1/configs/c.1/strings/0x409 ];  then
-    mkdir /sys/kernel/config/usb_gadget/g1/configs/c.1/strings/0x409
+if  [ ! -d /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1/strings/0x409 ];  then
+    mkdir /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1/strings/0x409
 fi
 fi
 
 
-echo "0x18d1" > /sys/kernel/config/usb_gadget/g1/idVendor
-echo "0x0002" > /sys/kernel/config/usb_gadget/g1/idProduct
+echo "0x18d1" > /sys/kernel/config/usb_gadget/g$usb_idx/idVendor
+echo "0x0002" > /sys/kernel/config/usb_gadget/g$usb_idx/idProduct
 
 
-echo "012345678adcdef" > /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber
-echo "Arkmicro.Inc" > /sys/kernel/config/usb_gadget/g1/strings/0x409/manufacturer
-echo "ADB Device" > /sys/kernel/config/usb_gadget/g1/strings/0x409/product
+echo "012345678adcdef" > /sys/kernel/config/usb_gadget/g$usb_idx/strings/0x409/serialnumber
+echo "Arkmicro.Inc" > /sys/kernel/config/usb_gadget/g$usb_idx/strings/0x409/manufacturer
+echo "ADB Device" > /sys/kernel/config/usb_gadget/g$usb_idx/strings/0x409/product
 
 
-echo 0xc0 > /sys/kernel/config/usb_gadget/g1/configs/c.1/bmAttributes
-echo 500 > /sys/kernel/config/usb_gadget/g1/configs/c.1/MaxPower
+echo 0xc0 > /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1/bmAttributes
+echo 500 > /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1/MaxPower
 
 
-if  [ ! -L /sys/kernel/config/usb_gadget/g1/configs/c.1/adb.g1 ];  then
-    ln -s /sys/kernel/config/usb_gadget/g1/functions/adb.g1/ /sys/kernel/config/usb_gadget/g1/configs/c.1/adb.g1
+if  [ ! -L /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1/adb.g$usb_idx ];  then
+    ln -s /sys/kernel/config/usb_gadget/g$usb_idx/functions/adb.g$usb_idx/ /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1/adb.g$usb_idx
 fi
 fi
 
 
 # start adbd daemon
 # start adbd daemon
 killall adbd
 killall adbd
 adbd &
 adbd &
 
 
-if [ $usb_idx -eq 0 ];
+if [ $usb_idx -eq 1 ];
 then
 then
-        echo 40000000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+        echo 40000000.usb > /sys/kernel/config/usb_gadget/g$usb_idx/UDC
         sleep 0.1
         sleep 0.1
         echo device > /sys/class/usb_role/40000000.usb-role-switch/role
         echo device > /sys/class/usb_role/40000000.usb-role-switch/role
 else
 else
-        echo 40c00000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+        echo 40c00000.usb > /sys/kernel/config/usb_gadget/g$usb_idx/UDC
         sleep 0.1
         sleep 0.1
         echo device > /sys/class/usb_role/40c00000.usb-role-switch/role
         echo device > /sys/class/usb_role/40c00000.usb-role-switch/role
 fi
 fi

+ 25 - 24
buildroot-external/board/arkmicro/ark1668ed_devb_emmc/rootfs_overlay/etc/build_adb.sh

@@ -2,11 +2,12 @@
 
 
 if [ $# -eq 0 ];
 if [ $# -eq 0 ];
 then
 then
-    usb_idx=0
+    usb_idx=1
 else
 else
-	usb_idx=$1
+	usb_idx=2
 fi
 fi
 
 
+echo "usb index $usb_idx"
 
 
 # config adb function
 # config adb function
 KER_CONF="`grep '/sys/kernel/config' /proc/mounts`"
 KER_CONF="`grep '/sys/kernel/config' /proc/mounts`"
@@ -14,51 +15,51 @@ if  [ -z "$KER_CONF" ];  then
     mount -t configfs none /sys/kernel/config
     mount -t configfs none /sys/kernel/config
 fi
 fi
 
 
-if  [ ! -d /sys/kernel/config/usb_gadget/g1 ];  then
-    mkdir /sys/kernel/config/usb_gadget/g1
+if  [ ! -d /sys/kernel/config/usb_gadget/g$usb_idx ];  then
+    mkdir /sys/kernel/config/usb_gadget/g$usb_idx
 fi
 fi
 
 
-if  [ ! -d /sys/kernel/config/usb_gadget/g1/strings/0x409 ];  then
-    mkdir /sys/kernel/config/usb_gadget/g1/strings/0x409
+if  [ ! -d /sys/kernel/config/usb_gadget/g$usb_idx/strings/0x409 ];  then
+    mkdir /sys/kernel/config/usb_gadget/g$usb_idx/strings/0x409
 fi
 fi
 
 
-if  [ ! -d /sys/kernel/config/usb_gadget/g1/functions/adb.g1 ];  then
-    mkdir /sys/kernel/config/usb_gadget/g1/functions/adb.g1
+if  [ ! -d /sys/kernel/config/usb_gadget/g$usb_idx/functions/adb.g$usb_idx ];  then
+    mkdir /sys/kernel/config/usb_gadget/g$usb_idx/functions/adb.g$usb_idx
 fi
 fi
 
 
-if  [ ! -d /sys/kernel/config/usb_gadget/g1/configs/c.1 ];  then
-    mkdir /sys/kernel/config/usb_gadget/g1/configs/c.1
+if  [ ! -d /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1 ];  then
+    mkdir /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1
 fi
 fi
 
 
-if  [ ! -d /sys/kernel/config/usb_gadget/g1/configs/c.1/strings/0x409 ];  then
-    mkdir /sys/kernel/config/usb_gadget/g1/configs/c.1/strings/0x409
+if  [ ! -d /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1/strings/0x409 ];  then
+    mkdir /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1/strings/0x409
 fi
 fi
 
 
-echo "0x18d1" > /sys/kernel/config/usb_gadget/g1/idVendor
-echo "0x0002" > /sys/kernel/config/usb_gadget/g1/idProduct
+echo "0x18d1" > /sys/kernel/config/usb_gadget/g$usb_idx/idVendor
+echo "0x0002" > /sys/kernel/config/usb_gadget/g$usb_idx/idProduct
 
 
-echo "012345678adcdef" > /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber
-echo "Arkmicro.Inc" > /sys/kernel/config/usb_gadget/g1/strings/0x409/manufacturer
-echo "ADB Device" > /sys/kernel/config/usb_gadget/g1/strings/0x409/product
+echo "012345678adcdef" > /sys/kernel/config/usb_gadget/g$usb_idx/strings/0x409/serialnumber
+echo "Arkmicro.Inc" > /sys/kernel/config/usb_gadget/g$usb_idx/strings/0x409/manufacturer
+echo "ADB Device" > /sys/kernel/config/usb_gadget/g$usb_idx/strings/0x409/product
 
 
-echo 0xc0 > /sys/kernel/config/usb_gadget/g1/configs/c.1/bmAttributes
-echo 500 > /sys/kernel/config/usb_gadget/g1/configs/c.1/MaxPower
+echo 0xc0 > /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1/bmAttributes
+echo 500 > /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1/MaxPower
 
 
-if  [ ! -L /sys/kernel/config/usb_gadget/g1/configs/c.1/adb.g1 ];  then
-    ln -s /sys/kernel/config/usb_gadget/g1/functions/adb.g1/ /sys/kernel/config/usb_gadget/g1/configs/c.1/adb.g1
+if  [ ! -L /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1/adb.g$usb_idx ];  then
+    ln -s /sys/kernel/config/usb_gadget/g$usb_idx/functions/adb.g$usb_idx/ /sys/kernel/config/usb_gadget/g$usb_idx/configs/c.1/adb.g$usb_idx
 fi
 fi
 
 
 # start adbd daemon
 # start adbd daemon
 killall adbd
 killall adbd
 adbd &
 adbd &
 
 
-if [ $usb_idx -eq 0 ];
+if [ $usb_idx -eq 1 ];
 then
 then
-        echo 40000000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+        echo 40000000.usb > /sys/kernel/config/usb_gadget/g$usb_idx/UDC
         sleep 0.1
         sleep 0.1
         echo device > /sys/class/usb_role/40000000.usb-role-switch/role
         echo device > /sys/class/usb_role/40000000.usb-role-switch/role
 else
 else
-        echo 40c00000.usb > /sys/kernel/config/usb_gadget/g1/UDC
+        echo 40c00000.usb > /sys/kernel/config/usb_gadget/g$usb_idx/UDC
         sleep 0.1
         sleep 0.1
         echo device > /sys/class/usb_role/40c00000.usb-role-switch/role
         echo device > /sys/class/usb_role/40c00000.usb-role-switch/role
 fi
 fi

+ 10 - 7
linux/arch/arm/boot/dts/arkmicro/ark1668ed-pinctrl.dtsi

@@ -73,24 +73,27 @@
             ark,pins =
             ark,pins =
                 <ARK_PBANK_2 0 ARK_PVAL_5			/* uart1 rx */
                 <ARK_PBANK_2 0 ARK_PVAL_5			/* uart1 rx */
                     ARK_PBANK_2 1 ARK_PVAL_5		/* uart1 tx */
                     ARK_PBANK_2 1 ARK_PVAL_5		/* uart1 tx */
-                    ARK_PBANK_1 19 ARK_PVAL_5		/* uart1 rts */
-                    ARK_PBANK_1 20 ARK_PVAL_5>;		/* uart1 cts_1 */
-		group-mux = <0x184 2 2 1>;			/* uart1_cts_1*/
+                    ARK_PBANK_3 21 ARK_PVAL_5		/* uart1 rts */
+                    ARK_PBANK_3 22 ARK_PVAL_5>;		/* uart1 cts_3 */
+		group-mux = <0x184 2 2 3>;			/* uart1_cts_3*/
         };
         };
 
 
         pinctrl_uart2: uart2-0 {
         pinctrl_uart2: uart2-0 {
             ark,pins =
             ark,pins =
                 <ARK_PBANK_2 2 ARK_PVAL_5			/* uart2 rx */
                 <ARK_PBANK_2 2 ARK_PVAL_5			/* uart2 rx */
                     ARK_PBANK_2 3 ARK_PVAL_5		/* uart2 tx */
                     ARK_PBANK_2 3 ARK_PVAL_5		/* uart2 tx */
-                    ARK_PBANK_1 21 ARK_PVAL_5		/* uart2 rts */
-                    ARK_PBANK_1 22 ARK_PVAL_5>;		/* uart2 cts_1 */
-		group-mux = <0x184 4 2 1>;			/* uart2_cts_1*/
+                    ARK_PBANK_3 23 ARK_PVAL_5		/* uart2 rts */
+                    ARK_PBANK_3 24 ARK_PVAL_5>;		/* uart2 cts_3 */
+		group-mux = <0x184 4 2 3>;			/* uart2_cts_3*/
         };
         };
 
 
         pinctrl_uart3: uart3-0 {
         pinctrl_uart3: uart3-0 {
             ark,pins =
             ark,pins =
                 <ARK_PBANK_2 4 ARK_PVAL_5			/* uart3 rx */
                 <ARK_PBANK_2 4 ARK_PVAL_5			/* uart3 rx */
-                    ARK_PBANK_2 5 ARK_PVAL_5>;		/* uart3 tx */
+                    ARK_PBANK_2 5 ARK_PVAL_5		/* uart3 tx */
+                    ARK_PBANK_3 25 ARK_PVAL_5		/* uart3 rts */
+                    ARK_PBANK_3 26 ARK_PVAL_5>;		/* uart3 cts_3 */
+		group-mux = <0x184 6 2 3>;			/* uart3_cts_3*/
         };
         };
 
 
         pinctrl_uart4: uart4-0 {
         pinctrl_uart4: uart4-0 {

+ 2 - 1
linux/drivers/usb/dwc2/params.c

@@ -507,7 +507,8 @@ static void dwc2_set_default_params(struct dwc2_hsotg *hsotg)
 {
 {
 	struct dwc2_hw_params *hw = &hsotg->hw_params;
 	struct dwc2_hw_params *hw = &hsotg->hw_params;
 	struct dwc2_core_params *p = &hsotg->params;
 	struct dwc2_core_params *p = &hsotg->params;
-	bool dma_capable = !(hw->arch == GHWCFG2_SLAVE_ONLY_ARCH);
+	bool dma_capable = false;//!(hw->arch == GHWCFG2_SLAVE_ONLY_ARCH);
+	printk("*************dwc2_set_default_params_dma_capable:%d\n",dma_capable);
 
 
 	dwc2_set_param_otg_cap(hsotg);
 	dwc2_set_param_otg_cap(hsotg);
 	dwc2_set_param_phy_type(hsotg);
 	dwc2_set_param_phy_type(hsotg);