diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-pxa/corgi_pm.c | 20 | ||||
-rw-r--r-- | arch/arm/mach-pxa/spitz_pm.c | 10 |
2 files changed, 25 insertions, 5 deletions
diff --git a/arch/arm/mach-pxa/corgi_pm.c b/arch/arm/mach-pxa/corgi_pm.c index 29034778bfda..eca862fb2cd5 100644 --- a/arch/arm/mach-pxa/corgi_pm.c +++ b/arch/arm/mach-pxa/corgi_pm.c | |||
@@ -40,7 +40,9 @@ static struct gpio charger_gpios[] = { | |||
40 | { CORGI_GPIO_ADC_TEMP_ON, GPIOF_OUT_INIT_LOW, "ADC Temp On" }, | 40 | { CORGI_GPIO_ADC_TEMP_ON, GPIOF_OUT_INIT_LOW, "ADC Temp On" }, |
41 | { CORGI_GPIO_CHRG_ON, GPIOF_OUT_INIT_LOW, "Charger On" }, | 41 | { CORGI_GPIO_CHRG_ON, GPIOF_OUT_INIT_LOW, "Charger On" }, |
42 | { CORGI_GPIO_CHRG_UKN, GPIOF_OUT_INIT_LOW, "Charger Unknown" }, | 42 | { CORGI_GPIO_CHRG_UKN, GPIOF_OUT_INIT_LOW, "Charger Unknown" }, |
43 | { CORGI_GPIO_AC_IN, GPIOF_IN, "Charger Detection" }, | ||
43 | { CORGI_GPIO_KEY_INT, GPIOF_IN, "Key Interrupt" }, | 44 | { CORGI_GPIO_KEY_INT, GPIOF_IN, "Key Interrupt" }, |
45 | { CORGI_GPIO_WAKEUP, GPIOF_IN, "System wakeup notification" }, | ||
44 | }; | 46 | }; |
45 | 47 | ||
46 | static void corgi_charger_init(void) | 48 | static void corgi_charger_init(void) |
@@ -90,7 +92,12 @@ static int corgi_should_wakeup(unsigned int resume_on_alarm) | |||
90 | { | 92 | { |
91 | int is_resume = 0; | 93 | int is_resume = 0; |
92 | 94 | ||
93 | dev_dbg(sharpsl_pm.dev, "GPLR0 = %x,%x\n", GPLR0, PEDR); | 95 | dev_dbg(sharpsl_pm.dev, "PEDR = %x, GPIO_AC_IN = %d, " |
96 | "GPIO_CHRG_FULL = %d, GPIO_KEY_INT = %d, GPIO_WAKEUP = %d\n", | ||
97 | PEDR, gpio_get_value(CORGI_GPIO_AC_IN), | ||
98 | gpio_get_value(CORGI_GPIO_CHRG_FULL), | ||
99 | gpio_get_value(CORGI_GPIO_KEY_INT), | ||
100 | gpio_get_value(CORGI_GPIO_WAKEUP)); | ||
94 | 101 | ||
95 | if ((PEDR & GPIO_bit(CORGI_GPIO_AC_IN))) { | 102 | if ((PEDR & GPIO_bit(CORGI_GPIO_AC_IN))) { |
96 | if (sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_ACIN)) { | 103 | if (sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_ACIN)) { |
@@ -124,14 +131,21 @@ static int corgi_should_wakeup(unsigned int resume_on_alarm) | |||
124 | 131 | ||
125 | static unsigned long corgi_charger_wakeup(void) | 132 | static unsigned long corgi_charger_wakeup(void) |
126 | { | 133 | { |
127 | return ~GPLR0 & ( GPIO_bit(CORGI_GPIO_AC_IN) | GPIO_bit(CORGI_GPIO_KEY_INT) | GPIO_bit(CORGI_GPIO_WAKEUP) ); | 134 | unsigned long ret; |
135 | |||
136 | ret = (!gpio_get_value(CORGI_GPIO_AC_IN) << GPIO_bit(CORGI_GPIO_AC_IN)) | ||
137 | | (!gpio_get_value(CORGI_GPIO_KEY_INT) | ||
138 | << GPIO_bit(CORGI_GPIO_KEY_INT)) | ||
139 | | (!gpio_get_value(CORGI_GPIO_WAKEUP) | ||
140 | << GPIO_bit(CORGI_GPIO_WAKEUP)); | ||
141 | return ret; | ||
128 | } | 142 | } |
129 | 143 | ||
130 | unsigned long corgipm_read_devdata(int type) | 144 | unsigned long corgipm_read_devdata(int type) |
131 | { | 145 | { |
132 | switch(type) { | 146 | switch(type) { |
133 | case SHARPSL_STATUS_ACIN: | 147 | case SHARPSL_STATUS_ACIN: |
134 | return ((GPLR(CORGI_GPIO_AC_IN) & GPIO_bit(CORGI_GPIO_AC_IN)) != 0); | 148 | return !gpio_get_value(CORGI_GPIO_AC_IN); |
135 | case SHARPSL_STATUS_LOCK: | 149 | case SHARPSL_STATUS_LOCK: |
136 | return gpio_get_value(sharpsl_pm.machinfo->gpio_batlock); | 150 | return gpio_get_value(sharpsl_pm.machinfo->gpio_batlock); |
137 | case SHARPSL_STATUS_CHRGFULL: | 151 | case SHARPSL_STATUS_CHRGFULL: |
diff --git a/arch/arm/mach-pxa/spitz_pm.c b/arch/arm/mach-pxa/spitz_pm.c index 094279aefe9c..5cc05d122d0c 100644 --- a/arch/arm/mach-pxa/spitz_pm.c +++ b/arch/arm/mach-pxa/spitz_pm.c | |||
@@ -41,6 +41,7 @@ static int spitz_last_ac_status; | |||
41 | static struct gpio spitz_charger_gpios[] = { | 41 | static struct gpio spitz_charger_gpios[] = { |
42 | { SPITZ_GPIO_KEY_INT, GPIOF_IN, "Keyboard Interrupt" }, | 42 | { SPITZ_GPIO_KEY_INT, GPIOF_IN, "Keyboard Interrupt" }, |
43 | { SPITZ_GPIO_SYNC, GPIOF_IN, "Sync" }, | 43 | { SPITZ_GPIO_SYNC, GPIOF_IN, "Sync" }, |
44 | { SPITZ_GPIO_AC_IN, GPIOF_IN, "Charger Detection" }, | ||
44 | { SPITZ_GPIO_ADC_TEMP_ON, GPIOF_OUT_INIT_LOW, "ADC Temp On" }, | 45 | { SPITZ_GPIO_ADC_TEMP_ON, GPIOF_OUT_INIT_LOW, "ADC Temp On" }, |
45 | { SPITZ_GPIO_JK_B, GPIOF_OUT_INIT_LOW, "JK B" }, | 46 | { SPITZ_GPIO_JK_B, GPIOF_OUT_INIT_LOW, "JK B" }, |
46 | { SPITZ_GPIO_CHRG_ON, GPIOF_OUT_INIT_LOW, "Charger On" }, | 47 | { SPITZ_GPIO_CHRG_ON, GPIOF_OUT_INIT_LOW, "Charger On" }, |
@@ -169,14 +170,19 @@ static int spitz_should_wakeup(unsigned int resume_on_alarm) | |||
169 | 170 | ||
170 | static unsigned long spitz_charger_wakeup(void) | 171 | static unsigned long spitz_charger_wakeup(void) |
171 | { | 172 | { |
172 | return (~GPLR0 & GPIO_bit(SPITZ_GPIO_KEY_INT)) | (GPLR0 & GPIO_bit(SPITZ_GPIO_SYNC)); | 173 | unsigned long ret; |
174 | ret = (!gpio_get_value(SPITZ_GPIO_KEY_INT) | ||
175 | << GPIO_bit(SPITZ_GPIO_KEY_INT)) | ||
176 | | (!gpio_get_value(SPITZ_GPIO_SYNC) | ||
177 | << GPIO_bit(SPITZ_GPIO_SYNC)); | ||
178 | return ret; | ||
173 | } | 179 | } |
174 | 180 | ||
175 | unsigned long spitzpm_read_devdata(int type) | 181 | unsigned long spitzpm_read_devdata(int type) |
176 | { | 182 | { |
177 | switch (type) { | 183 | switch (type) { |
178 | case SHARPSL_STATUS_ACIN: | 184 | case SHARPSL_STATUS_ACIN: |
179 | return (((~GPLR(SPITZ_GPIO_AC_IN)) & GPIO_bit(SPITZ_GPIO_AC_IN)) != 0); | 185 | return !gpio_get_value(SPITZ_GPIO_AC_IN); |
180 | case SHARPSL_STATUS_LOCK: | 186 | case SHARPSL_STATUS_LOCK: |
181 | return gpio_get_value(sharpsl_pm.machinfo->gpio_batlock); | 187 | return gpio_get_value(sharpsl_pm.machinfo->gpio_batlock); |
182 | case SHARPSL_STATUS_CHRGFULL: | 188 | case SHARPSL_STATUS_CHRGFULL: |