mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
Merge remote-tracking branches 'regulator/topic/lp872x', 'regulator/topic/ltc3589', 'regulator/topic/max77693' and 'regulator/topic/max8973' into regulator-next
This commit is contained in:
commit
176175b613
21 changed files with 622 additions and 913 deletions
|
|
@ -24,6 +24,7 @@
|
|||
#include <linux/err.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mfd/max77693.h>
|
||||
#include <linux/mfd/max77693-common.h>
|
||||
#include <linux/mfd/max77693-private.h>
|
||||
#include <linux/extcon.h>
|
||||
#include <linux/regmap.h>
|
||||
|
|
@ -42,7 +43,7 @@ static struct max77693_reg_data default_init_data[] = {
|
|||
{
|
||||
/* STATUS2 - [3]ChgDetRun */
|
||||
.addr = MAX77693_MUIC_REG_STATUS2,
|
||||
.data = STATUS2_CHGDETRUN_MASK,
|
||||
.data = MAX77693_STATUS2_CHGDETRUN_MASK,
|
||||
}, {
|
||||
/* INTMASK1 - Unmask [3]ADC1KM,[0]ADCM */
|
||||
.addr = MAX77693_MUIC_REG_INTMASK1,
|
||||
|
|
@ -235,7 +236,7 @@ static int max77693_muic_set_debounce_time(struct max77693_muic_info *info,
|
|||
*/
|
||||
ret = regmap_write(info->max77693->regmap_muic,
|
||||
MAX77693_MUIC_REG_CTRL3,
|
||||
time << CONTROL3_ADCDBSET_SHIFT);
|
||||
time << MAX77693_CONTROL3_ADCDBSET_SHIFT);
|
||||
if (ret) {
|
||||
dev_err(info->dev, "failed to set ADC debounce time\n");
|
||||
return ret;
|
||||
|
|
@ -268,7 +269,7 @@ static int max77693_muic_set_path(struct max77693_muic_info *info,
|
|||
if (attached)
|
||||
ctrl1 = val;
|
||||
else
|
||||
ctrl1 = CONTROL1_SW_OPEN;
|
||||
ctrl1 = MAX77693_CONTROL1_SW_OPEN;
|
||||
|
||||
ret = regmap_update_bits(info->max77693->regmap_muic,
|
||||
MAX77693_MUIC_REG_CTRL1, COMP_SW_MASK, ctrl1);
|
||||
|
|
@ -278,13 +279,14 @@ static int max77693_muic_set_path(struct max77693_muic_info *info,
|
|||
}
|
||||
|
||||
if (attached)
|
||||
ctrl2 |= CONTROL2_CPEN_MASK; /* LowPwr=0, CPEn=1 */
|
||||
ctrl2 |= MAX77693_CONTROL2_CPEN_MASK; /* LowPwr=0, CPEn=1 */
|
||||
else
|
||||
ctrl2 |= CONTROL2_LOWPWR_MASK; /* LowPwr=1, CPEn=0 */
|
||||
ctrl2 |= MAX77693_CONTROL2_LOWPWR_MASK; /* LowPwr=1, CPEn=0 */
|
||||
|
||||
ret = regmap_update_bits(info->max77693->regmap_muic,
|
||||
MAX77693_MUIC_REG_CTRL2,
|
||||
CONTROL2_LOWPWR_MASK | CONTROL2_CPEN_MASK, ctrl2);
|
||||
MAX77693_CONTROL2_LOWPWR_MASK | MAX77693_CONTROL2_CPEN_MASK,
|
||||
ctrl2);
|
||||
if (ret < 0) {
|
||||
dev_err(info->dev, "failed to update MUIC register\n");
|
||||
return ret;
|
||||
|
|
@ -326,8 +328,8 @@ static int max77693_muic_get_cable_type(struct max77693_muic_info *info,
|
|||
* Read ADC value to check cable type and decide cable state
|
||||
* according to cable type
|
||||
*/
|
||||
adc = info->status[0] & STATUS1_ADC_MASK;
|
||||
adc >>= STATUS1_ADC_SHIFT;
|
||||
adc = info->status[0] & MAX77693_STATUS1_ADC_MASK;
|
||||
adc >>= MAX77693_STATUS1_ADC_SHIFT;
|
||||
|
||||
/*
|
||||
* Check current cable state/cable type and store cable type
|
||||
|
|
@ -350,8 +352,8 @@ static int max77693_muic_get_cable_type(struct max77693_muic_info *info,
|
|||
* Read ADC value to check cable type and decide cable state
|
||||
* according to cable type
|
||||
*/
|
||||
adc = info->status[0] & STATUS1_ADC_MASK;
|
||||
adc >>= STATUS1_ADC_SHIFT;
|
||||
adc = info->status[0] & MAX77693_STATUS1_ADC_MASK;
|
||||
adc >>= MAX77693_STATUS1_ADC_SHIFT;
|
||||
|
||||
/*
|
||||
* Check current cable state/cable type and store cable type
|
||||
|
|
@ -366,13 +368,13 @@ static int max77693_muic_get_cable_type(struct max77693_muic_info *info,
|
|||
} else {
|
||||
*attached = true;
|
||||
|
||||
adclow = info->status[0] & STATUS1_ADCLOW_MASK;
|
||||
adclow >>= STATUS1_ADCLOW_SHIFT;
|
||||
adc1k = info->status[0] & STATUS1_ADC1K_MASK;
|
||||
adc1k >>= STATUS1_ADC1K_SHIFT;
|
||||
adclow = info->status[0] & MAX77693_STATUS1_ADCLOW_MASK;
|
||||
adclow >>= MAX77693_STATUS1_ADCLOW_SHIFT;
|
||||
adc1k = info->status[0] & MAX77693_STATUS1_ADC1K_MASK;
|
||||
adc1k >>= MAX77693_STATUS1_ADC1K_SHIFT;
|
||||
|
||||
vbvolt = info->status[1] & STATUS2_VBVOLT_MASK;
|
||||
vbvolt >>= STATUS2_VBVOLT_SHIFT;
|
||||
vbvolt = info->status[1] & MAX77693_STATUS2_VBVOLT_MASK;
|
||||
vbvolt >>= MAX77693_STATUS2_VBVOLT_SHIFT;
|
||||
|
||||
/**
|
||||
* [0x1|VBVolt|ADCLow|ADC1K]
|
||||
|
|
@ -397,8 +399,8 @@ static int max77693_muic_get_cable_type(struct max77693_muic_info *info,
|
|||
* Read charger type to check cable type and decide cable state
|
||||
* according to type of charger cable.
|
||||
*/
|
||||
chg_type = info->status[1] & STATUS2_CHGTYP_MASK;
|
||||
chg_type >>= STATUS2_CHGTYP_SHIFT;
|
||||
chg_type = info->status[1] & MAX77693_STATUS2_CHGTYP_MASK;
|
||||
chg_type >>= MAX77693_STATUS2_CHGTYP_SHIFT;
|
||||
|
||||
if (chg_type == MAX77693_CHARGER_TYPE_NONE) {
|
||||
*attached = false;
|
||||
|
|
@ -422,10 +424,10 @@ static int max77693_muic_get_cable_type(struct max77693_muic_info *info,
|
|||
* Read ADC value to check cable type and decide cable state
|
||||
* according to cable type
|
||||
*/
|
||||
adc = info->status[0] & STATUS1_ADC_MASK;
|
||||
adc >>= STATUS1_ADC_SHIFT;
|
||||
chg_type = info->status[1] & STATUS2_CHGTYP_MASK;
|
||||
chg_type >>= STATUS2_CHGTYP_SHIFT;
|
||||
adc = info->status[0] & MAX77693_STATUS1_ADC_MASK;
|
||||
adc >>= MAX77693_STATUS1_ADC_SHIFT;
|
||||
chg_type = info->status[1] & MAX77693_STATUS2_CHGTYP_MASK;
|
||||
chg_type >>= MAX77693_STATUS2_CHGTYP_SHIFT;
|
||||
|
||||
if (adc == MAX77693_MUIC_ADC_OPEN
|
||||
&& chg_type == MAX77693_CHARGER_TYPE_NONE)
|
||||
|
|
@ -437,8 +439,8 @@ static int max77693_muic_get_cable_type(struct max77693_muic_info *info,
|
|||
* Read vbvolt field, if vbvolt is 1,
|
||||
* this cable is used for charging.
|
||||
*/
|
||||
vbvolt = info->status[1] & STATUS2_VBVOLT_MASK;
|
||||
vbvolt >>= STATUS2_VBVOLT_SHIFT;
|
||||
vbvolt = info->status[1] & MAX77693_STATUS2_VBVOLT_MASK;
|
||||
vbvolt >>= MAX77693_STATUS2_VBVOLT_SHIFT;
|
||||
|
||||
cable_type = vbvolt;
|
||||
break;
|
||||
|
|
@ -520,7 +522,8 @@ static int max77693_muic_dock_handler(struct max77693_muic_info *info,
|
|||
}
|
||||
|
||||
/* Dock-Car/Desk/Audio, PATH:AUDIO */
|
||||
ret = max77693_muic_set_path(info, CONTROL1_SW_AUDIO, attached);
|
||||
ret = max77693_muic_set_path(info, MAX77693_CONTROL1_SW_AUDIO,
|
||||
attached);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
extcon_set_cable_state_(info->edev, dock_id, attached);
|
||||
|
|
@ -585,14 +588,16 @@ static int max77693_muic_adc_ground_handler(struct max77693_muic_info *info)
|
|||
case MAX77693_MUIC_GND_USB_HOST:
|
||||
case MAX77693_MUIC_GND_USB_HOST_VB:
|
||||
/* USB_HOST, PATH: AP_USB */
|
||||
ret = max77693_muic_set_path(info, CONTROL1_SW_USB, attached);
|
||||
ret = max77693_muic_set_path(info, MAX77693_CONTROL1_SW_USB,
|
||||
attached);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
extcon_set_cable_state_(info->edev, EXTCON_USB_HOST, attached);
|
||||
break;
|
||||
case MAX77693_MUIC_GND_AV_CABLE_LOAD:
|
||||
/* Audio Video Cable with load, PATH:AUDIO */
|
||||
ret = max77693_muic_set_path(info, CONTROL1_SW_AUDIO, attached);
|
||||
ret = max77693_muic_set_path(info, MAX77693_CONTROL1_SW_AUDIO,
|
||||
attached);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
|
||||
|
|
@ -615,7 +620,7 @@ static int max77693_muic_jig_handler(struct max77693_muic_info *info,
|
|||
int cable_type, bool attached)
|
||||
{
|
||||
int ret = 0;
|
||||
u8 path = CONTROL1_SW_OPEN;
|
||||
u8 path = MAX77693_CONTROL1_SW_OPEN;
|
||||
|
||||
dev_info(info->dev,
|
||||
"external connector is %s (adc:0x%02x)\n",
|
||||
|
|
@ -625,12 +630,12 @@ static int max77693_muic_jig_handler(struct max77693_muic_info *info,
|
|||
case MAX77693_MUIC_ADC_FACTORY_MODE_USB_OFF: /* ADC_JIG_USB_OFF */
|
||||
case MAX77693_MUIC_ADC_FACTORY_MODE_USB_ON: /* ADC_JIG_USB_ON */
|
||||
/* PATH:AP_USB */
|
||||
path = CONTROL1_SW_USB;
|
||||
path = MAX77693_CONTROL1_SW_USB;
|
||||
break;
|
||||
case MAX77693_MUIC_ADC_FACTORY_MODE_UART_OFF: /* ADC_JIG_UART_OFF */
|
||||
case MAX77693_MUIC_ADC_FACTORY_MODE_UART_ON: /* ADC_JIG_UART_ON */
|
||||
/* PATH:AP_UART */
|
||||
path = CONTROL1_SW_UART;
|
||||
path = MAX77693_CONTROL1_SW_UART;
|
||||
break;
|
||||
default:
|
||||
dev_err(info->dev, "failed to detect %s jig cable\n",
|
||||
|
|
@ -1077,7 +1082,7 @@ static int max77693_muic_probe(struct platform_device *pdev)
|
|||
dev_dbg(&pdev->dev, "allocate register map\n");
|
||||
} else {
|
||||
info->max77693->regmap_muic = devm_regmap_init_i2c(
|
||||
info->max77693->muic,
|
||||
info->max77693->i2c_muic,
|
||||
&max77693_muic_regmap_config);
|
||||
if (IS_ERR(info->max77693->regmap_muic)) {
|
||||
ret = PTR_ERR(info->max77693->regmap_muic);
|
||||
|
|
@ -1164,28 +1169,9 @@ static int max77693_muic_probe(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
for (i = 0; i < num_init_data; i++) {
|
||||
enum max77693_irq_source irq_src
|
||||
= MAX77693_IRQ_GROUP_NR;
|
||||
|
||||
regmap_write(info->max77693->regmap_muic,
|
||||
init_data[i].addr,
|
||||
init_data[i].data);
|
||||
|
||||
switch (init_data[i].addr) {
|
||||
case MAX77693_MUIC_REG_INTMASK1:
|
||||
irq_src = MUIC_INT1;
|
||||
break;
|
||||
case MAX77693_MUIC_REG_INTMASK2:
|
||||
irq_src = MUIC_INT2;
|
||||
break;
|
||||
case MAX77693_MUIC_REG_INTMASK3:
|
||||
irq_src = MUIC_INT3;
|
||||
break;
|
||||
}
|
||||
|
||||
if (irq_src < MAX77693_IRQ_GROUP_NR)
|
||||
info->max77693->irq_masks_cur[irq_src]
|
||||
= init_data[i].data;
|
||||
}
|
||||
|
||||
if (pdata && pdata->muic_data) {
|
||||
|
|
@ -1199,12 +1185,12 @@ static int max77693_muic_probe(struct platform_device *pdev)
|
|||
if (muic_pdata->path_uart)
|
||||
info->path_uart = muic_pdata->path_uart;
|
||||
else
|
||||
info->path_uart = CONTROL1_SW_UART;
|
||||
info->path_uart = MAX77693_CONTROL1_SW_UART;
|
||||
|
||||
if (muic_pdata->path_usb)
|
||||
info->path_usb = muic_pdata->path_usb;
|
||||
else
|
||||
info->path_usb = CONTROL1_SW_USB;
|
||||
info->path_usb = MAX77693_CONTROL1_SW_USB;
|
||||
|
||||
/*
|
||||
* Default delay time for detecting cable state
|
||||
|
|
@ -1216,8 +1202,8 @@ static int max77693_muic_probe(struct platform_device *pdev)
|
|||
else
|
||||
delay_jiffies = msecs_to_jiffies(DELAY_MS_DEFAULT);
|
||||
} else {
|
||||
info->path_usb = CONTROL1_SW_USB;
|
||||
info->path_uart = CONTROL1_SW_UART;
|
||||
info->path_usb = MAX77693_CONTROL1_SW_USB;
|
||||
info->path_uart = MAX77693_CONTROL1_SW_UART;
|
||||
delay_jiffies = msecs_to_jiffies(DELAY_MS_DEFAULT);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
#include <linux/i2c.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mfd/max77693-common.h>
|
||||
#include <linux/mfd/max77843-private.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
|
@ -32,7 +33,7 @@ enum max77843_muic_status {
|
|||
|
||||
struct max77843_muic_info {
|
||||
struct device *dev;
|
||||
struct max77843 *max77843;
|
||||
struct max77693_dev *max77843;
|
||||
struct extcon_dev *edev;
|
||||
|
||||
struct mutex mutex;
|
||||
|
|
@ -198,18 +199,18 @@ static const struct regmap_irq_chip max77843_muic_irq_chip = {
|
|||
static int max77843_muic_set_path(struct max77843_muic_info *info,
|
||||
u8 val, bool attached)
|
||||
{
|
||||
struct max77843 *max77843 = info->max77843;
|
||||
struct max77693_dev *max77843 = info->max77843;
|
||||
int ret = 0;
|
||||
unsigned int ctrl1, ctrl2;
|
||||
|
||||
if (attached)
|
||||
ctrl1 = val;
|
||||
else
|
||||
ctrl1 = CONTROL1_SW_OPEN;
|
||||
ctrl1 = MAX77843_MUIC_CONTROL1_SW_OPEN;
|
||||
|
||||
ret = regmap_update_bits(max77843->regmap_muic,
|
||||
MAX77843_MUIC_REG_CONTROL1,
|
||||
CONTROL1_COM_SW, ctrl1);
|
||||
MAX77843_MUIC_CONTROL1_COM_SW, ctrl1);
|
||||
if (ret < 0) {
|
||||
dev_err(info->dev, "Cannot switch MUIC port\n");
|
||||
return ret;
|
||||
|
|
@ -243,7 +244,7 @@ static int max77843_muic_get_cable_type(struct max77843_muic_info *info,
|
|||
|
||||
adc = info->status[MAX77843_MUIC_STATUS1] &
|
||||
MAX77843_MUIC_STATUS1_ADC_MASK;
|
||||
adc >>= STATUS1_ADC_SHIFT;
|
||||
adc >>= MAX77843_MUIC_STATUS1_ADC_SHIFT;
|
||||
|
||||
switch (group) {
|
||||
case MAX77843_CABLE_GROUP_ADC:
|
||||
|
|
@ -309,7 +310,7 @@ static int max77843_muic_get_cable_type(struct max77843_muic_info *info,
|
|||
/* Get VBVolt register bit */
|
||||
gnd_type |= (info->status[MAX77843_MUIC_STATUS2] &
|
||||
MAX77843_MUIC_STATUS2_VBVOLT_MASK);
|
||||
gnd_type >>= STATUS2_VBVOLT_SHIFT;
|
||||
gnd_type >>= MAX77843_MUIC_STATUS2_VBVOLT_SHIFT;
|
||||
|
||||
/* Offset of GND cable */
|
||||
gnd_type |= MAX77843_MUIC_GND_USB_HOST;
|
||||
|
|
@ -338,7 +339,9 @@ static int max77843_muic_adc_gnd_handler(struct max77843_muic_info *info)
|
|||
switch (gnd_cable_type) {
|
||||
case MAX77843_MUIC_GND_USB_HOST:
|
||||
case MAX77843_MUIC_GND_USB_HOST_VB:
|
||||
ret = max77843_muic_set_path(info, CONTROL1_SW_USB, attached);
|
||||
ret = max77843_muic_set_path(info,
|
||||
MAX77843_MUIC_CONTROL1_SW_USB,
|
||||
attached);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
|
|
@ -346,7 +349,9 @@ static int max77843_muic_adc_gnd_handler(struct max77843_muic_info *info)
|
|||
break;
|
||||
case MAX77843_MUIC_GND_MHL_VB:
|
||||
case MAX77843_MUIC_GND_MHL:
|
||||
ret = max77843_muic_set_path(info, CONTROL1_SW_OPEN, attached);
|
||||
ret = max77843_muic_set_path(info,
|
||||
MAX77843_MUIC_CONTROL1_SW_OPEN,
|
||||
attached);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
|
|
@ -365,7 +370,7 @@ static int max77843_muic_jig_handler(struct max77843_muic_info *info,
|
|||
int cable_type, bool attached)
|
||||
{
|
||||
int ret;
|
||||
u8 path = CONTROL1_SW_OPEN;
|
||||
u8 path = MAX77843_MUIC_CONTROL1_SW_OPEN;
|
||||
|
||||
dev_dbg(info->dev, "external connector is %s (adc:0x%02x)\n",
|
||||
attached ? "attached" : "detached", cable_type);
|
||||
|
|
@ -373,10 +378,10 @@ static int max77843_muic_jig_handler(struct max77843_muic_info *info,
|
|||
switch (cable_type) {
|
||||
case MAX77843_MUIC_ADC_FACTORY_MODE_USB_OFF:
|
||||
case MAX77843_MUIC_ADC_FACTORY_MODE_USB_ON:
|
||||
path = CONTROL1_SW_USB;
|
||||
path = MAX77843_MUIC_CONTROL1_SW_USB;
|
||||
break;
|
||||
case MAX77843_MUIC_ADC_FACTORY_MODE_UART_OFF:
|
||||
path = CONTROL1_SW_UART;
|
||||
path = MAX77843_MUIC_CONTROL1_SW_UART;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
|
|
@ -474,14 +479,18 @@ static int max77843_muic_chg_handler(struct max77843_muic_info *info)
|
|||
|
||||
switch (chg_type) {
|
||||
case MAX77843_MUIC_CHG_USB:
|
||||
ret = max77843_muic_set_path(info, CONTROL1_SW_USB, attached);
|
||||
ret = max77843_muic_set_path(info,
|
||||
MAX77843_MUIC_CONTROL1_SW_USB,
|
||||
attached);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
extcon_set_cable_state_(info->edev, EXTCON_USB, attached);
|
||||
break;
|
||||
case MAX77843_MUIC_CHG_DOWNSTREAM:
|
||||
ret = max77843_muic_set_path(info, CONTROL1_SW_OPEN, attached);
|
||||
ret = max77843_muic_set_path(info,
|
||||
MAX77843_MUIC_CONTROL1_SW_OPEN,
|
||||
attached);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
|
|
@ -489,14 +498,18 @@ static int max77843_muic_chg_handler(struct max77843_muic_info *info)
|
|||
attached);
|
||||
break;
|
||||
case MAX77843_MUIC_CHG_DEDICATED:
|
||||
ret = max77843_muic_set_path(info, CONTROL1_SW_OPEN, attached);
|
||||
ret = max77843_muic_set_path(info,
|
||||
MAX77843_MUIC_CONTROL1_SW_OPEN,
|
||||
attached);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
extcon_set_cable_state_(info->edev, EXTCON_TA, attached);
|
||||
break;
|
||||
case MAX77843_MUIC_CHG_SPECIAL_500MA:
|
||||
ret = max77843_muic_set_path(info, CONTROL1_SW_OPEN, attached);
|
||||
ret = max77843_muic_set_path(info,
|
||||
MAX77843_MUIC_CONTROL1_SW_OPEN,
|
||||
attached);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
|
|
@ -504,7 +517,9 @@ static int max77843_muic_chg_handler(struct max77843_muic_info *info)
|
|||
attached);
|
||||
break;
|
||||
case MAX77843_MUIC_CHG_SPECIAL_1A:
|
||||
ret = max77843_muic_set_path(info, CONTROL1_SW_OPEN, attached);
|
||||
ret = max77843_muic_set_path(info,
|
||||
MAX77843_MUIC_CONTROL1_SW_OPEN,
|
||||
attached);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
|
|
@ -528,7 +543,8 @@ static int max77843_muic_chg_handler(struct max77843_muic_info *info)
|
|||
"failed to detect %s accessory (chg_type:0x%x)\n",
|
||||
attached ? "attached" : "detached", chg_type);
|
||||
|
||||
max77843_muic_set_path(info, CONTROL1_SW_OPEN, attached);
|
||||
max77843_muic_set_path(info, MAX77843_MUIC_CONTROL1_SW_OPEN,
|
||||
attached);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
|
@ -539,7 +555,7 @@ static void max77843_muic_irq_work(struct work_struct *work)
|
|||
{
|
||||
struct max77843_muic_info *info = container_of(work,
|
||||
struct max77843_muic_info, irq_work);
|
||||
struct max77843 *max77843 = info->max77843;
|
||||
struct max77693_dev *max77843 = info->max77843;
|
||||
int ret = 0;
|
||||
|
||||
mutex_lock(&info->mutex);
|
||||
|
|
@ -615,7 +631,7 @@ static void max77843_muic_detect_cable_wq(struct work_struct *work)
|
|||
{
|
||||
struct max77843_muic_info *info = container_of(to_delayed_work(work),
|
||||
struct max77843_muic_info, wq_detcable);
|
||||
struct max77843 *max77843 = info->max77843;
|
||||
struct max77693_dev *max77843 = info->max77843;
|
||||
int chg_type, adc, ret;
|
||||
bool attached;
|
||||
|
||||
|
|
@ -656,7 +672,7 @@ err_cable_wq:
|
|||
static int max77843_muic_set_debounce_time(struct max77843_muic_info *info,
|
||||
enum max77843_muic_adc_debounce_time time)
|
||||
{
|
||||
struct max77843 *max77843 = info->max77843;
|
||||
struct max77693_dev *max77843 = info->max77843;
|
||||
int ret;
|
||||
|
||||
switch (time) {
|
||||
|
|
@ -667,7 +683,7 @@ static int max77843_muic_set_debounce_time(struct max77843_muic_info *info,
|
|||
ret = regmap_update_bits(max77843->regmap_muic,
|
||||
MAX77843_MUIC_REG_CONTROL4,
|
||||
MAX77843_MUIC_CONTROL4_ADCDBSET_MASK,
|
||||
time << CONTROL4_ADCDBSET_SHIFT);
|
||||
time << MAX77843_MUIC_CONTROL4_ADCDBSET_SHIFT);
|
||||
if (ret < 0) {
|
||||
dev_err(info->dev, "Cannot write MUIC regmap\n");
|
||||
return ret;
|
||||
|
|
@ -681,7 +697,7 @@ static int max77843_muic_set_debounce_time(struct max77843_muic_info *info,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int max77843_init_muic_regmap(struct max77843 *max77843)
|
||||
static int max77843_init_muic_regmap(struct max77693_dev *max77843)
|
||||
{
|
||||
int ret;
|
||||
|
||||
|
|
@ -720,7 +736,7 @@ err_muic_i2c:
|
|||
|
||||
static int max77843_muic_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct max77843 *max77843 = dev_get_drvdata(pdev->dev.parent);
|
||||
struct max77693_dev *max77843 = dev_get_drvdata(pdev->dev.parent);
|
||||
struct max77843_muic_info *info;
|
||||
unsigned int id;
|
||||
int i, ret;
|
||||
|
|
@ -768,7 +784,7 @@ static int max77843_muic_probe(struct platform_device *pdev)
|
|||
max77843_muic_set_debounce_time(info, MAX77843_DEBOUNCE_TIME_25MS);
|
||||
|
||||
/* Set initial path for UART */
|
||||
max77843_muic_set_path(info, CONTROL1_SW_UART, true);
|
||||
max77843_muic_set_path(info, MAX77843_MUIC_CONTROL1_SW_UART, true);
|
||||
|
||||
/* Check revision number of MUIC device */
|
||||
ret = regmap_read(max77843->regmap_muic, MAX77843_MUIC_REG_ID, &id);
|
||||
|
|
@ -821,7 +837,7 @@ err_muic_irq:
|
|||
static int max77843_muic_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct max77843_muic_info *info = platform_get_drvdata(pdev);
|
||||
struct max77843 *max77843 = info->max77843;
|
||||
struct max77693_dev *max77843 = info->max77843;
|
||||
|
||||
cancel_work_sync(&info->irq_work);
|
||||
regmap_del_irq_chip(max77843->irq, max77843->irq_data_muic);
|
||||
|
|
|
|||
Loading…
Reference in a new issue