diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c index 6986cbac34..9b017dc2f9 100644 --- a/apps/menus/settings_menu.c +++ b/apps/menus/settings_menu.c @@ -58,7 +58,7 @@ #include "onplay.h" #include "misc.h" -#if defined(DX50) || defined(DX90) || (defined(HAVE_USB_POWER) && !defined(USB_NONE) && !defined(SIMULATOR)) +#if !defined(SIMULATOR) && !defined(USB_NONE) && (defined(HAVE_USB_ADB) || defined(HAVE_USB_POWER)) #define HAVE_USB_MODE #endif diff --git a/apps/settings.c b/apps/settings.c index d88cb3f241..afe62299e3 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -108,11 +108,6 @@ static long lasttime = 0; #if defined(DX50) || defined(DX90) #include "governor-ibasso.h" -#include "usb-ibasso.h" -#endif - -#if (defined(HIBY_R3PROII) || defined(HIBY_R1)) -#include "usb-hiby-gadget.h" #endif #ifdef LOGF_ENABLE @@ -1130,7 +1125,7 @@ void settings_apply(bool read_disk) memcpy(&calibration_parameters, &global_settings.ts_calibration_data, sizeof(struct touchscreen_parameter)); #endif -#if defined(HAVE_USB_POWER) && !defined(USB_NONE) && !defined(SIMULATOR) +#if !defined(SIMULATOR) && !defined(USB_NONE) && (defined(HAVE_USB_ADB) || defined(HAVE_USB_POWER)) usb_set_mode(global_settings.usb_mode); #endif #if defined(HAVE_GENERAL_PURPOSE_LED) diff --git a/apps/settings.h b/apps/settings.h index c872aba6a8..178817f280 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -915,7 +915,7 @@ struct user_settings #if defined(DX50) || defined(DX90) int governor; #endif -#if defined(DX50) || defined(DX90) || (defined(HAVE_USB_POWER) && !defined(USB_NONE) && !defined(SIMULATOR)) +#if !defined(SIMULATOR) && !defined(USB_NONE) && (defined(HAVE_USB_ADB) || defined(HAVE_USB_POWER)) int usb_mode; #endif #if defined(BUTTON_REC) || \ diff --git a/apps/settings_list.c b/apps/settings_list.c index 9e57bc3d01..1f24a8e0af 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c @@ -72,7 +72,6 @@ #if defined(DX50) || defined(DX90) #include "governor-ibasso.h" -#include "usb-ibasso.h" #endif #define UNUSED {.RESERVED=NULL} @@ -2368,31 +2367,26 @@ const struct settings_list settings[] = { "Powersave", "Performance"), #endif -#if defined(DX50) || defined(DX90) || (defined(HAVE_USB_POWER) && !defined(USB_NONE) && !defined(SIMULATOR)) +#if !defined(SIMULATOR) && !defined(USB_NONE) && (defined(HAVE_USB_ADB) || defined(HAVE_USB_POWER)) CHOICE_SETTING(0, usb_mode, LANG_USB_MODE, USBMODE_DEFAULT, "usb mode", "mass storage,charge" -#if defined(DX50) || defined(DX90) || defined(HIBY_R3PROII) || defined(HIBY_R1) +#if defined(HAVE_USB_ADB) ",adb" #endif , -#if defined(DX50) || defined(DX90) - ibasso_set_usb_mode, - 3, -#else usb_set_mode, -#if defined(HIBY_R3PROII) || defined(HIBY_R1) +#if defined(HAVE_USB_ADB) 3, #else 2, -#endif #endif ID2P(LANG_USB_MODE_MASS_STORAGE), ID2P(LANG_USB_MODE_CHARGE) -#if defined(DX50) || defined(DX90) || defined(HIBY_R3PROII) || defined(HIBY_R1) +#if defined(HAVE_USB_ADB) ,ID2P(LANG_USB_MODE_ADB) #endif ), diff --git a/firmware/export/config/hibyr1.h b/firmware/export/config/hibyr1.h index f5b3707f6f..f830791d9e 100644 --- a/firmware/export/config/hibyr1.h +++ b/firmware/export/config/hibyr1.h @@ -83,6 +83,8 @@ #define BOOTDIR "/.rockbox" /* USB */ +#define HAVE_USB_ADB +#define HAVE_USB_POWER #define USB_VID_STR "32BB" #define USB_PID_STR "0101" diff --git a/firmware/export/config/hibyr3proii.h b/firmware/export/config/hibyr3proii.h index 32a30887c2..ffb0c69f16 100644 --- a/firmware/export/config/hibyr3proii.h +++ b/firmware/export/config/hibyr3proii.h @@ -86,6 +86,8 @@ #define BOOTDIR "/.rockbox" /* USB */ +#define HAVE_USB_ADB +#define HAVE_USB_POWER #define USB_VID_STR "32BB" #define USB_PID_STR "0101" diff --git a/firmware/export/config/ibassodx50.h b/firmware/export/config/ibassodx50.h index f8784ad1cc..1636aaba59 100644 --- a/firmware/export/config/ibassodx50.h +++ b/firmware/export/config/ibassodx50.h @@ -35,8 +35,8 @@ #define MODEL_NAME "iBasso DX50" -#define USB_NONE #define HAVE_USB_POWER +#define HAVE_USB_ADB /* define this if you have a colour LCD */ #define HAVE_LCD_COLOR diff --git a/firmware/export/config/ibassodx90.h b/firmware/export/config/ibassodx90.h index dd7b406ea6..1274a890f0 100644 --- a/firmware/export/config/ibassodx90.h +++ b/firmware/export/config/ibassodx90.h @@ -35,8 +35,8 @@ #define MODEL_NAME "iBasso DX90" -#define USB_NONE #define HAVE_USB_POWER +#define HAVE_USB_ADB /* define this if you have a colour LCD */ #define HAVE_LCD_COLOR diff --git a/firmware/target/hosted/ibasso/usb-ibasso.c b/firmware/target/hosted/ibasso/usb-ibasso.c index 9889318cf2..e4f2a8c016 100644 --- a/firmware/target/hosted/ibasso/usb-ibasso.c +++ b/firmware/target/hosted/ibasso/usb-ibasso.c @@ -87,7 +87,26 @@ void ibasso_set_usb_mode(int mode) } } -bool usb_powered_only(void) +void usb_enable(bool on) { - return false; + (void)on; // XXX maybe implement? +} + +int usb_detect(void) +{ + return 0; // XXX figure this out? +} + +void usb_init_device(void) +{ + // XXX maybe something? +} + +int disk_mount_all(void) +{ + return 1; // XXX maybe do sometihng? +} +int disk_unmount_all(void) +{ + return 1; // XXX maybe do sometihng? } diff --git a/firmware/usb.c b/firmware/usb.c index 14d15d669a..8f93cf158e 100644 --- a/firmware/usb.c +++ b/firmware/usb.c @@ -53,6 +53,9 @@ #if defined(HIBY_R3PROII) || defined(HIBY_R1) #include "usb-hiby-gadget.h" #endif +#if defined(DX50) || defined(DX90) +#include "usb-ibasso.h" +#endif #if defined(IPOD_ACCESSORY_PROTOCOL) #include "iap.h" @@ -73,12 +76,24 @@ bool do_screendump_instead_of_usb = false; #if !defined(SIMULATOR) && !defined(USB_NONE) - /* We assume that the USB cable is extracted */ static int usb_state = USB_EXTRACTED; #if (CONFIG_STORAGE & STORAGE_MMC) && defined(USB_FULL_INIT) && !defined(HAVE_USBSTACK) static int usb_mmc_countdown = 0; #endif +#if defined(HAVE_USB_POWER) || defined(HAVE_USB_ADB) +static bool usb_power_only = false; +static int usb_mode = USBMODE_DEFAULT; +void usb_set_mode(int mode) +{ + usb_mode = mode; +#if defined(DX50) || defined(DX90) + ibasso_set_usb_mode(mode); +#elif defined(HIBY_R3PROII) || defined(HIBY_R1) + hiby_set_usb_mode(mode); +#endif +} +#endif #ifdef USB_FULL_INIT /* Make sure there's enough stack space for screendump */ @@ -106,11 +121,6 @@ static int usb_audio = 0; static bool usb_host_present = false; static int usb_num_acks_to_expect = 0; static uint32_t usb_broadcast_seqnum = 0x80000000; -#ifdef HAVE_USB_POWER -static int usb_mode = USBMODE_DEFAULT; -static bool usb_power_only = false; -#endif - #if defined(USB_FIREWIRE_HANDLING) static void try_reboot(void) { @@ -149,18 +159,6 @@ static inline bool usb_do_screendump(void) return false; } -#ifdef HAVE_USB_POWER -void usb_set_mode(int mode) -{ - usb_mode = mode; -#if defined(DX50) || defined(DX90) - ibasso_set_usb_mode(mode); -#elif defined(HIBY_R3PROII) || defined(HIBY_R1) - hiby_set_usb_mode(mode); -#endif -} -#endif - #ifdef USB_FIREWIRE_HANDLING static inline bool usb_reboot_button(void) {