summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bootloader/gigabeat-s.c4
-rw-r--r--bootloader/imx233.c4
-rw-r--r--firmware/target/arm/imx233/power-imx233.c3
-rw-r--r--firmware/target/arm/imx233/powermgmt-imx233.c4
-rw-r--r--firmware/target/arm/imx233/usb-imx233.c7
-rw-r--r--firmware/target/arm/imx233/usb-target.h1
-rw-r--r--firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c10
-rw-r--r--firmware/target/arm/imx31/gigabeat-s/usb-target.h2
-rw-r--r--firmware/target/arm/iriver/usb-target.h2
-rw-r--r--firmware/target/arm/rk27xx/usb-rk27xx.c5
-rw-r--r--firmware/target/arm/system-target.h2
-rw-r--r--firmware/target/arm/usb-fw-pp5002.c2
-rw-r--r--firmware/target/arm/usb-target.h1
13 files changed, 14 insertions, 33 deletions
diff --git a/bootloader/gigabeat-s.c b/bootloader/gigabeat-s.c
index 8483170522..7e28f55f09 100644
--- a/bootloader/gigabeat-s.c
+++ b/bootloader/gigabeat-s.c
@@ -110,7 +110,7 @@ static void handle_usb(int connect_timeout)
110 break; 110 break;
111 } 111 }
112 112
113 if (!usb_plugged()) 113 if (usb_detect() == USB_EXTRACTED)
114 break; /* Cable pulled */ 114 break; /* Cable pulled */
115 } 115 }
116 116
@@ -377,7 +377,7 @@ void main(void)
377 377
378 /* Do USB first since a tar or binary could be added to the MTP directory 378 /* Do USB first since a tar or binary could be added to the MTP directory
379 * at the time and we can untar or move after unplugging. */ 379 * at the time and we can untar or move after unplugging. */
380 if (usb_plugged()) 380 if (usb_detect() == USB_INSERTED)
381 handle_usb(HZ*2); 381 handle_usb(HZ*2);
382 382
383 handle_untar(); 383 handle_untar();
diff --git a/bootloader/imx233.c b/bootloader/imx233.c
index 276a334c56..3d66403cc0 100644
--- a/bootloader/imx233.c
+++ b/bootloader/imx233.c
@@ -73,7 +73,7 @@ static void usb_mode(int connect_timeout)
73 break; 73 break;
74 } 74 }
75 75
76 if(!usb_plugged()) 76 if(usb_detect() == USB_EXTRACTED)
77 break; /* Cable pulled */ 77 break; /* Cable pulled */
78 } 78 }
79 79
@@ -149,7 +149,7 @@ void main(uint32_t arg, uint32_t addr)
149 if((ret = disk_mount_all()) <= 0) 149 if((ret = disk_mount_all()) <= 0)
150 error(EDISK, ret, false); 150 error(EDISK, ret, false);
151 151
152 if(usb_plugged()) 152 if(usb_detect() == USB_INSERTED)
153 usb_mode(HZ); 153 usb_mode(HZ);
154 154
155 printf("Loading firmware"); 155 printf("Loading firmware");
diff --git a/firmware/target/arm/imx233/power-imx233.c b/firmware/target/arm/imx233/power-imx233.c
index ac1a407ba0..f532f3303f 100644
--- a/firmware/target/arm/imx233/power-imx233.c
+++ b/firmware/target/arm/imx233/power-imx233.c
@@ -112,7 +112,8 @@ void power_off(void)
112 112
113unsigned int power_input_status(void) 113unsigned int power_input_status(void)
114{ 114{
115 return usb_plugged() ? POWER_INPUT_MAIN_CHARGER : POWER_INPUT_NONE; 115 return (usb_detect == USB_INSERTED)
116 ? POWER_INPUT_MAIN_CHARGER : POWER_INPUT_NONE;
116} 117}
117 118
118bool charging_state(void) 119bool charging_state(void)
diff --git a/firmware/target/arm/imx233/powermgmt-imx233.c b/firmware/target/arm/imx233/powermgmt-imx233.c
index 97f6e08e12..87c48e7655 100644
--- a/firmware/target/arm/imx233/powermgmt-imx233.c
+++ b/firmware/target/arm/imx233/powermgmt-imx233.c
@@ -21,7 +21,7 @@
21 21
22#include "powermgmt.h" 22#include "powermgmt.h"
23#include "power-imx233.h" 23#include "power-imx233.h"
24#include "usb-target.h" 24#include "usb.h"
25#include "string.h" 25#include "string.h"
26//#define LOGF_ENABLE 26//#define LOGF_ENABLE
27#include "logf.h" 27#include "logf.h"
@@ -60,7 +60,7 @@ void powermgmt_init_target(void)
60 60
61void charging_algorithm_step(void) 61void charging_algorithm_step(void)
62{ 62{
63 bool is_5v_present = usb_plugged(); 63 bool is_5v_present = usb_detect() == USB_INSERTED;
64 64
65 /* initial state & 5v -> battery transition */ 65 /* initial state & 5v -> battery transition */
66 if(!is_5v_present && charge_state != DISCHARGING) 66 if(!is_5v_present && charge_state != DISCHARGING)
diff --git a/firmware/target/arm/imx233/usb-imx233.c b/firmware/target/arm/imx233/usb-imx233.c
index 91fb770190..8aaa90c46b 100644
--- a/firmware/target/arm/imx233/usb-imx233.c
+++ b/firmware/target/arm/imx233/usb-imx233.c
@@ -68,12 +68,7 @@ void usb_init_device(void)
68 68
69int usb_detect(void) 69int usb_detect(void)
70{ 70{
71 return usb_plugged() ? USB_INSERTED : USB_EXTRACTED; 71 return (HW_POWER_STS & HW_POWER_STS__VBUSVALID) ? USB_INSERTED : USB_EXTRACTED;
72}
73
74bool usb_plugged(void)
75{
76 return !!(HW_POWER_STS & HW_POWER_STS__VBUSVALID);
77} 72}
78 73
79void usb_enable(bool on) 74void usb_enable(bool on)
diff --git a/firmware/target/arm/imx233/usb-target.h b/firmware/target/arm/imx233/usb-target.h
index 976d954038..600fc990ed 100644
--- a/firmware/target/arm/imx233/usb-target.h
+++ b/firmware/target/arm/imx233/usb-target.h
@@ -29,6 +29,5 @@
29 29
30void usb_insert_int(void); 30void usb_insert_int(void);
31void usb_remove_int(void); 31void usb_remove_int(void);
32bool usb_plugged(void);
33 32
34#endif /* USB_TARGET_H */ 33#endif /* USB_TARGET_H */
diff --git a/firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c b/firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c
index 19c3b3173f..9ee1a47fd6 100644
--- a/firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c
+++ b/firmware/target/arm/imx31/gigabeat-s/usb-gigabeat-s.c
@@ -54,15 +54,11 @@ static void enable_transceiver(bool enable)
54 } 54 }
55} 55}
56 56
57/* Read the immediate state of the cable from the PMIC */
58bool usb_plugged(void)
59{
60 return mc13783_read(MC13783_INTERRUPT_SENSE0) & MC13783_USB4V4S;
61}
62
63void usb_connect_event(void) 57void usb_connect_event(void)
64{ 58{
65 int status = usb_plugged() ? USB_INSERTED : USB_EXTRACTED; 59 /* Read the immediate state of the cable from the PMIC */
60 int status = (mc13783_read(MC13783_INTERRUPT_SENSE0) & MC13783_USB4V4S)
61 ? USB_INSERTED : USB_EXTRACTED;
66 usb_status = status; 62 usb_status = status;
67 /* Notify power that USB charging is potentially available */ 63 /* Notify power that USB charging is potentially available */
68 charger_usb_detect_event(status); 64 charger_usb_detect_event(status);
diff --git a/firmware/target/arm/imx31/gigabeat-s/usb-target.h b/firmware/target/arm/imx31/gigabeat-s/usb-target.h
index 961b947e14..60a9abd04c 100644
--- a/firmware/target/arm/imx31/gigabeat-s/usb-target.h
+++ b/firmware/target/arm/imx31/gigabeat-s/usb-target.h
@@ -26,8 +26,6 @@
26#endif 26#endif
27 27
28void usb_connect_event(void); 28void usb_connect_event(void);
29/* Read the immediate state of the cable from the PMIC */
30bool usb_plugged(void);
31 29
32/** Sector read/write filters **/ 30/** Sector read/write filters **/
33 31
diff --git a/firmware/target/arm/iriver/usb-target.h b/firmware/target/arm/iriver/usb-target.h
index 1b0dc7e194..7415308594 100644
--- a/firmware/target/arm/iriver/usb-target.h
+++ b/firmware/target/arm/iriver/usb-target.h
@@ -28,6 +28,4 @@
28#define USB_DRIVER_CLOSE 28#define USB_DRIVER_CLOSE
29#endif 29#endif
30 30
31bool usb_plugged(void); /* Returns instantaneous state - always */
32
33#endif 31#endif
diff --git a/firmware/target/arm/rk27xx/usb-rk27xx.c b/firmware/target/arm/rk27xx/usb-rk27xx.c
index 2eb6bed480..60a82bed88 100644
--- a/firmware/target/arm/rk27xx/usb-rk27xx.c
+++ b/firmware/target/arm/rk27xx/usb-rk27xx.c
@@ -45,11 +45,6 @@ void usb_attach(void)
45 usb_enable(true); 45 usb_enable(true);
46} 46}
47 47
48bool usb_plugged(void)
49{
50 return true;
51}
52
53void usb_enable(bool on) 48void usb_enable(bool on)
54{ 49{
55 if(on) 50 if(on)
diff --git a/firmware/target/arm/system-target.h b/firmware/target/arm/system-target.h
index 91e6beb868..022baa1466 100644
--- a/firmware/target/arm/system-target.h
+++ b/firmware/target/arm/system-target.h
@@ -24,6 +24,7 @@
24 24
25#include "config.h" 25#include "config.h"
26#include "system-arm.h" 26#include "system-arm.h"
27#include <stdbool.h>
27 28
28#ifdef CPU_PP 29#ifdef CPU_PP
29/* TODO: This header is actually portalplayer specific, and should be 30/* TODO: This header is actually portalplayer specific, and should be
@@ -50,6 +51,7 @@
50#define outw(a,b) (*(volatile unsigned short *) (b) = (a)) 51#define outw(a,b) (*(volatile unsigned short *) (b) = (a))
51 52
52void usb_pin_init(void); 53void usb_pin_init(void);
54bool usb_plugged(void);
53 55
54static inline void udelay(unsigned usecs) 56static inline void udelay(unsigned usecs)
55{ 57{
diff --git a/firmware/target/arm/usb-fw-pp5002.c b/firmware/target/arm/usb-fw-pp5002.c
index d1664c3607..a8e76eade0 100644
--- a/firmware/target/arm/usb-fw-pp5002.c
+++ b/firmware/target/arm/usb-fw-pp5002.c
@@ -73,6 +73,4 @@ int usb_detect(void)
73 73
74 return USB_EXTRACTED; 74 return USB_EXTRACTED;
75} 75}
76
77/* No different for now */
78bool usb_plugged(void) __attribute__((alias("usb_detect"))); 76bool usb_plugged(void) __attribute__((alias("usb_detect")));
diff --git a/firmware/target/arm/usb-target.h b/firmware/target/arm/usb-target.h
index 802b8e1445..34e7a54262 100644
--- a/firmware/target/arm/usb-target.h
+++ b/firmware/target/arm/usb-target.h
@@ -23,7 +23,6 @@
23 23
24void usb_insert_int(void); 24void usb_insert_int(void);
25void firewire_insert_int(void); 25void firewire_insert_int(void);
26bool usb_plugged(void); /* Returns instantaneous state - always */
27 26
28#ifdef HAVE_BOOTLOADER_USB_MODE 27#ifdef HAVE_BOOTLOADER_USB_MODE
29#define USB_DRIVER_CLOSE 28#define USB_DRIVER_CLOSE