Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2701e804 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge tag 'extcon-next-for-4.21' of...

Merge tag 'extcon-next-for-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into char-misc-next

Chanwoo writes:

Update extcon for 4.21

Detailed description for this pull request:
1. Fix minor issue of Maxim MUIC (Micro USB IC) device driver
- Avoid forcing UART path on probe for extcon-max77843/77693/14577/8997.c
- Set USB path in USB device mode for extcon-max8997.c

* tag 'extcon-next-for-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon:
  extcon: max8997: Fix lack of path setting in USB device mode
  extcon: max8997: Avoid forcing UART path on drive probe
  extcon: max14577: Avoid forcing UART path on drive probe
  extcon: max77693: Avoid forcing UART path on drive probe
  extcon: max77843: Avoid forcing UART path on drive probe
parents c20c809f a2dc5091
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -657,6 +657,8 @@ static int max14577_muic_probe(struct platform_device *pdev)
	struct max14577 *max14577 = dev_get_drvdata(pdev->dev.parent);
	struct max14577_muic_info *info;
	int delay_jiffies;
	int cable_type;
	bool attached;
	int ret;
	int i;
	u8 id;
@@ -725,7 +727,16 @@ static int max14577_muic_probe(struct platform_device *pdev)
	info->path_uart = CTRL1_SW_UART;
	delay_jiffies = msecs_to_jiffies(DELAY_MS_DEFAULT);

	/* Set initial path for UART */
	/* Set initial path for UART when JIG is connected to get serial logs */
	ret = max14577_bulk_read(info->max14577->regmap,
			MAX14577_MUIC_REG_STATUS1, info->status, 2);
	if (ret) {
		dev_err(info->dev, "Cannot read STATUS registers\n");
		return ret;
	}
	cable_type = max14577_muic_get_cable_type(info, MAX14577_CABLE_GROUP_ADC,
					 &attached);
	if (attached && cable_type == MAX14577_MUIC_ADC_FACTORY_MODE_UART_OFF)
		max14577_muic_set_path(info, info->path_uart, true);

	/* Check revision number of MUIC device*/
+14 −2
Original line number Diff line number Diff line
@@ -1072,6 +1072,8 @@ static int max77693_muic_probe(struct platform_device *pdev)
	struct max77693_reg_data *init_data;
	int num_init_data;
	int delay_jiffies;
	int cable_type;
	bool attached;
	int ret;
	int i;
	unsigned int id;
@@ -1212,7 +1214,17 @@ static int max77693_muic_probe(struct platform_device *pdev)
		delay_jiffies = msecs_to_jiffies(DELAY_MS_DEFAULT);
	}

	/* Set initial path for UART */
	/* Set initial path for UART when JIG is connected to get serial logs */
	ret = regmap_bulk_read(info->max77693->regmap_muic,
			MAX77693_MUIC_REG_STATUS1, info->status, 2);
	if (ret) {
		dev_err(info->dev, "failed to read MUIC register\n");
		return ret;
	}
	cable_type = max77693_muic_get_cable_type(info,
					   MAX77693_CABLE_GROUP_ADC, &attached);
	if (attached && (cable_type == MAX77693_MUIC_ADC_FACTORY_MODE_UART_ON ||
			 cable_type == MAX77693_MUIC_ADC_FACTORY_MODE_UART_OFF))
		max77693_muic_set_path(info, info->path_uart, true);

	/* Check revision number of MUIC device*/
+15 −3
Original line number Diff line number Diff line
@@ -812,6 +812,8 @@ static int max77843_muic_probe(struct platform_device *pdev)
	struct max77693_dev *max77843 = dev_get_drvdata(pdev->dev.parent);
	struct max77843_muic_info *info;
	unsigned int id;
	int cable_type;
	bool attached;
	int i, ret;

	info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL);
@@ -856,9 +858,19 @@ static int max77843_muic_probe(struct platform_device *pdev)
	/* Set ADC debounce time */
	max77843_muic_set_debounce_time(info, MAX77843_DEBOUNCE_TIME_25MS);

	/* Set initial path for UART */
	max77843_muic_set_path(info, MAX77843_MUIC_CONTROL1_SW_UART, true,
			       false);
	/* Set initial path for UART when JIG is connected to get serial logs */
	ret = regmap_bulk_read(max77843->regmap_muic,
			MAX77843_MUIC_REG_STATUS1, info->status,
			MAX77843_MUIC_STATUS_NUM);
	if (ret) {
		dev_err(info->dev, "Cannot read STATUS registers\n");
		goto err_muic_irq;
	}
	cable_type = max77843_muic_get_cable_type(info, MAX77843_CABLE_GROUP_ADC,
					 &attached);
	if (attached && cable_type == MAX77843_MUIC_ADC_FACTORY_MODE_UART_OFF)
		max77843_muic_set_path(info, MAX77843_MUIC_CONTROL1_SW_UART,
				       true, false);

	/* Check revision number of MUIC device */
	ret = regmap_read(max77843->regmap_muic, MAX77843_MUIC_REG_ID, &id);
+17 −8
Original line number Diff line number Diff line
@@ -311,13 +311,11 @@ static int max8997_muic_handle_usb(struct max8997_muic_info *info,
{
	int ret = 0;

	if (usb_type == MAX8997_USB_HOST) {
	ret = max8997_muic_set_path(info, info->path_usb, attached);
	if (ret < 0) {
		dev_err(info->dev, "failed to update muic register\n");
		return ret;
	}
	}

	switch (usb_type) {
	case MAX8997_USB_HOST:
@@ -632,6 +630,8 @@ static int max8997_muic_probe(struct platform_device *pdev)
	struct max8997_platform_data *pdata = dev_get_platdata(max8997->dev);
	struct max8997_muic_info *info;
	int delay_jiffies;
	int cable_type;
	bool attached;
	int ret, i;

	info = devm_kzalloc(&pdev->dev, sizeof(struct max8997_muic_info),
@@ -724,7 +724,16 @@ static int max8997_muic_probe(struct platform_device *pdev)
		delay_jiffies = msecs_to_jiffies(DELAY_MS_DEFAULT);
	}

	/* Set initial path for UART */
	/* Set initial path for UART when JIG is connected to get serial logs */
	ret = max8997_bulk_read(info->muic, MAX8997_MUIC_REG_STATUS1,
				2, info->status);
	if (ret) {
		dev_err(info->dev, "failed to read MUIC register\n");
		return ret;
	}
	cable_type = max8997_muic_get_cable_type(info,
					   MAX8997_CABLE_GROUP_ADC, &attached);
	if (attached && cable_type == MAX8997_MUIC_ADC_FACTORY_MODE_UART_OFF)
		max8997_muic_set_path(info, info->path_uart, true);

	/* Set ADC debounce time */