forked from len0rd/rockbox
Ondio: disk activity indication in USB mode, too
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6020 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
2e429ff762
commit
7e1d36f35b
4 changed files with 24 additions and 3 deletions
|
@ -111,6 +111,9 @@ void usb_screen(void)
|
|||
usb_display_info();
|
||||
while(usb_wait_for_disconnect_w_tmo(&button_queue, HZ)) {
|
||||
if(usb_inserted()) {
|
||||
#ifdef HAVE_MMC /* USB-MMC bridge can report activity */
|
||||
led(mmc_usb_active(HZ));
|
||||
#endif
|
||||
status_draw(false);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -121,6 +121,8 @@ static int current_card = 0;
|
|||
#endif
|
||||
static bool last_mmc_status = false;
|
||||
static int countdown; /* for mmc switch debouncing */
|
||||
static bool usb_activity; /* monitoring the USB bridge */
|
||||
static long last_activity;
|
||||
|
||||
/* private function declarations */
|
||||
|
||||
|
@ -842,12 +844,26 @@ bool mmc_detect(void)
|
|||
return adc_read(ADC_MMC_SWITCH) < 0x200 ? true : false;
|
||||
}
|
||||
|
||||
bool mmc_usb_active(int delayticks)
|
||||
{
|
||||
/* reading "inactive" is delayed by user-supplied monoflop value */
|
||||
return (usb_activity ||
|
||||
TIME_BEFORE(current_tick, last_activity+delayticks));
|
||||
}
|
||||
|
||||
static void mmc_tick(void)
|
||||
{
|
||||
bool current_status;
|
||||
|
||||
current_status = mmc_detect();
|
||||
/* USB bridge activity is 0 on idle, ~527 on active */
|
||||
current_status = adc_read(ADC_USB_ACTIVE) > 0x100;
|
||||
if (!current_status && usb_activity)
|
||||
{
|
||||
last_activity = current_tick;
|
||||
}
|
||||
usb_activity = current_status;
|
||||
|
||||
current_status = mmc_detect();
|
||||
/* Only report when the status has changed */
|
||||
if (current_status != last_mmc_status)
|
||||
{
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#define ADC_BUTTON_ONOFF 3 /* the on/off button, high value if pressed */
|
||||
#define ADC_BUTTON_ROW1 4 /* Used for scanning the keys, different
|
||||
voltages for different keys */
|
||||
#define ADC_USB_ACTIVE 5 /* USB bridge activity */
|
||||
#define ADC_UNREG_POWER 7 /* Battery voltage */
|
||||
|
||||
#else
|
||||
|
|
|
@ -41,5 +41,6 @@ bool mmc_detect(void);
|
|||
unsigned long mmc_extract_bits(const unsigned long *p, unsigned int start,
|
||||
unsigned int size);
|
||||
tCardInfo *mmc_card_info(int card_no);
|
||||
bool mmc_usb_active(int delayticks);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue