adb: support adb boardctl when not composite device

Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
This commit is contained in:
zhangyuan21 2023-07-29 16:11:39 +08:00 committed by Xiang Xiao
parent 3648c0cc5c
commit 987cb1ebd9
2 changed files with 24 additions and 11 deletions

View File

@ -171,6 +171,15 @@ config ADBD_BOARD_INIT
---help--- ---help---
Setup board before running adb daemon. Setup board before running adb daemon.
config ADBD_USB_BOARDCTL
bool "USB Board Control"
depends on BOARDCTL
depends on ADBD_USB_SERVER
select BOARDCTL_USBDEVCTRL
default ADBD_BOARD_INIT
---help---
Connect usbdev before running adb daemon.
config ADBD_NET_INIT config ADBD_NET_INIT
bool "Network initialization" bool "Network initialization"
default n default n

View File

@ -27,7 +27,8 @@
#include <stdio.h> #include <stdio.h>
#include <syslog.h> #include <syslog.h>
#if defined(CONFIG_ADBD_BOARD_INIT) || defined (CONFIG_BOARDCTL_RESET) #if defined(CONFIG_ADBD_BOARD_INIT) || defined (CONFIG_BOARDCTL_RESET) || \
defined(CONFIG_ADBD_USB_BOARDCTL)
# include <sys/boardctl.h> # include <sys/boardctl.h>
#endif #endif
@ -77,20 +78,24 @@ int main(int argc, FAR char **argv)
#ifdef CONFIG_ADBD_BOARD_INIT #ifdef CONFIG_ADBD_BOARD_INIT
boardctl(BOARDIOC_INIT, 0); boardctl(BOARDIOC_INIT, 0);
#endif /* CONFIG_ADBD_BOARD_INIT */
#if defined(CONFIG_ADBD_USB_SERVER) && \ #ifdef CONFIG_ADBD_USB_BOARDCTL
defined(CONFIG_USBDEV_COMPOSITE) && \
defined (CONFIG_BOARDCTL_USBDEVCTRL)
/* Setup composite USB device */ /* Setup USBADB device */
struct boardioc_usbdev_ctrl_s ctrl; struct boardioc_usbdev_ctrl_s ctrl;
int ret; #ifdef CONFIG_USBDEV_COMPOSITE
uint8_t usbdev = BOARDIOC_USBDEV_COMPOSITE;
#else
uint8_t usbdev = BOARDIOC_USBDEV_ADB;
#endif
FAR void *handle; FAR void *handle;
int ret;
/* Perform architecture-specific initialization */ /* Perform architecture-specific initialization */
ctrl.usbdev = BOARDIOC_USBDEV_COMPOSITE; ctrl.usbdev = usbdev;
ctrl.action = BOARDIOC_USBDEV_INITIALIZE; ctrl.action = BOARDIOC_USBDEV_INITIALIZE;
ctrl.instance = 0; ctrl.instance = 0;
ctrl.config = 0; ctrl.config = 0;
@ -103,9 +108,9 @@ int main(int argc, FAR char **argv)
return 1; return 1;
} }
/* Initialize the USB composite device device */ /* Connect the USB composite device device */
ctrl.usbdev = BOARDIOC_USBDEV_COMPOSITE; ctrl.usbdev = usbdev;
ctrl.action = BOARDIOC_USBDEV_CONNECT; ctrl.action = BOARDIOC_USBDEV_CONNECT;
ctrl.instance = 0; ctrl.instance = 0;
ctrl.config = 0; ctrl.config = 0;
@ -117,8 +122,7 @@ int main(int argc, FAR char **argv)
printf("boardctl(BOARDIOC_USBDEV_CONTROL) failed: %d\n", ret); printf("boardctl(BOARDIOC_USBDEV_CONTROL) failed: %d\n", ret);
return 1; return 1;
} }
#endif /* ADBD_USB_SERVER && USBDEV_COMPOSITE && BOARDCTL_USBDEVCTRL */ #endif /* ADBD_USB_BOARDCTL */
#endif /* CONFIG_ADBD_BOARD_INIT */
#ifdef CONFIG_ADBD_NET_INIT #ifdef CONFIG_ADBD_NET_INIT
/* Bring up the network */ /* Bring up the network */