Browse Source

extcon: max77693: Set default uart/usb path by using platform data

This patch determine default uart/usb path by using platform data.
The MAX77693 MUIC device can possibliy set USB/UART/AUDIO/USB_AUX
/UART_AUX to internal h/w path of MUIC device. So, drvier should
determine default uart/usb path.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Chanwoo Choi 12 years ago
parent
commit
2b75799f5a
2 changed files with 31 additions and 0 deletions
  1. 24 0
      drivers/extcon/extcon-max77693.c
  2. 7 0
      include/linux/mfd/max77693.h

+ 24 - 0
drivers/extcon/extcon-max77693.c

@@ -63,6 +63,13 @@ struct max77693_muic_info {
 
 	/* Button of dock device */
 	struct input_dev *dock;
+
+	/*
+	 * Default usb/uart path whether UART/USB or AUX_UART/AUX_USB
+	 * h/w path of COMP2/COMN1 on CONTROL1 register.
+	 */
+	int path_usb;
+	int path_uart;
 };
 
 enum max77693_muic_cable_group {
@@ -1058,6 +1065,23 @@ static int max77693_muic_probe(struct platform_device *pdev)
 				= muic_pdata->init_data[i].data;
 	}
 
+	/*
+	 * Default usb/uart path whether UART/USB or AUX_UART/AUX_USB
+	 * h/w path of COMP2/COMN1 on CONTROL1 register.
+	 */
+	if (muic_pdata->path_uart)
+		info->path_uart = muic_pdata->path_uart;
+	else
+		info->path_uart = CONTROL1_SW_UART;
+
+	if (muic_pdata->path_usb)
+		info->path_usb = muic_pdata->path_usb;
+	else
+		info->path_usb = CONTROL1_SW_USB;
+
+	/* Set initial path for UART */
+	 max77693_muic_set_path(info, info->path_uart, true);
+
 	/* Check revision number of MUIC device*/
 	ret = max77693_read_reg(info->max77693->regmap_muic,
 			MAX77693_MUIC_REG_ID, &id);

+ 7 - 0
include/linux/mfd/max77693.h

@@ -40,6 +40,13 @@ struct max77693_muic_platform_data {
 	int num_init_data;
 
 	int detcable_delay_ms;
+
+	/*
+	 * Default usb/uart path whether UART/USB or AUX_UART/AUX_USB
+	 * h/w path of COMP2/COMN1 on CONTROL1 register.
+	 */
+	int path_usb;
+	int path_uart;
 };
 
 struct max77693_platform_data {