linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] extcon: Modify the name of external connector
@ 2015-10-06 11:21 Chanwoo Choi
  2015-10-06 11:21 ` [PATCH 1/2] extcon: Modify the id and " Chanwoo Choi
  2015-10-06 11:21 ` [PATCH 2/2] extcon: Add the support of EXTCON_CHG_USB when SDP port is attached or detached Chanwoo Choi
  0 siblings, 2 replies; 10+ messages in thread
From: Chanwoo Choi @ 2015-10-06 11:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: k.kozlowski, ckeepax, gregkh, rogerq, ramakrishna.pallala,
	patches, cw00.choi, myungjoo.ham

This patch-set modify the id and name of external connector with the additional
prefix to clarify both attribute and meaning of external connector as following:
- EXTCON_CHG_* mean the charger connector.
- EXTCON_JACK_* mean the jack connector.
- EXTCON_DISP_* mean the display port connector.
And when altering the name of USB charger connector, this patch refer the
standard USB charger name about SDP, CDP, DCP and ACA.

Changes from v1:
(https://lkml.org/lkml/2015/10/3/304)
- Add acked tag by Charles Keepax for arizona changes
- Modify the name of USB charger connector as following:
 : EXTCON_CHG_USB_FAST -> EXTCON_CHG_USB_DCP_FAST
 : EXTCON_CHG_USB_SLOW -> EXTCON_CHG_USB_DCP_SLOW
- Add the missing EXTCON_CHG_USB_ACA charger connector
- Add one more patch to support the EXTCON_CHG_USB when SDP port is connected or not

Chanwoo Choi (2):
  extcon: Modify the id and name of external connector
  extcon: Add the support of EXTCON_CHG_USB when SDP port is attached or detached

 drivers/extcon/extcon-arizona.c  | 18 ++++++------
 drivers/extcon/extcon-axp288.c   | 12 ++++----
 drivers/extcon/extcon-max14577.c | 19 ++++++------
 drivers/extcon/extcon-max77693.c | 43 +++++++++++++++++-----------
 drivers/extcon/extcon-max77843.c | 29 +++++++++++--------
 drivers/extcon/extcon-max8997.c  | 23 ++++++++-------
 drivers/extcon/extcon-palmas.c   |  3 ++
 drivers/extcon/extcon-rt8973a.c  |  7 +++--
 drivers/extcon/extcon-sm5502.c   |  7 +++--
 drivers/extcon/extcon-usb-gpio.c |  3 ++
 drivers/extcon/extcon.c          | 61 ++++++++++++++++++++-------------------
 include/linux/extcon.h           | 62 +++++++++++++++++++++++-----------------
 12 files changed, 167 insertions(+), 120 deletions(-)

-- 
1.8.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/2] extcon: Modify the id and name of external connector
  2015-10-06 11:21 [PATCH v2 0/2] extcon: Modify the name of external connector Chanwoo Choi
@ 2015-10-06 11:21 ` Chanwoo Choi
  2015-10-06 11:42   ` Pallala, Ramakrishna
  2015-10-06 11:21 ` [PATCH 2/2] extcon: Add the support of EXTCON_CHG_USB when SDP port is attached or detached Chanwoo Choi
  1 sibling, 1 reply; 10+ messages in thread
From: Chanwoo Choi @ 2015-10-06 11:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: k.kozlowski, ckeepax, gregkh, rogerq, ramakrishna.pallala,
	patches, cw00.choi, myungjoo.ham

This patch modifies the id and name of external connector with the additional
prefix to clarify both attribute and meaning of external connector as following:
- EXTCON_CHG_* mean the charger connector.
- EXTCON_JACK_* mean the jack connector.
- EXTCON_DISP_* mean the display port connector.

Following table show the new name of external connector with old name:
--------------------------------------------------
Old extcon name         | New extcon name        |
--------------------------------------------------
EXTCON_TA               | EXTCON_CHG_USB_DCP     |
EXTCON_FAST_CHARGER     | EXTCON_CHG_USB_DCP_FAST|
EXTCON_SLOW_CHARGER     | EXTCON_CHG_USB_DCP_SLOW|
EXTCON_CHARGE_DOWNSTREAM| EXTCON_CHG_USB_CDP     |
--------------------------------------------------
EXTCON_MICROPHONE       | EXTCON_JACK_MICROPHONE |
EXTCON_HEADPHONE        | EXTCON_JACK_HEADPHONE  |
EXTCON_LINE_IN          | EXTCON_JACK_LINE_IN    |
EXTCON_LINE_OUT         | EXTCON_JACK_LINE_OUT   |
EXTCON_VIDEO_IN         | EXTCON_JACK_VIDEO_IN   |
EXTCON_VIDEO_OUT        | EXTCON_JACK_VIDEO_OUT  |
EXTCON_SPDIF_IN         | EXTCON_JACK_SPDIF_IN   |
EXTCON_SPDIF_OUT        | EXTCON_JACK_SPDIF_OUT  |
--------------------------------------------------
EXTCON_HMDI             | EXTCON_DISP_HDMI       |
EXTCON_MHL              | EXTCON_DISP_MHL        |
EXTCON_DVI              | EXTCON_DISP_DVI        |
EXTCON_VGA              | EXTCON_DISP_VGA        |
--------------------------------------------------

And, when altering the name of USB charger connector, EXTCON refers to the
"Battery Charging v1.2 Spec and Adopters Agreement"[1] to use the standard name of USB
charging port as following. Following name of USB charging port are already used
in power_supply subsystem. We chan check it on patch[2].
- EXTCON_CHG_USB	/* Standard Downstream Port */
- EXTCON_CHG_USB_DCP	/* Dedicated Charging Port */
- EXTCON_CHG_USB_CDP	/* Charging Downstream Port */
- EXTCON_CHG_USB_ACA	/* Accessory Charger Adapter */

[1] www.usb.org/developers/docs/devclass_docs/BCv1.2_070312.zip
[2] commit 85efc8a18ce ("[PATCH] power_supply: Add types for USB chargers")

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
[ckeepax: For the Arizona changes]
Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
---
 drivers/extcon/extcon-arizona.c  | 18 ++++++------
 drivers/extcon/extcon-axp288.c   | 12 ++++----
 drivers/extcon/extcon-max14577.c | 17 +++++------
 drivers/extcon/extcon-max77693.c | 32 +++++++++++----------
 drivers/extcon/extcon-max77843.c | 27 +++++++++--------
 drivers/extcon/extcon-max8997.c  | 21 +++++++-------
 drivers/extcon/extcon-rt8973a.c  |  4 +--
 drivers/extcon/extcon-sm5502.c   |  4 +--
 drivers/extcon/extcon.c          | 61 ++++++++++++++++++++-------------------
 include/linux/extcon.h           | 62 +++++++++++++++++++++++-----------------
 10 files changed, 139 insertions(+), 119 deletions(-)

diff --git a/drivers/extcon/extcon-arizona.c b/drivers/extcon/extcon-arizona.c
index a1ab0a56b798..e4890dd4fefd 100644
--- a/drivers/extcon/extcon-arizona.c
+++ b/drivers/extcon/extcon-arizona.c
@@ -137,9 +137,9 @@ static const int arizona_micd_levels[] = {
 
 static const unsigned int arizona_cable[] = {
 	EXTCON_MECHANICAL,
-	EXTCON_MICROPHONE,
-	EXTCON_HEADPHONE,
-	EXTCON_LINE_OUT,
+	EXTCON_JACK_MICROPHONE,
+	EXTCON_JACK_HEADPHONE,
+	EXTCON_JACK_LINE_OUT,
 	EXTCON_NONE,
 };
 
@@ -600,7 +600,7 @@ static irqreturn_t arizona_hpdet_irq(int irq, void *data)
 	struct arizona_extcon_info *info = data;
 	struct arizona *arizona = info->arizona;
 	int id_gpio = arizona->pdata.hpdet_id_gpio;
-	unsigned int report = EXTCON_HEADPHONE;
+	unsigned int report = EXTCON_JACK_HEADPHONE;
 	int ret, reading;
 	bool mic = false;
 
@@ -645,9 +645,9 @@ static irqreturn_t arizona_hpdet_irq(int irq, void *data)
 
 	/* Report high impedence cables as line outputs */
 	if (reading >= 5000)
-		report = EXTCON_LINE_OUT;
+		report = EXTCON_JACK_LINE_OUT;
 	else
-		report = EXTCON_HEADPHONE;
+		report = EXTCON_JACK_HEADPHONE;
 
 	ret = extcon_set_cable_state_(info->edev, report, true);
 	if (ret != 0)
@@ -732,7 +732,7 @@ err:
 			   ARIZONA_ACCDET_MODE_MASK, ARIZONA_ACCDET_MODE_MIC);
 
 	/* Just report headphone */
-	ret = extcon_set_cable_state_(info->edev, EXTCON_HEADPHONE, true);
+	ret = extcon_set_cable_state_(info->edev, EXTCON_JACK_HEADPHONE, true);
 	if (ret != 0)
 		dev_err(arizona->dev, "Failed to report headphone: %d\n", ret);
 
@@ -789,7 +789,7 @@ err:
 			   ARIZONA_ACCDET_MODE_MASK, ARIZONA_ACCDET_MODE_MIC);
 
 	/* Just report headphone */
-	ret = extcon_set_cable_state_(info->edev, EXTCON_HEADPHONE, true);
+	ret = extcon_set_cable_state_(info->edev, EXTCON_JACK_HEADPHONE, true);
 	if (ret != 0)
 		dev_err(arizona->dev, "Failed to report headphone: %d\n", ret);
 
@@ -915,7 +915,7 @@ static void arizona_micd_detect(struct work_struct *work)
 		arizona_identify_headphone(info);
 
 		ret = extcon_set_cable_state_(info->edev,
-					      EXTCON_MICROPHONE, true);
+					      EXTCON_JACK_MICROPHONE, true);
 		if (ret != 0)
 			dev_err(arizona->dev, "Headset report failed: %d\n",
 				ret);
diff --git a/drivers/extcon/extcon-axp288.c b/drivers/extcon/extcon-axp288.c
index 9668d6a94e38..14e748051288 100644
--- a/drivers/extcon/extcon-axp288.c
+++ b/drivers/extcon/extcon-axp288.c
@@ -102,9 +102,9 @@ enum axp288_extcon_irq {
 };
 
 static const unsigned int axp288_extcon_cables[] = {
-	EXTCON_SLOW_CHARGER,
-	EXTCON_CHARGE_DOWNSTREAM,
-	EXTCON_FAST_CHARGER,
+	EXTCON_CHG_USB_DCP_SLOW,
+	EXTCON_CHG_USB_CDP,
+	EXTCON_CHG_USB_DCP_FAST,
 	EXTCON_NONE,
 };
 
@@ -192,18 +192,18 @@ static int axp288_handle_chrg_det_event(struct axp288_extcon_info *info)
 		dev_dbg(info->dev, "sdp cable is connecetd\n");
 		notify_otg = true;
 		notify_charger = true;
-		cable = EXTCON_SLOW_CHARGER;
+		cable = EXTCON_CHG_USB_DCP_SLOW;
 		break;
 	case DET_STAT_CDP:
 		dev_dbg(info->dev, "cdp cable is connecetd\n");
 		notify_otg = true;
 		notify_charger = true;
-		cable = EXTCON_CHARGE_DOWNSTREAM;
+		cable = EXTCON_CHG_USB_CDP;
 		break;
 	case DET_STAT_DCP:
 		dev_dbg(info->dev, "dcp cable is connecetd\n");
 		notify_charger = true;
-		cable = EXTCON_FAST_CHARGER;
+		cable = EXTCON_CHG_USB_DCP_FAST;
 		break;
 	default:
 		dev_warn(info->dev,
diff --git a/drivers/extcon/extcon-max14577.c b/drivers/extcon/extcon-max14577.c
index df0659d98e5a..15c2dcc73fc6 100644
--- a/drivers/extcon/extcon-max14577.c
+++ b/drivers/extcon/extcon-max14577.c
@@ -150,10 +150,10 @@ enum max14577_muic_acc_type {
 
 static const unsigned int max14577_extcon_cable[] = {
 	EXTCON_USB,
-	EXTCON_TA,
-	EXTCON_FAST_CHARGER,
-	EXTCON_SLOW_CHARGER,
-	EXTCON_CHARGE_DOWNSTREAM,
+	EXTCON_CHG_USB_DCP,
+	EXTCON_CHG_USB_DCP_FAST,
+	EXTCON_CHG_USB_DCP_SLOW,
+	EXTCON_CHG_USB_CDP,
 	EXTCON_JIG,
 	EXTCON_NONE,
 };
@@ -456,18 +456,19 @@ static int max14577_muic_chg_handler(struct max14577_muic_info *info)
 		extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
 		break;
 	case MAX14577_CHARGER_TYPE_DEDICATED_CHG:
-		extcon_set_cable_state_(info->edev, EXTCON_TA, attached);
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
+					attached);
 		break;
 	case MAX14577_CHARGER_TYPE_DOWNSTREAM_PORT:
-		extcon_set_cable_state_(info->edev, EXTCON_CHARGE_DOWNSTREAM,
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_CDP,
 					attached);
 		break;
 	case MAX14577_CHARGER_TYPE_SPECIAL_500MA:
-		extcon_set_cable_state_(info->edev, EXTCON_SLOW_CHARGER,
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP_SLOW,
 					attached);
 		break;
 	case MAX14577_CHARGER_TYPE_SPECIAL_1A:
-		extcon_set_cable_state_(info->edev, EXTCON_FAST_CHARGER,
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP_FAST,
 					attached);
 		break;
 	case MAX14577_CHARGER_TYPE_NONE:
diff --git a/drivers/extcon/extcon-max77693.c b/drivers/extcon/extcon-max77693.c
index 35b9e118b2fb..95c707b1fcee 100644
--- a/drivers/extcon/extcon-max77693.c
+++ b/drivers/extcon/extcon-max77693.c
@@ -204,11 +204,11 @@ enum max77693_muic_acc_type {
 static const unsigned int max77693_extcon_cable[] = {
 	EXTCON_USB,
 	EXTCON_USB_HOST,
-	EXTCON_TA,
-	EXTCON_FAST_CHARGER,
-	EXTCON_SLOW_CHARGER,
-	EXTCON_CHARGE_DOWNSTREAM,
-	EXTCON_MHL,
+	EXTCON_CHG_USB_DCP,
+	EXTCON_CHG_USB_DCP_FAST,
+	EXTCON_CHG_USB_DCP_SLOW,
+	EXTCON_CHG_USB_CDP,
+	EXTCON_DISP_MHL,
 	EXTCON_JIG,
 	EXTCON_DOCK,
 	EXTCON_NONE,
@@ -505,7 +505,7 @@ static int max77693_muic_dock_handler(struct max77693_muic_info *info,
 			return ret;
 
 		extcon_set_cable_state_(info->edev, EXTCON_DOCK, attached);
-		extcon_set_cable_state_(info->edev, EXTCON_MHL, attached);
+		extcon_set_cable_state_(info->edev, EXTCON_DISP_MHL, attached);
 		goto out;
 	case MAX77693_MUIC_ADC_AUDIO_MODE_REMOTE:	/* Dock-Desk */
 		dock_id = EXTCON_DOCK;
@@ -605,7 +605,7 @@ static int max77693_muic_adc_ground_handler(struct max77693_muic_info *info)
 	case MAX77693_MUIC_GND_MHL:
 	case MAX77693_MUIC_GND_MHL_VB:
 		/* MHL or MHL with USB/TA cable */
-		extcon_set_cable_state_(info->edev, EXTCON_MHL, attached);
+		extcon_set_cable_state_(info->edev, EXTCON_DISP_MHL, attached);
 		break;
 	default:
 		dev_err(info->dev, "failed to detect %s cable of gnd type\n",
@@ -801,10 +801,11 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info)
 			 * - Support charging through micro-usb port without
 			 *   data connection
 			 */
-			extcon_set_cable_state_(info->edev, EXTCON_TA, attached);
+			extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
+						attached);
 			if (!cable_attached)
-				extcon_set_cable_state_(info->edev, EXTCON_MHL,
-							cable_attached);
+				extcon_set_cable_state_(info->edev,
+						EXTCON_DISP_MHL, cable_attached);
 			break;
 		}
 
@@ -862,7 +863,7 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info)
 
 			extcon_set_cable_state_(info->edev, EXTCON_DOCK,
 						attached);
-			extcon_set_cable_state_(info->edev, EXTCON_MHL,
+			extcon_set_cable_state_(info->edev, EXTCON_DISP_MHL,
 						attached);
 			break;
 		}
@@ -901,20 +902,21 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info)
 			break;
 		case MAX77693_CHARGER_TYPE_DEDICATED_CHG:
 			/* Only TA cable */
-			extcon_set_cable_state_(info->edev, EXTCON_TA, attached);
+			extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
+						attached);
 			break;
 		}
 		break;
 	case MAX77693_CHARGER_TYPE_DOWNSTREAM_PORT:
-		extcon_set_cable_state_(info->edev, EXTCON_CHARGE_DOWNSTREAM,
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_CDP,
 					attached);
 		break;
 	case MAX77693_CHARGER_TYPE_APPLE_500MA:
-		extcon_set_cable_state_(info->edev, EXTCON_SLOW_CHARGER,
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP_SLOW,
 					attached);
 		break;
 	case MAX77693_CHARGER_TYPE_APPLE_1A_2A:
-		extcon_set_cable_state_(info->edev, EXTCON_FAST_CHARGER,
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP_FAST,
 					attached);
 		break;
 	case MAX77693_CHARGER_TYPE_DEAD_BATTERY:
diff --git a/drivers/extcon/extcon-max77843.c b/drivers/extcon/extcon-max77843.c
index fdd928542c19..97aebe5d67a6 100644
--- a/drivers/extcon/extcon-max77843.c
+++ b/drivers/extcon/extcon-max77843.c
@@ -122,11 +122,11 @@ enum max77843_muic_charger_type {
 static const unsigned int max77843_extcon_cable[] = {
 	EXTCON_USB,
 	EXTCON_USB_HOST,
-	EXTCON_TA,
-	EXTCON_CHARGE_DOWNSTREAM,
-	EXTCON_FAST_CHARGER,
-	EXTCON_SLOW_CHARGER,
-	EXTCON_MHL,
+	EXTCON_CHG_USB_DCP,
+	EXTCON_CHG_USB_CDP,
+	EXTCON_CHG_USB_DCP_FAST,
+	EXTCON_CHG_USB_DCP_SLOW,
+	EXTCON_DISP_MHL,
 	EXTCON_JIG,
 	EXTCON_NONE,
 };
@@ -355,7 +355,7 @@ static int max77843_muic_adc_gnd_handler(struct max77843_muic_info *info)
 		if (ret < 0)
 			return ret;
 
-		extcon_set_cable_state_(info->edev, EXTCON_MHL, attached);
+		extcon_set_cable_state_(info->edev, EXTCON_DISP_MHL, attached);
 		break;
 	default:
 		dev_err(info->dev, "failed to detect %s accessory(gnd:0x%x)\n",
@@ -494,7 +494,7 @@ static int max77843_muic_chg_handler(struct max77843_muic_info *info)
 		if (ret < 0)
 			return ret;
 
-		extcon_set_cable_state_(info->edev, EXTCON_CHARGE_DOWNSTREAM,
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_CDP,
 					attached);
 		break;
 	case MAX77843_MUIC_CHG_DEDICATED:
@@ -504,7 +504,8 @@ static int max77843_muic_chg_handler(struct max77843_muic_info *info)
 		if (ret < 0)
 			return ret;
 
-		extcon_set_cable_state_(info->edev, EXTCON_TA, attached);
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
+					attached);
 		break;
 	case MAX77843_MUIC_CHG_SPECIAL_500MA:
 		ret = max77843_muic_set_path(info,
@@ -513,7 +514,7 @@ static int max77843_muic_chg_handler(struct max77843_muic_info *info)
 		if (ret < 0)
 			return ret;
 
-		extcon_set_cable_state_(info->edev, EXTCON_SLOW_CHARGER,
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP_SLOW,
 					attached);
 		break;
 	case MAX77843_MUIC_CHG_SPECIAL_1A:
@@ -523,7 +524,7 @@ static int max77843_muic_chg_handler(struct max77843_muic_info *info)
 		if (ret < 0)
 			return ret;
 
-		extcon_set_cable_state_(info->edev, EXTCON_FAST_CHARGER,
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP_FAST,
 					attached);
 		break;
 	case MAX77843_MUIC_CHG_GND:
@@ -532,9 +533,11 @@ static int max77843_muic_chg_handler(struct max77843_muic_info *info)
 
 		/* Charger cable on MHL accessory is attach or detach */
 		if (gnd_type == MAX77843_MUIC_GND_MHL_VB)
-			extcon_set_cable_state_(info->edev, EXTCON_TA, true);
+			extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
+						true);
 		else if (gnd_type == MAX77843_MUIC_GND_MHL)
-			extcon_set_cable_state_(info->edev, EXTCON_TA, false);
+			extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
+						false);
 		break;
 	case MAX77843_MUIC_CHG_NONE:
 		break;
diff --git a/drivers/extcon/extcon-max8997.c b/drivers/extcon/extcon-max8997.c
index 7b1ef200b121..8dbec5febdb6 100644
--- a/drivers/extcon/extcon-max8997.c
+++ b/drivers/extcon/extcon-max8997.c
@@ -148,11 +148,11 @@ struct max8997_muic_info {
 static const unsigned int max8997_extcon_cable[] = {
 	EXTCON_USB,
 	EXTCON_USB_HOST,
-	EXTCON_TA,
-	EXTCON_FAST_CHARGER,
-	EXTCON_SLOW_CHARGER,
-	EXTCON_CHARGE_DOWNSTREAM,
-	EXTCON_MHL,
+	EXTCON_CHG_USB_DCP,
+	EXTCON_CHG_USB_DCP_FAST,
+	EXTCON_CHG_USB_DCP_SLOW,
+	EXTCON_CHG_USB_CDP,
+	EXTCON_DISP_MHL,
 	EXTCON_DOCK,
 	EXTCON_JIG,
 	EXTCON_NONE,
@@ -403,7 +403,7 @@ static int max8997_muic_adc_handler(struct max8997_muic_info *info)
 			return ret;
 		break;
 	case MAX8997_MUIC_ADC_MHL:
-		extcon_set_cable_state_(info->edev, EXTCON_MHL, attached);
+		extcon_set_cable_state_(info->edev, EXTCON_DISP_MHL, attached);
 		break;
 	case MAX8997_MUIC_ADC_FACTORY_MODE_USB_OFF:
 	case MAX8997_MUIC_ADC_FACTORY_MODE_USB_ON:
@@ -486,18 +486,19 @@ static int max8997_muic_chg_handler(struct max8997_muic_info *info)
 		}
 		break;
 	case MAX8997_CHARGER_TYPE_DOWNSTREAM_PORT:
-		extcon_set_cable_state_(info->edev, EXTCON_CHARGE_DOWNSTREAM,
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_CDP,
 					attached);
 		break;
 	case MAX8997_CHARGER_TYPE_DEDICATED_CHG:
-		extcon_set_cable_state_(info->edev, EXTCON_TA, attached);
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
+					attached);
 		break;
 	case MAX8997_CHARGER_TYPE_500MA:
-		extcon_set_cable_state_(info->edev, EXTCON_SLOW_CHARGER,
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP_SLOW,
 					attached);
 		break;
 	case MAX8997_CHARGER_TYPE_1A:
-		extcon_set_cable_state_(info->edev, EXTCON_FAST_CHARGER,
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP_FAST,
 					attached);
 		break;
 	default:
diff --git a/drivers/extcon/extcon-rt8973a.c b/drivers/extcon/extcon-rt8973a.c
index 1bc3737ea01c..36bf1d63791c 100644
--- a/drivers/extcon/extcon-rt8973a.c
+++ b/drivers/extcon/extcon-rt8973a.c
@@ -93,7 +93,7 @@ static struct reg_data rt8973a_reg_data[] = {
 static const unsigned int rt8973a_extcon_cable[] = {
 	EXTCON_USB,
 	EXTCON_USB_HOST,
-	EXTCON_TA,
+	EXTCON_CHG_USB_DCP,
 	EXTCON_JIG,
 	EXTCON_NONE,
 };
@@ -333,7 +333,7 @@ static int rt8973a_muic_cable_handler(struct rt8973a_muic_info *info,
 		con_sw = DM_DP_SWITCH_USB;
 		break;
 	case RT8973A_MUIC_ADC_TA:
-		id = EXTCON_TA;
+		id = EXTCON_CHG_USB_DCP;
 		con_sw = DM_DP_SWITCH_OPEN;
 		break;
 	case RT8973A_MUIC_ADC_FACTORY_MODE_BOOT_OFF_USB:
diff --git a/drivers/extcon/extcon-sm5502.c b/drivers/extcon/extcon-sm5502.c
index 2945091bfd0e..7aac3cc7efd7 100644
--- a/drivers/extcon/extcon-sm5502.c
+++ b/drivers/extcon/extcon-sm5502.c
@@ -95,7 +95,7 @@ static struct reg_data sm5502_reg_data[] = {
 static const unsigned int sm5502_extcon_cable[] = {
 	EXTCON_USB,
 	EXTCON_USB_HOST,
-	EXTCON_TA,
+	EXTCON_CHG_USB_DCP,
 	EXTCON_NONE,
 };
 
@@ -389,7 +389,7 @@ static int sm5502_muic_cable_handler(struct sm5502_muic_info *info,
 		vbus_sw	= VBUSIN_SWITCH_VBUSOUT_WITH_USB;
 		break;
 	case SM5502_MUIC_ADC_OPEN_TA:
-		id	= EXTCON_TA;
+		id	= EXTCON_CHG_USB_DCP;
 		con_sw	= DM_DP_SWITCH_OPEN;
 		vbus_sw	= VBUSIN_SWITCH_VBUSOUT;
 		break;
diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c
index 8dd0af1d50bc..525e423f9cda 100644
--- a/drivers/extcon/extcon.c
+++ b/drivers/extcon/extcon.c
@@ -39,37 +39,40 @@
 #define CABLE_NAME_MAX		30
 
 static const char *extcon_name[] =  {
-	[EXTCON_NONE]		= "NONE",
+	[EXTCON_NONE]			= "EXTCON_NONE",
 
 	/* USB external connector */
-	[EXTCON_USB]		= "USB",
-	[EXTCON_USB_HOST]	= "USB-HOST",
-
-	/* Charger external connector */
-	[EXTCON_TA]		= "TA",
-	[EXTCON_FAST_CHARGER]	= "FAST-CHARGER",
-	[EXTCON_SLOW_CHARGER]	= "SLOW-CHARGER",
-	[EXTCON_CHARGE_DOWNSTREAM] = "CHARGE-DOWNSTREAM",
-
-	/* Audio/Video external connector */
-	[EXTCON_LINE_IN]	= "LINE-IN",
-	[EXTCON_LINE_OUT]	= "LINE-OUT",
-	[EXTCON_MICROPHONE]	= "MICROPHONE",
-	[EXTCON_HEADPHONE]	= "HEADPHONE",
-
-	[EXTCON_HDMI]		= "HDMI",
-	[EXTCON_MHL]		= "MHL",
-	[EXTCON_DVI]		= "DVI",
-	[EXTCON_VGA]		= "VGA",
-	[EXTCON_SPDIF_IN]	= "SPDIF-IN",
-	[EXTCON_SPDIF_OUT]	= "SPDIF-OUT",
-	[EXTCON_VIDEO_IN]	= "VIDEO-IN",
-	[EXTCON_VIDEO_OUT]	= "VIDEO-OUT",
-
-	/* Etc external connector */
-	[EXTCON_DOCK]		= "DOCK",
-	[EXTCON_JIG]		= "JIG",
-	[EXTCON_MECHANICAL]	= "MECHANICAL",
+	[EXTCON_USB]			= "EXTCON_USB",
+	[EXTCON_USB_HOST]		= "EXTCON_USB_HOST",
+
+	/* Charging external connector */
+	[EXTCON_CHG_USB]		= "EXTCON_CHG_USB",
+	[EXTCON_CHG_USB_CDP]		= "EXTCON_CHG_USB_CDP",
+	[EXTCON_CHG_USB_DCP]		= "EXTCON_CHG_USB_DCP",
+	[EXTCON_CHG_USB_DCP_FAST]	= "EXTCON_CHG_USB_DCP_FAST",
+	[EXTCON_CHG_USB_DCP_SLOW]	= "EXTCON_CHG_USB_DCP_SLOW",
+	[EXTCON_CHG_USB_ACA]		= "EXTCON_CHG_USB_ACA",
+
+	/* Jack external connector */
+	[EXTCON_JACK_MICROPHONE]	= "EXTCON_JACK_MICROPHONE",
+	[EXTCON_JACK_HEADPHONE]		= "EXTCON_JACK_HEADPHONE",
+	[EXTCON_JACK_LINE_IN]		= "EXTCON_JACK_LINE_IN",
+	[EXTCON_JACK_LINE_OUT]		= "EXTCON_JACK_LINE_OUT",
+	[EXTCON_JACK_VIDEO_IN]		= "EXTCON_JACK_VIDEO_IN",
+	[EXTCON_JACK_VIDEO_OUT]		= "EXTCON_JACK_VIDEO_OUT",
+	[EXTCON_JACK_SPDIF_IN]		= "EXTCON_JACK_SPDIF_IN",
+	[EXTCON_JACK_SPDIF_OUT]		= "EXTCON_JACK_SPDIF_OUT",
+
+	/* Display external connector */
+	[EXTCON_DISP_HDMI]		= "EXTCON_DISP_HDMI",
+	[EXTCON_DISP_MHL]		= "EXTCON_DISP_MHL",
+	[EXTCON_DISP_DVI]		= "EXTCON_DISP_DVI",
+	[EXTCON_DISP_VGA]		= "EXTCON_DISP_VGA",
+
+	/* Miscellaneous external connector */
+	[EXTCON_DOCK]			= "EXTCON_DOCK",
+	[EXTCON_JIG]			= "EXTCON_JIG",
+	[EXTCON_MECHANICAL]		= "EXTCON_MECHANICAL",
 
 	NULL,
 };
diff --git a/include/linux/extcon.h b/include/linux/extcon.h
index c0f8c4fc5d45..c8dd881e2b8d 100644
--- a/include/linux/extcon.h
+++ b/include/linux/extcon.h
@@ -31,32 +31,42 @@
 /*
  * Define the unique id of supported external connectors
  */
-#define EXTCON_NONE			0
-
-#define EXTCON_USB			1	/* USB connector */
-#define EXTCON_USB_HOST			2
-
-#define EXTCON_TA			3	/* Charger connector */
-#define EXTCON_FAST_CHARGER		4
-#define EXTCON_SLOW_CHARGER		5
-#define EXTCON_CHARGE_DOWNSTREAM	6
-
-#define EXTCON_LINE_IN			7	/* Audio/Video connector */
-#define EXTCON_LINE_OUT			8
-#define EXTCON_MICROPHONE		9
-#define EXTCON_HEADPHONE		10
-#define EXTCON_HDMI			11
-#define EXTCON_MHL			12
-#define EXTCON_DVI			13
-#define EXTCON_VGA			14
-#define EXTCON_SPDIF_IN			15
-#define EXTCON_SPDIF_OUT		16
-#define EXTCON_VIDEO_IN			17
-#define EXTCON_VIDEO_OUT		18
-
-#define EXTCON_DOCK			19	/* Misc connector */
-#define EXTCON_JIG			20
-#define EXTCON_MECHANICAL		21
+#define EXTCON_NONE		0
+
+/* USB external connector */
+#define EXTCON_USB		1	/* Universal Serial Bus */
+#define EXTCON_USB_HOST		2
+
+/* Charging external connector */
+#define EXTCON_CHG_USB		5	/* Standard Downstream Port */
+#define EXTCON_CHG_USB_CDP	6	/* Charging Downstream Port */
+#define EXTCON_CHG_USB_DCP	7	/* Dedicated Charging Port */
+#define EXTCON_CHG_USB_DCP_FAST	8
+#define EXTCON_CHG_USB_DCP_SLOW	9
+#define EXTCON_CHG_USB_ACA	10	/* Accessory Charger Adapter */
+
+/* Jack external connector */
+#define EXTCON_JACK_MICROPHONE	20
+#define EXTCON_JACK_HEADPHONE	21
+#define EXTCON_JACK_LINE_IN	22
+#define EXTCON_JACK_LINE_OUT	23
+#define EXTCON_JACK_VIDEO_IN	24
+#define EXTCON_JACK_VIDEO_OUT	25
+#define EXTCON_JACK_SPDIF_IN	26	/* Sony Philips Digital InterFace */
+#define EXTCON_JACK_SPDIF_OUT	27
+
+/* Display external connector */
+#define EXTCON_DISP_HDMI	40	/* High-Definition Multimedia Interface */
+#define EXTCON_DISP_MHL		41	/* Mobile High-Definition Link */
+#define EXTCON_DISP_DVI		42	/* Digital Visual Inteface */
+#define EXTCON_DISP_VGA		43	/* Video Graphics Array */
+
+/* Miscellaneous external connector */
+#define EXTCON_DOCK	60
+#define EXTCON_JIG		61
+#define EXTCON_MECHANICAL	62
+
+#define EXTCON_NUM		63
 
 struct extcon_cable;
 
-- 
1.8.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/2] extcon: Add the support of EXTCON_CHG_USB when SDP port is attached or detached
  2015-10-06 11:21 [PATCH v2 0/2] extcon: Modify the name of external connector Chanwoo Choi
  2015-10-06 11:21 ` [PATCH 1/2] extcon: Modify the id and " Chanwoo Choi
@ 2015-10-06 11:21 ` Chanwoo Choi
  2015-10-06 11:49   ` Roger Quadros
  1 sibling, 1 reply; 10+ messages in thread
From: Chanwoo Choi @ 2015-10-06 11:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: k.kozlowski, ckeepax, gregkh, rogerq, ramakrishna.pallala,
	patches, cw00.choi, myungjoo.ham

The SDP (Standard Downstream Port) is one of various USB Charging ports. The SDP
supports both the data transmission and the charging through USB connector at
the same time. So, the EXTCON framework defines two connector type for USB SDP
connector as following:
- EXTCON_USB means the USB cable for data transmission.
- EXTCON_CHG_USB means the USB charger cable for battery charging.

This patch add the support of EXTCON_CHG_USB when USB SDP is attached or
detached.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
---
 drivers/extcon/extcon-max14577.c |  2 ++
 drivers/extcon/extcon-max77693.c | 11 ++++++++++-
 drivers/extcon/extcon-max77843.c |  2 ++
 drivers/extcon/extcon-max8997.c  |  2 ++
 drivers/extcon/extcon-palmas.c   |  3 +++
 drivers/extcon/extcon-rt8973a.c  |  3 +++
 drivers/extcon/extcon-sm5502.c   |  3 +++
 drivers/extcon/extcon-usb-gpio.c |  3 +++
 8 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/drivers/extcon/extcon-max14577.c b/drivers/extcon/extcon-max14577.c
index 15c2dcc73fc6..f262dad10560 100644
--- a/drivers/extcon/extcon-max14577.c
+++ b/drivers/extcon/extcon-max14577.c
@@ -150,6 +150,7 @@ enum max14577_muic_acc_type {
 
 static const unsigned int max14577_extcon_cable[] = {
 	EXTCON_USB,
+	EXTCON_CHG_USB,
 	EXTCON_CHG_USB_DCP,
 	EXTCON_CHG_USB_DCP_FAST,
 	EXTCON_CHG_USB_DCP_SLOW,
@@ -454,6 +455,7 @@ static int max14577_muic_chg_handler(struct max14577_muic_info *info)
 			return ret;
 
 		extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
 		break;
 	case MAX14577_CHARGER_TYPE_DEDICATED_CHG:
 		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
diff --git a/drivers/extcon/extcon-max77693.c b/drivers/extcon/extcon-max77693.c
index 95c707b1fcee..ee63718de787 100644
--- a/drivers/extcon/extcon-max77693.c
+++ b/drivers/extcon/extcon-max77693.c
@@ -204,6 +204,7 @@ enum max77693_muic_acc_type {
 static const unsigned int max77693_extcon_cable[] = {
 	EXTCON_USB,
 	EXTCON_USB_HOST,
+	EXTCON_CHG_USB,
 	EXTCON_CHG_USB_DCP,
 	EXTCON_CHG_USB_DCP_FAST,
 	EXTCON_CHG_USB_DCP_SLOW,
@@ -512,8 +513,11 @@ static int max77693_muic_dock_handler(struct max77693_muic_info *info,
 		break;
 	case MAX77693_MUIC_ADC_AV_CABLE_NOLOAD:		/* Dock-Audio */
 		dock_id = EXTCON_DOCK;
-		if (!attached)
+		if (!attached) {
 			extcon_set_cable_state_(info->edev, EXTCON_USB, false);
+			extcon_set_cable_state_(info->edev, EXTCON_CHG_USB,
+						false);
+		}
 		break;
 	default:
 		dev_err(info->dev, "failed to detect %s dock device\n",
@@ -601,6 +605,7 @@ static int max77693_muic_adc_ground_handler(struct max77693_muic_info *info)
 		if (ret < 0)
 			return ret;
 		extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
 		break;
 	case MAX77693_MUIC_GND_MHL:
 	case MAX77693_MUIC_GND_MHL_VB:
@@ -830,6 +835,8 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info)
 			 */
 			extcon_set_cable_state_(info->edev, EXTCON_USB,
 						attached);
+			extcon_set_cable_state_(info->edev, EXTCON_CHG_USB,
+						attached);
 
 			if (!cable_attached)
 				extcon_set_cable_state_(info->edev, EXTCON_DOCK,
@@ -899,6 +906,8 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info)
 
 			extcon_set_cable_state_(info->edev, EXTCON_USB,
 						attached);
+			extcon_set_cable_state_(info->edev, EXTCON_CHG_USB,
+						attached);
 			break;
 		case MAX77693_CHARGER_TYPE_DEDICATED_CHG:
 			/* Only TA cable */
diff --git a/drivers/extcon/extcon-max77843.c b/drivers/extcon/extcon-max77843.c
index 97aebe5d67a6..5bfd4a5ec9c4 100644
--- a/drivers/extcon/extcon-max77843.c
+++ b/drivers/extcon/extcon-max77843.c
@@ -122,6 +122,7 @@ enum max77843_muic_charger_type {
 static const unsigned int max77843_extcon_cable[] = {
 	EXTCON_USB,
 	EXTCON_USB_HOST,
+	EXTCON_CHG_USB,
 	EXTCON_CHG_USB_DCP,
 	EXTCON_CHG_USB_CDP,
 	EXTCON_CHG_USB_DCP_FAST,
@@ -486,6 +487,7 @@ static int max77843_muic_chg_handler(struct max77843_muic_info *info)
 			return ret;
 
 		extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
 		break;
 	case MAX77843_MUIC_CHG_DOWNSTREAM:
 		ret = max77843_muic_set_path(info,
diff --git a/drivers/extcon/extcon-max8997.c b/drivers/extcon/extcon-max8997.c
index 8dbec5febdb6..3e8c6ab546b6 100644
--- a/drivers/extcon/extcon-max8997.c
+++ b/drivers/extcon/extcon-max8997.c
@@ -148,6 +148,7 @@ struct max8997_muic_info {
 static const unsigned int max8997_extcon_cable[] = {
 	EXTCON_USB,
 	EXTCON_USB_HOST,
+	EXTCON_CHG_USB,
 	EXTCON_CHG_USB_DCP,
 	EXTCON_CHG_USB_DCP_FAST,
 	EXTCON_CHG_USB_DCP_SLOW,
@@ -334,6 +335,7 @@ static int max8997_muic_handle_usb(struct max8997_muic_info *info,
 		break;
 	case MAX8997_USB_DEVICE:
 		extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
 		break;
 	default:
 		dev_err(info->dev, "failed to detect %s usb cable\n",
diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
index 93c30a885740..a1e984ff4398 100644
--- a/drivers/extcon/extcon-palmas.c
+++ b/drivers/extcon/extcon-palmas.c
@@ -37,6 +37,7 @@
 static const unsigned int palmas_extcon_cable[] = {
 	EXTCON_USB,
 	EXTCON_USB_HOST,
+	EXTCON_CHG_USB,
 	EXTCON_NONE,
 };
 
@@ -62,6 +63,7 @@ static irqreturn_t palmas_vbus_irq_handler(int irq, void *_palmas_usb)
 		if (palmas_usb->linkstat != PALMAS_USB_STATE_VBUS) {
 			palmas_usb->linkstat = PALMAS_USB_STATE_VBUS;
 			extcon_set_cable_state_(edev, EXTCON_USB, true);
+			extcon_set_cable_state_(edev, EXTCON_CHG_USB, true);
 			dev_info(palmas_usb->dev, "USB cable is attached\n");
 		} else {
 			dev_dbg(palmas_usb->dev,
@@ -71,6 +73,7 @@ static irqreturn_t palmas_vbus_irq_handler(int irq, void *_palmas_usb)
 		if (palmas_usb->linkstat == PALMAS_USB_STATE_VBUS) {
 			palmas_usb->linkstat = PALMAS_USB_STATE_DISCONNECT;
 			extcon_set_cable_state_(edev, EXTCON_USB, false);
+			extcon_set_cable_state_(edev, EXTCON_CHG_USB, false);
 			dev_info(palmas_usb->dev, "USB cable is detached\n");
 		} else {
 			dev_dbg(palmas_usb->dev,
diff --git a/drivers/extcon/extcon-rt8973a.c b/drivers/extcon/extcon-rt8973a.c
index 36bf1d63791c..64c7d8a90a11 100644
--- a/drivers/extcon/extcon-rt8973a.c
+++ b/drivers/extcon/extcon-rt8973a.c
@@ -93,6 +93,7 @@ static struct reg_data rt8973a_reg_data[] = {
 static const unsigned int rt8973a_extcon_cable[] = {
 	EXTCON_USB,
 	EXTCON_USB_HOST,
+	EXTCON_CHG_USB,
 	EXTCON_CHG_USB_DCP,
 	EXTCON_JIG,
 	EXTCON_NONE,
@@ -398,6 +399,8 @@ static int rt8973a_muic_cable_handler(struct rt8973a_muic_info *info,
 
 	/* Change the state of external accessory */
 	extcon_set_cable_state_(info->edev, id, attached);
+	if (id == EXTCON_USB)
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
 
 	return 0;
 }
diff --git a/drivers/extcon/extcon-sm5502.c b/drivers/extcon/extcon-sm5502.c
index 7aac3cc7efd7..24031759d306 100644
--- a/drivers/extcon/extcon-sm5502.c
+++ b/drivers/extcon/extcon-sm5502.c
@@ -95,6 +95,7 @@ static struct reg_data sm5502_reg_data[] = {
 static const unsigned int sm5502_extcon_cable[] = {
 	EXTCON_USB,
 	EXTCON_USB_HOST,
+	EXTCON_CHG_USB,
 	EXTCON_CHG_USB_DCP,
 	EXTCON_NONE,
 };
@@ -411,6 +412,8 @@ static int sm5502_muic_cable_handler(struct sm5502_muic_info *info,
 
 	/* Change the state of external accessory */
 	extcon_set_cable_state_(info->edev, id, attached);
+	if (id == EXTCON_USB)
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
 
 	return 0;
 }
diff --git a/drivers/extcon/extcon-usb-gpio.c b/drivers/extcon/extcon-usb-gpio.c
index 2b2fecffb1ad..ae8e3df0b5a6 100644
--- a/drivers/extcon/extcon-usb-gpio.c
+++ b/drivers/extcon/extcon-usb-gpio.c
@@ -43,6 +43,7 @@ struct usb_extcon_info {
 static const unsigned int usb_extcon_cable[] = {
 	EXTCON_USB,
 	EXTCON_USB_HOST,
+	EXTCON_CHG_USB,
 	EXTCON_NONE,
 };
 
@@ -63,12 +64,14 @@ static void usb_extcon_detect_cable(struct work_struct *work)
 		 */
 		extcon_set_cable_state_(info->edev, EXTCON_USB_HOST, false);
 		extcon_set_cable_state_(info->edev, EXTCON_USB, true);
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, true);
 	} else {
 		/*
 		 * ID = 0 means USB HOST cable attached.
 		 * As we don't have event for USB peripheral cable detached,
 		 * we simulate USB peripheral detach here.
 		 */
+		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, false);
 		extcon_set_cable_state_(info->edev, EXTCON_USB, false);
 		extcon_set_cable_state_(info->edev, EXTCON_USB_HOST, true);
 	}
-- 
1.8.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* RE: [PATCH 1/2] extcon: Modify the id and name of external connector
  2015-10-06 11:21 ` [PATCH 1/2] extcon: Modify the id and " Chanwoo Choi
@ 2015-10-06 11:42   ` Pallala, Ramakrishna
  2015-10-06 11:51     ` Chanwoo Choi
  0 siblings, 1 reply; 10+ messages in thread
From: Pallala, Ramakrishna @ 2015-10-06 11:42 UTC (permalink / raw)
  To: Chanwoo Choi, linux-kernel
  Cc: k.kozlowski, ckeepax, gregkh, rogerq, patches, myungjoo.ham

Hi Choi,


> Subject: [PATCH 1/2] extcon: Modify the id and name of external connector
> 
> This patch modifies the id and name of external connector with the additional
> prefix to clarify both attribute and meaning of external connector as following:
> - EXTCON_CHG_* mean the charger connector.
> - EXTCON_JACK_* mean the jack connector.
> - EXTCON_DISP_* mean the display port connector.
> 
> Following table show the new name of external connector with old name:
> --------------------------------------------------
> Old extcon name         | New extcon name        |
> --------------------------------------------------
> EXTCON_TA               | EXTCON_CHG_USB_DCP     |
> EXTCON_FAST_CHARGER     | EXTCON_CHG_USB_DCP_FAST|
> EXTCON_SLOW_CHARGER     | EXTCON_CHG_USB_DCP_SLOW|
> EXTCON_CHARGE_DOWNSTREAM| EXTCON_CHG_USB_CDP     |
> --------------------------------------------------
> EXTCON_MICROPHONE       | EXTCON_JACK_MICROPHONE |
> EXTCON_HEADPHONE        | EXTCON_JACK_HEADPHONE  |
> EXTCON_LINE_IN          | EXTCON_JACK_LINE_IN    |
> EXTCON_LINE_OUT         | EXTCON_JACK_LINE_OUT   |
> EXTCON_VIDEO_IN         | EXTCON_JACK_VIDEO_IN   |
> EXTCON_VIDEO_OUT        | EXTCON_JACK_VIDEO_OUT  |
> EXTCON_SPDIF_IN         | EXTCON_JACK_SPDIF_IN   |
> EXTCON_SPDIF_OUT        | EXTCON_JACK_SPDIF_OUT  |
> --------------------------------------------------
> EXTCON_HMDI             | EXTCON_DISP_HDMI       |
> EXTCON_MHL              | EXTCON_DISP_MHL        |
> EXTCON_DVI              | EXTCON_DISP_DVI        |
> EXTCON_VGA              | EXTCON_DISP_VGA        |
> --------------------------------------------------
> 
> And, when altering the name of USB charger connector, EXTCON refers to the
> "Battery Charging v1.2 Spec and Adopters Agreement"[1] to use the standard
> name of USB charging port as following. Following name of USB charging port
> are already used in power_supply subsystem. We chan check it on patch[2].
> - EXTCON_CHG_USB	/* Standard Downstream Port */
> - EXTCON_CHG_USB_DCP	/* Dedicated Charging Port */
> - EXTCON_CHG_USB_CDP	/* Charging Downstream Port */
> - EXTCON_CHG_USB_ACA	/* Accessory Charger Adapter */
> 
> [1] www.usb.org/developers/docs/devclass_docs/BCv1.2_070312.zip
> [2] commit 85efc8a18ce ("[PATCH] power_supply: Add types for USB chargers")
> 
> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> [ckeepax: For the Arizona changes]
> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
> ---
>  drivers/extcon/extcon-arizona.c  | 18 ++++++------
>  drivers/extcon/extcon-axp288.c   | 12 ++++----
>  drivers/extcon/extcon-max14577.c | 17 +++++------  drivers/extcon/extcon-
> max77693.c | 32 +++++++++++----------  drivers/extcon/extcon-max77843.c | 27
> +++++++++--------  drivers/extcon/extcon-max8997.c  | 21 +++++++-------
> drivers/extcon/extcon-rt8973a.c  |  4 +--
>  drivers/extcon/extcon-sm5502.c   |  4 +--
>  drivers/extcon/extcon.c          | 61 ++++++++++++++++++++-------------------
>  include/linux/extcon.h           | 62 +++++++++++++++++++++++-----------------
>  10 files changed, 139 insertions(+), 119 deletions(-)
> 
> diff --git a/drivers/extcon/extcon-arizona.c b/drivers/extcon/extcon-arizona.c
> index a1ab0a56b798..e4890dd4fefd 100644
> --- a/drivers/extcon/extcon-arizona.c
> +++ b/drivers/extcon/extcon-arizona.c
> @@ -137,9 +137,9 @@ static const int arizona_micd_levels[] = {
> 
>  static const unsigned int arizona_cable[] = {
>  	EXTCON_MECHANICAL,
> -	EXTCON_MICROPHONE,
> -	EXTCON_HEADPHONE,
> -	EXTCON_LINE_OUT,
> +	EXTCON_JACK_MICROPHONE,
> +	EXTCON_JACK_HEADPHONE,
> +	EXTCON_JACK_LINE_OUT,
>  	EXTCON_NONE,
>  };
> 
> @@ -600,7 +600,7 @@ static irqreturn_t arizona_hpdet_irq(int irq, void *data)
>  	struct arizona_extcon_info *info = data;
>  	struct arizona *arizona = info->arizona;
>  	int id_gpio = arizona->pdata.hpdet_id_gpio;
> -	unsigned int report = EXTCON_HEADPHONE;
> +	unsigned int report = EXTCON_JACK_HEADPHONE;
>  	int ret, reading;
>  	bool mic = false;
> 
> @@ -645,9 +645,9 @@ static irqreturn_t arizona_hpdet_irq(int irq, void *data)
> 
>  	/* Report high impedence cables as line outputs */
>  	if (reading >= 5000)
> -		report = EXTCON_LINE_OUT;
> +		report = EXTCON_JACK_LINE_OUT;
>  	else
> -		report = EXTCON_HEADPHONE;
> +		report = EXTCON_JACK_HEADPHONE;
> 
>  	ret = extcon_set_cable_state_(info->edev, report, true);
>  	if (ret != 0)
> @@ -732,7 +732,7 @@ err:
>  			   ARIZONA_ACCDET_MODE_MASK,
> ARIZONA_ACCDET_MODE_MIC);
> 
>  	/* Just report headphone */
> -	ret = extcon_set_cable_state_(info->edev, EXTCON_HEADPHONE, true);
> +	ret = extcon_set_cable_state_(info->edev, EXTCON_JACK_HEADPHONE,
> +true);
>  	if (ret != 0)
>  		dev_err(arizona->dev, "Failed to report headphone: %d\n", ret);
> 
> @@ -789,7 +789,7 @@ err:
>  			   ARIZONA_ACCDET_MODE_MASK,
> ARIZONA_ACCDET_MODE_MIC);
> 
>  	/* Just report headphone */
> -	ret = extcon_set_cable_state_(info->edev, EXTCON_HEADPHONE, true);
> +	ret = extcon_set_cable_state_(info->edev, EXTCON_JACK_HEADPHONE,
> +true);
>  	if (ret != 0)
>  		dev_err(arizona->dev, "Failed to report headphone: %d\n", ret);
> 
> @@ -915,7 +915,7 @@ static void arizona_micd_detect(struct work_struct
> *work)
>  		arizona_identify_headphone(info);
> 
>  		ret = extcon_set_cable_state_(info->edev,
> -					      EXTCON_MICROPHONE, true);
> +					      EXTCON_JACK_MICROPHONE,
> true);
>  		if (ret != 0)
>  			dev_err(arizona->dev, "Headset report failed: %d\n",
>  				ret);
> diff --git a/drivers/extcon/extcon-axp288.c b/drivers/extcon/extcon-axp288.c
> index 9668d6a94e38..14e748051288 100644
> --- a/drivers/extcon/extcon-axp288.c
> +++ b/drivers/extcon/extcon-axp288.c
> @@ -102,9 +102,9 @@ enum axp288_extcon_irq {  };
> 
>  static const unsigned int axp288_extcon_cables[] = {
> -	EXTCON_SLOW_CHARGER,
> -	EXTCON_CHARGE_DOWNSTREAM,
> -	EXTCON_FAST_CHARGER,
> +	EXTCON_CHG_USB_DCP_SLOW,
> +	EXTCON_CHG_USB_CDP,
> +	EXTCON_CHG_USB_DCP_FAST,
>  	EXTCON_NONE,
>  };
> 
> @@ -192,18 +192,18 @@ static int axp288_handle_chrg_det_event(struct
> axp288_extcon_info *info)
>  		dev_dbg(info->dev, "sdp cable is connecetd\n");
>  		notify_otg = true;
>  		notify_charger = true;
> -		cable = EXTCON_SLOW_CHARGER;
> +		cable = EXTCON_CHG_USB_DCP_SLOW;
>  		break;
>  	case DET_STAT_CDP:
>  		dev_dbg(info->dev, "cdp cable is connecetd\n");
>  		notify_otg = true;
>  		notify_charger = true;
> -		cable = EXTCON_CHARGE_DOWNSTREAM;
> +		cable = EXTCON_CHG_USB_CDP;
>  		break;
>  	case DET_STAT_DCP:
>  		dev_dbg(info->dev, "dcp cable is connecetd\n");
>  		notify_charger = true;
> -		cable = EXTCON_FAST_CHARGER;
> +		cable = EXTCON_CHG_USB_DCP_FAST;
>  		break;
>  	default:
>  		dev_warn(info->dev,
> diff --git a/drivers/extcon/extcon-max14577.c b/drivers/extcon/extcon-
> max14577.c
> index df0659d98e5a..15c2dcc73fc6 100644
> --- a/drivers/extcon/extcon-max14577.c
> +++ b/drivers/extcon/extcon-max14577.c
> @@ -150,10 +150,10 @@ enum max14577_muic_acc_type {
> 
>  static const unsigned int max14577_extcon_cable[] = {
>  	EXTCON_USB,
> -	EXTCON_TA,
> -	EXTCON_FAST_CHARGER,
> -	EXTCON_SLOW_CHARGER,
> -	EXTCON_CHARGE_DOWNSTREAM,
> +	EXTCON_CHG_USB_DCP,
> +	EXTCON_CHG_USB_DCP_FAST,
> +	EXTCON_CHG_USB_DCP_SLOW,
> +	EXTCON_CHG_USB_CDP,
>  	EXTCON_JIG,
>  	EXTCON_NONE,
>  };
> @@ -456,18 +456,19 @@ static int max14577_muic_chg_handler(struct
> max14577_muic_info *info)
>  		extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
>  		break;
>  	case MAX14577_CHARGER_TYPE_DEDICATED_CHG:
> -		extcon_set_cable_state_(info->edev, EXTCON_TA, attached);
> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
> +					attached);
>  		break;
>  	case MAX14577_CHARGER_TYPE_DOWNSTREAM_PORT:
> -		extcon_set_cable_state_(info->edev,
> EXTCON_CHARGE_DOWNSTREAM,
> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_CDP,
>  					attached);
>  		break;
>  	case MAX14577_CHARGER_TYPE_SPECIAL_500MA:
> -		extcon_set_cable_state_(info->edev,
> EXTCON_SLOW_CHARGER,
> +		extcon_set_cable_state_(info->edev,
> EXTCON_CHG_USB_DCP_SLOW,
>  					attached);
>  		break;
>  	case MAX14577_CHARGER_TYPE_SPECIAL_1A:
> -		extcon_set_cable_state_(info->edev, EXTCON_FAST_CHARGER,
> +		extcon_set_cable_state_(info->edev,
> EXTCON_CHG_USB_DCP_FAST,
>  					attached);
>  		break;
>  	case MAX14577_CHARGER_TYPE_NONE:
> diff --git a/drivers/extcon/extcon-max77693.c b/drivers/extcon/extcon-
> max77693.c
> index 35b9e118b2fb..95c707b1fcee 100644
> --- a/drivers/extcon/extcon-max77693.c
> +++ b/drivers/extcon/extcon-max77693.c
> @@ -204,11 +204,11 @@ enum max77693_muic_acc_type {  static const
> unsigned int max77693_extcon_cable[] = {
>  	EXTCON_USB,
>  	EXTCON_USB_HOST,
> -	EXTCON_TA,
> -	EXTCON_FAST_CHARGER,
> -	EXTCON_SLOW_CHARGER,
> -	EXTCON_CHARGE_DOWNSTREAM,
> -	EXTCON_MHL,
> +	EXTCON_CHG_USB_DCP,
> +	EXTCON_CHG_USB_DCP_FAST,
> +	EXTCON_CHG_USB_DCP_SLOW,
> +	EXTCON_CHG_USB_CDP,
> +	EXTCON_DISP_MHL,
>  	EXTCON_JIG,
>  	EXTCON_DOCK,
>  	EXTCON_NONE,
> @@ -505,7 +505,7 @@ static int max77693_muic_dock_handler(struct
> max77693_muic_info *info,
>  			return ret;
> 
>  		extcon_set_cable_state_(info->edev, EXTCON_DOCK,
> attached);
> -		extcon_set_cable_state_(info->edev, EXTCON_MHL, attached);
> +		extcon_set_cable_state_(info->edev, EXTCON_DISP_MHL,
> attached);
>  		goto out;
>  	case MAX77693_MUIC_ADC_AUDIO_MODE_REMOTE:	/* Dock-Desk
> */
>  		dock_id = EXTCON_DOCK;
> @@ -605,7 +605,7 @@ static int max77693_muic_adc_ground_handler(struct
> max77693_muic_info *info)
>  	case MAX77693_MUIC_GND_MHL:
>  	case MAX77693_MUIC_GND_MHL_VB:
>  		/* MHL or MHL with USB/TA cable */
> -		extcon_set_cable_state_(info->edev, EXTCON_MHL, attached);
> +		extcon_set_cable_state_(info->edev, EXTCON_DISP_MHL,
> attached);
>  		break;
>  	default:
>  		dev_err(info->dev, "failed to detect %s cable of gnd type\n",
> @@ -801,10 +801,11 @@ static int max77693_muic_chg_handler(struct
> max77693_muic_info *info)
>  			 * - Support charging through micro-usb port without
>  			 *   data connection
>  			 */
> -			extcon_set_cable_state_(info->edev, EXTCON_TA,
> attached);
> +			extcon_set_cable_state_(info->edev,
> EXTCON_CHG_USB_DCP,
> +						attached);
>  			if (!cable_attached)
> -				extcon_set_cable_state_(info->edev,
> EXTCON_MHL,
> -							cable_attached);
> +				extcon_set_cable_state_(info->edev,
> +						EXTCON_DISP_MHL,
> cable_attached);
>  			break;
>  		}
> 
> @@ -862,7 +863,7 @@ static int max77693_muic_chg_handler(struct
> max77693_muic_info *info)
> 
>  			extcon_set_cable_state_(info->edev, EXTCON_DOCK,
>  						attached);
> -			extcon_set_cable_state_(info->edev, EXTCON_MHL,
> +			extcon_set_cable_state_(info->edev,
> EXTCON_DISP_MHL,
>  						attached);
>  			break;
>  		}
> @@ -901,20 +902,21 @@ static int max77693_muic_chg_handler(struct
> max77693_muic_info *info)
>  			break;
>  		case MAX77693_CHARGER_TYPE_DEDICATED_CHG:
>  			/* Only TA cable */
> -			extcon_set_cable_state_(info->edev, EXTCON_TA,
> attached);
> +			extcon_set_cable_state_(info->edev,
> EXTCON_CHG_USB_DCP,
> +						attached);
>  			break;
>  		}
>  		break;
>  	case MAX77693_CHARGER_TYPE_DOWNSTREAM_PORT:
> -		extcon_set_cable_state_(info->edev,
> EXTCON_CHARGE_DOWNSTREAM,
> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_CDP,
>  					attached);
>  		break;
>  	case MAX77693_CHARGER_TYPE_APPLE_500MA:
> -		extcon_set_cable_state_(info->edev,
> EXTCON_SLOW_CHARGER,
> +		extcon_set_cable_state_(info->edev,
> EXTCON_CHG_USB_DCP_SLOW,
>  					attached);
>  		break;
>  	case MAX77693_CHARGER_TYPE_APPLE_1A_2A:
> -		extcon_set_cable_state_(info->edev, EXTCON_FAST_CHARGER,
> +		extcon_set_cable_state_(info->edev,
> EXTCON_CHG_USB_DCP_FAST,
>  					attached);
>  		break;
>  	case MAX77693_CHARGER_TYPE_DEAD_BATTERY:
> diff --git a/drivers/extcon/extcon-max77843.c b/drivers/extcon/extcon-
> max77843.c
> index fdd928542c19..97aebe5d67a6 100644
> --- a/drivers/extcon/extcon-max77843.c
> +++ b/drivers/extcon/extcon-max77843.c
> @@ -122,11 +122,11 @@ enum max77843_muic_charger_type {  static const
> unsigned int max77843_extcon_cable[] = {
>  	EXTCON_USB,
>  	EXTCON_USB_HOST,
> -	EXTCON_TA,
> -	EXTCON_CHARGE_DOWNSTREAM,
> -	EXTCON_FAST_CHARGER,
> -	EXTCON_SLOW_CHARGER,
> -	EXTCON_MHL,
> +	EXTCON_CHG_USB_DCP,
> +	EXTCON_CHG_USB_CDP,
> +	EXTCON_CHG_USB_DCP_FAST,
> +	EXTCON_CHG_USB_DCP_SLOW,
> +	EXTCON_DISP_MHL,
>  	EXTCON_JIG,
>  	EXTCON_NONE,
>  };
> @@ -355,7 +355,7 @@ static int max77843_muic_adc_gnd_handler(struct
> max77843_muic_info *info)
>  		if (ret < 0)
>  			return ret;
> 
> -		extcon_set_cable_state_(info->edev, EXTCON_MHL, attached);
> +		extcon_set_cable_state_(info->edev, EXTCON_DISP_MHL,
> attached);
>  		break;
>  	default:
>  		dev_err(info->dev, "failed to detect %s accessory(gnd:0x%x)\n",
> @@ -494,7 +494,7 @@ static int max77843_muic_chg_handler(struct
> max77843_muic_info *info)
>  		if (ret < 0)
>  			return ret;
> 
> -		extcon_set_cable_state_(info->edev,
> EXTCON_CHARGE_DOWNSTREAM,
> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_CDP,
>  					attached);
>  		break;
>  	case MAX77843_MUIC_CHG_DEDICATED:
> @@ -504,7 +504,8 @@ static int max77843_muic_chg_handler(struct
> max77843_muic_info *info)
>  		if (ret < 0)
>  			return ret;
> 
> -		extcon_set_cable_state_(info->edev, EXTCON_TA, attached);
> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
> +					attached);
>  		break;
>  	case MAX77843_MUIC_CHG_SPECIAL_500MA:
>  		ret = max77843_muic_set_path(info,
> @@ -513,7 +514,7 @@ static int max77843_muic_chg_handler(struct
> max77843_muic_info *info)
>  		if (ret < 0)
>  			return ret;
> 
> -		extcon_set_cable_state_(info->edev,
> EXTCON_SLOW_CHARGER,
> +		extcon_set_cable_state_(info->edev,
> EXTCON_CHG_USB_DCP_SLOW,
>  					attached);
>  		break;
>  	case MAX77843_MUIC_CHG_SPECIAL_1A:
> @@ -523,7 +524,7 @@ static int max77843_muic_chg_handler(struct
> max77843_muic_info *info)
>  		if (ret < 0)
>  			return ret;
> 
> -		extcon_set_cable_state_(info->edev, EXTCON_FAST_CHARGER,
> +		extcon_set_cable_state_(info->edev,
> EXTCON_CHG_USB_DCP_FAST,
>  					attached);
>  		break;
>  	case MAX77843_MUIC_CHG_GND:
> @@ -532,9 +533,11 @@ static int max77843_muic_chg_handler(struct
> max77843_muic_info *info)
> 
>  		/* Charger cable on MHL accessory is attach or detach */
>  		if (gnd_type == MAX77843_MUIC_GND_MHL_VB)
> -			extcon_set_cable_state_(info->edev, EXTCON_TA,
> true);
> +			extcon_set_cable_state_(info->edev,
> EXTCON_CHG_USB_DCP,
> +						true);
>  		else if (gnd_type == MAX77843_MUIC_GND_MHL)
> -			extcon_set_cable_state_(info->edev, EXTCON_TA,
> false);
> +			extcon_set_cable_state_(info->edev,
> EXTCON_CHG_USB_DCP,
> +						false);
>  		break;
>  	case MAX77843_MUIC_CHG_NONE:
>  		break;
> diff --git a/drivers/extcon/extcon-max8997.c b/drivers/extcon/extcon-
> max8997.c index 7b1ef200b121..8dbec5febdb6 100644
> --- a/drivers/extcon/extcon-max8997.c
> +++ b/drivers/extcon/extcon-max8997.c
> @@ -148,11 +148,11 @@ struct max8997_muic_info {  static const unsigned int
> max8997_extcon_cable[] = {
>  	EXTCON_USB,
>  	EXTCON_USB_HOST,
> -	EXTCON_TA,
> -	EXTCON_FAST_CHARGER,
> -	EXTCON_SLOW_CHARGER,
> -	EXTCON_CHARGE_DOWNSTREAM,
> -	EXTCON_MHL,
> +	EXTCON_CHG_USB_DCP,
> +	EXTCON_CHG_USB_DCP_FAST,
> +	EXTCON_CHG_USB_DCP_SLOW,
> +	EXTCON_CHG_USB_CDP,
> +	EXTCON_DISP_MHL,
>  	EXTCON_DOCK,
>  	EXTCON_JIG,
>  	EXTCON_NONE,
> @@ -403,7 +403,7 @@ static int max8997_muic_adc_handler(struct
> max8997_muic_info *info)
>  			return ret;
>  		break;
>  	case MAX8997_MUIC_ADC_MHL:
> -		extcon_set_cable_state_(info->edev, EXTCON_MHL, attached);
> +		extcon_set_cable_state_(info->edev, EXTCON_DISP_MHL,
> attached);
>  		break;
>  	case MAX8997_MUIC_ADC_FACTORY_MODE_USB_OFF:
>  	case MAX8997_MUIC_ADC_FACTORY_MODE_USB_ON:
> @@ -486,18 +486,19 @@ static int max8997_muic_chg_handler(struct
> max8997_muic_info *info)
>  		}
>  		break;
>  	case MAX8997_CHARGER_TYPE_DOWNSTREAM_PORT:
> -		extcon_set_cable_state_(info->edev,
> EXTCON_CHARGE_DOWNSTREAM,
> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_CDP,
>  					attached);
>  		break;
>  	case MAX8997_CHARGER_TYPE_DEDICATED_CHG:
> -		extcon_set_cable_state_(info->edev, EXTCON_TA, attached);
> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
> +					attached);
>  		break;
>  	case MAX8997_CHARGER_TYPE_500MA:
> -		extcon_set_cable_state_(info->edev,
> EXTCON_SLOW_CHARGER,
> +		extcon_set_cable_state_(info->edev,
> EXTCON_CHG_USB_DCP_SLOW,
>  					attached);
>  		break;
>  	case MAX8997_CHARGER_TYPE_1A:
> -		extcon_set_cable_state_(info->edev, EXTCON_FAST_CHARGER,
> +		extcon_set_cable_state_(info->edev,
> EXTCON_CHG_USB_DCP_FAST,
>  					attached);
>  		break;
>  	default:
> diff --git a/drivers/extcon/extcon-rt8973a.c b/drivers/extcon/extcon-rt8973a.c
> index 1bc3737ea01c..36bf1d63791c 100644
> --- a/drivers/extcon/extcon-rt8973a.c
> +++ b/drivers/extcon/extcon-rt8973a.c
> @@ -93,7 +93,7 @@ static struct reg_data rt8973a_reg_data[] = {  static const
> unsigned int rt8973a_extcon_cable[] = {
>  	EXTCON_USB,
>  	EXTCON_USB_HOST,
> -	EXTCON_TA,
> +	EXTCON_CHG_USB_DCP,
>  	EXTCON_JIG,
>  	EXTCON_NONE,
>  };
> @@ -333,7 +333,7 @@ static int rt8973a_muic_cable_handler(struct
> rt8973a_muic_info *info,
>  		con_sw = DM_DP_SWITCH_USB;
>  		break;
>  	case RT8973A_MUIC_ADC_TA:
> -		id = EXTCON_TA;
> +		id = EXTCON_CHG_USB_DCP;
>  		con_sw = DM_DP_SWITCH_OPEN;
>  		break;
>  	case RT8973A_MUIC_ADC_FACTORY_MODE_BOOT_OFF_USB:
> diff --git a/drivers/extcon/extcon-sm5502.c b/drivers/extcon/extcon-sm5502.c
> index 2945091bfd0e..7aac3cc7efd7 100644
> --- a/drivers/extcon/extcon-sm5502.c
> +++ b/drivers/extcon/extcon-sm5502.c
> @@ -95,7 +95,7 @@ static struct reg_data sm5502_reg_data[] = {  static const
> unsigned int sm5502_extcon_cable[] = {
>  	EXTCON_USB,
>  	EXTCON_USB_HOST,
> -	EXTCON_TA,
> +	EXTCON_CHG_USB_DCP,
>  	EXTCON_NONE,
>  };
> 
> @@ -389,7 +389,7 @@ static int sm5502_muic_cable_handler(struct
> sm5502_muic_info *info,
>  		vbus_sw	= VBUSIN_SWITCH_VBUSOUT_WITH_USB;
>  		break;
>  	case SM5502_MUIC_ADC_OPEN_TA:
> -		id	= EXTCON_TA;
> +		id	= EXTCON_CHG_USB_DCP;
>  		con_sw	= DM_DP_SWITCH_OPEN;
>  		vbus_sw	= VBUSIN_SWITCH_VBUSOUT;
>  		break;
> diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c index
> 8dd0af1d50bc..525e423f9cda 100644
> --- a/drivers/extcon/extcon.c
> +++ b/drivers/extcon/extcon.c
> @@ -39,37 +39,40 @@
>  #define CABLE_NAME_MAX		30
> 
>  static const char *extcon_name[] =  {
> -	[EXTCON_NONE]		= "NONE",
> +	[EXTCON_NONE]			= "EXTCON_NONE",
> 
>  	/* USB external connector */
> -	[EXTCON_USB]		= "USB",
> -	[EXTCON_USB_HOST]	= "USB-HOST",
> -
> -	/* Charger external connector */
> -	[EXTCON_TA]		= "TA",
> -	[EXTCON_FAST_CHARGER]	= "FAST-CHARGER",
> -	[EXTCON_SLOW_CHARGER]	= "SLOW-CHARGER",
> -	[EXTCON_CHARGE_DOWNSTREAM] = "CHARGE-DOWNSTREAM",
> -
> -	/* Audio/Video external connector */
> -	[EXTCON_LINE_IN]	= "LINE-IN",
> -	[EXTCON_LINE_OUT]	= "LINE-OUT",
> -	[EXTCON_MICROPHONE]	= "MICROPHONE",
> -	[EXTCON_HEADPHONE]	= "HEADPHONE",
> -
> -	[EXTCON_HDMI]		= "HDMI",
> -	[EXTCON_MHL]		= "MHL",
> -	[EXTCON_DVI]		= "DVI",
> -	[EXTCON_VGA]		= "VGA",
> -	[EXTCON_SPDIF_IN]	= "SPDIF-IN",
> -	[EXTCON_SPDIF_OUT]	= "SPDIF-OUT",
> -	[EXTCON_VIDEO_IN]	= "VIDEO-IN",
> -	[EXTCON_VIDEO_OUT]	= "VIDEO-OUT",
> -
> -	/* Etc external connector */
> -	[EXTCON_DOCK]		= "DOCK",
> -	[EXTCON_JIG]		= "JIG",
> -	[EXTCON_MECHANICAL]	= "MECHANICAL",
> +	[EXTCON_USB]			= "EXTCON_USB",
> +	[EXTCON_USB_HOST]		= "EXTCON_USB_HOST",
> +
> +	/* Charging external connector */
> +	[EXTCON_CHG_USB]		= "EXTCON_CHG_USB",
> +	[EXTCON_CHG_USB_CDP]		= "EXTCON_CHG_USB_CDP",
> +	[EXTCON_CHG_USB_DCP]		= "EXTCON_CHG_USB_DCP",
> +	[EXTCON_CHG_USB_DCP_FAST]	= "EXTCON_CHG_USB_DCP_FAST",
> +	[EXTCON_CHG_USB_DCP_SLOW]	=
> "EXTCON_CHG_USB_DCP_SLOW",
> +	[EXTCON_CHG_USB_ACA]		= "EXTCON_CHG_USB_ACA",
> +
> +	/* Jack external connector */
> +	[EXTCON_JACK_MICROPHONE]	= "EXTCON_JACK_MICROPHONE",
> +	[EXTCON_JACK_HEADPHONE]		=
> "EXTCON_JACK_HEADPHONE",
> +	[EXTCON_JACK_LINE_IN]		= "EXTCON_JACK_LINE_IN",
> +	[EXTCON_JACK_LINE_OUT]		= "EXTCON_JACK_LINE_OUT",
> +	[EXTCON_JACK_VIDEO_IN]		= "EXTCON_JACK_VIDEO_IN",
> +	[EXTCON_JACK_VIDEO_OUT]		=
> "EXTCON_JACK_VIDEO_OUT",
> +	[EXTCON_JACK_SPDIF_IN]		= "EXTCON_JACK_SPDIF_IN",
> +	[EXTCON_JACK_SPDIF_OUT]		=
> "EXTCON_JACK_SPDIF_OUT",
> +
> +	/* Display external connector */
> +	[EXTCON_DISP_HDMI]		= "EXTCON_DISP_HDMI",
> +	[EXTCON_DISP_MHL]		= "EXTCON_DISP_MHL",
> +	[EXTCON_DISP_DVI]		= "EXTCON_DISP_DVI",
> +	[EXTCON_DISP_VGA]		= "EXTCON_DISP_VGA",
> +
> +	/* Miscellaneous external connector */
> +	[EXTCON_DOCK]			= "EXTCON_DOCK",
> +	[EXTCON_JIG]			= "EXTCON_JIG",
> +	[EXTCON_MECHANICAL]		= "EXTCON_MECHANICAL",
> 
>  	NULL,
>  };
> diff --git a/include/linux/extcon.h b/include/linux/extcon.h index
> c0f8c4fc5d45..c8dd881e2b8d 100644
> --- a/include/linux/extcon.h
> +++ b/include/linux/extcon.h
> @@ -31,32 +31,42 @@
>  /*
>   * Define the unique id of supported external connectors
>   */
> -#define EXTCON_NONE			0
> -
> -#define EXTCON_USB			1	/* USB connector */
> -#define EXTCON_USB_HOST			2
> -
> -#define EXTCON_TA			3	/* Charger connector */
> -#define EXTCON_FAST_CHARGER		4
> -#define EXTCON_SLOW_CHARGER		5
> -#define EXTCON_CHARGE_DOWNSTREAM	6
> -
> -#define EXTCON_LINE_IN			7	/* Audio/Video
> connector */
> -#define EXTCON_LINE_OUT			8
> -#define EXTCON_MICROPHONE		9
> -#define EXTCON_HEADPHONE		10
> -#define EXTCON_HDMI			11
> -#define EXTCON_MHL			12
> -#define EXTCON_DVI			13
> -#define EXTCON_VGA			14
> -#define EXTCON_SPDIF_IN			15
> -#define EXTCON_SPDIF_OUT		16
> -#define EXTCON_VIDEO_IN			17
> -#define EXTCON_VIDEO_OUT		18
> -
> -#define EXTCON_DOCK			19	/* Misc connector */
> -#define EXTCON_JIG			20
> -#define EXTCON_MECHANICAL		21
> +#define EXTCON_NONE		0
> +
> +/* USB external connector */
> +#define EXTCON_USB		1	/* Universal Serial Bus */
> +#define EXTCON_USB_HOST		2
> +
> +/* Charging external connector */
> +#define EXTCON_CHG_USB		5	/* Standard Downstream Port
> */
> +#define EXTCON_CHG_USB_CDP	6	/* Charging Downstream Port
> */
> +#define EXTCON_CHG_USB_DCP	7	/* Dedicated Charging Port */
> +#define EXTCON_CHG_USB_DCP_FAST	8
> +#define EXTCON_CHG_USB_DCP_SLOW	9
> +#define EXTCON_CHG_USB_ACA	10	/* Accessory Charger Adapter
> */
> +
> +/* Jack external connector */
> +#define EXTCON_JACK_MICROPHONE	20
> +#define EXTCON_JACK_HEADPHONE	21
> +#define EXTCON_JACK_LINE_IN	22
> +#define EXTCON_JACK_LINE_OUT	23
> +#define EXTCON_JACK_VIDEO_IN	24
> +#define EXTCON_JACK_VIDEO_OUT	25
> +#define EXTCON_JACK_SPDIF_IN	26	/* Sony Philips Digital
> InterFace */
> +#define EXTCON_JACK_SPDIF_OUT	27
> +
> +/* Display external connector */
> +#define EXTCON_DISP_HDMI	40	/* High-Definition Multimedia
> Interface */
> +#define EXTCON_DISP_MHL		41	/* Mobile High-Definition Link
> */
> +#define EXTCON_DISP_DVI		42	/* Digital Visual Inteface */
> +#define EXTCON_DISP_VGA		43	/* Video Graphics Array */
> +
> +/* Miscellaneous external connector */
> +#define EXTCON_DOCK	60
> +#define EXTCON_JIG		61
> +#define EXTCON_MECHANICAL	62
> +
> +#define EXTCON_NUM		63

Can we change the #define macro's to enum's? is there problem with that?

Thanks,
Ram

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] extcon: Add the support of EXTCON_CHG_USB when SDP port is attached or detached
  2015-10-06 11:21 ` [PATCH 2/2] extcon: Add the support of EXTCON_CHG_USB when SDP port is attached or detached Chanwoo Choi
@ 2015-10-06 11:49   ` Roger Quadros
  2015-10-06 12:12     ` Chanwoo Choi
  0 siblings, 1 reply; 10+ messages in thread
From: Roger Quadros @ 2015-10-06 11:49 UTC (permalink / raw)
  To: Chanwoo Choi, linux-kernel
  Cc: k.kozlowski, ckeepax, gregkh, ramakrishna.pallala, patches, myungjoo.ham

Hi,

On 06/10/15 14:21, Chanwoo Choi wrote:
> The SDP (Standard Downstream Port) is one of various USB Charging ports. The SDP
> supports both the data transmission and the charging through USB connector at
> the same time. So, the EXTCON framework defines two connector type for USB SDP
> connector as following:
> - EXTCON_USB means the USB cable for data transmission.
> - EXTCON_CHG_USB means the USB charger cable for battery charging.
> 
> This patch add the support of EXTCON_CHG_USB when USB SDP is attached or
> detached.

I didn't understand why this change is needed. SDP, EXTCON_USB and EXTCON_CHG_USB
are the same thing. no?

cheers,
-roger

> 
> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> ---
>  drivers/extcon/extcon-max14577.c |  2 ++
>  drivers/extcon/extcon-max77693.c | 11 ++++++++++-
>  drivers/extcon/extcon-max77843.c |  2 ++
>  drivers/extcon/extcon-max8997.c  |  2 ++
>  drivers/extcon/extcon-palmas.c   |  3 +++
>  drivers/extcon/extcon-rt8973a.c  |  3 +++
>  drivers/extcon/extcon-sm5502.c   |  3 +++
>  drivers/extcon/extcon-usb-gpio.c |  3 +++
>  8 files changed, 28 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/extcon/extcon-max14577.c b/drivers/extcon/extcon-max14577.c
> index 15c2dcc73fc6..f262dad10560 100644
> --- a/drivers/extcon/extcon-max14577.c
> +++ b/drivers/extcon/extcon-max14577.c
> @@ -150,6 +150,7 @@ enum max14577_muic_acc_type {
>  
>  static const unsigned int max14577_extcon_cable[] = {
>  	EXTCON_USB,
> +	EXTCON_CHG_USB,
>  	EXTCON_CHG_USB_DCP,
>  	EXTCON_CHG_USB_DCP_FAST,
>  	EXTCON_CHG_USB_DCP_SLOW,
> @@ -454,6 +455,7 @@ static int max14577_muic_chg_handler(struct max14577_muic_info *info)
>  			return ret;
>  
>  		extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
>  		break;
>  	case MAX14577_CHARGER_TYPE_DEDICATED_CHG:
>  		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
> diff --git a/drivers/extcon/extcon-max77693.c b/drivers/extcon/extcon-max77693.c
> index 95c707b1fcee..ee63718de787 100644
> --- a/drivers/extcon/extcon-max77693.c
> +++ b/drivers/extcon/extcon-max77693.c
> @@ -204,6 +204,7 @@ enum max77693_muic_acc_type {
>  static const unsigned int max77693_extcon_cable[] = {
>  	EXTCON_USB,
>  	EXTCON_USB_HOST,
> +	EXTCON_CHG_USB,
>  	EXTCON_CHG_USB_DCP,
>  	EXTCON_CHG_USB_DCP_FAST,
>  	EXTCON_CHG_USB_DCP_SLOW,
> @@ -512,8 +513,11 @@ static int max77693_muic_dock_handler(struct max77693_muic_info *info,
>  		break;
>  	case MAX77693_MUIC_ADC_AV_CABLE_NOLOAD:		/* Dock-Audio */
>  		dock_id = EXTCON_DOCK;
> -		if (!attached)
> +		if (!attached) {
>  			extcon_set_cable_state_(info->edev, EXTCON_USB, false);
> +			extcon_set_cable_state_(info->edev, EXTCON_CHG_USB,
> +						false);
> +		}
>  		break;
>  	default:
>  		dev_err(info->dev, "failed to detect %s dock device\n",
> @@ -601,6 +605,7 @@ static int max77693_muic_adc_ground_handler(struct max77693_muic_info *info)
>  		if (ret < 0)
>  			return ret;
>  		extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
>  		break;
>  	case MAX77693_MUIC_GND_MHL:
>  	case MAX77693_MUIC_GND_MHL_VB:
> @@ -830,6 +835,8 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info)
>  			 */
>  			extcon_set_cable_state_(info->edev, EXTCON_USB,
>  						attached);
> +			extcon_set_cable_state_(info->edev, EXTCON_CHG_USB,
> +						attached);
>  
>  			if (!cable_attached)
>  				extcon_set_cable_state_(info->edev, EXTCON_DOCK,
> @@ -899,6 +906,8 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info)
>  
>  			extcon_set_cable_state_(info->edev, EXTCON_USB,
>  						attached);
> +			extcon_set_cable_state_(info->edev, EXTCON_CHG_USB,
> +						attached);
>  			break;
>  		case MAX77693_CHARGER_TYPE_DEDICATED_CHG:
>  			/* Only TA cable */
> diff --git a/drivers/extcon/extcon-max77843.c b/drivers/extcon/extcon-max77843.c
> index 97aebe5d67a6..5bfd4a5ec9c4 100644
> --- a/drivers/extcon/extcon-max77843.c
> +++ b/drivers/extcon/extcon-max77843.c
> @@ -122,6 +122,7 @@ enum max77843_muic_charger_type {
>  static const unsigned int max77843_extcon_cable[] = {
>  	EXTCON_USB,
>  	EXTCON_USB_HOST,
> +	EXTCON_CHG_USB,
>  	EXTCON_CHG_USB_DCP,
>  	EXTCON_CHG_USB_CDP,
>  	EXTCON_CHG_USB_DCP_FAST,
> @@ -486,6 +487,7 @@ static int max77843_muic_chg_handler(struct max77843_muic_info *info)
>  			return ret;
>  
>  		extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
>  		break;
>  	case MAX77843_MUIC_CHG_DOWNSTREAM:
>  		ret = max77843_muic_set_path(info,
> diff --git a/drivers/extcon/extcon-max8997.c b/drivers/extcon/extcon-max8997.c
> index 8dbec5febdb6..3e8c6ab546b6 100644
> --- a/drivers/extcon/extcon-max8997.c
> +++ b/drivers/extcon/extcon-max8997.c
> @@ -148,6 +148,7 @@ struct max8997_muic_info {
>  static const unsigned int max8997_extcon_cable[] = {
>  	EXTCON_USB,
>  	EXTCON_USB_HOST,
> +	EXTCON_CHG_USB,
>  	EXTCON_CHG_USB_DCP,
>  	EXTCON_CHG_USB_DCP_FAST,
>  	EXTCON_CHG_USB_DCP_SLOW,
> @@ -334,6 +335,7 @@ static int max8997_muic_handle_usb(struct max8997_muic_info *info,
>  		break;
>  	case MAX8997_USB_DEVICE:
>  		extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
>  		break;
>  	default:
>  		dev_err(info->dev, "failed to detect %s usb cable\n",
> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
> index 93c30a885740..a1e984ff4398 100644
> --- a/drivers/extcon/extcon-palmas.c
> +++ b/drivers/extcon/extcon-palmas.c
> @@ -37,6 +37,7 @@
>  static const unsigned int palmas_extcon_cable[] = {
>  	EXTCON_USB,
>  	EXTCON_USB_HOST,
> +	EXTCON_CHG_USB,
>  	EXTCON_NONE,
>  };
>  
> @@ -62,6 +63,7 @@ static irqreturn_t palmas_vbus_irq_handler(int irq, void *_palmas_usb)
>  		if (palmas_usb->linkstat != PALMAS_USB_STATE_VBUS) {
>  			palmas_usb->linkstat = PALMAS_USB_STATE_VBUS;
>  			extcon_set_cable_state_(edev, EXTCON_USB, true);
> +			extcon_set_cable_state_(edev, EXTCON_CHG_USB, true);
>  			dev_info(palmas_usb->dev, "USB cable is attached\n");
>  		} else {
>  			dev_dbg(palmas_usb->dev,
> @@ -71,6 +73,7 @@ static irqreturn_t palmas_vbus_irq_handler(int irq, void *_palmas_usb)
>  		if (palmas_usb->linkstat == PALMAS_USB_STATE_VBUS) {
>  			palmas_usb->linkstat = PALMAS_USB_STATE_DISCONNECT;
>  			extcon_set_cable_state_(edev, EXTCON_USB, false);
> +			extcon_set_cable_state_(edev, EXTCON_CHG_USB, false);
>  			dev_info(palmas_usb->dev, "USB cable is detached\n");
>  		} else {
>  			dev_dbg(palmas_usb->dev,
> diff --git a/drivers/extcon/extcon-rt8973a.c b/drivers/extcon/extcon-rt8973a.c
> index 36bf1d63791c..64c7d8a90a11 100644
> --- a/drivers/extcon/extcon-rt8973a.c
> +++ b/drivers/extcon/extcon-rt8973a.c
> @@ -93,6 +93,7 @@ static struct reg_data rt8973a_reg_data[] = {
>  static const unsigned int rt8973a_extcon_cable[] = {
>  	EXTCON_USB,
>  	EXTCON_USB_HOST,
> +	EXTCON_CHG_USB,
>  	EXTCON_CHG_USB_DCP,
>  	EXTCON_JIG,
>  	EXTCON_NONE,
> @@ -398,6 +399,8 @@ static int rt8973a_muic_cable_handler(struct rt8973a_muic_info *info,
>  
>  	/* Change the state of external accessory */
>  	extcon_set_cable_state_(info->edev, id, attached);
> +	if (id == EXTCON_USB)
> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
>  
>  	return 0;
>  }
> diff --git a/drivers/extcon/extcon-sm5502.c b/drivers/extcon/extcon-sm5502.c
> index 7aac3cc7efd7..24031759d306 100644
> --- a/drivers/extcon/extcon-sm5502.c
> +++ b/drivers/extcon/extcon-sm5502.c
> @@ -95,6 +95,7 @@ static struct reg_data sm5502_reg_data[] = {
>  static const unsigned int sm5502_extcon_cable[] = {
>  	EXTCON_USB,
>  	EXTCON_USB_HOST,
> +	EXTCON_CHG_USB,
>  	EXTCON_CHG_USB_DCP,
>  	EXTCON_NONE,
>  };
> @@ -411,6 +412,8 @@ static int sm5502_muic_cable_handler(struct sm5502_muic_info *info,
>  
>  	/* Change the state of external accessory */
>  	extcon_set_cable_state_(info->edev, id, attached);
> +	if (id == EXTCON_USB)
> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
>  
>  	return 0;
>  }
> diff --git a/drivers/extcon/extcon-usb-gpio.c b/drivers/extcon/extcon-usb-gpio.c
> index 2b2fecffb1ad..ae8e3df0b5a6 100644
> --- a/drivers/extcon/extcon-usb-gpio.c
> +++ b/drivers/extcon/extcon-usb-gpio.c
> @@ -43,6 +43,7 @@ struct usb_extcon_info {
>  static const unsigned int usb_extcon_cable[] = {
>  	EXTCON_USB,
>  	EXTCON_USB_HOST,
> +	EXTCON_CHG_USB,
>  	EXTCON_NONE,
>  };
>  
> @@ -63,12 +64,14 @@ static void usb_extcon_detect_cable(struct work_struct *work)
>  		 */
>  		extcon_set_cable_state_(info->edev, EXTCON_USB_HOST, false);
>  		extcon_set_cable_state_(info->edev, EXTCON_USB, true);
> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, true);
>  	} else {
>  		/*
>  		 * ID = 0 means USB HOST cable attached.
>  		 * As we don't have event for USB peripheral cable detached,
>  		 * we simulate USB peripheral detach here.
>  		 */
> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, false);
>  		extcon_set_cable_state_(info->edev, EXTCON_USB, false);
>  		extcon_set_cable_state_(info->edev, EXTCON_USB_HOST, true);
>  	}
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] extcon: Modify the id and name of external connector
  2015-10-06 11:42   ` Pallala, Ramakrishna
@ 2015-10-06 11:51     ` Chanwoo Choi
  2015-10-06 11:57       ` Pallala, Ramakrishna
  0 siblings, 1 reply; 10+ messages in thread
From: Chanwoo Choi @ 2015-10-06 11:51 UTC (permalink / raw)
  To: Pallala, Ramakrishna, linux-kernel
  Cc: k.kozlowski, ckeepax, gregkh, rogerq, patches, myungjoo.ham

Hi Ram,

On 2015년 10월 06일 20:42, Pallala, Ramakrishna wrote:
> Hi Choi,
> 
> 
>> Subject: [PATCH 1/2] extcon: Modify the id and name of external connector
>>
>> This patch modifies the id and name of external connector with the additional
>> prefix to clarify both attribute and meaning of external connector as following:
>> - EXTCON_CHG_* mean the charger connector.
>> - EXTCON_JACK_* mean the jack connector.
>> - EXTCON_DISP_* mean the display port connector.
>>
>> Following table show the new name of external connector with old name:
>> --------------------------------------------------
>> Old extcon name         | New extcon name        |
>> --------------------------------------------------
>> EXTCON_TA               | EXTCON_CHG_USB_DCP     |
>> EXTCON_FAST_CHARGER     | EXTCON_CHG_USB_DCP_FAST|
>> EXTCON_SLOW_CHARGER     | EXTCON_CHG_USB_DCP_SLOW|
>> EXTCON_CHARGE_DOWNSTREAM| EXTCON_CHG_USB_CDP     |
>> --------------------------------------------------
>> EXTCON_MICROPHONE       | EXTCON_JACK_MICROPHONE |
>> EXTCON_HEADPHONE        | EXTCON_JACK_HEADPHONE  |
>> EXTCON_LINE_IN          | EXTCON_JACK_LINE_IN    |
>> EXTCON_LINE_OUT         | EXTCON_JACK_LINE_OUT   |
>> EXTCON_VIDEO_IN         | EXTCON_JACK_VIDEO_IN   |
>> EXTCON_VIDEO_OUT        | EXTCON_JACK_VIDEO_OUT  |
>> EXTCON_SPDIF_IN         | EXTCON_JACK_SPDIF_IN   |
>> EXTCON_SPDIF_OUT        | EXTCON_JACK_SPDIF_OUT  |
>> --------------------------------------------------
>> EXTCON_HMDI             | EXTCON_DISP_HDMI       |
>> EXTCON_MHL              | EXTCON_DISP_MHL        |
>> EXTCON_DVI              | EXTCON_DISP_DVI        |
>> EXTCON_VGA              | EXTCON_DISP_VGA        |
>> --------------------------------------------------
>>
>> And, when altering the name of USB charger connector, EXTCON refers to the
>> "Battery Charging v1.2 Spec and Adopters Agreement"[1] to use the standard
>> name of USB charging port as following. Following name of USB charging port
>> are already used in power_supply subsystem. We chan check it on patch[2].
>> - EXTCON_CHG_USB	/* Standard Downstream Port */
>> - EXTCON_CHG_USB_DCP	/* Dedicated Charging Port */
>> - EXTCON_CHG_USB_CDP	/* Charging Downstream Port */
>> - EXTCON_CHG_USB_ACA	/* Accessory Charger Adapter */
>>
>> [1] www.usb.org/developers/docs/devclass_docs/BCv1.2_070312.zip
>> [2] commit 85efc8a18ce ("[PATCH] power_supply: Add types for USB chargers")
>>
>> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
>> [ckeepax: For the Arizona changes]
>> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
>> ---
>>  drivers/extcon/extcon-arizona.c  | 18 ++++++------
>>  drivers/extcon/extcon-axp288.c   | 12 ++++----
>>  drivers/extcon/extcon-max14577.c | 17 +++++------  drivers/extcon/extcon-
>> max77693.c | 32 +++++++++++----------  drivers/extcon/extcon-max77843.c | 27
>> +++++++++--------  drivers/extcon/extcon-max8997.c  | 21 +++++++-------
>> drivers/extcon/extcon-rt8973a.c  |  4 +--
>>  drivers/extcon/extcon-sm5502.c   |  4 +--
>>  drivers/extcon/extcon.c          | 61 ++++++++++++++++++++-------------------
>>  include/linux/extcon.h           | 62 +++++++++++++++++++++++-----------------
>>  10 files changed, 139 insertions(+), 119 deletions(-)
>>
>> diff --git a/drivers/extcon/extcon-arizona.c b/drivers/extcon/extcon-arizona.c
>> index a1ab0a56b798..e4890dd4fefd 100644
>> --- a/drivers/extcon/extcon-arizona.c
>> +++ b/drivers/extcon/extcon-arizona.c
>> @@ -137,9 +137,9 @@ static const int arizona_micd_levels[] = {
>>
>>  static const unsigned int arizona_cable[] = {
>>  	EXTCON_MECHANICAL,
>> -	EXTCON_MICROPHONE,
>> -	EXTCON_HEADPHONE,
>> -	EXTCON_LINE_OUT,
>> +	EXTCON_JACK_MICROPHONE,
>> +	EXTCON_JACK_HEADPHONE,
>> +	EXTCON_JACK_LINE_OUT,
>>  	EXTCON_NONE,
>>  };
>>
>> @@ -600,7 +600,7 @@ static irqreturn_t arizona_hpdet_irq(int irq, void *data)
>>  	struct arizona_extcon_info *info = data;
>>  	struct arizona *arizona = info->arizona;
>>  	int id_gpio = arizona->pdata.hpdet_id_gpio;
>> -	unsigned int report = EXTCON_HEADPHONE;
>> +	unsigned int report = EXTCON_JACK_HEADPHONE;
>>  	int ret, reading;
>>  	bool mic = false;
>>
>> @@ -645,9 +645,9 @@ static irqreturn_t arizona_hpdet_irq(int irq, void *data)
>>
>>  	/* Report high impedence cables as line outputs */
>>  	if (reading >= 5000)
>> -		report = EXTCON_LINE_OUT;
>> +		report = EXTCON_JACK_LINE_OUT;
>>  	else
>> -		report = EXTCON_HEADPHONE;
>> +		report = EXTCON_JACK_HEADPHONE;
>>
>>  	ret = extcon_set_cable_state_(info->edev, report, true);
>>  	if (ret != 0)
>> @@ -732,7 +732,7 @@ err:
>>  			   ARIZONA_ACCDET_MODE_MASK,
>> ARIZONA_ACCDET_MODE_MIC);
>>
>>  	/* Just report headphone */
>> -	ret = extcon_set_cable_state_(info->edev, EXTCON_HEADPHONE, true);
>> +	ret = extcon_set_cable_state_(info->edev, EXTCON_JACK_HEADPHONE,
>> +true);
>>  	if (ret != 0)
>>  		dev_err(arizona->dev, "Failed to report headphone: %d\n", ret);
>>
>> @@ -789,7 +789,7 @@ err:
>>  			   ARIZONA_ACCDET_MODE_MASK,
>> ARIZONA_ACCDET_MODE_MIC);
>>
>>  	/* Just report headphone */
>> -	ret = extcon_set_cable_state_(info->edev, EXTCON_HEADPHONE, true);
>> +	ret = extcon_set_cable_state_(info->edev, EXTCON_JACK_HEADPHONE,
>> +true);
>>  	if (ret != 0)
>>  		dev_err(arizona->dev, "Failed to report headphone: %d\n", ret);
>>
>> @@ -915,7 +915,7 @@ static void arizona_micd_detect(struct work_struct
>> *work)
>>  		arizona_identify_headphone(info);
>>
>>  		ret = extcon_set_cable_state_(info->edev,
>> -					      EXTCON_MICROPHONE, true);
>> +					      EXTCON_JACK_MICROPHONE,
>> true);
>>  		if (ret != 0)
>>  			dev_err(arizona->dev, "Headset report failed: %d\n",
>>  				ret);
>> diff --git a/drivers/extcon/extcon-axp288.c b/drivers/extcon/extcon-axp288.c
>> index 9668d6a94e38..14e748051288 100644
>> --- a/drivers/extcon/extcon-axp288.c
>> +++ b/drivers/extcon/extcon-axp288.c
>> @@ -102,9 +102,9 @@ enum axp288_extcon_irq {  };
>>
>>  static const unsigned int axp288_extcon_cables[] = {
>> -	EXTCON_SLOW_CHARGER,
>> -	EXTCON_CHARGE_DOWNSTREAM,
>> -	EXTCON_FAST_CHARGER,
>> +	EXTCON_CHG_USB_DCP_SLOW,
>> +	EXTCON_CHG_USB_CDP,
>> +	EXTCON_CHG_USB_DCP_FAST,
>>  	EXTCON_NONE,
>>  };
>>
>> @@ -192,18 +192,18 @@ static int axp288_handle_chrg_det_event(struct
>> axp288_extcon_info *info)
>>  		dev_dbg(info->dev, "sdp cable is connecetd\n");
>>  		notify_otg = true;
>>  		notify_charger = true;
>> -		cable = EXTCON_SLOW_CHARGER;
>> +		cable = EXTCON_CHG_USB_DCP_SLOW;
>>  		break;
>>  	case DET_STAT_CDP:
>>  		dev_dbg(info->dev, "cdp cable is connecetd\n");
>>  		notify_otg = true;
>>  		notify_charger = true;
>> -		cable = EXTCON_CHARGE_DOWNSTREAM;
>> +		cable = EXTCON_CHG_USB_CDP;
>>  		break;
>>  	case DET_STAT_DCP:
>>  		dev_dbg(info->dev, "dcp cable is connecetd\n");
>>  		notify_charger = true;
>> -		cable = EXTCON_FAST_CHARGER;
>> +		cable = EXTCON_CHG_USB_DCP_FAST;
>>  		break;
>>  	default:
>>  		dev_warn(info->dev,
>> diff --git a/drivers/extcon/extcon-max14577.c b/drivers/extcon/extcon-
>> max14577.c
>> index df0659d98e5a..15c2dcc73fc6 100644
>> --- a/drivers/extcon/extcon-max14577.c
>> +++ b/drivers/extcon/extcon-max14577.c
>> @@ -150,10 +150,10 @@ enum max14577_muic_acc_type {
>>
>>  static const unsigned int max14577_extcon_cable[] = {
>>  	EXTCON_USB,
>> -	EXTCON_TA,
>> -	EXTCON_FAST_CHARGER,
>> -	EXTCON_SLOW_CHARGER,
>> -	EXTCON_CHARGE_DOWNSTREAM,
>> +	EXTCON_CHG_USB_DCP,
>> +	EXTCON_CHG_USB_DCP_FAST,
>> +	EXTCON_CHG_USB_DCP_SLOW,
>> +	EXTCON_CHG_USB_CDP,
>>  	EXTCON_JIG,
>>  	EXTCON_NONE,
>>  };
>> @@ -456,18 +456,19 @@ static int max14577_muic_chg_handler(struct
>> max14577_muic_info *info)
>>  		extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
>>  		break;
>>  	case MAX14577_CHARGER_TYPE_DEDICATED_CHG:
>> -		extcon_set_cable_state_(info->edev, EXTCON_TA, attached);
>> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
>> +					attached);
>>  		break;
>>  	case MAX14577_CHARGER_TYPE_DOWNSTREAM_PORT:
>> -		extcon_set_cable_state_(info->edev,
>> EXTCON_CHARGE_DOWNSTREAM,
>> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_CDP,
>>  					attached);
>>  		break;
>>  	case MAX14577_CHARGER_TYPE_SPECIAL_500MA:
>> -		extcon_set_cable_state_(info->edev,
>> EXTCON_SLOW_CHARGER,
>> +		extcon_set_cable_state_(info->edev,
>> EXTCON_CHG_USB_DCP_SLOW,
>>  					attached);
>>  		break;
>>  	case MAX14577_CHARGER_TYPE_SPECIAL_1A:
>> -		extcon_set_cable_state_(info->edev, EXTCON_FAST_CHARGER,
>> +		extcon_set_cable_state_(info->edev,
>> EXTCON_CHG_USB_DCP_FAST,
>>  					attached);
>>  		break;
>>  	case MAX14577_CHARGER_TYPE_NONE:
>> diff --git a/drivers/extcon/extcon-max77693.c b/drivers/extcon/extcon-
>> max77693.c
>> index 35b9e118b2fb..95c707b1fcee 100644
>> --- a/drivers/extcon/extcon-max77693.c
>> +++ b/drivers/extcon/extcon-max77693.c
>> @@ -204,11 +204,11 @@ enum max77693_muic_acc_type {  static const
>> unsigned int max77693_extcon_cable[] = {
>>  	EXTCON_USB,
>>  	EXTCON_USB_HOST,
>> -	EXTCON_TA,
>> -	EXTCON_FAST_CHARGER,
>> -	EXTCON_SLOW_CHARGER,
>> -	EXTCON_CHARGE_DOWNSTREAM,
>> -	EXTCON_MHL,
>> +	EXTCON_CHG_USB_DCP,
>> +	EXTCON_CHG_USB_DCP_FAST,
>> +	EXTCON_CHG_USB_DCP_SLOW,
>> +	EXTCON_CHG_USB_CDP,
>> +	EXTCON_DISP_MHL,
>>  	EXTCON_JIG,
>>  	EXTCON_DOCK,
>>  	EXTCON_NONE,
>> @@ -505,7 +505,7 @@ static int max77693_muic_dock_handler(struct
>> max77693_muic_info *info,
>>  			return ret;
>>
>>  		extcon_set_cable_state_(info->edev, EXTCON_DOCK,
>> attached);
>> -		extcon_set_cable_state_(info->edev, EXTCON_MHL, attached);
>> +		extcon_set_cable_state_(info->edev, EXTCON_DISP_MHL,
>> attached);
>>  		goto out;
>>  	case MAX77693_MUIC_ADC_AUDIO_MODE_REMOTE:	/* Dock-Desk
>> */
>>  		dock_id = EXTCON_DOCK;
>> @@ -605,7 +605,7 @@ static int max77693_muic_adc_ground_handler(struct
>> max77693_muic_info *info)
>>  	case MAX77693_MUIC_GND_MHL:
>>  	case MAX77693_MUIC_GND_MHL_VB:
>>  		/* MHL or MHL with USB/TA cable */
>> -		extcon_set_cable_state_(info->edev, EXTCON_MHL, attached);
>> +		extcon_set_cable_state_(info->edev, EXTCON_DISP_MHL,
>> attached);
>>  		break;
>>  	default:
>>  		dev_err(info->dev, "failed to detect %s cable of gnd type\n",
>> @@ -801,10 +801,11 @@ static int max77693_muic_chg_handler(struct
>> max77693_muic_info *info)
>>  			 * - Support charging through micro-usb port without
>>  			 *   data connection
>>  			 */
>> -			extcon_set_cable_state_(info->edev, EXTCON_TA,
>> attached);
>> +			extcon_set_cable_state_(info->edev,
>> EXTCON_CHG_USB_DCP,
>> +						attached);
>>  			if (!cable_attached)
>> -				extcon_set_cable_state_(info->edev,
>> EXTCON_MHL,
>> -							cable_attached);
>> +				extcon_set_cable_state_(info->edev,
>> +						EXTCON_DISP_MHL,
>> cable_attached);
>>  			break;
>>  		}
>>
>> @@ -862,7 +863,7 @@ static int max77693_muic_chg_handler(struct
>> max77693_muic_info *info)
>>
>>  			extcon_set_cable_state_(info->edev, EXTCON_DOCK,
>>  						attached);
>> -			extcon_set_cable_state_(info->edev, EXTCON_MHL,
>> +			extcon_set_cable_state_(info->edev,
>> EXTCON_DISP_MHL,
>>  						attached);
>>  			break;
>>  		}
>> @@ -901,20 +902,21 @@ static int max77693_muic_chg_handler(struct
>> max77693_muic_info *info)
>>  			break;
>>  		case MAX77693_CHARGER_TYPE_DEDICATED_CHG:
>>  			/* Only TA cable */
>> -			extcon_set_cable_state_(info->edev, EXTCON_TA,
>> attached);
>> +			extcon_set_cable_state_(info->edev,
>> EXTCON_CHG_USB_DCP,
>> +						attached);
>>  			break;
>>  		}
>>  		break;
>>  	case MAX77693_CHARGER_TYPE_DOWNSTREAM_PORT:
>> -		extcon_set_cable_state_(info->edev,
>> EXTCON_CHARGE_DOWNSTREAM,
>> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_CDP,
>>  					attached);
>>  		break;
>>  	case MAX77693_CHARGER_TYPE_APPLE_500MA:
>> -		extcon_set_cable_state_(info->edev,
>> EXTCON_SLOW_CHARGER,
>> +		extcon_set_cable_state_(info->edev,
>> EXTCON_CHG_USB_DCP_SLOW,
>>  					attached);
>>  		break;
>>  	case MAX77693_CHARGER_TYPE_APPLE_1A_2A:
>> -		extcon_set_cable_state_(info->edev, EXTCON_FAST_CHARGER,
>> +		extcon_set_cable_state_(info->edev,
>> EXTCON_CHG_USB_DCP_FAST,
>>  					attached);
>>  		break;
>>  	case MAX77693_CHARGER_TYPE_DEAD_BATTERY:
>> diff --git a/drivers/extcon/extcon-max77843.c b/drivers/extcon/extcon-
>> max77843.c
>> index fdd928542c19..97aebe5d67a6 100644
>> --- a/drivers/extcon/extcon-max77843.c
>> +++ b/drivers/extcon/extcon-max77843.c
>> @@ -122,11 +122,11 @@ enum max77843_muic_charger_type {  static const
>> unsigned int max77843_extcon_cable[] = {
>>  	EXTCON_USB,
>>  	EXTCON_USB_HOST,
>> -	EXTCON_TA,
>> -	EXTCON_CHARGE_DOWNSTREAM,
>> -	EXTCON_FAST_CHARGER,
>> -	EXTCON_SLOW_CHARGER,
>> -	EXTCON_MHL,
>> +	EXTCON_CHG_USB_DCP,
>> +	EXTCON_CHG_USB_CDP,
>> +	EXTCON_CHG_USB_DCP_FAST,
>> +	EXTCON_CHG_USB_DCP_SLOW,
>> +	EXTCON_DISP_MHL,
>>  	EXTCON_JIG,
>>  	EXTCON_NONE,
>>  };
>> @@ -355,7 +355,7 @@ static int max77843_muic_adc_gnd_handler(struct
>> max77843_muic_info *info)
>>  		if (ret < 0)
>>  			return ret;
>>
>> -		extcon_set_cable_state_(info->edev, EXTCON_MHL, attached);
>> +		extcon_set_cable_state_(info->edev, EXTCON_DISP_MHL,
>> attached);
>>  		break;
>>  	default:
>>  		dev_err(info->dev, "failed to detect %s accessory(gnd:0x%x)\n",
>> @@ -494,7 +494,7 @@ static int max77843_muic_chg_handler(struct
>> max77843_muic_info *info)
>>  		if (ret < 0)
>>  			return ret;
>>
>> -		extcon_set_cable_state_(info->edev,
>> EXTCON_CHARGE_DOWNSTREAM,
>> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_CDP,
>>  					attached);
>>  		break;
>>  	case MAX77843_MUIC_CHG_DEDICATED:
>> @@ -504,7 +504,8 @@ static int max77843_muic_chg_handler(struct
>> max77843_muic_info *info)
>>  		if (ret < 0)
>>  			return ret;
>>
>> -		extcon_set_cable_state_(info->edev, EXTCON_TA, attached);
>> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
>> +					attached);
>>  		break;
>>  	case MAX77843_MUIC_CHG_SPECIAL_500MA:
>>  		ret = max77843_muic_set_path(info,
>> @@ -513,7 +514,7 @@ static int max77843_muic_chg_handler(struct
>> max77843_muic_info *info)
>>  		if (ret < 0)
>>  			return ret;
>>
>> -		extcon_set_cable_state_(info->edev,
>> EXTCON_SLOW_CHARGER,
>> +		extcon_set_cable_state_(info->edev,
>> EXTCON_CHG_USB_DCP_SLOW,
>>  					attached);
>>  		break;
>>  	case MAX77843_MUIC_CHG_SPECIAL_1A:
>> @@ -523,7 +524,7 @@ static int max77843_muic_chg_handler(struct
>> max77843_muic_info *info)
>>  		if (ret < 0)
>>  			return ret;
>>
>> -		extcon_set_cable_state_(info->edev, EXTCON_FAST_CHARGER,
>> +		extcon_set_cable_state_(info->edev,
>> EXTCON_CHG_USB_DCP_FAST,
>>  					attached);
>>  		break;
>>  	case MAX77843_MUIC_CHG_GND:
>> @@ -532,9 +533,11 @@ static int max77843_muic_chg_handler(struct
>> max77843_muic_info *info)
>>
>>  		/* Charger cable on MHL accessory is attach or detach */
>>  		if (gnd_type == MAX77843_MUIC_GND_MHL_VB)
>> -			extcon_set_cable_state_(info->edev, EXTCON_TA,
>> true);
>> +			extcon_set_cable_state_(info->edev,
>> EXTCON_CHG_USB_DCP,
>> +						true);
>>  		else if (gnd_type == MAX77843_MUIC_GND_MHL)
>> -			extcon_set_cable_state_(info->edev, EXTCON_TA,
>> false);
>> +			extcon_set_cable_state_(info->edev,
>> EXTCON_CHG_USB_DCP,
>> +						false);
>>  		break;
>>  	case MAX77843_MUIC_CHG_NONE:
>>  		break;
>> diff --git a/drivers/extcon/extcon-max8997.c b/drivers/extcon/extcon-
>> max8997.c index 7b1ef200b121..8dbec5febdb6 100644
>> --- a/drivers/extcon/extcon-max8997.c
>> +++ b/drivers/extcon/extcon-max8997.c
>> @@ -148,11 +148,11 @@ struct max8997_muic_info {  static const unsigned int
>> max8997_extcon_cable[] = {
>>  	EXTCON_USB,
>>  	EXTCON_USB_HOST,
>> -	EXTCON_TA,
>> -	EXTCON_FAST_CHARGER,
>> -	EXTCON_SLOW_CHARGER,
>> -	EXTCON_CHARGE_DOWNSTREAM,
>> -	EXTCON_MHL,
>> +	EXTCON_CHG_USB_DCP,
>> +	EXTCON_CHG_USB_DCP_FAST,
>> +	EXTCON_CHG_USB_DCP_SLOW,
>> +	EXTCON_CHG_USB_CDP,
>> +	EXTCON_DISP_MHL,
>>  	EXTCON_DOCK,
>>  	EXTCON_JIG,
>>  	EXTCON_NONE,
>> @@ -403,7 +403,7 @@ static int max8997_muic_adc_handler(struct
>> max8997_muic_info *info)
>>  			return ret;
>>  		break;
>>  	case MAX8997_MUIC_ADC_MHL:
>> -		extcon_set_cable_state_(info->edev, EXTCON_MHL, attached);
>> +		extcon_set_cable_state_(info->edev, EXTCON_DISP_MHL,
>> attached);
>>  		break;
>>  	case MAX8997_MUIC_ADC_FACTORY_MODE_USB_OFF:
>>  	case MAX8997_MUIC_ADC_FACTORY_MODE_USB_ON:
>> @@ -486,18 +486,19 @@ static int max8997_muic_chg_handler(struct
>> max8997_muic_info *info)
>>  		}
>>  		break;
>>  	case MAX8997_CHARGER_TYPE_DOWNSTREAM_PORT:
>> -		extcon_set_cable_state_(info->edev,
>> EXTCON_CHARGE_DOWNSTREAM,
>> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_CDP,
>>  					attached);
>>  		break;
>>  	case MAX8997_CHARGER_TYPE_DEDICATED_CHG:
>> -		extcon_set_cable_state_(info->edev, EXTCON_TA, attached);
>> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
>> +					attached);
>>  		break;
>>  	case MAX8997_CHARGER_TYPE_500MA:
>> -		extcon_set_cable_state_(info->edev,
>> EXTCON_SLOW_CHARGER,
>> +		extcon_set_cable_state_(info->edev,
>> EXTCON_CHG_USB_DCP_SLOW,
>>  					attached);
>>  		break;
>>  	case MAX8997_CHARGER_TYPE_1A:
>> -		extcon_set_cable_state_(info->edev, EXTCON_FAST_CHARGER,
>> +		extcon_set_cable_state_(info->edev,
>> EXTCON_CHG_USB_DCP_FAST,
>>  					attached);
>>  		break;
>>  	default:
>> diff --git a/drivers/extcon/extcon-rt8973a.c b/drivers/extcon/extcon-rt8973a.c
>> index 1bc3737ea01c..36bf1d63791c 100644
>> --- a/drivers/extcon/extcon-rt8973a.c
>> +++ b/drivers/extcon/extcon-rt8973a.c
>> @@ -93,7 +93,7 @@ static struct reg_data rt8973a_reg_data[] = {  static const
>> unsigned int rt8973a_extcon_cable[] = {
>>  	EXTCON_USB,
>>  	EXTCON_USB_HOST,
>> -	EXTCON_TA,
>> +	EXTCON_CHG_USB_DCP,
>>  	EXTCON_JIG,
>>  	EXTCON_NONE,
>>  };
>> @@ -333,7 +333,7 @@ static int rt8973a_muic_cable_handler(struct
>> rt8973a_muic_info *info,
>>  		con_sw = DM_DP_SWITCH_USB;
>>  		break;
>>  	case RT8973A_MUIC_ADC_TA:
>> -		id = EXTCON_TA;
>> +		id = EXTCON_CHG_USB_DCP;
>>  		con_sw = DM_DP_SWITCH_OPEN;
>>  		break;
>>  	case RT8973A_MUIC_ADC_FACTORY_MODE_BOOT_OFF_USB:
>> diff --git a/drivers/extcon/extcon-sm5502.c b/drivers/extcon/extcon-sm5502.c
>> index 2945091bfd0e..7aac3cc7efd7 100644
>> --- a/drivers/extcon/extcon-sm5502.c
>> +++ b/drivers/extcon/extcon-sm5502.c
>> @@ -95,7 +95,7 @@ static struct reg_data sm5502_reg_data[] = {  static const
>> unsigned int sm5502_extcon_cable[] = {
>>  	EXTCON_USB,
>>  	EXTCON_USB_HOST,
>> -	EXTCON_TA,
>> +	EXTCON_CHG_USB_DCP,
>>  	EXTCON_NONE,
>>  };
>>
>> @@ -389,7 +389,7 @@ static int sm5502_muic_cable_handler(struct
>> sm5502_muic_info *info,
>>  		vbus_sw	= VBUSIN_SWITCH_VBUSOUT_WITH_USB;
>>  		break;
>>  	case SM5502_MUIC_ADC_OPEN_TA:
>> -		id	= EXTCON_TA;
>> +		id	= EXTCON_CHG_USB_DCP;
>>  		con_sw	= DM_DP_SWITCH_OPEN;
>>  		vbus_sw	= VBUSIN_SWITCH_VBUSOUT;
>>  		break;
>> diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c index
>> 8dd0af1d50bc..525e423f9cda 100644
>> --- a/drivers/extcon/extcon.c
>> +++ b/drivers/extcon/extcon.c
>> @@ -39,37 +39,40 @@
>>  #define CABLE_NAME_MAX		30
>>
>>  static const char *extcon_name[] =  {
>> -	[EXTCON_NONE]		= "NONE",
>> +	[EXTCON_NONE]			= "EXTCON_NONE",
>>
>>  	/* USB external connector */
>> -	[EXTCON_USB]		= "USB",
>> -	[EXTCON_USB_HOST]	= "USB-HOST",
>> -
>> -	/* Charger external connector */
>> -	[EXTCON_TA]		= "TA",
>> -	[EXTCON_FAST_CHARGER]	= "FAST-CHARGER",
>> -	[EXTCON_SLOW_CHARGER]	= "SLOW-CHARGER",
>> -	[EXTCON_CHARGE_DOWNSTREAM] = "CHARGE-DOWNSTREAM",
>> -
>> -	/* Audio/Video external connector */
>> -	[EXTCON_LINE_IN]	= "LINE-IN",
>> -	[EXTCON_LINE_OUT]	= "LINE-OUT",
>> -	[EXTCON_MICROPHONE]	= "MICROPHONE",
>> -	[EXTCON_HEADPHONE]	= "HEADPHONE",
>> -
>> -	[EXTCON_HDMI]		= "HDMI",
>> -	[EXTCON_MHL]		= "MHL",
>> -	[EXTCON_DVI]		= "DVI",
>> -	[EXTCON_VGA]		= "VGA",
>> -	[EXTCON_SPDIF_IN]	= "SPDIF-IN",
>> -	[EXTCON_SPDIF_OUT]	= "SPDIF-OUT",
>> -	[EXTCON_VIDEO_IN]	= "VIDEO-IN",
>> -	[EXTCON_VIDEO_OUT]	= "VIDEO-OUT",
>> -
>> -	/* Etc external connector */
>> -	[EXTCON_DOCK]		= "DOCK",
>> -	[EXTCON_JIG]		= "JIG",
>> -	[EXTCON_MECHANICAL]	= "MECHANICAL",
>> +	[EXTCON_USB]			= "EXTCON_USB",
>> +	[EXTCON_USB_HOST]		= "EXTCON_USB_HOST",
>> +
>> +	/* Charging external connector */
>> +	[EXTCON_CHG_USB]		= "EXTCON_CHG_USB",
>> +	[EXTCON_CHG_USB_CDP]		= "EXTCON_CHG_USB_CDP",
>> +	[EXTCON_CHG_USB_DCP]		= "EXTCON_CHG_USB_DCP",
>> +	[EXTCON_CHG_USB_DCP_FAST]	= "EXTCON_CHG_USB_DCP_FAST",
>> +	[EXTCON_CHG_USB_DCP_SLOW]	=
>> "EXTCON_CHG_USB_DCP_SLOW",
>> +	[EXTCON_CHG_USB_ACA]		= "EXTCON_CHG_USB_ACA",
>> +
>> +	/* Jack external connector */
>> +	[EXTCON_JACK_MICROPHONE]	= "EXTCON_JACK_MICROPHONE",
>> +	[EXTCON_JACK_HEADPHONE]		=
>> "EXTCON_JACK_HEADPHONE",
>> +	[EXTCON_JACK_LINE_IN]		= "EXTCON_JACK_LINE_IN",
>> +	[EXTCON_JACK_LINE_OUT]		= "EXTCON_JACK_LINE_OUT",
>> +	[EXTCON_JACK_VIDEO_IN]		= "EXTCON_JACK_VIDEO_IN",
>> +	[EXTCON_JACK_VIDEO_OUT]		=
>> "EXTCON_JACK_VIDEO_OUT",
>> +	[EXTCON_JACK_SPDIF_IN]		= "EXTCON_JACK_SPDIF_IN",
>> +	[EXTCON_JACK_SPDIF_OUT]		=
>> "EXTCON_JACK_SPDIF_OUT",
>> +
>> +	/* Display external connector */
>> +	[EXTCON_DISP_HDMI]		= "EXTCON_DISP_HDMI",
>> +	[EXTCON_DISP_MHL]		= "EXTCON_DISP_MHL",
>> +	[EXTCON_DISP_DVI]		= "EXTCON_DISP_DVI",
>> +	[EXTCON_DISP_VGA]		= "EXTCON_DISP_VGA",
>> +
>> +	/* Miscellaneous external connector */
>> +	[EXTCON_DOCK]			= "EXTCON_DOCK",
>> +	[EXTCON_JIG]			= "EXTCON_JIG",
>> +	[EXTCON_MECHANICAL]		= "EXTCON_MECHANICAL",
>>
>>  	NULL,
>>  };
>> diff --git a/include/linux/extcon.h b/include/linux/extcon.h index
>> c0f8c4fc5d45..c8dd881e2b8d 100644
>> --- a/include/linux/extcon.h
>> +++ b/include/linux/extcon.h
>> @@ -31,32 +31,42 @@
>>  /*
>>   * Define the unique id of supported external connectors
>>   */
>> -#define EXTCON_NONE			0
>> -
>> -#define EXTCON_USB			1	/* USB connector */
>> -#define EXTCON_USB_HOST			2
>> -
>> -#define EXTCON_TA			3	/* Charger connector */
>> -#define EXTCON_FAST_CHARGER		4
>> -#define EXTCON_SLOW_CHARGER		5
>> -#define EXTCON_CHARGE_DOWNSTREAM	6
>> -
>> -#define EXTCON_LINE_IN			7	/* Audio/Video
>> connector */
>> -#define EXTCON_LINE_OUT			8
>> -#define EXTCON_MICROPHONE		9
>> -#define EXTCON_HEADPHONE		10
>> -#define EXTCON_HDMI			11
>> -#define EXTCON_MHL			12
>> -#define EXTCON_DVI			13
>> -#define EXTCON_VGA			14
>> -#define EXTCON_SPDIF_IN			15
>> -#define EXTCON_SPDIF_OUT		16
>> -#define EXTCON_VIDEO_IN			17
>> -#define EXTCON_VIDEO_OUT		18
>> -
>> -#define EXTCON_DOCK			19	/* Misc connector */
>> -#define EXTCON_JIG			20
>> -#define EXTCON_MECHANICAL		21
>> +#define EXTCON_NONE		0
>> +
>> +/* USB external connector */
>> +#define EXTCON_USB		1	/* Universal Serial Bus */
>> +#define EXTCON_USB_HOST		2
>> +
>> +/* Charging external connector */
>> +#define EXTCON_CHG_USB		5	/* Standard Downstream Port
>> */
>> +#define EXTCON_CHG_USB_CDP	6	/* Charging Downstream Port
>> */
>> +#define EXTCON_CHG_USB_DCP	7	/* Dedicated Charging Port */
>> +#define EXTCON_CHG_USB_DCP_FAST	8
>> +#define EXTCON_CHG_USB_DCP_SLOW	9
>> +#define EXTCON_CHG_USB_ACA	10	/* Accessory Charger Adapter
>> */
>> +
>> +/* Jack external connector */
>> +#define EXTCON_JACK_MICROPHONE	20
>> +#define EXTCON_JACK_HEADPHONE	21
>> +#define EXTCON_JACK_LINE_IN	22
>> +#define EXTCON_JACK_LINE_OUT	23
>> +#define EXTCON_JACK_VIDEO_IN	24
>> +#define EXTCON_JACK_VIDEO_OUT	25
>> +#define EXTCON_JACK_SPDIF_IN	26	/* Sony Philips Digital
>> InterFace */
>> +#define EXTCON_JACK_SPDIF_OUT	27
>> +
>> +/* Display external connector */
>> +#define EXTCON_DISP_HDMI	40	/* High-Definition Multimedia
>> Interface */
>> +#define EXTCON_DISP_MHL		41	/* Mobile High-Definition Link
>> */
>> +#define EXTCON_DISP_DVI		42	/* Digital Visual Inteface */
>> +#define EXTCON_DISP_VGA		43	/* Video Graphics Array */
>> +
>> +/* Miscellaneous external connector */
>> +#define EXTCON_DOCK	60
>> +#define EXTCON_JIG		61
>> +#define EXTCON_MECHANICAL	62
>> +
>> +#define EXTCON_NUM		63
> 
> Can we change the #define macro's to enum's? is there problem with that?

It is possible. But, the unique id of external connector will be used on device tree file
as following patch[1]. Following patch[1] defines the include/dt-bindings/extcon/extcon.h
which is include in *.dts file. In *.dts file, we can not use the 'enum'.
[1] https://lkml.org/lkml/2015/10/5/38
So, I use the "#define" keyword instead of enum.

I used the 'enum' on first patch to define the unique id
but I altered it by using '#define' instead of 'enum' on following patch[2].
[2] commit 73b6ecdb93e8e ("extcon: Redefine the unique id of supported external connectors without 'enum extcon' type")

Thanks,
Chanwoo Choi


^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH 1/2] extcon: Modify the id and name of external connector
  2015-10-06 11:51     ` Chanwoo Choi
@ 2015-10-06 11:57       ` Pallala, Ramakrishna
  0 siblings, 0 replies; 10+ messages in thread
From: Pallala, Ramakrishna @ 2015-10-06 11:57 UTC (permalink / raw)
  To: Chanwoo Choi, linux-kernel
  Cc: k.kozlowski, ckeepax, gregkh, rogerq, patches, myungjoo.ham

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 3489 bytes --]

> >> diff --git a/include/linux/extcon.h b/include/linux/extcon.h index
> >> c0f8c4fc5d45..c8dd881e2b8d 100644
> >> --- a/include/linux/extcon.h
> >> +++ b/include/linux/extcon.h
> >> @@ -31,32 +31,42 @@
> >>  /*
> >>   * Define the unique id of supported external connectors
> >>   */
> >> -#define EXTCON_NONE			0
> >> -
> >> -#define EXTCON_USB			1	/* USB connector */
> >> -#define EXTCON_USB_HOST			2
> >> -
> >> -#define EXTCON_TA			3	/* Charger connector */
> >> -#define EXTCON_FAST_CHARGER		4
> >> -#define EXTCON_SLOW_CHARGER		5
> >> -#define EXTCON_CHARGE_DOWNSTREAM	6
> >> -
> >> -#define EXTCON_LINE_IN			7	/* Audio/Video
> >> connector */
> >> -#define EXTCON_LINE_OUT			8
> >> -#define EXTCON_MICROPHONE		9
> >> -#define EXTCON_HEADPHONE		10
> >> -#define EXTCON_HDMI			11
> >> -#define EXTCON_MHL			12
> >> -#define EXTCON_DVI			13
> >> -#define EXTCON_VGA			14
> >> -#define EXTCON_SPDIF_IN			15
> >> -#define EXTCON_SPDIF_OUT		16
> >> -#define EXTCON_VIDEO_IN			17
> >> -#define EXTCON_VIDEO_OUT		18
> >> -
> >> -#define EXTCON_DOCK			19	/* Misc connector */
> >> -#define EXTCON_JIG			20
> >> -#define EXTCON_MECHANICAL		21
> >> +#define EXTCON_NONE		0
> >> +
> >> +/* USB external connector */
> >> +#define EXTCON_USB		1	/* Universal Serial Bus */
> >> +#define EXTCON_USB_HOST		2
> >> +
> >> +/* Charging external connector */
> >> +#define EXTCON_CHG_USB		5	/* Standard Downstream Port
> >> */
> >> +#define EXTCON_CHG_USB_CDP	6	/* Charging Downstream Port
> >> */
> >> +#define EXTCON_CHG_USB_DCP	7	/* Dedicated Charging Port */
> >> +#define EXTCON_CHG_USB_DCP_FAST	8
> >> +#define EXTCON_CHG_USB_DCP_SLOW	9
> >> +#define EXTCON_CHG_USB_ACA	10	/* Accessory Charger Adapter
> >> */
> >> +
> >> +/* Jack external connector */
> >> +#define EXTCON_JACK_MICROPHONE	20
> >> +#define EXTCON_JACK_HEADPHONE	21
> >> +#define EXTCON_JACK_LINE_IN	22
> >> +#define EXTCON_JACK_LINE_OUT	23
> >> +#define EXTCON_JACK_VIDEO_IN	24
> >> +#define EXTCON_JACK_VIDEO_OUT	25
> >> +#define EXTCON_JACK_SPDIF_IN	26	/* Sony Philips Digital
> >> InterFace */
> >> +#define EXTCON_JACK_SPDIF_OUT	27
> >> +
> >> +/* Display external connector */
> >> +#define EXTCON_DISP_HDMI	40	/* High-Definition Multimedia
> >> Interface */
> >> +#define EXTCON_DISP_MHL		41	/* Mobile High-Definition Link
> >> */
> >> +#define EXTCON_DISP_DVI		42	/* Digital Visual Inteface */
> >> +#define EXTCON_DISP_VGA		43	/* Video Graphics Array */
> >> +
> >> +/* Miscellaneous external connector */
> >> +#define EXTCON_DOCK	60
> >> +#define EXTCON_JIG		61
> >> +#define EXTCON_MECHANICAL	62
> >> +
> >> +#define EXTCON_NUM		63
> >
> > Can we change the #define macro's to enum's? is there problem with that?
> 
> It is possible. But, the unique id of external connector will be used on device tree
> file as following patch[1]. Following patch[1] defines the include/dt-
> bindings/extcon/extcon.h
> which is include in *.dts file. In *.dts file, we can not use the 'enum'.
> [1] https://lkml.org/lkml/2015/10/5/38
> So, I use the "#define" keyword instead of enum.
> 
> I used the 'enum' on first patch to define the unique id but I altered it by using
> '#define' instead of 'enum' on following patch[2].
> [2] commit 73b6ecdb93e8e ("extcon: Redefine the unique id of supported
> external connectors without 'enum extcon' type")

Ok. Thanks.

-Ram
ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] extcon: Add the support of EXTCON_CHG_USB when SDP port is attached or detached
  2015-10-06 11:49   ` Roger Quadros
@ 2015-10-06 12:12     ` Chanwoo Choi
  2015-10-06 12:22       ` Roger Quadros
  0 siblings, 1 reply; 10+ messages in thread
From: Chanwoo Choi @ 2015-10-06 12:12 UTC (permalink / raw)
  To: Roger Quadros, linux-kernel
  Cc: k.kozlowski, ckeepax, gregkh, ramakrishna.pallala, patches, myungjoo.ham

Roger,

On 2015년 10월 06일 20:49, Roger Quadros wrote:
> Hi,
> 
> On 06/10/15 14:21, Chanwoo Choi wrote:
>> The SDP (Standard Downstream Port) is one of various USB Charging ports. The SDP
>> supports both the data transmission and the charging through USB connector at
>> the same time. So, the EXTCON framework defines two connector type for USB SDP
>> connector as following:
>> - EXTCON_USB means the USB cable for data transmission.
>> - EXTCON_CHG_USB means the USB charger cable for battery charging.
>>
>> This patch add the support of EXTCON_CHG_USB when USB SDP is attached or
>> detached.
> 
> I didn't understand why this change is needed. SDP, EXTCON_USB and EXTCON_CHG_USB
> are the same thing. no?

As you knew, SDP support both data transmission and charging
through one port at the same time. Also, On patch1 of this patch-set,
I add the prefix to clarify both attribute and meaning of external connector as following:
- EXTCON_CHG_* mean the charger connector.

So, there are three possible naming approach for USB SDP.

Approach 1.
- EXTCON_USB		/* SDP for both data transmission and charging */

Approach 2.
- EXTCON_USB		/* SDP for data transmission */
- EXTCON_CHG_USB	/* SDP for charging */

Approach 3.
- EXTCON_CHG_USB	/* SDP for both data transmission and charging */

It is not fixed about name. I want to discuss what is proper name for USB SDP.

Thanks,
Chanwoo Choi

> 
> cheers,
> -roger
> 
>>
>> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
>> ---
>>  drivers/extcon/extcon-max14577.c |  2 ++
>>  drivers/extcon/extcon-max77693.c | 11 ++++++++++-
>>  drivers/extcon/extcon-max77843.c |  2 ++
>>  drivers/extcon/extcon-max8997.c  |  2 ++
>>  drivers/extcon/extcon-palmas.c   |  3 +++
>>  drivers/extcon/extcon-rt8973a.c  |  3 +++
>>  drivers/extcon/extcon-sm5502.c   |  3 +++
>>  drivers/extcon/extcon-usb-gpio.c |  3 +++
>>  8 files changed, 28 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/extcon/extcon-max14577.c b/drivers/extcon/extcon-max14577.c
>> index 15c2dcc73fc6..f262dad10560 100644
>> --- a/drivers/extcon/extcon-max14577.c
>> +++ b/drivers/extcon/extcon-max14577.c
>> @@ -150,6 +150,7 @@ enum max14577_muic_acc_type {
>>  
>>  static const unsigned int max14577_extcon_cable[] = {
>>  	EXTCON_USB,
>> +	EXTCON_CHG_USB,
>>  	EXTCON_CHG_USB_DCP,
>>  	EXTCON_CHG_USB_DCP_FAST,
>>  	EXTCON_CHG_USB_DCP_SLOW,
>> @@ -454,6 +455,7 @@ static int max14577_muic_chg_handler(struct max14577_muic_info *info)
>>  			return ret;
>>  
>>  		extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
>> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
>>  		break;
>>  	case MAX14577_CHARGER_TYPE_DEDICATED_CHG:
>>  		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB_DCP,
>> diff --git a/drivers/extcon/extcon-max77693.c b/drivers/extcon/extcon-max77693.c
>> index 95c707b1fcee..ee63718de787 100644
>> --- a/drivers/extcon/extcon-max77693.c
>> +++ b/drivers/extcon/extcon-max77693.c
>> @@ -204,6 +204,7 @@ enum max77693_muic_acc_type {
>>  static const unsigned int max77693_extcon_cable[] = {
>>  	EXTCON_USB,
>>  	EXTCON_USB_HOST,
>> +	EXTCON_CHG_USB,
>>  	EXTCON_CHG_USB_DCP,
>>  	EXTCON_CHG_USB_DCP_FAST,
>>  	EXTCON_CHG_USB_DCP_SLOW,
>> @@ -512,8 +513,11 @@ static int max77693_muic_dock_handler(struct max77693_muic_info *info,
>>  		break;
>>  	case MAX77693_MUIC_ADC_AV_CABLE_NOLOAD:		/* Dock-Audio */
>>  		dock_id = EXTCON_DOCK;
>> -		if (!attached)
>> +		if (!attached) {
>>  			extcon_set_cable_state_(info->edev, EXTCON_USB, false);
>> +			extcon_set_cable_state_(info->edev, EXTCON_CHG_USB,
>> +						false);
>> +		}
>>  		break;
>>  	default:
>>  		dev_err(info->dev, "failed to detect %s dock device\n",
>> @@ -601,6 +605,7 @@ static int max77693_muic_adc_ground_handler(struct max77693_muic_info *info)
>>  		if (ret < 0)
>>  			return ret;
>>  		extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
>> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
>>  		break;
>>  	case MAX77693_MUIC_GND_MHL:
>>  	case MAX77693_MUIC_GND_MHL_VB:
>> @@ -830,6 +835,8 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info)
>>  			 */
>>  			extcon_set_cable_state_(info->edev, EXTCON_USB,
>>  						attached);
>> +			extcon_set_cable_state_(info->edev, EXTCON_CHG_USB,
>> +						attached);
>>  
>>  			if (!cable_attached)
>>  				extcon_set_cable_state_(info->edev, EXTCON_DOCK,
>> @@ -899,6 +906,8 @@ static int max77693_muic_chg_handler(struct max77693_muic_info *info)
>>  
>>  			extcon_set_cable_state_(info->edev, EXTCON_USB,
>>  						attached);
>> +			extcon_set_cable_state_(info->edev, EXTCON_CHG_USB,
>> +						attached);
>>  			break;
>>  		case MAX77693_CHARGER_TYPE_DEDICATED_CHG:
>>  			/* Only TA cable */
>> diff --git a/drivers/extcon/extcon-max77843.c b/drivers/extcon/extcon-max77843.c
>> index 97aebe5d67a6..5bfd4a5ec9c4 100644
>> --- a/drivers/extcon/extcon-max77843.c
>> +++ b/drivers/extcon/extcon-max77843.c
>> @@ -122,6 +122,7 @@ enum max77843_muic_charger_type {
>>  static const unsigned int max77843_extcon_cable[] = {
>>  	EXTCON_USB,
>>  	EXTCON_USB_HOST,
>> +	EXTCON_CHG_USB,
>>  	EXTCON_CHG_USB_DCP,
>>  	EXTCON_CHG_USB_CDP,
>>  	EXTCON_CHG_USB_DCP_FAST,
>> @@ -486,6 +487,7 @@ static int max77843_muic_chg_handler(struct max77843_muic_info *info)
>>  			return ret;
>>  
>>  		extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
>> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
>>  		break;
>>  	case MAX77843_MUIC_CHG_DOWNSTREAM:
>>  		ret = max77843_muic_set_path(info,
>> diff --git a/drivers/extcon/extcon-max8997.c b/drivers/extcon/extcon-max8997.c
>> index 8dbec5febdb6..3e8c6ab546b6 100644
>> --- a/drivers/extcon/extcon-max8997.c
>> +++ b/drivers/extcon/extcon-max8997.c
>> @@ -148,6 +148,7 @@ struct max8997_muic_info {
>>  static const unsigned int max8997_extcon_cable[] = {
>>  	EXTCON_USB,
>>  	EXTCON_USB_HOST,
>> +	EXTCON_CHG_USB,
>>  	EXTCON_CHG_USB_DCP,
>>  	EXTCON_CHG_USB_DCP_FAST,
>>  	EXTCON_CHG_USB_DCP_SLOW,
>> @@ -334,6 +335,7 @@ static int max8997_muic_handle_usb(struct max8997_muic_info *info,
>>  		break;
>>  	case MAX8997_USB_DEVICE:
>>  		extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
>> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
>>  		break;
>>  	default:
>>  		dev_err(info->dev, "failed to detect %s usb cable\n",
>> diff --git a/drivers/extcon/extcon-palmas.c b/drivers/extcon/extcon-palmas.c
>> index 93c30a885740..a1e984ff4398 100644
>> --- a/drivers/extcon/extcon-palmas.c
>> +++ b/drivers/extcon/extcon-palmas.c
>> @@ -37,6 +37,7 @@
>>  static const unsigned int palmas_extcon_cable[] = {
>>  	EXTCON_USB,
>>  	EXTCON_USB_HOST,
>> +	EXTCON_CHG_USB,
>>  	EXTCON_NONE,
>>  };
>>  
>> @@ -62,6 +63,7 @@ static irqreturn_t palmas_vbus_irq_handler(int irq, void *_palmas_usb)
>>  		if (palmas_usb->linkstat != PALMAS_USB_STATE_VBUS) {
>>  			palmas_usb->linkstat = PALMAS_USB_STATE_VBUS;
>>  			extcon_set_cable_state_(edev, EXTCON_USB, true);
>> +			extcon_set_cable_state_(edev, EXTCON_CHG_USB, true);
>>  			dev_info(palmas_usb->dev, "USB cable is attached\n");
>>  		} else {
>>  			dev_dbg(palmas_usb->dev,
>> @@ -71,6 +73,7 @@ static irqreturn_t palmas_vbus_irq_handler(int irq, void *_palmas_usb)
>>  		if (palmas_usb->linkstat == PALMAS_USB_STATE_VBUS) {
>>  			palmas_usb->linkstat = PALMAS_USB_STATE_DISCONNECT;
>>  			extcon_set_cable_state_(edev, EXTCON_USB, false);
>> +			extcon_set_cable_state_(edev, EXTCON_CHG_USB, false);
>>  			dev_info(palmas_usb->dev, "USB cable is detached\n");
>>  		} else {
>>  			dev_dbg(palmas_usb->dev,
>> diff --git a/drivers/extcon/extcon-rt8973a.c b/drivers/extcon/extcon-rt8973a.c
>> index 36bf1d63791c..64c7d8a90a11 100644
>> --- a/drivers/extcon/extcon-rt8973a.c
>> +++ b/drivers/extcon/extcon-rt8973a.c
>> @@ -93,6 +93,7 @@ static struct reg_data rt8973a_reg_data[] = {
>>  static const unsigned int rt8973a_extcon_cable[] = {
>>  	EXTCON_USB,
>>  	EXTCON_USB_HOST,
>> +	EXTCON_CHG_USB,
>>  	EXTCON_CHG_USB_DCP,
>>  	EXTCON_JIG,
>>  	EXTCON_NONE,
>> @@ -398,6 +399,8 @@ static int rt8973a_muic_cable_handler(struct rt8973a_muic_info *info,
>>  
>>  	/* Change the state of external accessory */
>>  	extcon_set_cable_state_(info->edev, id, attached);
>> +	if (id == EXTCON_USB)
>> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
>>  
>>  	return 0;
>>  }
>> diff --git a/drivers/extcon/extcon-sm5502.c b/drivers/extcon/extcon-sm5502.c
>> index 7aac3cc7efd7..24031759d306 100644
>> --- a/drivers/extcon/extcon-sm5502.c
>> +++ b/drivers/extcon/extcon-sm5502.c
>> @@ -95,6 +95,7 @@ static struct reg_data sm5502_reg_data[] = {
>>  static const unsigned int sm5502_extcon_cable[] = {
>>  	EXTCON_USB,
>>  	EXTCON_USB_HOST,
>> +	EXTCON_CHG_USB,
>>  	EXTCON_CHG_USB_DCP,
>>  	EXTCON_NONE,
>>  };
>> @@ -411,6 +412,8 @@ static int sm5502_muic_cable_handler(struct sm5502_muic_info *info,
>>  
>>  	/* Change the state of external accessory */
>>  	extcon_set_cable_state_(info->edev, id, attached);
>> +	if (id == EXTCON_USB)
>> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, attached);
>>  
>>  	return 0;
>>  }
>> diff --git a/drivers/extcon/extcon-usb-gpio.c b/drivers/extcon/extcon-usb-gpio.c
>> index 2b2fecffb1ad..ae8e3df0b5a6 100644
>> --- a/drivers/extcon/extcon-usb-gpio.c
>> +++ b/drivers/extcon/extcon-usb-gpio.c
>> @@ -43,6 +43,7 @@ struct usb_extcon_info {
>>  static const unsigned int usb_extcon_cable[] = {
>>  	EXTCON_USB,
>>  	EXTCON_USB_HOST,
>> +	EXTCON_CHG_USB,
>>  	EXTCON_NONE,
>>  };
>>  
>> @@ -63,12 +64,14 @@ static void usb_extcon_detect_cable(struct work_struct *work)
>>  		 */
>>  		extcon_set_cable_state_(info->edev, EXTCON_USB_HOST, false);
>>  		extcon_set_cable_state_(info->edev, EXTCON_USB, true);
>> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, true);
>>  	} else {
>>  		/*
>>  		 * ID = 0 means USB HOST cable attached.
>>  		 * As we don't have event for USB peripheral cable detached,
>>  		 * we simulate USB peripheral detach here.
>>  		 */
>> +		extcon_set_cable_state_(info->edev, EXTCON_CHG_USB, false);
>>  		extcon_set_cable_state_(info->edev, EXTCON_USB, false);
>>  		extcon_set_cable_state_(info->edev, EXTCON_USB_HOST, true);
>>  	}
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] extcon: Add the support of EXTCON_CHG_USB when SDP port is attached or detached
  2015-10-06 12:12     ` Chanwoo Choi
@ 2015-10-06 12:22       ` Roger Quadros
  2015-10-06 12:28         ` Chanwoo Choi
  0 siblings, 1 reply; 10+ messages in thread
From: Roger Quadros @ 2015-10-06 12:22 UTC (permalink / raw)
  To: Chanwoo Choi, linux-kernel
  Cc: k.kozlowski, ckeepax, gregkh, ramakrishna.pallala, patches, myungjoo.ham

Chanwoo,

On 06/10/15 15:12, Chanwoo Choi wrote:
> Roger,
> 
> On 2015년 10월 06일 20:49, Roger Quadros wrote:
>> Hi,
>>
>> On 06/10/15 14:21, Chanwoo Choi wrote:
>>> The SDP (Standard Downstream Port) is one of various USB Charging ports. The SDP
>>> supports both the data transmission and the charging through USB connector at
>>> the same time. So, the EXTCON framework defines two connector type for USB SDP
>>> connector as following:
>>> - EXTCON_USB means the USB cable for data transmission.
>>> - EXTCON_CHG_USB means the USB charger cable for battery charging.
>>>
>>> This patch add the support of EXTCON_CHG_USB when USB SDP is attached or
>>> detached.
>>
>> I didn't understand why this change is needed. SDP, EXTCON_USB and EXTCON_CHG_USB
>> are the same thing. no?
> 
> As you knew, SDP support both data transmission and charging
> through one port at the same time. Also, On patch1 of this patch-set,
> I add the prefix to clarify both attribute and meaning of external connector as following:
> - EXTCON_CHG_* mean the charger connector.
> 
> So, there are three possible naming approach for USB SDP.
> 
> Approach 1.
> - EXTCON_USB		/* SDP for both data transmission and charging */
> 
> Approach 2.
> - EXTCON_USB		/* SDP for data transmission */
> - EXTCON_CHG_USB	/* SDP for charging */

This only adds confusion. There is only one cable that will always do both jobs
so no point in using 2 names for it.

> 
> Approach 3.
> - EXTCON_CHG_USB	/* SDP for both data transmission and charging */
> 
> It is not fixed about name. I want to discuss what is proper name for USB SDP.

I do not have any preference over 1 or 3.

cheers,
-roger

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] extcon: Add the support of EXTCON_CHG_USB when SDP port is attached or detached
  2015-10-06 12:22       ` Roger Quadros
@ 2015-10-06 12:28         ` Chanwoo Choi
  0 siblings, 0 replies; 10+ messages in thread
From: Chanwoo Choi @ 2015-10-06 12:28 UTC (permalink / raw)
  To: Roger Quadros, linux-kernel
  Cc: k.kozlowski, ckeepax, gregkh, ramakrishna.pallala, patches, myungjoo.ham

Roger,

On 2015년 10월 06일 21:22, Roger Quadros wrote:
> Chanwoo,
> 
> On 06/10/15 15:12, Chanwoo Choi wrote:
>> Roger,
>>
>> On 2015년 10월 06일 20:49, Roger Quadros wrote:
>>> Hi,
>>>
>>> On 06/10/15 14:21, Chanwoo Choi wrote:
>>>> The SDP (Standard Downstream Port) is one of various USB Charging ports. The SDP
>>>> supports both the data transmission and the charging through USB connector at
>>>> the same time. So, the EXTCON framework defines two connector type for USB SDP
>>>> connector as following:
>>>> - EXTCON_USB means the USB cable for data transmission.
>>>> - EXTCON_CHG_USB means the USB charger cable for battery charging.
>>>>
>>>> This patch add the support of EXTCON_CHG_USB when USB SDP is attached or
>>>> detached.
>>>
>>> I didn't understand why this change is needed. SDP, EXTCON_USB and EXTCON_CHG_USB
>>> are the same thing. no?
>>
>> As you knew, SDP support both data transmission and charging
>> through one port at the same time. Also, On patch1 of this patch-set,
>> I add the prefix to clarify both attribute and meaning of external connector as following:
>> - EXTCON_CHG_* mean the charger connector.
>>
>> So, there are three possible naming approach for USB SDP.
>>
>> Approach 1.
>> - EXTCON_USB		/* SDP for both data transmission and charging */
>>
>> Approach 2.
>> - EXTCON_USB		/* SDP for data transmission */
>> - EXTCON_CHG_USB	/* SDP for charging */
> 
> This only adds confusion. There is only one cable that will always do both jobs
> so no point in using 2 names for it.

OK. I'll drop it.

> 
>>
>> Approach 3.
>> - EXTCON_CHG_USB	/* SDP for both data transmission and charging */
>>
>> It is not fixed about name. I want to discuss what is proper name for USB SDP.
> 
> I do not have any preference over 1 or 3.

I'll drop this patch. Also, I'll use only EXTCON_USB and delete the EXTCON_CHG_USB
from patch1 on next version.

Thanks,
Chanwoo Choi

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-10-06 12:29 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-06 11:21 [PATCH v2 0/2] extcon: Modify the name of external connector Chanwoo Choi
2015-10-06 11:21 ` [PATCH 1/2] extcon: Modify the id and " Chanwoo Choi
2015-10-06 11:42   ` Pallala, Ramakrishna
2015-10-06 11:51     ` Chanwoo Choi
2015-10-06 11:57       ` Pallala, Ramakrishna
2015-10-06 11:21 ` [PATCH 2/2] extcon: Add the support of EXTCON_CHG_USB when SDP port is attached or detached Chanwoo Choi
2015-10-06 11:49   ` Roger Quadros
2015-10-06 12:12     ` Chanwoo Choi
2015-10-06 12:22       ` Roger Quadros
2015-10-06 12:28         ` Chanwoo Choi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).