diff mbox

[v4,12/26] ARM: pxa: magician: Rename charger cable detection EGPIOs

Message ID 5609B1F8.8070104@tul.cz (mailing list archive)
State New, archived
Headers show

Commit Message

Petr Cvek Sept. 28, 2015, 9:32 p.m. UTC
This patch renames EGPIOs, which are used for the charging cable presence
and type detection. Old names did not correspond with an observed
functionality (on board_id 0x3a). The behavior is not:

- AC charger
- USB charger
- Cable detection

, but:

- AC/USB type
- Cable detection1
- Cable detection2

This patch fixes a possible typo in the bit offset for the cable detection
EGPIO declaration, too.

Signed-off-by: Petr Cvek <petr.cvek@tul.cz>
---
 arch/arm/mach-pxa/include/mach/magician.h | 11 ++++++++---
 arch/arm/mach-pxa/magician.c              |  8 ++++----
 2 files changed, 12 insertions(+), 7 deletions(-)

Comments

Philipp Zabel Oct. 3, 2015, 12:38 p.m. UTC | #1
Am Montag, den 28.09.2015, 23:32 +0200 schrieb Petr Cvek:
> This patch renames EGPIOs, which are used for the charging cable
> presence
> and type detection. Old names did not correspond with an observed
> functionality (on board_id 0x3a). The behavior is not:
> 
> - AC charger
> - USB charger
> - Cable detection
> 
> , but:
> 
> - AC/USB type
> - Cable detection1
> - Cable detection2
> 
> This patch fixes a possible typo in the bit offset for the cable
> detection
> EGPIO declaration, too.
> 
> Signed-off-by: Petr Cvek <petr.cvek@tul.cz>

Just to be sure, please tell me what are the values of those three
EGPIOs while
  a) wall plug charger plugged in
  b) usb cable connected to a host plugged in
  c) no cable plugged in

It could well be there are differences between our boards.

regards
Philipp
Petr Cvek Oct. 9, 2015, 2:33 a.m. UTC | #2
Dne 3.10.2015 v 14:38 Philipp Zabel napsal(a):
> Am Montag, den 28.09.2015, 23:32 +0200 schrieb Petr Cvek:
>> This patch renames EGPIOs, which are used for the charging cable
>> presence
>> and type detection. Old names did not correspond with an observed
>> functionality (on board_id 0x3a). The behavior is not:
>>
>> - AC charger
>> - USB charger
>> - Cable detection
>>
>> , but:
>>
>> - AC/USB type
>> - Cable detection1
>> - Cable detection2
>>
>> This patch fixes a possible typo in the bit offset for the cable
>> detection
>> EGPIO declaration, too.
>>
>> Signed-off-by: Petr Cvek <petr.cvek@tul.cz>
> 
> Just to be sure, please tell me what are the values of those three
> EGPIOs while
>   a) wall plug charger plugged in
>   b) usb cable connected to a host plugged in
>   c) no cable plugged in

usb	charger	none
====	=======	====
0xC0	0xC0	0xC0
0xA0	0xA0	0xA0
0x61	0x61	0x61
0x00	0x00	0x00
0x02	0x03	0x00	//first cable detection and charger type
0x3A	0x3A	0x3A	//send me your board_id
0x09	0x09	0x01	//second cable detection
0x04	0x04	0x04
0x00	0x00	0x00
0x00	0x00	0x00
0x00	0x00	0x00
0x00	0x00	0x00
0x00	0x00	0x00
0x00	0x00	0x00
0x00	0x00	0x00
0x00	0x00	0x00

I think the charger is original.

> 
> It could well be there are differences between our boards.

Well it is CPLD chip, so they can have different bitstreams (OT: I can think of many CPLD HDL enhancements :-D).

Cheers,
Petr
diff mbox

Patch

diff --git a/arch/arm/mach-pxa/include/mach/magician.h b/arch/arm/mach-pxa/include/mach/magician.h
index af4cdc2..5f6b850 100644
--- a/arch/arm/mach-pxa/include/mach/magician.h
+++ b/arch/arm/mach-pxa/include/mach/magician.h
@@ -107,8 +107,13 @@ 
 
 /* input */
 
-#define EGPIO_MAGICIAN_CABLE_STATE_AC	MAGICIAN_EGPIO(4, 0)
-#define EGPIO_MAGICIAN_CABLE_STATE_USB	MAGICIAN_EGPIO(4, 1)
+/* USB or AC charger type */
+#define EGPIO_MAGICIAN_CABLE_TYPE	MAGICIAN_EGPIO(4, 0)
+/*
+ * Vbus is detected
+ * FIXME behaves like (6,3), may differ for host/device
+ */
+#define EGPIO_MAGICIAN_CABLE_VBUS	MAGICIAN_EGPIO(4, 1)
 
 #define EGPIO_MAGICIAN_BOARD_ID0	MAGICIAN_EGPIO(5, 0)
 #define EGPIO_MAGICIAN_BOARD_ID1	MAGICIAN_EGPIO(5, 1)
@@ -118,6 +123,6 @@ 
 
 #define EGPIO_MAGICIAN_EP_INSERT	MAGICIAN_EGPIO(6, 1)
 /* FIXME behaves like (4,1), may differ for host/device */
-#define EGPIO_MAGICIAN_CABLE_INSERTED	MAGICIAN_EGPIO(6, 4)
+#define EGPIO_MAGICIAN_CABLE_INSERTED	MAGICIAN_EGPIO(6, 3)
 
 #endif /* _MAGICIAN_H_ */
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c
index bf0760e..b645288 100644
--- a/arch/arm/mach-pxa/magician.c
+++ b/arch/arm/mach-pxa/magician.c
@@ -579,7 +579,7 @@  static struct resource gpio_vbus_resource = {
 
 static struct gpio_vbus_mach_info gpio_vbus_info = {
 	.gpio_pullup	= GPIO27_MAGICIAN_USBC_PUEN,
-	.gpio_vbus	= EGPIO_MAGICIAN_CABLE_STATE_USB,
+	.gpio_vbus	= EGPIO_MAGICIAN_CABLE_VBUS,
 };
 
 static struct platform_device gpio_vbus = {
@@ -598,17 +598,17 @@  static struct platform_device gpio_vbus = {
 
 static int power_supply_init(struct device *dev)
 {
-	return gpio_request(EGPIO_MAGICIAN_CABLE_STATE_AC, "CABLE_STATE_AC");
+	return gpio_request(EGPIO_MAGICIAN_CABLE_TYPE, "Cable USB/AC type");
 }
 
 static int magician_is_ac_online(void)
 {
-	return gpio_get_value(EGPIO_MAGICIAN_CABLE_STATE_AC);
+	return gpio_get_value(EGPIO_MAGICIAN_CABLE_TYPE);
 }
 
 static void power_supply_exit(struct device *dev)
 {
-	gpio_free(EGPIO_MAGICIAN_CABLE_STATE_AC);
+	gpio_free(EGPIO_MAGICIAN_CABLE_TYPE);
 }
 
 static char *magician_supplicants[] = {