summaryrefslogtreecommitdiff
path: root/firmware/target/arm
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm')
-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
11 files changed, 10 insertions, 29 deletions
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