diff options
| author | Mark Brown <broonie@linaro.org> | 2014-07-04 14:02:06 -0400 |
|---|---|---|
| committer | Mark Brown <broonie@linaro.org> | 2014-07-04 14:02:06 -0400 |
| commit | 448b55c2a360a2d531d9e4b78bc87ecc2d235782 (patch) | |
| tree | 2b19ea7f3df22d56cdab3bba96266e0ca6bd12cd | |
| parent | 7171511eaec5bf23fb06078f59784a3a0626b38f (diff) | |
| parent | 342d669c1ee421323f552a62729d3a3d0065093c (diff) | |
Merge tag 'mfd-extcon-regulator-v3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into regulator-s2mpu02
Immutable branch between MFD, Extcon and Regulator due for v3.17
| -rw-r--r-- | drivers/extcon/extcon-max77693.c | 35 | ||||
| -rw-r--r-- | drivers/mfd/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/mfd/Makefile | 2 | ||||
| -rw-r--r-- | drivers/mfd/max77693-irq.c | 336 | ||||
| -rw-r--r-- | drivers/mfd/max77693.c | 210 | ||||
| -rw-r--r-- | drivers/regulator/max77693.c | 12 | ||||
| -rw-r--r-- | include/linux/mfd/max77693-private.h | 54 |
7 files changed, 217 insertions, 433 deletions
diff --git a/drivers/extcon/extcon-max77693.c b/drivers/extcon/extcon-max77693.c index 2c7c3e191591..c7278b1649da 100644 --- a/drivers/extcon/extcon-max77693.c +++ b/drivers/extcon/extcon-max77693.c | |||
| @@ -255,10 +255,10 @@ static int max77693_muic_set_debounce_time(struct max77693_muic_info *info, | |||
| 255 | case ADC_DEBOUNCE_TIME_10MS: | 255 | case ADC_DEBOUNCE_TIME_10MS: |
| 256 | case ADC_DEBOUNCE_TIME_25MS: | 256 | case ADC_DEBOUNCE_TIME_25MS: |
| 257 | case ADC_DEBOUNCE_TIME_38_62MS: | 257 | case ADC_DEBOUNCE_TIME_38_62MS: |
| 258 | ret = max77693_update_reg(info->max77693->regmap_muic, | 258 | ret = regmap_update_bits(info->max77693->regmap_muic, |
| 259 | MAX77693_MUIC_REG_CTRL3, | 259 | MAX77693_MUIC_REG_CTRL3, |
| 260 | time << CONTROL3_ADCDBSET_SHIFT, | 260 | CONTROL3_ADCDBSET_MASK, |
| 261 | CONTROL3_ADCDBSET_MASK); | 261 | time << CONTROL3_ADCDBSET_SHIFT); |
| 262 | if (ret) { | 262 | if (ret) { |
| 263 | dev_err(info->dev, "failed to set ADC debounce time\n"); | 263 | dev_err(info->dev, "failed to set ADC debounce time\n"); |
| 264 | return ret; | 264 | return ret; |
| @@ -286,15 +286,15 @@ static int max77693_muic_set_path(struct max77693_muic_info *info, | |||
| 286 | u8 val, bool attached) | 286 | u8 val, bool attached) |
| 287 | { | 287 | { |
| 288 | int ret = 0; | 288 | int ret = 0; |
| 289 | u8 ctrl1, ctrl2 = 0; | 289 | unsigned int ctrl1, ctrl2 = 0; |
| 290 | 290 | ||
| 291 | if (attached) | 291 | if (attached) |
| 292 | ctrl1 = val; | 292 | ctrl1 = val; |
| 293 | else | 293 | else |
| 294 | ctrl1 = CONTROL1_SW_OPEN; | 294 | ctrl1 = CONTROL1_SW_OPEN; |
| 295 | 295 | ||
| 296 | ret = max77693_update_reg(info->max77693->regmap_muic, | 296 | ret = regmap_update_bits(info->max77693->regmap_muic, |
| 297 | MAX77693_MUIC_REG_CTRL1, ctrl1, COMP_SW_MASK); | 297 | MAX77693_MUIC_REG_CTRL1, COMP_SW_MASK, ctrl1); |
| 298 | if (ret < 0) { | 298 | if (ret < 0) { |
| 299 | dev_err(info->dev, "failed to update MUIC register\n"); | 299 | dev_err(info->dev, "failed to update MUIC register\n"); |
| 300 | return ret; | 300 | return ret; |
| @@ -305,9 +305,9 @@ static int max77693_muic_set_path(struct max77693_muic_info *info, | |||
| 305 | else | 305 | else |
| 306 | ctrl2 |= CONTROL2_LOWPWR_MASK; /* LowPwr=1, CPEn=0 */ | 306 | ctrl2 |= CONTROL2_LOWPWR_MASK; /* LowPwr=1, CPEn=0 */ |
| 307 | 307 | ||
| 308 | ret = max77693_update_reg(info->max77693->regmap_muic, | 308 | ret = regmap_update_bits(info->max77693->regmap_muic, |
| 309 | MAX77693_MUIC_REG_CTRL2, ctrl2, | 309 | MAX77693_MUIC_REG_CTRL2, |
| 310 | CONTROL2_LOWPWR_MASK | CONTROL2_CPEN_MASK); | 310 | CONTROL2_LOWPWR_MASK | CONTROL2_CPEN_MASK, ctrl2); |
| 311 | if (ret < 0) { | 311 | if (ret < 0) { |
| 312 | dev_err(info->dev, "failed to update MUIC register\n"); | 312 | dev_err(info->dev, "failed to update MUIC register\n"); |
| 313 | return ret; | 313 | return ret; |
| @@ -969,8 +969,8 @@ static void max77693_muic_irq_work(struct work_struct *work) | |||
| 969 | if (info->irq == muic_irqs[i].virq) | 969 | if (info->irq == muic_irqs[i].virq) |
| 970 | irq_type = muic_irqs[i].irq; | 970 | irq_type = muic_irqs[i].irq; |
| 971 | 971 | ||
| 972 | ret = max77693_bulk_read(info->max77693->regmap_muic, | 972 | ret = regmap_bulk_read(info->max77693->regmap_muic, |
| 973 | MAX77693_MUIC_REG_STATUS1, 2, info->status); | 973 | MAX77693_MUIC_REG_STATUS1, info->status, 2); |
| 974 | if (ret) { | 974 | if (ret) { |
| 975 | dev_err(info->dev, "failed to read MUIC register\n"); | 975 | dev_err(info->dev, "failed to read MUIC register\n"); |
| 976 | mutex_unlock(&info->mutex); | 976 | mutex_unlock(&info->mutex); |
| @@ -1042,8 +1042,8 @@ static int max77693_muic_detect_accessory(struct max77693_muic_info *info) | |||
| 1042 | mutex_lock(&info->mutex); | 1042 | mutex_lock(&info->mutex); |
| 1043 | 1043 | ||
| 1044 | /* Read STATUSx register to detect accessory */ | 1044 | /* Read STATUSx register to detect accessory */ |
| 1045 | ret = max77693_bulk_read(info->max77693->regmap_muic, | 1045 | ret = regmap_bulk_read(info->max77693->regmap_muic, |
| 1046 | MAX77693_MUIC_REG_STATUS1, 2, info->status); | 1046 | MAX77693_MUIC_REG_STATUS1, info->status, 2); |
| 1047 | if (ret) { | 1047 | if (ret) { |
| 1048 | dev_err(info->dev, "failed to read MUIC register\n"); | 1048 | dev_err(info->dev, "failed to read MUIC register\n"); |
| 1049 | mutex_unlock(&info->mutex); | 1049 | mutex_unlock(&info->mutex); |
| @@ -1095,7 +1095,7 @@ static int max77693_muic_probe(struct platform_device *pdev) | |||
| 1095 | int delay_jiffies; | 1095 | int delay_jiffies; |
| 1096 | int ret; | 1096 | int ret; |
| 1097 | int i; | 1097 | int i; |
| 1098 | u8 id; | 1098 | unsigned int id; |
| 1099 | 1099 | ||
| 1100 | info = devm_kzalloc(&pdev->dev, sizeof(struct max77693_muic_info), | 1100 | info = devm_kzalloc(&pdev->dev, sizeof(struct max77693_muic_info), |
| 1101 | GFP_KERNEL); | 1101 | GFP_KERNEL); |
| @@ -1154,7 +1154,8 @@ static int max77693_muic_probe(struct platform_device *pdev) | |||
| 1154 | struct max77693_muic_irq *muic_irq = &muic_irqs[i]; | 1154 | struct max77693_muic_irq *muic_irq = &muic_irqs[i]; |
| 1155 | unsigned int virq = 0; | 1155 | unsigned int virq = 0; |
| 1156 | 1156 | ||
| 1157 | virq = irq_create_mapping(max77693->irq_domain, muic_irq->irq); | 1157 | virq = regmap_irq_get_virq(max77693->irq_data_muic, |
| 1158 | muic_irq->irq); | ||
| 1158 | if (!virq) { | 1159 | if (!virq) { |
| 1159 | ret = -EINVAL; | 1160 | ret = -EINVAL; |
| 1160 | goto err_irq; | 1161 | goto err_irq; |
| @@ -1204,7 +1205,7 @@ static int max77693_muic_probe(struct platform_device *pdev) | |||
| 1204 | enum max77693_irq_source irq_src | 1205 | enum max77693_irq_source irq_src |
| 1205 | = MAX77693_IRQ_GROUP_NR; | 1206 | = MAX77693_IRQ_GROUP_NR; |
| 1206 | 1207 | ||
| 1207 | max77693_write_reg(info->max77693->regmap_muic, | 1208 | regmap_write(info->max77693->regmap_muic, |
| 1208 | init_data[i].addr, | 1209 | init_data[i].addr, |
| 1209 | init_data[i].data); | 1210 | init_data[i].data); |
| 1210 | 1211 | ||
| @@ -1262,7 +1263,7 @@ static int max77693_muic_probe(struct platform_device *pdev) | |||
| 1262 | max77693_muic_set_path(info, info->path_uart, true); | 1263 | max77693_muic_set_path(info, info->path_uart, true); |
| 1263 | 1264 | ||
| 1264 | /* Check revision number of MUIC device*/ | 1265 | /* Check revision number of MUIC device*/ |
| 1265 | ret = max77693_read_reg(info->max77693->regmap_muic, | 1266 | ret = regmap_read(info->max77693->regmap_muic, |
| 1266 | MAX77693_MUIC_REG_ID, &id); | 1267 | MAX77693_MUIC_REG_ID, &id); |
| 1267 | if (ret < 0) { | 1268 | if (ret < 0) { |
| 1268 | dev_err(&pdev->dev, "failed to read revision number\n"); | 1269 | dev_err(&pdev->dev, "failed to read revision number\n"); |
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index ee8204cc31e9..2feac14d1085 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig | |||
| @@ -384,6 +384,7 @@ config MFD_MAX77693 | |||
| 384 | depends on I2C=y | 384 | depends on I2C=y |
| 385 | select MFD_CORE | 385 | select MFD_CORE |
| 386 | select REGMAP_I2C | 386 | select REGMAP_I2C |
| 387 | select REGMAP_IRQ | ||
| 387 | help | 388 | help |
| 388 | Say yes here to add support for Maxim Semiconductor MAX77693. | 389 | Say yes here to add support for Maxim Semiconductor MAX77693. |
| 389 | This is a companion Power Management IC with Flash, Haptic, Charger, | 390 | This is a companion Power Management IC with Flash, Haptic, Charger, |
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile index 8afedba535c7..8c6e7bba4660 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile | |||
| @@ -116,7 +116,7 @@ obj-$(CONFIG_MFD_DA9063) += da9063.o | |||
| 116 | 116 | ||
| 117 | obj-$(CONFIG_MFD_MAX14577) += max14577.o | 117 | obj-$(CONFIG_MFD_MAX14577) += max14577.o |
| 118 | obj-$(CONFIG_MFD_MAX77686) += max77686.o max77686-irq.o | 118 | obj-$(CONFIG_MFD_MAX77686) += max77686.o max77686-irq.o |
| 119 | obj-$(CONFIG_MFD_MAX77693) += max77693.o max77693-irq.o | 119 | obj-$(CONFIG_MFD_MAX77693) += max77693.o |
| 120 | obj-$(CONFIG_MFD_MAX8907) += max8907.o | 120 | obj-$(CONFIG_MFD_MAX8907) += max8907.o |
| 121 | max8925-objs := max8925-core.o max8925-i2c.o | 121 | max8925-objs := max8925-core.o max8925-i2c.o |
| 122 | obj-$(CONFIG_MFD_MAX8925) += max8925.o | 122 | obj-$(CONFIG_MFD_MAX8925) += max8925.o |
diff --git a/drivers/mfd/max77693-irq.c b/drivers/mfd/max77693-irq.c deleted file mode 100644 index 66b58fe77094..000000000000 --- a/drivers/mfd/max77693-irq.c +++ /dev/null | |||
| @@ -1,336 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * max77693-irq.c - Interrupt controller support for MAX77693 | ||
| 3 | * | ||
| 4 | * Copyright (C) 2012 Samsung Electronics Co.Ltd | ||
| 5 | * SangYoung Son <hello.son@samsung.com> | ||
| 6 | * | ||
| 7 | * This program is not provided / owned by Maxim Integrated Products. | ||
| 8 | * | ||
| 9 | * This program is free software; you can redistribute it and/or modify | ||
| 10 | * it under the terms of the GNU General Public License as published by | ||
| 11 | * the Free Software Foundation; either version 2 of the License, or | ||
| 12 | * (at your option) any later version. | ||
| 13 | * | ||
| 14 | * This program is distributed in the hope that it will be useful, | ||
| 15 | <|||
