diff for duplicates of <20160617075349.GE21702@dell> diff --git a/a/1.txt b/N1/1.txt index 62ecd97..b685908 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -2,37 +2,39 @@ FAO Mark, Just your Ack missing on this set. -> From: Robert Baldyga <r.baldyga-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> -> +> From: Robert Baldyga <r.baldyga@samsung.com> +>=20 > This patch modifies max8997 driver and each associated function driver, > to use regmap instead of operating directly on i2c bus. It will allow to > simplify IRQ handling using regmap-irq. -> -> Signed-off-by: Robert Baldyga <r.baldyga-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> -> Reviewed-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> -> Acked-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> -> Acked-by: Bryan Wu <cooloney-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> -> Acked-by: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> -> Acked-by: Sebastian Reichel <sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> -> Acked-by: Dmitry Torokhov <dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> -> Acked-by: Alexandre Belloni <alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> +>=20 +> Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> +> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> +> Acked-by: Chanwoo Choi <cw00.choi@samsung.com> +> Acked-by: Bryan Wu <cooloney@gmail.com> +> Acked-by: Lee Jones <lee.jones@linaro.org> +> Acked-by: Sebastian Reichel <sre@kernel.org> +> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> +> Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> > [k.kozlowski: Collect acks, rebase on v4.6-rc6] -> Signed-off-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> -> Acked-by: Jacek Anaszewski <j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> +> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> +> Acked-by: Jacek Anaszewski <j.anaszewski@samsung.com> > --- > drivers/extcon/extcon-max8997.c | 31 ++++---- > drivers/input/misc/max8997_haptic.c | 34 ++++---- > drivers/leds/leds-max8997.c | 13 ++-- > drivers/mfd/Kconfig | 1 + > drivers/mfd/max8997-irq.c | 64 ++++++--------- -> drivers/mfd/max8997.c | 141 +++++++++++++++------------------- +> drivers/mfd/max8997.c | 141 +++++++++++++++-------------= +------ > drivers/power/max8997_charger.c | 33 ++++---- > drivers/regulator/max8997-regulator.c | 87 ++++++++++----------- > drivers/rtc/rtc-max8997.c | 56 ++++++++------ > include/linux/mfd/max8997-private.h | 17 ++-- > 10 files changed, 228 insertions(+), 249 deletions(-) -> -> diff --git a/drivers/extcon/extcon-max8997.c b/drivers/extcon/extcon-max8997.c +>=20 +> diff --git a/drivers/extcon/extcon-max8997.c b/drivers/extcon/extcon-max8= +997.c > index 9a89320d09a8..fc812257bfc7 100644 > --- a/drivers/extcon/extcon-max8997.c > +++ b/drivers/extcon/extcon-max8997.c @@ -41,11 +43,11 @@ Just your Ack missing on this set. > #include <linux/extcon.h> > #include <linux/irqdomain.h> > +#include <linux/regmap.h> -> +> =20 > #define DEV_NAME "max8997-muic" > #define DELAY_MS_DEFAULT 20000 /* unit: millisecond */ > @@ -116,7 +117,7 @@ enum max8997_muic_charger_type { -> +> =20 > struct max8997_muic_info { > struct device *dev; > - struct i2c_client *muic; @@ -53,12 +55,13 @@ Just your Ack missing on this set. > struct extcon_dev *edev; > int prev_cable_type; > int prev_chg_type; -> @@ -174,10 +175,10 @@ static int max8997_muic_set_debounce_time(struct max8997_muic_info *info, +> @@ -174,10 +175,10 @@ static int max8997_muic_set_debounce_time(struct ma= +x8997_muic_info *info, > case ADC_DEBOUNCE_TIME_10MS: > case ADC_DEBOUNCE_TIME_25MS: > case ADC_DEBOUNCE_TIME_38_62MS: -> - ret = max8997_update_reg(info->muic, -> + ret = regmap_update_bits(info->max8997->regmap_muic, +> - ret =3D max8997_update_reg(info->muic, +> + ret =3D regmap_update_bits(info->max8997->regmap_muic, > MAX8997_MUIC_REG_CONTROL3, > - time << CONTROL3_ADCDBSET_SHIFT, > - CONTROL3_ADCDBSET_MASK); @@ -67,71 +70,78 @@ Just your Ack missing on this set. > if (ret) { > dev_err(info->dev, "failed to set ADC debounce time\n"); > return ret; -> @@ -212,8 +213,8 @@ static int max8997_muic_set_path(struct max8997_muic_info *info, +> @@ -212,8 +213,8 @@ static int max8997_muic_set_path(struct max8997_muic_= +info *info, > else -> ctrl1 = CONTROL1_SW_OPEN; -> -> - ret = max8997_update_reg(info->muic, +> ctrl1 =3D CONTROL1_SW_OPEN; +> =20 +> - ret =3D max8997_update_reg(info->muic, > - MAX8997_MUIC_REG_CONTROL1, ctrl1, COMP_SW_MASK); -> + ret = regmap_update_bits(info->max8997->regmap_muic, +> + ret =3D regmap_update_bits(info->max8997->regmap_muic, > + MAX8997_MUIC_REG_CONTROL1, COMP_SW_MASK, ctrl1); > if (ret < 0) { > dev_err(info->dev, "failed to update MUIC register\n"); > return ret; -> @@ -224,9 +225,9 @@ static int max8997_muic_set_path(struct max8997_muic_info *info, +> @@ -224,9 +225,9 @@ static int max8997_muic_set_path(struct max8997_muic_= +info *info, > else -> ctrl2 |= CONTROL2_LOWPWR_MASK; /* LowPwr=1, CPEn=0 */ -> -> - ret = max8997_update_reg(info->muic, +> ctrl2 |=3D CONTROL2_LOWPWR_MASK; /* LowPwr=3D1, CPEn=3D0 */ +> =20 +> - ret =3D max8997_update_reg(info->muic, > - MAX8997_MUIC_REG_CONTROL2, ctrl2, > - CONTROL2_LOWPWR_MASK | CONTROL2_CPEN_MASK); -> + ret = regmap_update_bits(info->max8997->regmap_muic, +> + ret =3D regmap_update_bits(info->max8997->regmap_muic, > + MAX8997_MUIC_REG_CONTROL2, > + CONTROL2_LOWPWR_MASK | CONTROL2_CPEN_MASK, ctrl2); > if (ret < 0) { > dev_err(info->dev, "failed to update MUIC register\n"); > return ret; -> @@ -530,8 +531,8 @@ static void max8997_muic_irq_work(struct work_struct *work) -> if (info->irq == muic_irqs[i].virq) -> irq_type = muic_irqs[i].irq; -> -> - ret = max8997_bulk_read(info->muic, MAX8997_MUIC_REG_STATUS1, +> @@ -530,8 +531,8 @@ static void max8997_muic_irq_work(struct work_struct = +*work) +> if (info->irq =3D=3D muic_irqs[i].virq) +> irq_type =3D muic_irqs[i].irq; +> =20 +> - ret =3D max8997_bulk_read(info->muic, MAX8997_MUIC_REG_STATUS1, > - 2, info->status); -> + ret = regmap_bulk_read(info->max8997->regmap_muic, +> + ret =3D regmap_bulk_read(info->max8997->regmap_muic, > + MAX8997_MUIC_REG_STATUS1, info->status, 2); > if (ret) { > dev_err(info->dev, "failed to read muic register\n"); > mutex_unlock(&info->mutex); -> @@ -590,8 +591,8 @@ static int max8997_muic_detect_dev(struct max8997_muic_info *info) +> @@ -590,8 +591,8 @@ static int max8997_muic_detect_dev(struct max8997_mui= +c_info *info) > mutex_lock(&info->mutex); -> +> =20 > /* Read STATUSx register to detect accessory */ -> - ret = max8997_bulk_read(info->muic, +> - ret =3D max8997_bulk_read(info->muic, > - MAX8997_MUIC_REG_STATUS1, 2, info->status); -> + ret = regmap_bulk_read(info->max8997->regmap_muic, +> + ret =3D regmap_bulk_read(info->max8997->regmap_muic, > + MAX8997_MUIC_REG_STATUS1, info->status, 2); > if (ret) { > dev_err(info->dev, "failed to read MUIC register\n"); > mutex_unlock(&info->mutex); -> @@ -650,7 +651,7 @@ static int max8997_muic_probe(struct platform_device *pdev) +> @@ -650,7 +651,7 @@ static int max8997_muic_probe(struct platform_device = +*pdev) > return -ENOMEM; -> -> info->dev = &pdev->dev; -> - info->muic = max8997->muic; -> + info->max8997 = max8997; -> +> =20 +> info->dev =3D &pdev->dev; +> - info->muic =3D max8997->muic; +> + info->max8997 =3D max8997; +> =20 > platform_set_drvdata(pdev, info); > mutex_init(&info->mutex); -> @@ -700,7 +701,7 @@ static int max8997_muic_probe(struct platform_device *pdev) -> +> @@ -700,7 +701,7 @@ static int max8997_muic_probe(struct platform_device = +*pdev) +> =20 > /* Initialize registers according to platform data */ -> for (i = 0; i < muic_pdata->num_init_data; i++) { +> for (i =3D 0; i < muic_pdata->num_init_data; i++) { > - max8997_write_reg(info->muic, > + regmap_write(info->max8997->regmap_muic, > muic_pdata->init_data[i].addr, > muic_pdata->init_data[i].data); > } -> diff --git a/drivers/input/misc/max8997_haptic.c b/drivers/input/misc/max8997_haptic.c +> diff --git a/drivers/input/misc/max8997_haptic.c b/drivers/input/misc/max= +8997_haptic.c > index 99bc762881d5..b1c81cdde240 100644 > --- a/drivers/input/misc/max8997_haptic.c > +++ b/drivers/input/misc/max8997_haptic.c @@ -140,19 +150,20 @@ Just your Ack missing on this set. > #include <linux/mfd/max8997.h> > #include <linux/regulator/consumer.h> > +#include <linux/regmap.h> -> +> =20 > /* Haptic configuration 2 register */ > #define MAX8997_MOTOR_TYPE_SHIFT 7 > @@ -45,7 +46,7 @@ -> +> =20 > struct max8997_haptic { > struct device *dev; > - struct i2c_client *client; > + struct max8997_dev *max8997; > struct input_dev *input_dev; > struct regulator *regulator; -> -> @@ -86,19 +87,19 @@ static int max8997_haptic_set_duty_cycle(struct max8997_haptic *chip) +> =20 +> @@ -86,19 +87,19 @@ static int max8997_haptic_set_duty_cycle(struct max89= +97_haptic *chip) > } > switch (chip->internal_mode_pattern) { > case 0: @@ -176,77 +187,79 @@ Just your Ack missing on this set. > MAX8997_HAPTIC_REG_SIGPWMDC4, duty_index); > break; > default: -> @@ -115,50 +116,51 @@ static void max8997_haptic_configure(struct max8997_haptic *chip) -> value = chip->type << MAX8997_MOTOR_TYPE_SHIFT | +> @@ -115,50 +116,51 @@ static void max8997_haptic_configure(struct max8997= +_haptic *chip) +> value =3D chip->type << MAX8997_MOTOR_TYPE_SHIFT | > chip->enabled << MAX8997_ENABLE_SHIFT | > chip->mode << MAX8997_MODE_SHIFT | chip->pwm_divisor; > - max8997_write_reg(chip->client, MAX8997_HAPTIC_REG_CONF2, value); > + regmap_write(chip->max8997->regmap_haptic, > + MAX8997_HAPTIC_REG_CONF2, value); -> -> if (chip->mode == MAX8997_INTERNAL_MODE && chip->enabled) { -> value = chip->internal_mode_pattern << MAX8997_CYCLE_SHIFT | +> =20 +> if (chip->mode =3D=3D MAX8997_INTERNAL_MODE && chip->enabled) { +> value =3D chip->internal_mode_pattern << MAX8997_CYCLE_SHIFT | > chip->internal_mode_pattern << MAX8997_SIG_PERIOD_SHIFT | > chip->internal_mode_pattern << MAX8997_SIG_DUTY_SHIFT | > chip->internal_mode_pattern << MAX8997_PWM_DUTY_SHIFT; > - max8997_write_reg(chip->client, > + regmap_write(chip->max8997->regmap_haptic, > MAX8997_HAPTIC_REG_DRVCONF, value); -> +> =20 > switch (chip->internal_mode_pattern) { > case 0: -> value = chip->pattern_cycle << 4; +> value =3D chip->pattern_cycle << 4; > - max8997_write_reg(chip->client, > + regmap_write(chip->max8997->regmap_haptic, > MAX8997_HAPTIC_REG_CYCLECONF1, value); -> value = chip->pattern_signal_period; +> value =3D chip->pattern_signal_period; > - max8997_write_reg(chip->client, > + regmap_write(chip->max8997->regmap_haptic, > MAX8997_HAPTIC_REG_SIGCONF1, value); > break; -> +> =20 > case 1: -> value = chip->pattern_cycle; +> value =3D chip->pattern_cycle; > - max8997_write_reg(chip->client, > + regmap_write(chip->max8997->regmap_haptic, > MAX8997_HAPTIC_REG_CYCLECONF1, value); -> value = chip->pattern_signal_period; +> value =3D chip->pattern_signal_period; > - max8997_write_reg(chip->client, > + regmap_write(chip->max8997->regmap_haptic, > MAX8997_HAPTIC_REG_SIGCONF2, value); > break; -> +> =20 > case 2: -> value = chip->pattern_cycle << 4; +> value =3D chip->pattern_cycle << 4; > - max8997_write_reg(chip->client, > + regmap_write(chip->max8997->regmap_haptic, > MAX8997_HAPTIC_REG_CYCLECONF2, value); -> value = chip->pattern_signal_period; +> value =3D chip->pattern_signal_period; > - max8997_write_reg(chip->client, > + regmap_write(chip->max8997->regmap_haptic, > MAX8997_HAPTIC_REG_SIGCONF3, value); > break; -> +> =20 > case 3: -> value = chip->pattern_cycle; +> value =3D chip->pattern_cycle; > - max8997_write_reg(chip->client, > + regmap_write(chip->max8997->regmap_haptic, > MAX8997_HAPTIC_REG_CYCLECONF2, value); -> value = chip->pattern_signal_period; +> value =3D chip->pattern_signal_period; > - max8997_write_reg(chip->client, > + regmap_write(chip->max8997->regmap_haptic, > MAX8997_HAPTIC_REG_SIGCONF4, value); > break; -> -> @@ -279,7 +281,7 @@ static int max8997_haptic_probe(struct platform_device *pdev) +> =20 +> @@ -279,7 +281,7 @@ static int max8997_haptic_probe(struct platform_devic= +e *pdev) > INIT_WORK(&chip->work, max8997_haptic_play_effect_work); > mutex_init(&chip->mutex); -> -> - chip->client = iodev->haptic; -> + chip->max8997 = iodev; -> chip->dev = &pdev->dev; -> chip->input_dev = input_dev; -> chip->pwm_period = haptic_pdata->pwm_period; +> =20 +> - chip->client =3D iodev->haptic; +> + chip->max8997 =3D iodev; +> chip->dev =3D &pdev->dev; +> chip->input_dev =3D input_dev; +> chip->pwm_period =3D haptic_pdata->pwm_period; > diff --git a/drivers/leds/leds-max8997.c b/drivers/leds/leds-max8997.c > index 4edf74f1d6d4..e5f0dc2e9edf 100644 > --- a/drivers/leds/leds-max8997.c @@ -256,60 +269,66 @@ Just your Ack missing on this set. > #include <linux/mfd/max8997-private.h> > #include <linux/platform_device.h> > +#include <linux/regmap.h> -> +> =20 > #define MAX8997_LED_FLASH_SHIFT 3 > #define MAX8997_LED_FLASH_CUR_MASK 0xf8 -> @@ -52,7 +53,6 @@ static void max8997_led_set_mode(struct max8997_led *led, +> @@ -52,7 +53,6 @@ static void max8997_led_set_mode(struct max8997_led *le= +d, > enum max8997_led_mode mode) > { > int ret; -> - struct i2c_client *client = led->iodev->i2c; -> u8 mask = 0, val; -> +> - struct i2c_client *client =3D led->iodev->i2c; +> u8 mask =3D 0, val; +> =20 > switch (mode) { -> @@ -88,8 +88,8 @@ static void max8997_led_set_mode(struct max8997_led *led, +> @@ -88,8 +88,8 @@ static void max8997_led_set_mode(struct max8997_led *le= +d, > } -> +> =20 > if (mask) { -> - ret = max8997_update_reg(client, MAX8997_REG_LEN_CNTL, val, +> - ret =3D max8997_update_reg(client, MAX8997_REG_LEN_CNTL, val, > - mask); -> + ret = regmap_update_bits(led->iodev->regmap, +> + ret =3D regmap_update_bits(led->iodev->regmap, > + MAX8997_REG_LEN_CNTL, mask, val); > if (ret) > dev_err(led->iodev->dev, > "failed to update register(%d)\n", ret); -> @@ -101,7 +101,6 @@ static void max8997_led_set_mode(struct max8997_led *led, +> @@ -101,7 +101,6 @@ static void max8997_led_set_mode(struct max8997_led *= +led, > static void max8997_led_enable(struct max8997_led *led, bool enable) > { > int ret; -> - struct i2c_client *client = led->iodev->i2c; -> u8 val = 0, mask = MAX8997_LED_BOOST_ENABLE_MASK; -> -> if (led->enabled == enable) -> @@ -109,7 +108,8 @@ static void max8997_led_enable(struct max8997_led *led, bool enable) -> -> val = enable ? MAX8997_LED_BOOST_ENABLE_MASK : 0; -> -> - ret = max8997_update_reg(client, MAX8997_REG_BOOST_CNTL, val, mask); -> + ret = regmap_update_bits(led->iodev->regmap, +> - struct i2c_client *client =3D led->iodev->i2c; +> u8 val =3D 0, mask =3D MAX8997_LED_BOOST_ENABLE_MASK; +> =20 +> if (led->enabled =3D=3D enable) +> @@ -109,7 +108,8 @@ static void max8997_led_enable(struct max8997_led *le= +d, bool enable) +> =20 +> val =3D enable ? MAX8997_LED_BOOST_ENABLE_MASK : 0; +> =20 +> - ret =3D max8997_update_reg(client, MAX8997_REG_BOOST_CNTL, val, mask); +> + ret =3D regmap_update_bits(led->iodev->regmap, > + MAX8997_REG_BOOST_CNTL, mask, val); > if (ret) > dev_err(led->iodev->dev, > "failed to update register(%d)\n", ret); -> @@ -121,7 +121,6 @@ static void max8997_led_set_current(struct max8997_led *led, +> @@ -121,7 +121,6 @@ static void max8997_led_set_current(struct max8997_le= +d *led, > enum led_brightness value) > { > int ret; -> - struct i2c_client *client = led->iodev->i2c; -> u8 val = 0, mask = 0, reg = 0; -> +> - struct i2c_client *client =3D led->iodev->i2c; +> u8 val =3D 0, mask =3D 0, reg =3D 0; +> =20 > switch (led->led_mode) { -> @@ -142,7 +141,7 @@ static void max8997_led_set_current(struct max8997_led *led, +> @@ -142,7 +141,7 @@ static void max8997_led_set_current(struct max8997_le= +d *led, > } -> +> =20 > if (mask) { -> - ret = max8997_update_reg(client, reg, val, mask); -> + ret = regmap_update_bits(led->iodev->regmap, reg, mask, val); +> - ret =3D max8997_update_reg(client, reg, val, mask); +> + ret =3D regmap_update_bits(led->iodev->regmap, reg, mask, val); > if (ret) > dev_err(led->iodev->dev, > "failed to update register(%d)\n", ret); @@ -319,7 +338,7 @@ Just your Ack missing on this set. > +++ b/drivers/mfd/Kconfig > @@ -621,6 +621,7 @@ config MFD_MAX8997 > bool "Maxim Semiconductor MAX8997/8966 PMIC Support" -> depends on I2C=y +> depends on I2C=3Dy > select MFD_CORE > + select REGMAP_I2C > select IRQ_DOMAIN @@ -334,13 +353,13 @@ Just your Ack missing on this set. > #include <linux/mfd/max8997.h> > #include <linux/mfd/max8997-private.h> > +#include <linux/regmap.h> -> -> static const u8 max8997_mask_reg[] = { -> [PMIC_INT1] = MAX8997_REG_INT1MSK, -> @@ -41,25 +42,6 @@ static const u8 max8997_mask_reg[] = { -> [FLASH_STATUS] = MAX8997_REG_INVALID, +> =20 +> static const u8 max8997_mask_reg[] =3D { +> [PMIC_INT1] =3D MAX8997_REG_INT1MSK, +> @@ -41,25 +42,6 @@ static const u8 max8997_mask_reg[] =3D { +> [FLASH_STATUS] =3D MAX8997_REG_INVALID, > }; -> +> =20 > -static struct i2c_client *get_i2c(struct max8997_dev *max8997, > - enum max8997_irq_source src) > -{ @@ -363,46 +382,49 @@ Just your Ack missing on this set. > struct max8997_irq_data { > int mask; > enum max8997_irq_source group; -> @@ -124,15 +106,20 @@ static void max8997_irq_sync_unlock(struct irq_data *data) +> @@ -124,15 +106,20 @@ static void max8997_irq_sync_unlock(struct irq_data= + *data) > int i; -> -> for (i = 0; i < MAX8997_IRQ_GROUP_NR; i++) { +> =20 +> for (i =3D 0; i < MAX8997_IRQ_GROUP_NR; i++) { > + struct regmap *map; -> u8 mask_reg = max8997_mask_reg[i]; -> - struct i2c_client *i2c = get_i2c(max8997, i); +> u8 mask_reg =3D max8997_mask_reg[i]; +> - struct i2c_client *i2c =3D get_i2c(max8997, i); > + -> + if (i >= MUIC_INT1 && i <= MUIC_INT3) -> + map = max8997->regmap_muic; +> + if (i >=3D MUIC_INT1 && i <=3D MUIC_INT3) +> + map =3D max8997->regmap_muic; > + else -> + map = max8997->regmap; -> -> if (mask_reg == MAX8997_REG_INVALID || +> + map =3D max8997->regmap; +> =20 +> if (mask_reg =3D=3D MAX8997_REG_INVALID || > - IS_ERR_OR_NULL(i2c)) > + IS_ERR_OR_NULL(map)) > continue; -> max8997->irq_masks_cache[i] = max8997->irq_masks_cur[i]; -> +> max8997->irq_masks_cache[i] =3D max8997->irq_masks_cur[i]; +> =20 > - max8997_write_reg(i2c, max8997_mask_reg[i], > + regmap_write(map, max8997_mask_reg[i], > max8997->irq_masks_cur[i]); > } -> -> @@ -180,11 +167,11 @@ static irqreturn_t max8997_irq_thread(int irq, void *data) +> =20 +> @@ -180,11 +167,11 @@ static irqreturn_t max8997_irq_thread(int irq, void= + *data) > { -> struct max8997_dev *max8997 = data; -> u8 irq_reg[MAX8997_IRQ_GROUP_NR] = {}; +> struct max8997_dev *max8997 =3D data; +> u8 irq_reg[MAX8997_IRQ_GROUP_NR] =3D {}; > - u8 irq_src; > + unsigned int irq_src; > int ret; > int i, cur_irq; -> -> - ret = max8997_read_reg(max8997->i2c, MAX8997_REG_INTSRC, &irq_src); -> + ret = regmap_read(max8997->regmap, MAX8997_REG_INTSRC, &irq_src); +> =20 +> - ret =3D max8997_read_reg(max8997->i2c, MAX8997_REG_INTSRC, &irq_src); +> + ret =3D regmap_read(max8997->regmap, MAX8997_REG_INTSRC, &irq_src); > if (ret < 0) { > dev_err(max8997->dev, "Failed to read interrupt source: %d\n", > ret); -> @@ -193,8 +180,8 @@ static irqreturn_t max8997_irq_thread(int irq, void *data) -> +> @@ -193,8 +180,8 @@ static irqreturn_t max8997_irq_thread(int irq, void *= +data) +> =20 > if (irq_src & MAX8997_IRQSRC_PMIC) { > /* PMIC INT1 ~ INT4 */ > - max8997_bulk_read(max8997->i2c, MAX8997_REG_INT1, 4, @@ -412,7 +434,8 @@ Just your Ack missing on this set. > } > if (irq_src & MAX8997_IRQSRC_FUELGAUGE) { > /* -> @@ -214,8 +201,8 @@ static irqreturn_t max8997_irq_thread(int irq, void *data) +> @@ -214,8 +201,8 @@ static irqreturn_t max8997_irq_thread(int irq, void *= +data) > } > if (irq_src & MAX8997_IRQSRC_MUIC) { > /* MUIC INT1 ~ INT3 */ @@ -423,29 +446,31 @@ Just your Ack missing on this set. > } > if (irq_src & MAX8997_IRQSRC_GPIO) { > /* GPIO Interrupt */ -> @@ -224,8 +211,8 @@ static irqreturn_t max8997_irq_thread(int irq, void *data) -> irq_reg[GPIO_LOW] = 0; -> irq_reg[GPIO_HI] = 0; -> +> @@ -224,8 +211,8 @@ static irqreturn_t max8997_irq_thread(int irq, void *= +data) +> irq_reg[GPIO_LOW] =3D 0; +> irq_reg[GPIO_HI] =3D 0; +> =20 > - max8997_bulk_read(max8997->i2c, MAX8997_REG_GPIOCNTL1, > - MAX8997_NUM_GPIO, gpio_info); > + regmap_bulk_read(max8997->regmap, MAX8997_REG_GPIOCNTL1, > + gpio_info, MAX8997_NUM_GPIO); -> for (i = 0; i < MAX8997_NUM_GPIO; i++) { -> bool interrupt = false; -> -> @@ -259,8 +246,10 @@ static irqreturn_t max8997_irq_thread(int irq, void *data) +> for (i =3D 0; i < MAX8997_NUM_GPIO; i++) { +> bool interrupt =3D false; +> =20 +> @@ -259,8 +246,10 @@ static irqreturn_t max8997_irq_thread(int irq, void = +*data) > } > if (irq_src & MAX8997_IRQSRC_FLASH) { > /* Flash Status Interrupt */ -> - ret = max8997_read_reg(max8997->i2c, MAX8997_REG_FLASHSTATUS, +> - ret =3D max8997_read_reg(max8997->i2c, MAX8997_REG_FLASHSTATUS, > - &irq_reg[FLASH_STATUS]); > + unsigned int data; -> + ret = regmap_read(max8997->regmap, +> + ret =3D regmap_read(max8997->regmap, > + MAX8997_REG_FLASHSTATUS, &data); -> + irq_reg[FLASH_STATUS] = data; +> + irq_reg[FLASH_STATUS] =3D data; > } -> +> =20 > /* Apply masking */ > @@ -308,7 +297,7 @@ int max8997_irq_init(struct max8997_dev *max8997) > struct irq_domain *domain; @@ -453,32 +478,32 @@ Just your Ack missing on this set. > int ret; > - u8 val; > + unsigned int val; -> +> =20 > if (!max8997->irq) { > dev_warn(max8997->dev, "No interrupt specified.\n"); > @@ -319,22 +308,19 @@ int max8997_irq_init(struct max8997_dev *max8997) -> +> =20 > /* Mask individual interrupt sources */ -> for (i = 0; i < MAX8997_IRQ_GROUP_NR; i++) { +> for (i =3D 0; i < MAX8997_IRQ_GROUP_NR; i++) { > - struct i2c_client *i2c; > - -> max8997->irq_masks_cur[i] = 0xff; -> max8997->irq_masks_cache[i] = 0xff; -> - i2c = get_i2c(max8997, i); -> +> max8997->irq_masks_cur[i] =3D 0xff; +> max8997->irq_masks_cache[i] =3D 0xff; +> - i2c =3D get_i2c(max8997, i); +> =20 > - if (IS_ERR_OR_NULL(i2c)) > + if (IS_ERR_OR_NULL(max8997->regmap)) > continue; -> if (max8997_mask_reg[i] == MAX8997_REG_INVALID) +> if (max8997_mask_reg[i] =3D=3D MAX8997_REG_INVALID) > continue; -> +> =20 > - max8997_write_reg(i2c, max8997_mask_reg[i], 0xff); > + regmap_write(max8997->regmap, max8997_mask_reg[i], 0xff); > } -> -> for (i = 0; i < MAX8997_NUM_GPIO; i++) { -> - max8997->gpio_status[i] = (max8997_read_reg(max8997->i2c, -> + max8997->gpio_status[i] = (regmap_read(max8997->regmap, +> =20 +> for (i =3D 0; i < MAX8997_NUM_GPIO; i++) { +> - max8997->gpio_status[i] =3D (max8997_read_reg(max8997->i2c, +> + max8997->gpio_status[i] =3D (regmap_read(max8997->regmap, > MAX8997_REG_GPIOCNTL1 + i, > &val) > & MAX8997_GPIO_DATA_MASK) ? @@ -491,37 +516,39 @@ Just your Ack missing on this set. > #include <linux/mfd/max8997.h> > #include <linux/mfd/max8997-private.h> > +#include <linux/regmap.h> -> +> =20 > #define I2C_ADDR_PMIC (0xCC >> 1) > #define I2C_ADDR_MUIC (0x4A >> 1) -> @@ -58,81 +59,29 @@ static const struct of_device_id max8997_pmic_dt_match[] = { +> @@ -58,81 +59,29 @@ static const struct of_device_id max8997_pmic_dt_matc= +h[] =3D { > MODULE_DEVICE_TABLE(of, max8997_pmic_dt_match); > #endif -> +> =20 > -int max8997_read_reg(struct i2c_client *i2c, u8 reg, u8 *dest) > -{ -> - struct max8997_dev *max8997 = i2c_get_clientdata(i2c); +> - struct max8997_dev *max8997 =3D i2c_get_clientdata(i2c); > - int ret; > - > - mutex_lock(&max8997->iolock); -> - ret = i2c_smbus_read_byte_data(i2c, reg); +> - ret =3D i2c_smbus_read_byte_data(i2c, reg); > - mutex_unlock(&max8997->iolock); > - if (ret < 0) > - return ret; > - -> - ret &= 0xff; -> - *dest = ret; +> - ret &=3D 0xff; +> - *dest =3D ret; > - return 0; > -} > -EXPORT_SYMBOL_GPL(max8997_read_reg); > - -> -int max8997_bulk_read(struct i2c_client *i2c, u8 reg, int count, u8 *buf) +> -int max8997_bulk_read(struct i2c_client *i2c, u8 reg, int count, u8 *buf= +) > -{ -> - struct max8997_dev *max8997 = i2c_get_clientdata(i2c); +> - struct max8997_dev *max8997 =3D i2c_get_clientdata(i2c); > - int ret; > - > - mutex_lock(&max8997->iolock); -> - ret = i2c_smbus_read_i2c_block_data(i2c, reg, count, buf); +> - ret =3D i2c_smbus_read_i2c_block_data(i2c, reg, count, buf); > - mutex_unlock(&max8997->iolock); > - if (ret < 0) > - return ret; @@ -532,114 +559,116 @@ Just your Ack missing on this set. > - > -int max8997_write_reg(struct i2c_client *i2c, u8 reg, u8 value) > -{ -> - struct max8997_dev *max8997 = i2c_get_clientdata(i2c); +> - struct max8997_dev *max8997 =3D i2c_get_clientdata(i2c); > - int ret; > - > - mutex_lock(&max8997->iolock); -> - ret = i2c_smbus_write_byte_data(i2c, reg, value); +> - ret =3D i2c_smbus_write_byte_data(i2c, reg, value); > - mutex_unlock(&max8997->iolock); > - return ret; > -} > -EXPORT_SYMBOL_GPL(max8997_write_reg); > - -> -int max8997_bulk_write(struct i2c_client *i2c, u8 reg, int count, u8 *buf) +> -int max8997_bulk_write(struct i2c_client *i2c, u8 reg, int count, u8 *bu= +f) > -{ -> - struct max8997_dev *max8997 = i2c_get_clientdata(i2c); +> - struct max8997_dev *max8997 =3D i2c_get_clientdata(i2c); > - int ret; -> +static const struct regmap_config max8997_regmap_config = { -> + .reg_bits = 8, -> + .val_bits = 8, -> + .max_register = MAX8997_REG_PMIC_END, +> +static const struct regmap_config max8997_regmap_config =3D { +> + .reg_bits =3D 8, +> + .val_bits =3D 8, +> + .max_register =3D MAX8997_REG_PMIC_END, > +}; -> +> =20 > - mutex_lock(&max8997->iolock); -> - ret = i2c_smbus_write_i2c_block_data(i2c, reg, count, buf); +> - ret =3D i2c_smbus_write_i2c_block_data(i2c, reg, count, buf); > - mutex_unlock(&max8997->iolock); > - if (ret < 0) > - return ret; -> +static const struct regmap_config max8997_regmap_rtc_config = { -> + .reg_bits = 8, -> + .val_bits = 8, -> + .max_register = MAX8997_RTC_REG_END, +> +static const struct regmap_config max8997_regmap_rtc_config =3D { +> + .reg_bits =3D 8, +> + .val_bits =3D 8, +> + .max_register =3D MAX8997_RTC_REG_END, > +}; -> +> =20 > - return 0; > -} > -EXPORT_SYMBOL_GPL(max8997_bulk_write); -> +static const struct regmap_config max8997_regmap_haptic_config = { -> + .reg_bits = 8, -> + .val_bits = 8, -> + .max_register = MAX8997_HAPTIC_REG_END, +> +static const struct regmap_config max8997_regmap_haptic_config =3D { +> + .reg_bits =3D 8, +> + .val_bits =3D 8, +> + .max_register =3D MAX8997_HAPTIC_REG_END, > +}; -> +> =20 > -int max8997_update_reg(struct i2c_client *i2c, u8 reg, u8 val, u8 mask) > -{ -> - struct max8997_dev *max8997 = i2c_get_clientdata(i2c); +> - struct max8997_dev *max8997 =3D i2c_get_clientdata(i2c); > - int ret; > - > - mutex_lock(&max8997->iolock); -> - ret = i2c_smbus_read_byte_data(i2c, reg); -> - if (ret >= 0) { -> - u8 old_val = ret & 0xff; -> - u8 new_val = (val & mask) | (old_val & (~mask)); -> - ret = i2c_smbus_write_byte_data(i2c, reg, new_val); +> - ret =3D i2c_smbus_read_byte_data(i2c, reg); +> - if (ret >=3D 0) { +> - u8 old_val =3D ret & 0xff; +> - u8 new_val =3D (val & mask) | (old_val & (~mask)); +> - ret =3D i2c_smbus_write_byte_data(i2c, reg, new_val); > - } > - mutex_unlock(&max8997->iolock); > - return ret; > -} > -EXPORT_SYMBOL_GPL(max8997_update_reg); -> +static const struct regmap_config max8997_regmap_muic_config = { -> + .reg_bits = 8, -> + .val_bits = 8, -> + .max_register = MAX8997_MUIC_REG_END, +> +static const struct regmap_config max8997_regmap_muic_config =3D { +> + .reg_bits =3D 8, +> + .val_bits =3D 8, +> + .max_register =3D MAX8997_MUIC_REG_END, > +}; -> +> =20 > /* -> * Only the common platform data elements for max8997 are parsed here from the +> * Only the common platform data elements for max8997 are parsed here fr= +om the > @@ -231,6 +180,41 @@ static int max8997_i2c_probe(struct i2c_client *i2c, > } > i2c_set_clientdata(max8997->muic, max8997); -> -> + max8997->regmap = devm_regmap_init_i2c(i2c, &max8997_regmap_config); +> =20 +> + max8997->regmap =3D devm_regmap_init_i2c(i2c, &max8997_regmap_config); > + if (IS_ERR(max8997->regmap)) { -> + ret = PTR_ERR(max8997->regmap); +> + ret =3D PTR_ERR(max8997->regmap); > + dev_err(max8997->dev, > + "failed to allocate register map: %d\n", ret); > + return ret; > + } > + -> + max8997->regmap_rtc = devm_regmap_init_i2c(max8997->rtc, +> + max8997->regmap_rtc =3D devm_regmap_init_i2c(max8997->rtc, > + &max8997_regmap_rtc_config); > + if (IS_ERR(max8997->regmap_rtc)) { -> + ret = PTR_ERR(max8997->regmap_rtc); +> + ret =3D PTR_ERR(max8997->regmap_rtc); > + dev_err(max8997->dev, > + "failed to allocate register map: %d\n", ret); > + goto err_regmap; > + } > + -> + max8997->regmap_haptic = devm_regmap_init_i2c(max8997->haptic, +> + max8997->regmap_haptic =3D devm_regmap_init_i2c(max8997->haptic, > + &max8997_regmap_haptic_config); > + if (IS_ERR(max8997->regmap_haptic)) { -> + ret = PTR_ERR(max8997->regmap_haptic); +> + ret =3D PTR_ERR(max8997->regmap_haptic); > + dev_err(max8997->dev, > + "failed to allocate register map: %d\n", ret); > + goto err_regmap; > + } > + -> + max8997->regmap_muic = devm_regmap_init_i2c(max8997->muic, +> + max8997->regmap_muic =3D devm_regmap_init_i2c(max8997->muic, > + &max8997_regmap_muic_config); > + if (IS_ERR(max8997->regmap_muic)) { -> + ret = PTR_ERR(max8997->regmap_muic); +> + ret =3D PTR_ERR(max8997->regmap_muic); > + dev_err(max8997->dev, > + "failed to allocate register map: %d\n", ret); > + goto err_regmap; > + } > + > pm_runtime_set_active(max8997->dev); -> +> =20 > max8997_irq_init(max8997); > @@ -255,6 +239,7 @@ static int max8997_i2c_probe(struct i2c_client *i2c, -> +> =20 > err_mfd: > mfd_remove_devices(max8997->dev); > +err_regmap: @@ -648,43 +677,44 @@ Just your Ack missing on this set. > i2c_unregister_device(max8997->haptic); > @@ -442,15 +427,15 @@ static int max8997_freeze(struct device *dev) > int i; -> -> for (i = 0; i < ARRAY_SIZE(max8997_dumpaddr_pmic); i++) +> =20 +> for (i =3D 0; i < ARRAY_SIZE(max8997_dumpaddr_pmic); i++) > - max8997_read_reg(i2c, max8997_dumpaddr_pmic[i], > + regmap_read(max8997->regmap, max8997_dumpaddr_pmic[i], > &max8997->reg_dump[i]); -> -> for (i = 0; i < ARRAY_SIZE(max8997_dumpaddr_muic); i++) +> =20 +> for (i =3D 0; i < ARRAY_SIZE(max8997_dumpaddr_muic); i++) > - max8997_read_reg(i2c, max8997_dumpaddr_muic[i], > + regmap_read(max8997->regmap_muic, max8997_dumpaddr_muic[i], > &max8997->reg_dump[i + MAX8997_REG_PMIC_END]); -> -> for (i = 0; i < ARRAY_SIZE(max8997_dumpaddr_haptic); i++) +> =20 +> for (i =3D 0; i < ARRAY_SIZE(max8997_dumpaddr_haptic); i++) > - max8997_read_reg(i2c, max8997_dumpaddr_haptic[i], > + regmap_read(max8997->regmap_haptic, max8997_dumpaddr_haptic[i], > &max8997->reg_dump[i + MAX8997_REG_PMIC_END + > MAX8997_MUIC_REG_END]); -> +> =20 > @@ -464,15 +449,15 @@ static int max8997_restore(struct device *dev) > int i; -> -> for (i = 0; i < ARRAY_SIZE(max8997_dumpaddr_pmic); i++) +> =20 +> for (i =3D 0; i < ARRAY_SIZE(max8997_dumpaddr_pmic); i++) > - max8997_write_reg(i2c, max8997_dumpaddr_pmic[i], > + regmap_write(max8997->regmap, max8997_dumpaddr_pmic[i], > max8997->reg_dump[i]); -> -> for (i = 0; i < ARRAY_SIZE(max8997_dumpaddr_muic); i++) +> =20 +> for (i =3D 0; i < ARRAY_SIZE(max8997_dumpaddr_muic); i++) > - max8997_write_reg(i2c, max8997_dumpaddr_muic[i], > + regmap_write(max8997->regmap_muic, max8997_dumpaddr_muic[i], > max8997->reg_dump[i + MAX8997_REG_PMIC_END]); -> -> for (i = 0; i < ARRAY_SIZE(max8997_dumpaddr_haptic); i++) +> =20 +> for (i =3D 0; i < ARRAY_SIZE(max8997_dumpaddr_haptic); i++) > - max8997_write_reg(i2c, max8997_dumpaddr_haptic[i], > + regmap_write(max8997->regmap_haptic, max8997_dumpaddr_haptic[i], > max8997->reg_dump[i + MAX8997_REG_PMIC_END + > MAX8997_MUIC_REG_END]); -> -> diff --git a/drivers/power/max8997_charger.c b/drivers/power/max8997_charger.c +> =20 +> diff --git a/drivers/power/max8997_charger.c b/drivers/power/max8997_char= +ger.c > index 0b2eab571528..a9f5ddcf83a8 100644 > --- a/drivers/power/max8997_charger.c > +++ b/drivers/power/max8997_charger.c @@ -693,88 +723,94 @@ Just your Ack missing on this set. > #include <linux/mfd/max8997.h> > #include <linux/mfd/max8997-private.h> > +#include <linux/regmap.h> -> +> =20 > struct charger_data { > struct device *dev; -> @@ -45,14 +46,14 @@ static int max8997_battery_get_property(struct power_supply *psy, +> @@ -45,14 +46,14 @@ static int max8997_battery_get_property(struct power_= +supply *psy, > union power_supply_propval *val) > { -> struct charger_data *charger = power_supply_get_drvdata(psy); -> - struct i2c_client *i2c = charger->iodev->i2c; +> struct charger_data *charger =3D power_supply_get_drvdata(psy); +> - struct i2c_client *i2c =3D charger->iodev->i2c; > int ret; > - u8 reg; > + unsigned int reg; -> +> =20 > switch (psp) { > case POWER_SUPPLY_PROP_STATUS: -> val->intval = 0; -> - ret = max8997_read_reg(i2c, MAX8997_REG_STATUS4, ®); -> + ret = regmap_read(charger->iodev->regmap, +> val->intval =3D 0; +> - ret =3D max8997_read_reg(i2c, MAX8997_REG_STATUS4, ®); +> + ret =3D regmap_read(charger->iodev->regmap, > + MAX8997_REG_STATUS4, ®); > if (ret) > return ret; -> if ((reg & (1 << 0)) == 0x1) -> @@ -61,7 +62,8 @@ static int max8997_battery_get_property(struct power_supply *psy, +> if ((reg & (1 << 0)) =3D=3D 0x1) +> @@ -61,7 +62,8 @@ static int max8997_battery_get_property(struct power_su= +pply *psy, > break; > case POWER_SUPPLY_PROP_PRESENT: -> val->intval = 0; -> - ret = max8997_read_reg(i2c, MAX8997_REG_STATUS4, ®); -> + ret = regmap_read(charger->iodev->regmap, +> val->intval =3D 0; +> - ret =3D max8997_read_reg(i2c, MAX8997_REG_STATUS4, ®); +> + ret =3D regmap_read(charger->iodev->regmap, > + MAX8997_REG_STATUS4, ®); > if (ret) > return ret; -> if ((reg & (1 << 2)) == 0x0) -> @@ -70,7 +72,8 @@ static int max8997_battery_get_property(struct power_supply *psy, +> if ((reg & (1 << 2)) =3D=3D 0x0) +> @@ -70,7 +72,8 @@ static int max8997_battery_get_property(struct power_su= +pply *psy, > break; > case POWER_SUPPLY_PROP_ONLINE: -> val->intval = 0; -> - ret = max8997_read_reg(i2c, MAX8997_REG_STATUS4, ®); -> + ret = regmap_read(charger->iodev->regmap, +> val->intval =3D 0; +> - ret =3D max8997_read_reg(i2c, MAX8997_REG_STATUS4, ®); +> + ret =3D regmap_read(charger->iodev->regmap, > + MAX8997_REG_STATUS4, ®); > if (ret) > return ret; > /* DCINOK */ -> @@ -111,8 +114,8 @@ static int max8997_battery_probe(struct platform_device *pdev) +> @@ -111,8 +114,8 @@ static int max8997_battery_probe(struct platform_devi= +ce *pdev) > if (val > 0xf) -> val = 0xf; -> -> - ret = max8997_update_reg(iodev->i2c, +> val =3D 0xf; +> =20 +> - ret =3D max8997_update_reg(iodev->i2c, > - MAX8997_REG_MBCCTRL5, val, 0xf); -> + ret = regmap_update_bits(iodev->regmap, +> + ret =3D regmap_update_bits(iodev->regmap, > + MAX8997_REG_MBCCTRL5, 0xf, val); > if (ret < 0) { > dev_err(&pdev->dev, "Cannot use i2c bus.\n"); > return ret; -> @@ -121,20 +124,20 @@ static int max8997_battery_probe(struct platform_device *pdev) -> +> @@ -121,20 +124,20 @@ static int max8997_battery_probe(struct platform_de= +vice *pdev) +> =20 > switch (pdata->timeout) { > case 5: -> - ret = max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1, +> - ret =3D max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1, > - 0x2 << 4, 0x7 << 4); -> + ret = regmap_update_bits(iodev->regmap, +> + ret =3D regmap_update_bits(iodev->regmap, > + MAX8997_REG_MBCCTRL1, 0x7 << 4, 0x2 << 4); > break; > case 6: -> - ret = max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1, +> - ret =3D max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1, > - 0x3 << 4, 0x7 << 4); -> + ret = regmap_update_bits(iodev->regmap, +> + ret =3D regmap_update_bits(iodev->regmap, > + MAX8997_REG_MBCCTRL1, 0x7 << 4, 0x3 << 4); > break; > case 7: -> - ret = max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1, +> - ret =3D max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1, > - 0x4 << 4, 0x7 << 4); -> + ret = regmap_update_bits(iodev->regmap, +> + ret =3D regmap_update_bits(iodev->regmap, > + MAX8997_REG_MBCCTRL1, 0x7 << 4, 0x4 << 4); > break; > case 0: -> - ret = max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1, +> - ret =3D max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1, > - 0x7 << 4, 0x7 << 4); -> + ret = regmap_update_bits(iodev->regmap, +> + ret =3D regmap_update_bits(iodev->regmap, > + MAX8997_REG_MBCCTRL1, 0x7 << 4, 0x7 << 4); > break; > default: > dev_err(&pdev->dev, "incorrect timeout value (%d)\n", -> diff --git a/drivers/regulator/max8997-regulator.c b/drivers/regulator/max8997-regulator.c +> diff --git a/drivers/regulator/max8997-regulator.c b/drivers/regulator/ma= +x8997-regulator.c > index efabc0ea0e96..362d85a849d5 100644 > --- a/drivers/regulator/max8997-regulator.c > +++ b/drivers/regulator/max8997-regulator.c @@ -783,190 +819,203 @@ Just your Ack missing on this set. > #include <linux/mfd/max8997-private.h> > #include <linux/regulator/of_regulator.h> > +#include <linux/regmap.h> -> +> =20 > struct max8997_data { > struct device *dev; > @@ -50,7 +51,7 @@ struct max8997_data { > int buck125_gpioindex; > bool ignore_gpiodvs_side_effect; -> +> =20 > - u8 saved_states[MAX8997_REG_MAX]; > + unsigned int saved_states[MAX8997_REG_MAX]; > }; -> -> static const unsigned int safeoutvolt[] = { -> @@ -257,15 +258,14 @@ static int max8997_get_enable_register(struct regulator_dev *rdev, +> =20 +> static const unsigned int safeoutvolt[] =3D { +> @@ -257,15 +258,14 @@ static int max8997_get_enable_register(struct regul= +ator_dev *rdev, > static int max8997_reg_is_enabled(struct regulator_dev *rdev) > { -> struct max8997_data *max8997 = rdev_get_drvdata(rdev); -> - struct i2c_client *i2c = max8997->iodev->i2c; +> struct max8997_data *max8997 =3D rdev_get_drvdata(rdev); +> - struct i2c_client *i2c =3D max8997->iodev->i2c; > int ret, reg, mask, pattern; > - u8 val; > + unsigned int val; -> -> ret = max8997_get_enable_register(rdev, ®, &mask, &pattern); +> =20 +> ret =3D max8997_get_enable_register(rdev, ®, &mask, &pattern); > if (ret) > return ret; -> -> - ret = max8997_read_reg(i2c, reg, &val); -> + ret = regmap_read(max8997->iodev->regmap, reg, &val); +> =20 +> - ret =3D max8997_read_reg(i2c, reg, &val); +> + ret =3D regmap_read(max8997->iodev->regmap, reg, &val); > if (ret) > return ret; -> -> @@ -275,27 +275,25 @@ static int max8997_reg_is_enabled(struct regulator_dev *rdev) +> =20 +> @@ -275,27 +275,25 @@ static int max8997_reg_is_enabled(struct regulator_= +dev *rdev) > static int max8997_reg_enable(struct regulator_dev *rdev) > { -> struct max8997_data *max8997 = rdev_get_drvdata(rdev); -> - struct i2c_client *i2c = max8997->iodev->i2c; +> struct max8997_data *max8997 =3D rdev_get_drvdata(rdev); +> - struct i2c_client *i2c =3D max8997->iodev->i2c; > int ret, reg, mask, pattern; -> -> ret = max8997_get_enable_register(rdev, ®, &mask, &pattern); +> =20 +> ret =3D max8997_get_enable_register(rdev, ®, &mask, &pattern); > if (ret) > return ret; -> +> =20 > - return max8997_update_reg(i2c, reg, pattern, mask); > + return regmap_update_bits(max8997->iodev->regmap, reg, mask, pattern); > } -> +> =20 > static int max8997_reg_disable(struct regulator_dev *rdev) > { -> struct max8997_data *max8997 = rdev_get_drvdata(rdev); -> - struct i2c_client *i2c = max8997->iodev->i2c; +> struct max8997_data *max8997 =3D rdev_get_drvdata(rdev); +> - struct i2c_client *i2c =3D max8997->iodev->i2c; > int ret, reg, mask, pattern; -> -> ret = max8997_get_enable_register(rdev, ®, &mask, &pattern); +> =20 +> ret =3D max8997_get_enable_register(rdev, ®, &mask, &pattern); > if (ret) > return ret; -> +> =20 > - return max8997_update_reg(i2c, reg, ~pattern, mask); > + return regmap_update_bits(max8997->iodev->regmap, reg, mask, ~pattern); > } -> +> =20 > static int max8997_get_voltage_register(struct regulator_dev *rdev, -> @@ -367,15 +365,14 @@ static int max8997_get_voltage_register(struct regulator_dev *rdev, +> @@ -367,15 +365,14 @@ static int max8997_get_voltage_register(struct regu= +lator_dev *rdev, > static int max8997_get_voltage_sel(struct regulator_dev *rdev) > { -> struct max8997_data *max8997 = rdev_get_drvdata(rdev); -> - struct i2c_client *i2c = max8997->iodev->i2c; +> struct max8997_data *max8997 =3D rdev_get_drvdata(rdev); +> - struct i2c_client *i2c =3D max8997->iodev->i2c; > int reg, shift, mask, ret; > - u8 val; > + unsigned int val; -> -> ret = max8997_get_voltage_register(rdev, ®, &shift, &mask); +> =20 +> ret =3D max8997_get_voltage_register(rdev, ®, &shift, &mask); > if (ret) > return ret; -> -> - ret = max8997_read_reg(i2c, reg, &val); -> + ret = regmap_read(max8997->iodev->regmap, reg, &val); +> =20 +> - ret =3D max8997_read_reg(i2c, reg, &val); +> + ret =3D regmap_read(max8997->iodev->regmap, reg, &val); > if (ret) > return ret; -> -> @@ -412,7 +409,6 @@ static int max8997_set_voltage_charger_cv(struct regulator_dev *rdev, +> =20 +> @@ -412,7 +409,6 @@ static int max8997_set_voltage_charger_cv(struct regu= +lator_dev *rdev, > int min_uV, int max_uV, unsigned *selector) > { -> struct max8997_data *max8997 = rdev_get_drvdata(rdev); -> - struct i2c_client *i2c = max8997->iodev->i2c; -> int rid = rdev_get_id(rdev); +> struct max8997_data *max8997 =3D rdev_get_drvdata(rdev); +> - struct i2c_client *i2c =3D max8997->iodev->i2c; +> int rid =3D rdev_get_id(rdev); > int lb, ub; -> int reg, shift = 0, mask, ret = 0; -> @@ -454,7 +450,8 @@ static int max8997_set_voltage_charger_cv(struct regulator_dev *rdev, -> -> *selector = val; -> -> - ret = max8997_update_reg(i2c, reg, val << shift, mask); -> + ret = regmap_update_bits(max8997->iodev->regmap, +> int reg, shift =3D 0, mask, ret =3D 0; +> @@ -454,7 +450,8 @@ static int max8997_set_voltage_charger_cv(struct regu= +lator_dev *rdev, +> =20 +> *selector =3D val; +> =20 +> - ret =3D max8997_update_reg(i2c, reg, val << shift, mask); +> + ret =3D regmap_update_bits(max8997->iodev->regmap, > + reg, mask, val << shift); -> +> =20 > return ret; > } -> @@ -467,7 +464,6 @@ static int max8997_set_voltage_ldobuck(struct regulator_dev *rdev, +> @@ -467,7 +464,6 @@ static int max8997_set_voltage_ldobuck(struct regulat= +or_dev *rdev, > int min_uV, int max_uV, unsigned *selector) > { -> struct max8997_data *max8997 = rdev_get_drvdata(rdev); -> - struct i2c_client *i2c = max8997->iodev->i2c; +> struct max8997_data *max8997 =3D rdev_get_drvdata(rdev); +> - struct i2c_client *i2c =3D max8997->iodev->i2c; > const struct voltage_map_desc *desc; -> int rid = rdev_get_id(rdev); +> int rid =3D rdev_get_id(rdev); > int i, reg, shift, mask, ret; -> @@ -499,7 +495,8 @@ static int max8997_set_voltage_ldobuck(struct regulator_dev *rdev, +> @@ -499,7 +495,8 @@ static int max8997_set_voltage_ldobuck(struct regulat= +or_dev *rdev, > if (ret) > return ret; -> -> - ret = max8997_update_reg(i2c, reg, i << shift, mask << shift); -> + ret = regmap_update_bits(max8997->iodev->regmap, +> =20 +> - ret =3D max8997_update_reg(i2c, reg, i << shift, mask << shift); +> + ret =3D regmap_update_bits(max8997->iodev->regmap, > + reg, mask << shift, i << shift); -> *selector = i; -> +> *selector =3D i; +> =20 > return ret; -> @@ -709,7 +706,6 @@ static int max8997_set_voltage_safeout_sel(struct regulator_dev *rdev, +> @@ -709,7 +706,6 @@ static int max8997_set_voltage_safeout_sel(struct reg= +ulator_dev *rdev, > unsigned selector) > { -> struct max8997_data *max8997 = rdev_get_drvdata(rdev); -> - struct i2c_client *i2c = max8997->iodev->i2c; -> int rid = rdev_get_id(rdev); -> int reg, shift = 0, mask, ret; -> -> @@ -720,13 +716,13 @@ static int max8997_set_voltage_safeout_sel(struct regulator_dev *rdev, +> struct max8997_data *max8997 =3D rdev_get_drvdata(rdev); +> - struct i2c_client *i2c =3D max8997->iodev->i2c; +> int rid =3D rdev_get_id(rdev); +> int reg, shift =3D 0, mask, ret; +> =20 +> @@ -720,13 +716,13 @@ static int max8997_set_voltage_safeout_sel(struct r= +egulator_dev *rdev, > if (ret) > return ret; -> +> =20 > - return max8997_update_reg(i2c, reg, selector << shift, mask << shift); > + return regmap_update_bits(max8997->iodev->regmap, > + reg, mask << shift, selector << shift); > } -> +> =20 > static int max8997_reg_disable_suspend(struct regulator_dev *rdev) > { -> struct max8997_data *max8997 = rdev_get_drvdata(rdev); -> - struct i2c_client *i2c = max8997->iodev->i2c; +> struct max8997_data *max8997 =3D rdev_get_drvdata(rdev); +> - struct i2c_client *i2c =3D max8997->iodev->i2c; > int ret, reg, mask, pattern; -> int rid = rdev_get_id(rdev); -> -> @@ -734,20 +730,22 @@ static int max8997_reg_disable_suspend(struct regulator_dev *rdev) +> int rid =3D rdev_get_id(rdev); +> =20 +> @@ -734,20 +730,22 @@ static int max8997_reg_disable_suspend(struct regul= +ator_dev *rdev) > if (ret) > return ret; -> +> =20 > - max8997_read_reg(i2c, reg, &max8997->saved_states[rid]); > + regmap_read(max8997->iodev->regmap, > + reg, &max8997->saved_states[rid]); -> -> if (rid == MAX8997_LDO1 || -> rid == MAX8997_LDO10 || -> rid == MAX8997_LDO21) { +> =20 +> if (rid =3D=3D MAX8997_LDO1 || +> rid =3D=3D MAX8997_LDO10 || +> rid =3D=3D MAX8997_LDO21) { > dev_dbg(&rdev->dev, "Conditional Power-Off for %s\n", > rdev->desc->name); > - return max8997_update_reg(i2c, reg, 0x40, mask); > + return regmap_update_bits(max8997->iodev->regmap, > + reg, mask, 0x40); > } -> +> =20 > dev_dbg(&rdev->dev, "Full Power-Off for %s (%xh -> %xh)\n", > rdev->desc->name, max8997->saved_states[rid] & mask, > (~pattern) & mask); > - return max8997_update_reg(i2c, reg, ~pattern, mask); > + return regmap_update_bits(max8997->iodev->regmap, reg, mask, ~pattern); > } -> -> static struct regulator_ops max8997_ldo_ops = { -> @@ -1031,7 +1029,6 @@ static int max8997_pmic_probe(struct platform_device *pdev) -> struct regulator_config config = { }; +> =20 +> static struct regulator_ops max8997_ldo_ops =3D { +> @@ -1031,7 +1029,6 @@ static int max8997_pmic_probe(struct platform_devic= +e *pdev) +> struct regulator_config config =3D { }; > struct regulator_dev *rdev; > struct max8997_data *max8997; > - struct i2c_client *i2c; > int i, ret, nr_dvs; -> u8 max_buck1 = 0, max_buck2 = 0, max_buck5 = 0; -> -> @@ -1055,7 +1052,6 @@ static int max8997_pmic_probe(struct platform_device *pdev) -> max8997->iodev = iodev; -> max8997->num_regulators = pdata->num_regulators; +> u8 max_buck1 =3D 0, max_buck2 =3D 0, max_buck5 =3D 0; +> =20 +> @@ -1055,7 +1052,6 @@ static int max8997_pmic_probe(struct platform_devic= +e *pdev) +> max8997->iodev =3D iodev; +> max8997->num_regulators =3D pdata->num_regulators; > platform_set_drvdata(pdev, max8997); -> - i2c = max8997->iodev->i2c; -> -> max8997->buck125_gpioindex = pdata->buck125_default_idx; -> max8997->buck1_gpiodvs = pdata->buck1_gpiodvs; -> @@ -1105,25 +1101,25 @@ static int max8997_pmic_probe(struct platform_device *pdev) -> +> - i2c =3D max8997->iodev->i2c; +> =20 +> max8997->buck125_gpioindex =3D pdata->buck125_default_idx; +> max8997->buck1_gpiodvs =3D pdata->buck1_gpiodvs; +> @@ -1105,25 +1101,25 @@ static int max8997_pmic_probe(struct platform_dev= +ice *pdev) +> =20 > /* For the safety, set max voltage before setting up */ -> for (i = 0; i < 8; i++) { +> for (i =3D 0; i < 8; i++) { > - max8997_update_reg(i2c, MAX8997_REG_BUCK1DVS1 + i, > - max_buck1, 0x3f); > - max8997_update_reg(i2c, MAX8997_REG_BUCK2DVS1 + i, @@ -980,9 +1029,9 @@ Just your Ack missing on this set. > + regmap_update_bits(max8997->iodev->regmap, > + MAX8997_REG_BUCK5DVS1 + i, 0x3f, max_buck5); > } -> +> =20 > /* Initialize all the DVS related BUCK registers */ -> for (i = 0; i < nr_dvs; i++) { +> for (i =3D 0; i < nr_dvs; i++) { > - max8997_update_reg(i2c, MAX8997_REG_BUCK1DVS1 + i, > - max8997->buck1_vol[i], > - 0x3f); @@ -1002,11 +1051,12 @@ Just your Ack missing on this set. > + MAX8997_REG_BUCK5DVS1 + i, > + 0x3f, max8997->buck5_vol[i]); > } -> +> =20 > /* -> @@ -1167,16 +1163,17 @@ static int max8997_pmic_probe(struct platform_device *pdev) +> @@ -1167,16 +1163,17 @@ static int max8997_pmic_probe(struct platform_dev= +ice *pdev) > } -> +> =20 > /* DVS-GPIO disabled */ > - max8997_update_reg(i2c, MAX8997_REG_BUCK1CTRL, (pdata->buck1_gpiodvs) ? > - (1 << 1) : (0 << 1), 1 << 1); @@ -1020,14 +1070,14 @@ Just your Ack missing on this set. > + 1 << 1, (pdata->buck2_gpiodvs) ? (1 << 1) : (0 << 1)); > + regmap_update_bits(max8997->iodev->regmap, MAX8997_REG_BUCK5CTRL, > + 1 << 1, (pdata->buck5_gpiodvs) ? (1 << 1) : (0 << 1)); -> +> =20 > /* Misc Settings */ -> max8997->ramp_delay = 10; /* set 10mV/us, which is the default */ +> max8997->ramp_delay =3D 10; /* set 10mV/us, which is the default */ > - max8997_write_reg(i2c, MAX8997_REG_BUCKRAMP, (0xf << 4) | 0x9); > + regmap_write(max8997->iodev->regmap, > + MAX8997_REG_BUCKRAMP, (0xf << 4) | 0x9); -> -> for (i = 0; i < pdata->num_regulators; i++) { +> =20 +> for (i =3D 0; i < pdata->num_regulators; i++) { > const struct voltage_map_desc *desc; > diff --git a/drivers/rtc/rtc-max8997.c b/drivers/rtc/rtc-max8997.c > index db984d4bf952..d017a34a9f70 100644 @@ -1038,9 +1088,9 @@ Just your Ack missing on this set. > #include <linux/mfd/max8997-private.h> > #include <linux/irqdomain.h> > +#include <linux/regmap.h> -> +> =20 > /* Module parameter for WTSR function control */ -> static int wtsr_en = 1; +> static int wtsr_en =3D 1; > @@ -70,7 +71,6 @@ enum { > struct max8997_rtc_info { > struct device *dev; @@ -1049,193 +1099,222 @@ Just your Ack missing on this set. > struct rtc_device *rtc_dev; > struct mutex lock; > int virq; -> @@ -120,8 +120,8 @@ static inline int max8997_rtc_set_update_reg(struct max8997_rtc_info *info) +> @@ -120,8 +120,8 @@ static inline int max8997_rtc_set_update_reg(struct m= +ax8997_rtc_info *info) > { > int ret; -> -> - ret = max8997_write_reg(info->rtc, MAX8997_RTC_UPDATE1, +> =20 +> - ret =3D max8997_write_reg(info->rtc, MAX8997_RTC_UPDATE1, > - RTC_UDR_MASK); -> + ret = regmap_write(info->max8997->regmap_rtc, +> + ret =3D regmap_write(info->max8997->regmap_rtc, > + MAX8997_RTC_UPDATE1, RTC_UDR_MASK); > if (ret < 0) > dev_err(info->dev, "%s: fail to write update reg(%d)\n", > __func__, ret); -> @@ -142,7 +142,8 @@ static int max8997_rtc_read_time(struct device *dev, struct rtc_time *tm) +> @@ -142,7 +142,8 @@ static int max8997_rtc_read_time(struct device *dev, = +struct rtc_time *tm) > int ret; -> +> =20 > mutex_lock(&info->lock); -> - ret = max8997_bulk_read(info->rtc, MAX8997_RTC_SEC, RTC_NR_TIME, data); -> + ret = regmap_bulk_read(info->max8997->regmap_rtc, +> - ret =3D max8997_bulk_read(info->rtc, MAX8997_RTC_SEC, RTC_NR_TIME, data= +); +> + ret =3D regmap_bulk_read(info->max8997->regmap_rtc, > + MAX8997_RTC_SEC, data, RTC_NR_TIME); > mutex_unlock(&info->lock); -> +> =20 > if (ret < 0) { -> @@ -168,7 +169,8 @@ static int max8997_rtc_set_time(struct device *dev, struct rtc_time *tm) -> +> @@ -168,7 +169,8 @@ static int max8997_rtc_set_time(struct device *dev, s= +truct rtc_time *tm) +> =20 > mutex_lock(&info->lock); -> -> - ret = max8997_bulk_write(info->rtc, MAX8997_RTC_SEC, RTC_NR_TIME, data); -> + ret = regmap_bulk_write(info->max8997->regmap_rtc, +> =20 +> - ret =3D max8997_bulk_write(info->rtc, MAX8997_RTC_SEC, RTC_NR_TIME, dat= +a); +> + ret =3D regmap_bulk_write(info->max8997->regmap_rtc, > + MAX8997_RTC_SEC, data, RTC_NR_TIME); > if (ret < 0) { > dev_err(info->dev, "%s: fail to write time reg(%d)\n", __func__, > ret); -> @@ -185,13 +187,13 @@ static int max8997_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) +> @@ -185,13 +187,13 @@ static int max8997_rtc_read_alarm(struct device *de= +v, struct rtc_wkalrm *alrm) > { -> struct max8997_rtc_info *info = dev_get_drvdata(dev); +> struct max8997_rtc_info *info =3D dev_get_drvdata(dev); > u8 data[RTC_NR_TIME]; > - u8 val; > + unsigned int val; > int i, ret; -> +> =20 > mutex_lock(&info->lock); -> -> - ret = max8997_bulk_read(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME, +> =20 +> - ret =3D max8997_bulk_read(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIM= +E, > - data); -> + ret = regmap_bulk_read(info->max8997->regmap_rtc, +> + ret =3D regmap_bulk_read(info->max8997->regmap_rtc, > + MAX8997_RTC_ALARM1_SEC, data, RTC_NR_TIME); > if (ret < 0) { > dev_err(info->dev, "%s:%d fail to read alarm reg(%d)\n", > __func__, __LINE__, ret); -> @@ -209,7 +211,8 @@ static int max8997_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) +> @@ -209,7 +211,8 @@ static int max8997_rtc_read_alarm(struct device *dev,= + struct rtc_wkalrm *alrm) > } -> -> alrm->pending = 0; -> - ret = max8997_read_reg(info->max8997->i2c, MAX8997_REG_STATUS1, &val); -> + ret = regmap_read(info->max8997->regmap_rtc, +> =20 +> alrm->pending =3D 0; +> - ret =3D max8997_read_reg(info->max8997->i2c, MAX8997_REG_STATUS1, &val)= +; +> + ret =3D regmap_read(info->max8997->regmap_rtc, > + MAX8997_REG_STATUS1, &val); > if (ret < 0) { > dev_err(info->dev, "%s:%d fail to read status1 reg(%d)\n", > __func__, __LINE__, ret); -> @@ -232,8 +235,8 @@ static int max8997_rtc_stop_alarm(struct max8997_rtc_info *info) +> @@ -232,8 +235,8 @@ static int max8997_rtc_stop_alarm(struct max8997_rtc_= +info *info) > if (!mutex_is_locked(&info->lock)) > dev_warn(info->dev, "%s: should have mutex locked\n", __func__); -> -> - ret = max8997_bulk_read(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME, +> =20 +> - ret =3D max8997_bulk_read(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIM= +E, > - data); -> + ret = regmap_bulk_read(info->max8997->regmap_rtc, +> + ret =3D regmap_bulk_read(info->max8997->regmap_rtc, > + MAX8997_RTC_ALARM1_SEC, data, RTC_NR_TIME); > if (ret < 0) { > dev_err(info->dev, "%s: fail to read alarm reg(%d)\n", > __func__, ret); -> @@ -243,8 +246,8 @@ static int max8997_rtc_stop_alarm(struct max8997_rtc_info *info) -> for (i = 0; i < RTC_NR_TIME; i++) -> data[i] &= ~ALARM_ENABLE_MASK; -> -> - ret = max8997_bulk_write(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME, +> @@ -243,8 +246,8 @@ static int max8997_rtc_stop_alarm(struct max8997_rtc_= +info *info) +> for (i =3D 0; i < RTC_NR_TIME; i++) +> data[i] &=3D ~ALARM_ENABLE_MASK; +> =20 +> - ret =3D max8997_bulk_write(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TI= +ME, > - data); -> + ret = regmap_bulk_write(info->max8997->regmap_rtc, +> + ret =3D regmap_bulk_write(info->max8997->regmap_rtc, > + MAX8997_RTC_ALARM1_SEC, data, RTC_NR_TIME); > if (ret < 0) { > dev_err(info->dev, "%s: fail to write alarm reg(%d)\n", > __func__, ret); -> @@ -264,8 +267,8 @@ static int max8997_rtc_start_alarm(struct max8997_rtc_info *info) +> @@ -264,8 +267,8 @@ static int max8997_rtc_start_alarm(struct max8997_rtc= +_info *info) > if (!mutex_is_locked(&info->lock)) > dev_warn(info->dev, "%s: should have mutex locked\n", __func__); -> -> - ret = max8997_bulk_read(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME, +> =20 +> - ret =3D max8997_bulk_read(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIM= +E, > - data); -> + ret = regmap_bulk_read(info->max8997->regmap_rtc, +> + ret =3D regmap_bulk_read(info->max8997->regmap_rtc, > + MAX8997_RTC_ALARM1_SEC, data, RTC_NR_TIME); > if (ret < 0) { > dev_err(info->dev, "%s: fail to read alarm reg(%d)\n", > __func__, ret); -> @@ -283,8 +286,8 @@ static int max8997_rtc_start_alarm(struct max8997_rtc_info *info) +> @@ -283,8 +286,8 @@ static int max8997_rtc_start_alarm(struct max8997_rtc= +_info *info) > if (data[RTC_DATE] & 0x1f) -> data[RTC_DATE] |= (1 << ALARM_ENABLE_SHIFT); -> -> - ret = max8997_bulk_write(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME, +> data[RTC_DATE] |=3D (1 << ALARM_ENABLE_SHIFT); +> =20 +> - ret =3D max8997_bulk_write(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TI= +ME, > - data); -> + ret = regmap_bulk_write(info->max8997->regmap_rtc, +> + ret =3D regmap_bulk_write(info->max8997->regmap_rtc, > + MAX8997_RTC_ALARM1_SEC, data, RTC_NR_TIME); > if (ret < 0) { > dev_err(info->dev, "%s: fail to write alarm reg(%d)\n", > __func__, ret); -> @@ -315,8 +318,8 @@ static int max8997_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm) +> @@ -315,8 +318,8 @@ static int max8997_rtc_set_alarm(struct device *dev, = +struct rtc_wkalrm *alrm) > if (ret < 0) > goto out; -> -> - ret = max8997_bulk_write(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME, +> =20 +> - ret =3D max8997_bulk_write(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TI= +ME, > - data); -> + ret = regmap_bulk_write(info->max8997->regmap_rtc, +> + ret =3D regmap_bulk_write(info->max8997->regmap_rtc, > + MAX8997_RTC_ALARM1_SEC, data, RTC_NR_TIME); > if (ret < 0) { > dev_err(info->dev, "%s: fail to write alarm reg(%d)\n", > __func__, ret); -> @@ -387,7 +390,8 @@ static void max8997_rtc_enable_wtsr(struct max8997_rtc_info *info, bool enable) +> @@ -387,7 +390,8 @@ static void max8997_rtc_enable_wtsr(struct max8997_rt= +c_info *info, bool enable) > dev_info(info->dev, "%s: %s WTSR\n", __func__, > enable ? "enable" : "disable"); -> -> - ret = max8997_update_reg(info->rtc, MAX8997_RTC_WTSR_SMPL, val, mask); -> + ret = regmap_update_bits(info->max8997->regmap_rtc, +> =20 +> - ret =3D max8997_update_reg(info->rtc, MAX8997_RTC_WTSR_SMPL, val, mask)= +; +> + ret =3D regmap_update_bits(info->max8997->regmap_rtc, > + MAX8997_RTC_WTSR_SMPL, mask, val); > if (ret < 0) { > dev_err(info->dev, "%s: fail to update WTSR reg(%d)\n", > __func__, ret); -> @@ -400,7 +404,7 @@ static void max8997_rtc_enable_wtsr(struct max8997_rtc_info *info, bool enable) -> static void max8997_rtc_enable_smpl(struct max8997_rtc_info *info, bool enable) +> @@ -400,7 +404,7 @@ static void max8997_rtc_enable_wtsr(struct max8997_rt= +c_info *info, bool enable) +> static void max8997_rtc_enable_smpl(struct max8997_rtc_info *info, bool = +enable) > { > int ret; > - u8 val, mask; > + unsigned int val, mask; -> +> =20 > if (!smpl_en) > return; -> @@ -415,7 +419,8 @@ static void max8997_rtc_enable_smpl(struct max8997_rtc_info *info, bool enable) +> @@ -415,7 +419,8 @@ static void max8997_rtc_enable_smpl(struct max8997_rt= +c_info *info, bool enable) > dev_info(info->dev, "%s: %s SMPL\n", __func__, > enable ? "enable" : "disable"); -> -> - ret = max8997_update_reg(info->rtc, MAX8997_RTC_WTSR_SMPL, val, mask); -> + ret = regmap_update_bits(info->max8997->regmap_rtc, +> =20 +> - ret =3D max8997_update_reg(info->rtc, MAX8997_RTC_WTSR_SMPL, val, mask)= +; +> + ret =3D regmap_update_bits(info->max8997->regmap_rtc, > + MAX8997_RTC_WTSR_SMPL, mask, val); > if (ret < 0) { > dev_err(info->dev, "%s: fail to update SMPL reg(%d)\n", > __func__, ret); -> @@ -425,7 +430,8 @@ static void max8997_rtc_enable_smpl(struct max8997_rtc_info *info, bool enable) +> @@ -425,7 +430,8 @@ static void max8997_rtc_enable_smpl(struct max8997_rt= +c_info *info, bool enable) > max8997_rtc_set_update_reg(info); -> -> val = 0; +> =20 +> val =3D 0; > - max8997_read_reg(info->rtc, MAX8997_RTC_WTSR_SMPL, &val); > + regmap_read(info->max8997->regmap_rtc, > + MAX8997_RTC_WTSR_SMPL, &val); > pr_info("WTSR_SMPL(0x%02x)\n", val); > } -> -> @@ -440,7 +446,8 @@ static int max8997_rtc_init_reg(struct max8997_rtc_info *info) -> -> info->rtc_24hr_mode = 1; -> -> - ret = max8997_bulk_write(info->rtc, MAX8997_RTC_CTRLMASK, 2, data); -> + ret = regmap_bulk_write(info->max8997->regmap_rtc, +> =20 +> @@ -440,7 +446,8 @@ static int max8997_rtc_init_reg(struct max8997_rtc_in= +fo *info) +> =20 +> info->rtc_24hr_mode =3D 1; +> =20 +> - ret =3D max8997_bulk_write(info->rtc, MAX8997_RTC_CTRLMASK, 2, data); +> + ret =3D regmap_bulk_write(info->max8997->regmap_rtc, > + MAX8997_RTC_CTRLMASK, data, 2); > if (ret < 0) { > dev_err(info->dev, "%s: fail to write controlm reg(%d)\n", > __func__, ret); -> @@ -465,7 +472,6 @@ static int max8997_rtc_probe(struct platform_device *pdev) +> @@ -465,7 +472,6 @@ static int max8997_rtc_probe(struct platform_device *= +pdev) > mutex_init(&info->lock); -> info->dev = &pdev->dev; -> info->max8997 = max8997; -> - info->rtc = max8997->rtc; -> +> info->dev =3D &pdev->dev; +> info->max8997 =3D max8997; +> - info->rtc =3D max8997->rtc; +> =20 > platform_set_drvdata(pdev, info); -> -> diff --git a/include/linux/mfd/max8997-private.h b/include/linux/mfd/max8997-private.h +> =20 +> diff --git a/include/linux/mfd/max8997-private.h b/include/linux/mfd/max8= +997-private.h > index 78c76cd4d37b..ea80ef80dbf8 100644 > --- a/include/linux/mfd/max8997-private.h > +++ b/include/linux/mfd/max8997-private.h > @@ -309,6 +309,8 @@ enum max8997_rtc_reg { -> MAX8997_RTC_ALARM2_MONTH = 0x22, -> MAX8997_RTC_ALARM2_YEAR = 0x23, -> MAX8997_RTC_ALARM2_DAY_OF_MONTH = 0x24, +> MAX8997_RTC_ALARM2_MONTH =3D 0x22, +> MAX8997_RTC_ALARM2_YEAR =3D 0x23, +> MAX8997_RTC_ALARM2_DAY_OF_MONTH =3D 0x24, > + -> + MAX8997_RTC_REG_END = 0x25, +> + MAX8997_RTC_REG_END =3D 0x25, > }; -> +> =20 > enum max8997_irq_source { > @@ -390,6 +392,11 @@ struct max8997_dev { > unsigned long type; > struct platform_device *battery; /* battery control (not fuel gauge) */ -> +> =20 > + struct regmap *regmap; > + struct regmap *regmap_rtc; > + struct regmap *regmap_haptic; @@ -1246,41 +1325,45 @@ Just your Ack missing on this set. > struct irq_domain *irq_domain; > @@ -398,7 +405,7 @@ struct max8997_dev { > int irq_masks_cache[MAX8997_IRQ_GROUP_NR]; -> +> =20 > /* For hibernation */ > - u8 reg_dump[MAX8997_REG_PMIC_END + MAX8997_MUIC_REG_END + > + unsigned int reg_dump[MAX8997_REG_PMIC_END + MAX8997_MUIC_REG_END + > MAX8997_HAPTIC_REG_END]; -> +> =20 > bool gpio_status[MAX8997_NUM_GPIO]; -> @@ -413,14 +420,6 @@ extern int max8997_irq_init(struct max8997_dev *max8997); +> @@ -413,14 +420,6 @@ extern int max8997_irq_init(struct max8997_dev *max8= +997); > extern void max8997_irq_exit(struct max8997_dev *max8997); > extern int max8997_irq_resume(struct max8997_dev *max8997); -> +> =20 > -extern int max8997_read_reg(struct i2c_client *i2c, u8 reg, u8 *dest); > -extern int max8997_bulk_read(struct i2c_client *i2c, u8 reg, int count, > - u8 *buf); > -extern int max8997_write_reg(struct i2c_client *i2c, u8 reg, u8 value); > -extern int max8997_bulk_write(struct i2c_client *i2c, u8 reg, int count, > - u8 *buf); -> -extern int max8997_update_reg(struct i2c_client *i2c, u8 reg, u8 val, u8 mask); +> -extern int max8997_update_reg(struct i2c_client *i2c, u8 reg, u8 val, u8= + mask); > - > #define MAX8997_GPIO_INT_BOTH (0x3 << 4) > #define MAX8997_GPIO_INT_RISE (0x2 << 4) > #define MAX8997_GPIO_INT_FALL (0x1 << 4) --- +--=20 Lee Jones Linaro STMicroelectronics Landing Team Lead -Linaro.org │ Open source software for ARM SoCs +Linaro.org =E2=94=82 Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog --- +--=20 You received this message because you are subscribed to "rtc-linux". Membership options at http://groups.google.com/group/rtc-linux . Please read http://groups.google.com/group/rtc-linux/web/checklist before submitting a driver. ---- -You received this message because you are subscribed to the Google Groups "rtc-linux" group. -To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org +---=20 +You received this message because you are subscribed to the Google Groups "= +rtc-linux" group. +To unsubscribe from this group and stop receiving emails from it, send an e= +mail to rtc-linux+unsubscribe@googlegroups.com. For more options, visit https://groups.google.com/d/optout. diff --git a/a/content_digest b/N1/content_digest index c4597e9..e9cbd36 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,70 +1,71 @@ "ref\01466143833-5856-1-git-send-email-k.kozlowski@samsung.com\0" "ref\01466143833-5856-2-git-send-email-k.kozlowski@samsung.com\0" - "ref\01466143833-5856-2-git-send-email-k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org\0" - "From\0Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>\0" - "Subject\0Re: [RESEND v7 1/6] mfd: max8997: Use regmap to access registers\0" + "From\0Lee Jones <lee.jones@linaro.org>\0" + "Subject\0[rtc-linux] Re: [RESEND v7 1/6] mfd: max8997: Use regmap to access registers\0" "Date\0Fri, 17 Jun 2016 08:53:49 +0100\0" - "To\0Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\0" - "Cc\0Kukjin Kim <kgene-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>" - MyungJoo Ham <myungjoo.ham-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> - Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> - Dmitry Torokhov <dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - Richard Purdie <rpurdie-Fm38FmjxZ/leoWH0uzbU5w@public.gmane.org> - Jacek Anaszewski <j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> - Sebastian Reichel <sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> - Dmitry Eremin-Solenikov <dbaryshkov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org> - Liam Girdwood <lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> - Alessandro Zummo <a.zummo-BfzFCNDTiLLj+vYz1yj4TQ@public.gmane.org> - Alexandre Belloni <alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> - devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org - linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-leds-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - rtc-linux-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org - r.baldyga-anjuHVi6/WSaMJb+Lgu22Q@public.gmane.org - " Bartlomiej Zolnierkiewicz <b.zolnierkie-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\0" + "To\0Krzysztof Kozlowski <k.kozlowski@samsung.com>\0" + "Cc\0Kukjin Kim <kgene@kernel.org>" + MyungJoo Ham <myungjoo.ham@samsung.com> + Chanwoo Choi <cw00.choi@samsung.com> + Dmitry Torokhov <dmitry.torokhov@gmail.com> + Richard Purdie <rpurdie@rpsys.net> + Jacek Anaszewski <j.anaszewski@samsung.com> + Sebastian Reichel <sre@kernel.org> + Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> + David Woodhouse <dwmw2@infradead.org> + Liam Girdwood <lgirdwood@gmail.com> + Mark Brown <broonie@kernel.org> + Alessandro Zummo <a.zummo@towertech.it> + Alexandre Belloni <alexandre.belloni@free-electrons.com> + devicetree@vger.kernel.org + linux-arm-kernel@lists.infradead.org + linux-samsung-soc@vger.kernel.org + linux-kernel@vger.kernel.org + linux-input@vger.kernel.org + linux-leds@vger.kernel.org + linux-pm@vger.kernel.org + rtc-linux@googlegroups.com + r.baldyga@hackerion.com + " Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>\0" "\00:1\0" "b\0" "FAO Mark,\n" "\n" "Just your Ack missing on this set.\n" "\n" - "> From: Robert Baldyga <r.baldyga-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" - "> \n" + "> From: Robert Baldyga <r.baldyga@samsung.com>\n" + ">=20\n" "> This patch modifies max8997 driver and each associated function driver,\n" "> to use regmap instead of operating directly on i2c bus. It will allow to\n" "> simplify IRQ handling using regmap-irq.\n" - "> \n" - "> Signed-off-by: Robert Baldyga <r.baldyga-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" - "> Reviewed-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" - "> Acked-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" - "> Acked-by: Bryan Wu <cooloney-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>\n" - "> Acked-by: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>\n" - "> Acked-by: Sebastian Reichel <sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>\n" - "> Acked-by: Dmitry Torokhov <dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>\n" - "> Acked-by: Alexandre Belloni <alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>\n" + ">=20\n" + "> Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>\n" + "> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>\n" + "> Acked-by: Chanwoo Choi <cw00.choi@samsung.com>\n" + "> Acked-by: Bryan Wu <cooloney@gmail.com>\n" + "> Acked-by: Lee Jones <lee.jones@linaro.org>\n" + "> Acked-by: Sebastian Reichel <sre@kernel.org>\n" + "> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>\n" + "> Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>\n" "> [k.kozlowski: Collect acks, rebase on v4.6-rc6]\n" - "> Signed-off-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" - "> Acked-by: Jacek Anaszewski <j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" + "> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>\n" + "> Acked-by: Jacek Anaszewski <j.anaszewski@samsung.com>\n" "> ---\n" "> drivers/extcon/extcon-max8997.c | 31 ++++----\n" "> drivers/input/misc/max8997_haptic.c | 34 ++++----\n" "> drivers/leds/leds-max8997.c | 13 ++--\n" "> drivers/mfd/Kconfig | 1 +\n" "> drivers/mfd/max8997-irq.c | 64 ++++++---------\n" - "> drivers/mfd/max8997.c | 141 +++++++++++++++-------------------\n" + "> drivers/mfd/max8997.c | 141 +++++++++++++++-------------=\n" + "------\n" "> drivers/power/max8997_charger.c | 33 ++++----\n" "> drivers/regulator/max8997-regulator.c | 87 ++++++++++-----------\n" "> drivers/rtc/rtc-max8997.c | 56 ++++++++------\n" "> include/linux/mfd/max8997-private.h | 17 ++--\n" "> 10 files changed, 228 insertions(+), 249 deletions(-)\n" - "> \n" - "> diff --git a/drivers/extcon/extcon-max8997.c b/drivers/extcon/extcon-max8997.c\n" + ">=20\n" + "> diff --git a/drivers/extcon/extcon-max8997.c b/drivers/extcon/extcon-max8=\n" + "997.c\n" "> index 9a89320d09a8..fc812257bfc7 100644\n" "> --- a/drivers/extcon/extcon-max8997.c\n" "> +++ b/drivers/extcon/extcon-max8997.c\n" @@ -73,11 +74,11 @@ "> #include <linux/extcon.h>\n" "> #include <linux/irqdomain.h>\n" "> +#include <linux/regmap.h>\n" - "> \n" + "> =20\n" "> #define\tDEV_NAME\t\t\t\"max8997-muic\"\n" "> #define\tDELAY_MS_DEFAULT\t\t20000\t\t/* unit: millisecond */\n" "> @@ -116,7 +117,7 @@ enum max8997_muic_charger_type {\n" - "> \n" + "> =20\n" "> struct max8997_muic_info {\n" "> \tstruct device *dev;\n" "> -\tstruct i2c_client *muic;\n" @@ -85,12 +86,13 @@ "> \tstruct extcon_dev *edev;\n" "> \tint prev_cable_type;\n" "> \tint prev_chg_type;\n" - "> @@ -174,10 +175,10 @@ static int max8997_muic_set_debounce_time(struct max8997_muic_info *info,\n" + "> @@ -174,10 +175,10 @@ static int max8997_muic_set_debounce_time(struct ma=\n" + "x8997_muic_info *info,\n" "> \tcase ADC_DEBOUNCE_TIME_10MS:\n" "> \tcase ADC_DEBOUNCE_TIME_25MS:\n" "> \tcase ADC_DEBOUNCE_TIME_38_62MS:\n" - "> -\t\tret = max8997_update_reg(info->muic,\n" - "> +\t\tret = regmap_update_bits(info->max8997->regmap_muic,\n" + "> -\t\tret =3D max8997_update_reg(info->muic,\n" + "> +\t\tret =3D regmap_update_bits(info->max8997->regmap_muic,\n" "> \t\t\t\t\t MAX8997_MUIC_REG_CONTROL3,\n" "> -\t\t\t\t\t time << CONTROL3_ADCDBSET_SHIFT,\n" "> -\t\t\t\t\t CONTROL3_ADCDBSET_MASK);\n" @@ -99,71 +101,78 @@ "> \t\tif (ret) {\n" "> \t\t\tdev_err(info->dev, \"failed to set ADC debounce time\\n\");\n" "> \t\t\treturn ret;\n" - "> @@ -212,8 +213,8 @@ static int max8997_muic_set_path(struct max8997_muic_info *info,\n" + "> @@ -212,8 +213,8 @@ static int max8997_muic_set_path(struct max8997_muic_=\n" + "info *info,\n" "> \telse\n" - "> \t\tctrl1 = CONTROL1_SW_OPEN;\n" - "> \n" - "> -\tret = max8997_update_reg(info->muic,\n" + "> \t\tctrl1 =3D CONTROL1_SW_OPEN;\n" + "> =20\n" + "> -\tret =3D max8997_update_reg(info->muic,\n" "> -\t\t\tMAX8997_MUIC_REG_CONTROL1, ctrl1, COMP_SW_MASK);\n" - "> +\tret = regmap_update_bits(info->max8997->regmap_muic,\n" + "> +\tret =3D regmap_update_bits(info->max8997->regmap_muic,\n" "> +\t\t\tMAX8997_MUIC_REG_CONTROL1, COMP_SW_MASK, ctrl1);\n" "> \tif (ret < 0) {\n" "> \t\tdev_err(info->dev, \"failed to update MUIC register\\n\");\n" "> \t\treturn ret;\n" - "> @@ -224,9 +225,9 @@ static int max8997_muic_set_path(struct max8997_muic_info *info,\n" + "> @@ -224,9 +225,9 @@ static int max8997_muic_set_path(struct max8997_muic_=\n" + "info *info,\n" "> \telse\n" - "> \t\tctrl2 |= CONTROL2_LOWPWR_MASK;\t/* LowPwr=1, CPEn=0 */\n" - "> \n" - "> -\tret = max8997_update_reg(info->muic,\n" + "> \t\tctrl2 |=3D CONTROL2_LOWPWR_MASK;\t/* LowPwr=3D1, CPEn=3D0 */\n" + "> =20\n" + "> -\tret =3D max8997_update_reg(info->muic,\n" "> -\t\t\tMAX8997_MUIC_REG_CONTROL2, ctrl2,\n" "> -\t\t\tCONTROL2_LOWPWR_MASK | CONTROL2_CPEN_MASK);\n" - "> +\tret = regmap_update_bits(info->max8997->regmap_muic,\n" + "> +\tret =3D regmap_update_bits(info->max8997->regmap_muic,\n" "> +\t\t\tMAX8997_MUIC_REG_CONTROL2,\n" "> +\t\t\tCONTROL2_LOWPWR_MASK | CONTROL2_CPEN_MASK, ctrl2);\n" "> \tif (ret < 0) {\n" "> \t\tdev_err(info->dev, \"failed to update MUIC register\\n\");\n" "> \t\treturn ret;\n" - "> @@ -530,8 +531,8 @@ static void max8997_muic_irq_work(struct work_struct *work)\n" - "> \t\tif (info->irq == muic_irqs[i].virq)\n" - "> \t\t\tirq_type = muic_irqs[i].irq;\n" - "> \n" - "> -\tret = max8997_bulk_read(info->muic, MAX8997_MUIC_REG_STATUS1,\n" + "> @@ -530,8 +531,8 @@ static void max8997_muic_irq_work(struct work_struct =\n" + "*work)\n" + "> \t\tif (info->irq =3D=3D muic_irqs[i].virq)\n" + "> \t\t\tirq_type =3D muic_irqs[i].irq;\n" + "> =20\n" + "> -\tret =3D max8997_bulk_read(info->muic, MAX8997_MUIC_REG_STATUS1,\n" "> -\t\t\t\t2, info->status);\n" - "> +\tret = regmap_bulk_read(info->max8997->regmap_muic,\n" + "> +\tret =3D regmap_bulk_read(info->max8997->regmap_muic,\n" "> +\t\t\t\tMAX8997_MUIC_REG_STATUS1, info->status, 2);\n" "> \tif (ret) {\n" "> \t\tdev_err(info->dev, \"failed to read muic register\\n\");\n" "> \t\tmutex_unlock(&info->mutex);\n" - "> @@ -590,8 +591,8 @@ static int max8997_muic_detect_dev(struct max8997_muic_info *info)\n" + "> @@ -590,8 +591,8 @@ static int max8997_muic_detect_dev(struct max8997_mui=\n" + "c_info *info)\n" "> \tmutex_lock(&info->mutex);\n" - "> \n" + "> =20\n" "> \t/* Read STATUSx register to detect accessory */\n" - "> -\tret = max8997_bulk_read(info->muic,\n" + "> -\tret =3D max8997_bulk_read(info->muic,\n" "> -\t\t\tMAX8997_MUIC_REG_STATUS1, 2, info->status);\n" - "> +\tret = regmap_bulk_read(info->max8997->regmap_muic,\n" + "> +\tret =3D regmap_bulk_read(info->max8997->regmap_muic,\n" "> +\t\t\tMAX8997_MUIC_REG_STATUS1, info->status, 2);\n" "> \tif (ret) {\n" "> \t\tdev_err(info->dev, \"failed to read MUIC register\\n\");\n" "> \t\tmutex_unlock(&info->mutex);\n" - "> @@ -650,7 +651,7 @@ static int max8997_muic_probe(struct platform_device *pdev)\n" + "> @@ -650,7 +651,7 @@ static int max8997_muic_probe(struct platform_device =\n" + "*pdev)\n" "> \t\treturn -ENOMEM;\n" - "> \n" - "> \tinfo->dev = &pdev->dev;\n" - "> -\tinfo->muic = max8997->muic;\n" - "> +\tinfo->max8997 = max8997;\n" - "> \n" + "> =20\n" + "> \tinfo->dev =3D &pdev->dev;\n" + "> -\tinfo->muic =3D max8997->muic;\n" + "> +\tinfo->max8997 =3D max8997;\n" + "> =20\n" "> \tplatform_set_drvdata(pdev, info);\n" "> \tmutex_init(&info->mutex);\n" - "> @@ -700,7 +701,7 @@ static int max8997_muic_probe(struct platform_device *pdev)\n" - "> \n" + "> @@ -700,7 +701,7 @@ static int max8997_muic_probe(struct platform_device =\n" + "*pdev)\n" + "> =20\n" "> \t\t/* Initialize registers according to platform data */\n" - "> \t\tfor (i = 0; i < muic_pdata->num_init_data; i++) {\n" + "> \t\tfor (i =3D 0; i < muic_pdata->num_init_data; i++) {\n" "> -\t\t\tmax8997_write_reg(info->muic,\n" "> +\t\t\tregmap_write(info->max8997->regmap_muic,\n" "> \t\t\t\t\tmuic_pdata->init_data[i].addr,\n" "> \t\t\t\t\tmuic_pdata->init_data[i].data);\n" "> \t\t}\n" - "> diff --git a/drivers/input/misc/max8997_haptic.c b/drivers/input/misc/max8997_haptic.c\n" + "> diff --git a/drivers/input/misc/max8997_haptic.c b/drivers/input/misc/max=\n" + "8997_haptic.c\n" "> index 99bc762881d5..b1c81cdde240 100644\n" "> --- a/drivers/input/misc/max8997_haptic.c\n" "> +++ b/drivers/input/misc/max8997_haptic.c\n" @@ -172,19 +181,20 @@ "> #include <linux/mfd/max8997.h>\n" "> #include <linux/regulator/consumer.h>\n" "> +#include <linux/regmap.h>\n" - "> \n" + "> =20\n" "> /* Haptic configuration 2 register */\n" "> #define MAX8997_MOTOR_TYPE_SHIFT\t7\n" "> @@ -45,7 +46,7 @@\n" - "> \n" + "> =20\n" "> struct max8997_haptic {\n" "> \tstruct device *dev;\n" "> -\tstruct i2c_client *client;\n" "> +\tstruct max8997_dev *max8997;\n" "> \tstruct input_dev *input_dev;\n" "> \tstruct regulator *regulator;\n" - "> \n" - "> @@ -86,19 +87,19 @@ static int max8997_haptic_set_duty_cycle(struct max8997_haptic *chip)\n" + "> =20\n" + "> @@ -86,19 +87,19 @@ static int max8997_haptic_set_duty_cycle(struct max89=\n" + "97_haptic *chip)\n" "> \t\t}\n" "> \t\tswitch (chip->internal_mode_pattern) {\n" "> \t\tcase 0:\n" @@ -208,77 +218,79 @@ "> \t\t\t\tMAX8997_HAPTIC_REG_SIGPWMDC4, duty_index);\n" "> \t\t\tbreak;\n" "> \t\tdefault:\n" - "> @@ -115,50 +116,51 @@ static void max8997_haptic_configure(struct max8997_haptic *chip)\n" - "> \tvalue = chip->type << MAX8997_MOTOR_TYPE_SHIFT |\n" + "> @@ -115,50 +116,51 @@ static void max8997_haptic_configure(struct max8997=\n" + "_haptic *chip)\n" + "> \tvalue =3D chip->type << MAX8997_MOTOR_TYPE_SHIFT |\n" "> \t\tchip->enabled << MAX8997_ENABLE_SHIFT |\n" "> \t\tchip->mode << MAX8997_MODE_SHIFT | chip->pwm_divisor;\n" "> -\tmax8997_write_reg(chip->client, MAX8997_HAPTIC_REG_CONF2, value);\n" "> +\tregmap_write(chip->max8997->regmap_haptic,\n" "> +\t\tMAX8997_HAPTIC_REG_CONF2, value);\n" - "> \n" - "> \tif (chip->mode == MAX8997_INTERNAL_MODE && chip->enabled) {\n" - "> \t\tvalue = chip->internal_mode_pattern << MAX8997_CYCLE_SHIFT |\n" + "> =20\n" + "> \tif (chip->mode =3D=3D MAX8997_INTERNAL_MODE && chip->enabled) {\n" + "> \t\tvalue =3D chip->internal_mode_pattern << MAX8997_CYCLE_SHIFT |\n" "> \t\t\tchip->internal_mode_pattern << MAX8997_SIG_PERIOD_SHIFT |\n" "> \t\t\tchip->internal_mode_pattern << MAX8997_SIG_DUTY_SHIFT |\n" "> \t\t\tchip->internal_mode_pattern << MAX8997_PWM_DUTY_SHIFT;\n" "> -\t\tmax8997_write_reg(chip->client,\n" "> +\t\tregmap_write(chip->max8997->regmap_haptic,\n" "> \t\t\tMAX8997_HAPTIC_REG_DRVCONF, value);\n" - "> \n" + "> =20\n" "> \t\tswitch (chip->internal_mode_pattern) {\n" "> \t\tcase 0:\n" - "> \t\t\tvalue = chip->pattern_cycle << 4;\n" + "> \t\t\tvalue =3D chip->pattern_cycle << 4;\n" "> -\t\t\tmax8997_write_reg(chip->client,\n" "> +\t\t\tregmap_write(chip->max8997->regmap_haptic,\n" "> \t\t\t\tMAX8997_HAPTIC_REG_CYCLECONF1, value);\n" - "> \t\t\tvalue = chip->pattern_signal_period;\n" + "> \t\t\tvalue =3D chip->pattern_signal_period;\n" "> -\t\t\tmax8997_write_reg(chip->client,\n" "> +\t\t\tregmap_write(chip->max8997->regmap_haptic,\n" "> \t\t\t\tMAX8997_HAPTIC_REG_SIGCONF1, value);\n" "> \t\t\tbreak;\n" - "> \n" + "> =20\n" "> \t\tcase 1:\n" - "> \t\t\tvalue = chip->pattern_cycle;\n" + "> \t\t\tvalue =3D chip->pattern_cycle;\n" "> -\t\t\tmax8997_write_reg(chip->client,\n" "> +\t\t\tregmap_write(chip->max8997->regmap_haptic,\n" "> \t\t\t\tMAX8997_HAPTIC_REG_CYCLECONF1, value);\n" - "> \t\t\tvalue = chip->pattern_signal_period;\n" + "> \t\t\tvalue =3D chip->pattern_signal_period;\n" "> -\t\t\tmax8997_write_reg(chip->client,\n" "> +\t\t\tregmap_write(chip->max8997->regmap_haptic,\n" "> \t\t\t\tMAX8997_HAPTIC_REG_SIGCONF2, value);\n" "> \t\t\tbreak;\n" - "> \n" + "> =20\n" "> \t\tcase 2:\n" - "> \t\t\tvalue = chip->pattern_cycle << 4;\n" + "> \t\t\tvalue =3D chip->pattern_cycle << 4;\n" "> -\t\t\tmax8997_write_reg(chip->client,\n" "> +\t\t\tregmap_write(chip->max8997->regmap_haptic,\n" "> \t\t\t\tMAX8997_HAPTIC_REG_CYCLECONF2, value);\n" - "> \t\t\tvalue = chip->pattern_signal_period;\n" + "> \t\t\tvalue =3D chip->pattern_signal_period;\n" "> -\t\t\tmax8997_write_reg(chip->client,\n" "> +\t\t\tregmap_write(chip->max8997->regmap_haptic,\n" "> \t\t\t\tMAX8997_HAPTIC_REG_SIGCONF3, value);\n" "> \t\t\tbreak;\n" - "> \n" + "> =20\n" "> \t\tcase 3:\n" - "> \t\t\tvalue = chip->pattern_cycle;\n" + "> \t\t\tvalue =3D chip->pattern_cycle;\n" "> -\t\t\tmax8997_write_reg(chip->client,\n" "> +\t\t\tregmap_write(chip->max8997->regmap_haptic,\n" "> \t\t\t\tMAX8997_HAPTIC_REG_CYCLECONF2, value);\n" - "> \t\t\tvalue = chip->pattern_signal_period;\n" + "> \t\t\tvalue =3D chip->pattern_signal_period;\n" "> -\t\t\tmax8997_write_reg(chip->client,\n" "> +\t\t\tregmap_write(chip->max8997->regmap_haptic,\n" "> \t\t\t\tMAX8997_HAPTIC_REG_SIGCONF4, value);\n" "> \t\t\tbreak;\n" - "> \n" - "> @@ -279,7 +281,7 @@ static int max8997_haptic_probe(struct platform_device *pdev)\n" + "> =20\n" + "> @@ -279,7 +281,7 @@ static int max8997_haptic_probe(struct platform_devic=\n" + "e *pdev)\n" "> \tINIT_WORK(&chip->work, max8997_haptic_play_effect_work);\n" "> \tmutex_init(&chip->mutex);\n" - "> \n" - "> -\tchip->client = iodev->haptic;\n" - "> +\tchip->max8997 = iodev;\n" - "> \tchip->dev = &pdev->dev;\n" - "> \tchip->input_dev = input_dev;\n" - "> \tchip->pwm_period = haptic_pdata->pwm_period;\n" + "> =20\n" + "> -\tchip->client =3D iodev->haptic;\n" + "> +\tchip->max8997 =3D iodev;\n" + "> \tchip->dev =3D &pdev->dev;\n" + "> \tchip->input_dev =3D input_dev;\n" + "> \tchip->pwm_period =3D haptic_pdata->pwm_period;\n" "> diff --git a/drivers/leds/leds-max8997.c b/drivers/leds/leds-max8997.c\n" "> index 4edf74f1d6d4..e5f0dc2e9edf 100644\n" "> --- a/drivers/leds/leds-max8997.c\n" @@ -288,60 +300,66 @@ "> #include <linux/mfd/max8997-private.h>\n" "> #include <linux/platform_device.h>\n" "> +#include <linux/regmap.h>\n" - "> \n" + "> =20\n" "> #define MAX8997_LED_FLASH_SHIFT\t\t\t3\n" "> #define MAX8997_LED_FLASH_CUR_MASK\t\t0xf8\n" - "> @@ -52,7 +53,6 @@ static void max8997_led_set_mode(struct max8997_led *led,\n" + "> @@ -52,7 +53,6 @@ static void max8997_led_set_mode(struct max8997_led *le=\n" + "d,\n" "> \t\t\tenum max8997_led_mode mode)\n" "> {\n" "> \tint ret;\n" - "> -\tstruct i2c_client *client = led->iodev->i2c;\n" - "> \tu8 mask = 0, val;\n" - "> \n" + "> -\tstruct i2c_client *client =3D led->iodev->i2c;\n" + "> \tu8 mask =3D 0, val;\n" + "> =20\n" "> \tswitch (mode) {\n" - "> @@ -88,8 +88,8 @@ static void max8997_led_set_mode(struct max8997_led *led,\n" + "> @@ -88,8 +88,8 @@ static void max8997_led_set_mode(struct max8997_led *le=\n" + "d,\n" "> \t}\n" - "> \n" + "> =20\n" "> \tif (mask) {\n" - "> -\t\tret = max8997_update_reg(client, MAX8997_REG_LEN_CNTL, val,\n" + "> -\t\tret =3D max8997_update_reg(client, MAX8997_REG_LEN_CNTL, val,\n" "> -\t\t\t\t\t mask);\n" - "> +\t\tret = regmap_update_bits(led->iodev->regmap,\n" + "> +\t\tret =3D regmap_update_bits(led->iodev->regmap,\n" "> +\t\t\t\t\tMAX8997_REG_LEN_CNTL, mask, val);\n" "> \t\tif (ret)\n" "> \t\t\tdev_err(led->iodev->dev,\n" "> \t\t\t\t\"failed to update register(%d)\\n\", ret);\n" - "> @@ -101,7 +101,6 @@ static void max8997_led_set_mode(struct max8997_led *led,\n" + "> @@ -101,7 +101,6 @@ static void max8997_led_set_mode(struct max8997_led *=\n" + "led,\n" "> static void max8997_led_enable(struct max8997_led *led, bool enable)\n" "> {\n" "> \tint ret;\n" - "> -\tstruct i2c_client *client = led->iodev->i2c;\n" - "> \tu8 val = 0, mask = MAX8997_LED_BOOST_ENABLE_MASK;\n" - "> \n" - "> \tif (led->enabled == enable)\n" - "> @@ -109,7 +108,8 @@ static void max8997_led_enable(struct max8997_led *led, bool enable)\n" - "> \n" - "> \tval = enable ? MAX8997_LED_BOOST_ENABLE_MASK : 0;\n" - "> \n" - "> -\tret = max8997_update_reg(client, MAX8997_REG_BOOST_CNTL, val, mask);\n" - "> +\tret = regmap_update_bits(led->iodev->regmap,\n" + "> -\tstruct i2c_client *client =3D led->iodev->i2c;\n" + "> \tu8 val =3D 0, mask =3D MAX8997_LED_BOOST_ENABLE_MASK;\n" + "> =20\n" + "> \tif (led->enabled =3D=3D enable)\n" + "> @@ -109,7 +108,8 @@ static void max8997_led_enable(struct max8997_led *le=\n" + "d, bool enable)\n" + "> =20\n" + "> \tval =3D enable ? MAX8997_LED_BOOST_ENABLE_MASK : 0;\n" + "> =20\n" + "> -\tret =3D max8997_update_reg(client, MAX8997_REG_BOOST_CNTL, val, mask);\n" + "> +\tret =3D regmap_update_bits(led->iodev->regmap,\n" "> +\t\t\t\tMAX8997_REG_BOOST_CNTL, mask, val);\n" "> \tif (ret)\n" "> \t\tdev_err(led->iodev->dev,\n" "> \t\t\t\"failed to update register(%d)\\n\", ret);\n" - "> @@ -121,7 +121,6 @@ static void max8997_led_set_current(struct max8997_led *led,\n" + "> @@ -121,7 +121,6 @@ static void max8997_led_set_current(struct max8997_le=\n" + "d *led,\n" "> \t\t\t\tenum led_brightness value)\n" "> {\n" "> \tint ret;\n" - "> -\tstruct i2c_client *client = led->iodev->i2c;\n" - "> \tu8 val = 0, mask = 0, reg = 0;\n" - "> \n" + "> -\tstruct i2c_client *client =3D led->iodev->i2c;\n" + "> \tu8 val =3D 0, mask =3D 0, reg =3D 0;\n" + "> =20\n" "> \tswitch (led->led_mode) {\n" - "> @@ -142,7 +141,7 @@ static void max8997_led_set_current(struct max8997_led *led,\n" + "> @@ -142,7 +141,7 @@ static void max8997_led_set_current(struct max8997_le=\n" + "d *led,\n" "> \t}\n" - "> \n" + "> =20\n" "> \tif (mask) {\n" - "> -\t\tret = max8997_update_reg(client, reg, val, mask);\n" - "> +\t\tret = regmap_update_bits(led->iodev->regmap, reg, mask, val);\n" + "> -\t\tret =3D max8997_update_reg(client, reg, val, mask);\n" + "> +\t\tret =3D regmap_update_bits(led->iodev->regmap, reg, mask, val);\n" "> \t\tif (ret)\n" "> \t\t\tdev_err(led->iodev->dev,\n" "> \t\t\t\t\"failed to update register(%d)\\n\", ret);\n" @@ -351,7 +369,7 @@ "> +++ b/drivers/mfd/Kconfig\n" "> @@ -621,6 +621,7 @@ config MFD_MAX8997\n" "> \tbool \"Maxim Semiconductor MAX8997/8966 PMIC Support\"\n" - "> \tdepends on I2C=y\n" + "> \tdepends on I2C=3Dy\n" "> \tselect MFD_CORE\n" "> +\tselect REGMAP_I2C\n" "> \tselect IRQ_DOMAIN\n" @@ -366,13 +384,13 @@ "> #include <linux/mfd/max8997.h>\n" "> #include <linux/mfd/max8997-private.h>\n" "> +#include <linux/regmap.h>\n" - "> \n" - "> static const u8 max8997_mask_reg[] = {\n" - "> \t[PMIC_INT1] = MAX8997_REG_INT1MSK,\n" - "> @@ -41,25 +42,6 @@ static const u8 max8997_mask_reg[] = {\n" - "> \t[FLASH_STATUS] = MAX8997_REG_INVALID,\n" + "> =20\n" + "> static const u8 max8997_mask_reg[] =3D {\n" + "> \t[PMIC_INT1] =3D MAX8997_REG_INT1MSK,\n" + "> @@ -41,25 +42,6 @@ static const u8 max8997_mask_reg[] =3D {\n" + "> \t[FLASH_STATUS] =3D MAX8997_REG_INVALID,\n" "> };\n" - "> \n" + "> =20\n" "> -static struct i2c_client *get_i2c(struct max8997_dev *max8997,\n" "> -\t\t\t\tenum max8997_irq_source src)\n" "> -{\n" @@ -395,46 +413,49 @@ "> struct max8997_irq_data {\n" "> \tint mask;\n" "> \tenum max8997_irq_source group;\n" - "> @@ -124,15 +106,20 @@ static void max8997_irq_sync_unlock(struct irq_data *data)\n" + "> @@ -124,15 +106,20 @@ static void max8997_irq_sync_unlock(struct irq_data=\n" + " *data)\n" "> \tint i;\n" - "> \n" - "> \tfor (i = 0; i < MAX8997_IRQ_GROUP_NR; i++) {\n" + "> =20\n" + "> \tfor (i =3D 0; i < MAX8997_IRQ_GROUP_NR; i++) {\n" "> +\t\tstruct regmap *map;\n" - "> \t\tu8 mask_reg = max8997_mask_reg[i];\n" - "> -\t\tstruct i2c_client *i2c = get_i2c(max8997, i);\n" + "> \t\tu8 mask_reg =3D max8997_mask_reg[i];\n" + "> -\t\tstruct i2c_client *i2c =3D get_i2c(max8997, i);\n" "> +\n" - "> +\t\tif (i >= MUIC_INT1 && i <= MUIC_INT3)\n" - "> +\t\t\tmap = max8997->regmap_muic;\n" + "> +\t\tif (i >=3D MUIC_INT1 && i <=3D MUIC_INT3)\n" + "> +\t\t\tmap =3D max8997->regmap_muic;\n" "> +\t\telse\n" - "> +\t\t\tmap = max8997->regmap;\n" - "> \n" - "> \t\tif (mask_reg == MAX8997_REG_INVALID ||\n" + "> +\t\t\tmap =3D max8997->regmap;\n" + "> =20\n" + "> \t\tif (mask_reg =3D=3D MAX8997_REG_INVALID ||\n" "> -\t\t\t\tIS_ERR_OR_NULL(i2c))\n" "> +\t\t\t\tIS_ERR_OR_NULL(map))\n" "> \t\t\tcontinue;\n" - "> \t\tmax8997->irq_masks_cache[i] = max8997->irq_masks_cur[i];\n" - "> \n" + "> \t\tmax8997->irq_masks_cache[i] =3D max8997->irq_masks_cur[i];\n" + "> =20\n" "> -\t\tmax8997_write_reg(i2c, max8997_mask_reg[i],\n" "> +\t\tregmap_write(map, max8997_mask_reg[i],\n" "> \t\t\t\tmax8997->irq_masks_cur[i]);\n" "> \t}\n" - "> \n" - "> @@ -180,11 +167,11 @@ static irqreturn_t max8997_irq_thread(int irq, void *data)\n" + "> =20\n" + "> @@ -180,11 +167,11 @@ static irqreturn_t max8997_irq_thread(int irq, void=\n" + " *data)\n" "> {\n" - "> \tstruct max8997_dev *max8997 = data;\n" - "> \tu8 irq_reg[MAX8997_IRQ_GROUP_NR] = {};\n" + "> \tstruct max8997_dev *max8997 =3D data;\n" + "> \tu8 irq_reg[MAX8997_IRQ_GROUP_NR] =3D {};\n" "> -\tu8 irq_src;\n" "> +\tunsigned int irq_src;\n" "> \tint ret;\n" "> \tint i, cur_irq;\n" - "> \n" - "> -\tret = max8997_read_reg(max8997->i2c, MAX8997_REG_INTSRC, &irq_src);\n" - "> +\tret = regmap_read(max8997->regmap, MAX8997_REG_INTSRC, &irq_src);\n" + "> =20\n" + "> -\tret =3D max8997_read_reg(max8997->i2c, MAX8997_REG_INTSRC, &irq_src);\n" + "> +\tret =3D regmap_read(max8997->regmap, MAX8997_REG_INTSRC, &irq_src);\n" "> \tif (ret < 0) {\n" "> \t\tdev_err(max8997->dev, \"Failed to read interrupt source: %d\\n\",\n" "> \t\t\t\tret);\n" - "> @@ -193,8 +180,8 @@ static irqreturn_t max8997_irq_thread(int irq, void *data)\n" - "> \n" + "> @@ -193,8 +180,8 @@ static irqreturn_t max8997_irq_thread(int irq, void *=\n" + "data)\n" + "> =20\n" "> \tif (irq_src & MAX8997_IRQSRC_PMIC) {\n" "> \t\t/* PMIC INT1 ~ INT4 */\n" "> -\t\tmax8997_bulk_read(max8997->i2c, MAX8997_REG_INT1, 4,\n" @@ -444,7 +465,8 @@ "> \t}\n" "> \tif (irq_src & MAX8997_IRQSRC_FUELGAUGE) {\n" "> \t\t/*\n" - "> @@ -214,8 +201,8 @@ static irqreturn_t max8997_irq_thread(int irq, void *data)\n" + "> @@ -214,8 +201,8 @@ static irqreturn_t max8997_irq_thread(int irq, void *=\n" + "data)\n" "> \t}\n" "> \tif (irq_src & MAX8997_IRQSRC_MUIC) {\n" "> \t\t/* MUIC INT1 ~ INT3 */\n" @@ -455,29 +477,31 @@ "> \t}\n" "> \tif (irq_src & MAX8997_IRQSRC_GPIO) {\n" "> \t\t/* GPIO Interrupt */\n" - "> @@ -224,8 +211,8 @@ static irqreturn_t max8997_irq_thread(int irq, void *data)\n" - "> \t\tirq_reg[GPIO_LOW] = 0;\n" - "> \t\tirq_reg[GPIO_HI] = 0;\n" - "> \n" + "> @@ -224,8 +211,8 @@ static irqreturn_t max8997_irq_thread(int irq, void *=\n" + "data)\n" + "> \t\tirq_reg[GPIO_LOW] =3D 0;\n" + "> \t\tirq_reg[GPIO_HI] =3D 0;\n" + "> =20\n" "> -\t\tmax8997_bulk_read(max8997->i2c, MAX8997_REG_GPIOCNTL1,\n" "> -\t\t\t\tMAX8997_NUM_GPIO, gpio_info);\n" "> +\t\tregmap_bulk_read(max8997->regmap, MAX8997_REG_GPIOCNTL1,\n" "> +\t\t\t\tgpio_info, MAX8997_NUM_GPIO);\n" - "> \t\tfor (i = 0; i < MAX8997_NUM_GPIO; i++) {\n" - "> \t\t\tbool interrupt = false;\n" - "> \n" - "> @@ -259,8 +246,10 @@ static irqreturn_t max8997_irq_thread(int irq, void *data)\n" + "> \t\tfor (i =3D 0; i < MAX8997_NUM_GPIO; i++) {\n" + "> \t\t\tbool interrupt =3D false;\n" + "> =20\n" + "> @@ -259,8 +246,10 @@ static irqreturn_t max8997_irq_thread(int irq, void =\n" + "*data)\n" "> \t}\n" "> \tif (irq_src & MAX8997_IRQSRC_FLASH) {\n" "> \t\t/* Flash Status Interrupt */\n" - "> -\t\tret = max8997_read_reg(max8997->i2c, MAX8997_REG_FLASHSTATUS,\n" + "> -\t\tret =3D max8997_read_reg(max8997->i2c, MAX8997_REG_FLASHSTATUS,\n" "> -\t\t\t\t&irq_reg[FLASH_STATUS]);\n" "> +\t\tunsigned int data;\n" - "> +\t\tret = regmap_read(max8997->regmap,\n" + "> +\t\tret =3D regmap_read(max8997->regmap,\n" "> +\t\t\t\tMAX8997_REG_FLASHSTATUS, &data);\n" - "> +\t\tirq_reg[FLASH_STATUS] = data;\n" + "> +\t\tirq_reg[FLASH_STATUS] =3D data;\n" "> \t}\n" - "> \n" + "> =20\n" "> \t/* Apply masking */\n" "> @@ -308,7 +297,7 @@ int max8997_irq_init(struct max8997_dev *max8997)\n" "> \tstruct irq_domain *domain;\n" @@ -485,32 +509,32 @@ "> \tint ret;\n" "> -\tu8 val;\n" "> +\tunsigned int val;\n" - "> \n" + "> =20\n" "> \tif (!max8997->irq) {\n" "> \t\tdev_warn(max8997->dev, \"No interrupt specified.\\n\");\n" "> @@ -319,22 +308,19 @@ int max8997_irq_init(struct max8997_dev *max8997)\n" - "> \n" + "> =20\n" "> \t/* Mask individual interrupt sources */\n" - "> \tfor (i = 0; i < MAX8997_IRQ_GROUP_NR; i++) {\n" + "> \tfor (i =3D 0; i < MAX8997_IRQ_GROUP_NR; i++) {\n" "> -\t\tstruct i2c_client *i2c;\n" "> -\n" - "> \t\tmax8997->irq_masks_cur[i] = 0xff;\n" - "> \t\tmax8997->irq_masks_cache[i] = 0xff;\n" - "> -\t\ti2c = get_i2c(max8997, i);\n" - "> \n" + "> \t\tmax8997->irq_masks_cur[i] =3D 0xff;\n" + "> \t\tmax8997->irq_masks_cache[i] =3D 0xff;\n" + "> -\t\ti2c =3D get_i2c(max8997, i);\n" + "> =20\n" "> -\t\tif (IS_ERR_OR_NULL(i2c))\n" "> +\t\tif (IS_ERR_OR_NULL(max8997->regmap))\n" "> \t\t\tcontinue;\n" - "> \t\tif (max8997_mask_reg[i] == MAX8997_REG_INVALID)\n" + "> \t\tif (max8997_mask_reg[i] =3D=3D MAX8997_REG_INVALID)\n" "> \t\t\tcontinue;\n" - "> \n" + "> =20\n" "> -\t\tmax8997_write_reg(i2c, max8997_mask_reg[i], 0xff);\n" "> +\t\tregmap_write(max8997->regmap, max8997_mask_reg[i], 0xff);\n" "> \t}\n" - "> \n" - "> \tfor (i = 0; i < MAX8997_NUM_GPIO; i++) {\n" - "> -\t\tmax8997->gpio_status[i] = (max8997_read_reg(max8997->i2c,\n" - "> +\t\tmax8997->gpio_status[i] = (regmap_read(max8997->regmap,\n" + "> =20\n" + "> \tfor (i =3D 0; i < MAX8997_NUM_GPIO; i++) {\n" + "> -\t\tmax8997->gpio_status[i] =3D (max8997_read_reg(max8997->i2c,\n" + "> +\t\tmax8997->gpio_status[i] =3D (regmap_read(max8997->regmap,\n" "> \t\t\t\t\t\tMAX8997_REG_GPIOCNTL1 + i,\n" "> \t\t\t\t\t\t&val)\n" "> \t\t\t\t\t& MAX8997_GPIO_DATA_MASK) ?\n" @@ -523,37 +547,39 @@ "> #include <linux/mfd/max8997.h>\n" "> #include <linux/mfd/max8997-private.h>\n" "> +#include <linux/regmap.h>\n" - "> \n" + "> =20\n" "> #define I2C_ADDR_PMIC\t(0xCC >> 1)\n" "> #define I2C_ADDR_MUIC\t(0x4A >> 1)\n" - "> @@ -58,81 +59,29 @@ static const struct of_device_id max8997_pmic_dt_match[] = {\n" + "> @@ -58,81 +59,29 @@ static const struct of_device_id max8997_pmic_dt_matc=\n" + "h[] =3D {\n" "> MODULE_DEVICE_TABLE(of, max8997_pmic_dt_match);\n" "> #endif\n" - "> \n" + "> =20\n" "> -int max8997_read_reg(struct i2c_client *i2c, u8 reg, u8 *dest)\n" "> -{\n" - "> -\tstruct max8997_dev *max8997 = i2c_get_clientdata(i2c);\n" + "> -\tstruct max8997_dev *max8997 =3D i2c_get_clientdata(i2c);\n" "> -\tint ret;\n" "> -\n" "> -\tmutex_lock(&max8997->iolock);\n" - "> -\tret = i2c_smbus_read_byte_data(i2c, reg);\n" + "> -\tret =3D i2c_smbus_read_byte_data(i2c, reg);\n" "> -\tmutex_unlock(&max8997->iolock);\n" "> -\tif (ret < 0)\n" "> -\t\treturn ret;\n" "> -\n" - "> -\tret &= 0xff;\n" - "> -\t*dest = ret;\n" + "> -\tret &=3D 0xff;\n" + "> -\t*dest =3D ret;\n" "> -\treturn 0;\n" "> -}\n" "> -EXPORT_SYMBOL_GPL(max8997_read_reg);\n" "> -\n" - "> -int max8997_bulk_read(struct i2c_client *i2c, u8 reg, int count, u8 *buf)\n" + "> -int max8997_bulk_read(struct i2c_client *i2c, u8 reg, int count, u8 *buf=\n" + ")\n" "> -{\n" - "> -\tstruct max8997_dev *max8997 = i2c_get_clientdata(i2c);\n" + "> -\tstruct max8997_dev *max8997 =3D i2c_get_clientdata(i2c);\n" "> -\tint ret;\n" "> -\n" "> -\tmutex_lock(&max8997->iolock);\n" - "> -\tret = i2c_smbus_read_i2c_block_data(i2c, reg, count, buf);\n" + "> -\tret =3D i2c_smbus_read_i2c_block_data(i2c, reg, count, buf);\n" "> -\tmutex_unlock(&max8997->iolock);\n" "> -\tif (ret < 0)\n" "> -\t\treturn ret;\n" @@ -564,114 +590,116 @@ "> -\n" "> -int max8997_write_reg(struct i2c_client *i2c, u8 reg, u8 value)\n" "> -{\n" - "> -\tstruct max8997_dev *max8997 = i2c_get_clientdata(i2c);\n" + "> -\tstruct max8997_dev *max8997 =3D i2c_get_clientdata(i2c);\n" "> -\tint ret;\n" "> -\n" "> -\tmutex_lock(&max8997->iolock);\n" - "> -\tret = i2c_smbus_write_byte_data(i2c, reg, value);\n" + "> -\tret =3D i2c_smbus_write_byte_data(i2c, reg, value);\n" "> -\tmutex_unlock(&max8997->iolock);\n" "> -\treturn ret;\n" "> -}\n" "> -EXPORT_SYMBOL_GPL(max8997_write_reg);\n" "> -\n" - "> -int max8997_bulk_write(struct i2c_client *i2c, u8 reg, int count, u8 *buf)\n" + "> -int max8997_bulk_write(struct i2c_client *i2c, u8 reg, int count, u8 *bu=\n" + "f)\n" "> -{\n" - "> -\tstruct max8997_dev *max8997 = i2c_get_clientdata(i2c);\n" + "> -\tstruct max8997_dev *max8997 =3D i2c_get_clientdata(i2c);\n" "> -\tint ret;\n" - "> +static const struct regmap_config max8997_regmap_config = {\n" - "> +\t.reg_bits = 8,\n" - "> +\t.val_bits = 8,\n" - "> +\t.max_register = MAX8997_REG_PMIC_END,\n" + "> +static const struct regmap_config max8997_regmap_config =3D {\n" + "> +\t.reg_bits =3D 8,\n" + "> +\t.val_bits =3D 8,\n" + "> +\t.max_register =3D MAX8997_REG_PMIC_END,\n" "> +};\n" - "> \n" + "> =20\n" "> -\tmutex_lock(&max8997->iolock);\n" - "> -\tret = i2c_smbus_write_i2c_block_data(i2c, reg, count, buf);\n" + "> -\tret =3D i2c_smbus_write_i2c_block_data(i2c, reg, count, buf);\n" "> -\tmutex_unlock(&max8997->iolock);\n" "> -\tif (ret < 0)\n" "> -\t\treturn ret;\n" - "> +static const struct regmap_config max8997_regmap_rtc_config = {\n" - "> +\t.reg_bits = 8,\n" - "> +\t.val_bits = 8,\n" - "> +\t.max_register = MAX8997_RTC_REG_END,\n" + "> +static const struct regmap_config max8997_regmap_rtc_config =3D {\n" + "> +\t.reg_bits =3D 8,\n" + "> +\t.val_bits =3D 8,\n" + "> +\t.max_register =3D MAX8997_RTC_REG_END,\n" "> +};\n" - "> \n" + "> =20\n" "> -\treturn 0;\n" "> -}\n" "> -EXPORT_SYMBOL_GPL(max8997_bulk_write);\n" - "> +static const struct regmap_config max8997_regmap_haptic_config = {\n" - "> +\t.reg_bits = 8,\n" - "> +\t.val_bits = 8,\n" - "> +\t.max_register = MAX8997_HAPTIC_REG_END,\n" + "> +static const struct regmap_config max8997_regmap_haptic_config =3D {\n" + "> +\t.reg_bits =3D 8,\n" + "> +\t.val_bits =3D 8,\n" + "> +\t.max_register =3D MAX8997_HAPTIC_REG_END,\n" "> +};\n" - "> \n" + "> =20\n" "> -int max8997_update_reg(struct i2c_client *i2c, u8 reg, u8 val, u8 mask)\n" "> -{\n" - "> -\tstruct max8997_dev *max8997 = i2c_get_clientdata(i2c);\n" + "> -\tstruct max8997_dev *max8997 =3D i2c_get_clientdata(i2c);\n" "> -\tint ret;\n" "> -\n" "> -\tmutex_lock(&max8997->iolock);\n" - "> -\tret = i2c_smbus_read_byte_data(i2c, reg);\n" - "> -\tif (ret >= 0) {\n" - "> -\t\tu8 old_val = ret & 0xff;\n" - "> -\t\tu8 new_val = (val & mask) | (old_val & (~mask));\n" - "> -\t\tret = i2c_smbus_write_byte_data(i2c, reg, new_val);\n" + "> -\tret =3D i2c_smbus_read_byte_data(i2c, reg);\n" + "> -\tif (ret >=3D 0) {\n" + "> -\t\tu8 old_val =3D ret & 0xff;\n" + "> -\t\tu8 new_val =3D (val & mask) | (old_val & (~mask));\n" + "> -\t\tret =3D i2c_smbus_write_byte_data(i2c, reg, new_val);\n" "> -\t}\n" "> -\tmutex_unlock(&max8997->iolock);\n" "> -\treturn ret;\n" "> -}\n" "> -EXPORT_SYMBOL_GPL(max8997_update_reg);\n" - "> +static const struct regmap_config max8997_regmap_muic_config = {\n" - "> +\t.reg_bits = 8,\n" - "> +\t.val_bits = 8,\n" - "> +\t.max_register = MAX8997_MUIC_REG_END,\n" + "> +static const struct regmap_config max8997_regmap_muic_config =3D {\n" + "> +\t.reg_bits =3D 8,\n" + "> +\t.val_bits =3D 8,\n" + "> +\t.max_register =3D MAX8997_MUIC_REG_END,\n" "> +};\n" - "> \n" + "> =20\n" "> /*\n" - "> * Only the common platform data elements for max8997 are parsed here from the\n" + "> * Only the common platform data elements for max8997 are parsed here fr=\n" + "om the\n" "> @@ -231,6 +180,41 @@ static int max8997_i2c_probe(struct i2c_client *i2c,\n" "> \t}\n" "> \ti2c_set_clientdata(max8997->muic, max8997);\n" - "> \n" - "> +\tmax8997->regmap = devm_regmap_init_i2c(i2c, &max8997_regmap_config);\n" + "> =20\n" + "> +\tmax8997->regmap =3D devm_regmap_init_i2c(i2c, &max8997_regmap_config);\n" "> +\tif (IS_ERR(max8997->regmap)) {\n" - "> +\t\tret = PTR_ERR(max8997->regmap);\n" + "> +\t\tret =3D PTR_ERR(max8997->regmap);\n" "> +\t\tdev_err(max8997->dev,\n" "> +\t\t\t\t\"failed to allocate register map: %d\\n\", ret);\n" "> +\t\treturn ret;\n" "> +\t}\n" "> +\n" - "> +\tmax8997->regmap_rtc = devm_regmap_init_i2c(max8997->rtc,\n" + "> +\tmax8997->regmap_rtc =3D devm_regmap_init_i2c(max8997->rtc,\n" "> +\t\t\t\t\t&max8997_regmap_rtc_config);\n" "> +\tif (IS_ERR(max8997->regmap_rtc)) {\n" - "> +\t\tret = PTR_ERR(max8997->regmap_rtc);\n" + "> +\t\tret =3D PTR_ERR(max8997->regmap_rtc);\n" "> +\t\tdev_err(max8997->dev,\n" "> +\t\t\t\t\"failed to allocate register map: %d\\n\", ret);\n" "> +\t\tgoto err_regmap;\n" "> +\t}\n" "> +\n" - "> +\tmax8997->regmap_haptic = devm_regmap_init_i2c(max8997->haptic,\n" + "> +\tmax8997->regmap_haptic =3D devm_regmap_init_i2c(max8997->haptic,\n" "> +\t\t\t\t\t&max8997_regmap_haptic_config);\n" "> +\tif (IS_ERR(max8997->regmap_haptic)) {\n" - "> +\t\tret = PTR_ERR(max8997->regmap_haptic);\n" + "> +\t\tret =3D PTR_ERR(max8997->regmap_haptic);\n" "> +\t\tdev_err(max8997->dev,\n" "> +\t\t\t\t\"failed to allocate register map: %d\\n\", ret);\n" "> +\t\tgoto err_regmap;\n" "> +\t}\n" "> +\n" - "> +\tmax8997->regmap_muic = devm_regmap_init_i2c(max8997->muic,\n" + "> +\tmax8997->regmap_muic =3D devm_regmap_init_i2c(max8997->muic,\n" "> +\t\t\t\t\t&max8997_regmap_muic_config);\n" "> +\tif (IS_ERR(max8997->regmap_muic)) {\n" - "> +\t\tret = PTR_ERR(max8997->regmap_muic);\n" + "> +\t\tret =3D PTR_ERR(max8997->regmap_muic);\n" "> +\t\tdev_err(max8997->dev,\n" "> +\t\t\t\t\"failed to allocate register map: %d\\n\", ret);\n" "> +\t\tgoto err_regmap;\n" "> +\t}\n" "> +\n" "> \tpm_runtime_set_active(max8997->dev);\n" - "> \n" + "> =20\n" "> \tmax8997_irq_init(max8997);\n" "> @@ -255,6 +239,7 @@ static int max8997_i2c_probe(struct i2c_client *i2c,\n" - "> \n" + "> =20\n" "> err_mfd:\n" "> \tmfd_remove_devices(max8997->dev);\n" "> +err_regmap:\n" @@ -680,43 +708,44 @@ "> \ti2c_unregister_device(max8997->haptic);\n" "> @@ -442,15 +427,15 @@ static int max8997_freeze(struct device *dev)\n" "> \tint i;\n" - "> \n" - "> \tfor (i = 0; i < ARRAY_SIZE(max8997_dumpaddr_pmic); i++)\n" + "> =20\n" + "> \tfor (i =3D 0; i < ARRAY_SIZE(max8997_dumpaddr_pmic); i++)\n" "> -\t\tmax8997_read_reg(i2c, max8997_dumpaddr_pmic[i],\n" "> +\t\tregmap_read(max8997->regmap, max8997_dumpaddr_pmic[i],\n" "> \t\t\t\t&max8997->reg_dump[i]);\n" - "> \n" - "> \tfor (i = 0; i < ARRAY_SIZE(max8997_dumpaddr_muic); i++)\n" + "> =20\n" + "> \tfor (i =3D 0; i < ARRAY_SIZE(max8997_dumpaddr_muic); i++)\n" "> -\t\tmax8997_read_reg(i2c, max8997_dumpaddr_muic[i],\n" "> +\t\tregmap_read(max8997->regmap_muic, max8997_dumpaddr_muic[i],\n" "> \t\t\t\t&max8997->reg_dump[i + MAX8997_REG_PMIC_END]);\n" - "> \n" - "> \tfor (i = 0; i < ARRAY_SIZE(max8997_dumpaddr_haptic); i++)\n" + "> =20\n" + "> \tfor (i =3D 0; i < ARRAY_SIZE(max8997_dumpaddr_haptic); i++)\n" "> -\t\tmax8997_read_reg(i2c, max8997_dumpaddr_haptic[i],\n" "> +\t\tregmap_read(max8997->regmap_haptic, max8997_dumpaddr_haptic[i],\n" "> \t\t\t\t&max8997->reg_dump[i + MAX8997_REG_PMIC_END +\n" "> \t\t\t\tMAX8997_MUIC_REG_END]);\n" - "> \n" + "> =20\n" "> @@ -464,15 +449,15 @@ static int max8997_restore(struct device *dev)\n" "> \tint i;\n" - "> \n" - "> \tfor (i = 0; i < ARRAY_SIZE(max8997_dumpaddr_pmic); i++)\n" + "> =20\n" + "> \tfor (i =3D 0; i < ARRAY_SIZE(max8997_dumpaddr_pmic); i++)\n" "> -\t\tmax8997_write_reg(i2c, max8997_dumpaddr_pmic[i],\n" "> +\t\tregmap_write(max8997->regmap, max8997_dumpaddr_pmic[i],\n" "> \t\t\t\tmax8997->reg_dump[i]);\n" - "> \n" - "> \tfor (i = 0; i < ARRAY_SIZE(max8997_dumpaddr_muic); i++)\n" + "> =20\n" + "> \tfor (i =3D 0; i < ARRAY_SIZE(max8997_dumpaddr_muic); i++)\n" "> -\t\tmax8997_write_reg(i2c, max8997_dumpaddr_muic[i],\n" "> +\t\tregmap_write(max8997->regmap_muic, max8997_dumpaddr_muic[i],\n" "> \t\t\t\tmax8997->reg_dump[i + MAX8997_REG_PMIC_END]);\n" - "> \n" - "> \tfor (i = 0; i < ARRAY_SIZE(max8997_dumpaddr_haptic); i++)\n" + "> =20\n" + "> \tfor (i =3D 0; i < ARRAY_SIZE(max8997_dumpaddr_haptic); i++)\n" "> -\t\tmax8997_write_reg(i2c, max8997_dumpaddr_haptic[i],\n" "> +\t\tregmap_write(max8997->regmap_haptic, max8997_dumpaddr_haptic[i],\n" "> \t\t\t\tmax8997->reg_dump[i + MAX8997_REG_PMIC_END +\n" "> \t\t\t\tMAX8997_MUIC_REG_END]);\n" - "> \n" - "> diff --git a/drivers/power/max8997_charger.c b/drivers/power/max8997_charger.c\n" + "> =20\n" + "> diff --git a/drivers/power/max8997_charger.c b/drivers/power/max8997_char=\n" + "ger.c\n" "> index 0b2eab571528..a9f5ddcf83a8 100644\n" "> --- a/drivers/power/max8997_charger.c\n" "> +++ b/drivers/power/max8997_charger.c\n" @@ -725,88 +754,94 @@ "> #include <linux/mfd/max8997.h>\n" "> #include <linux/mfd/max8997-private.h>\n" "> +#include <linux/regmap.h>\n" - "> \n" + "> =20\n" "> struct charger_data {\n" "> \tstruct device *dev;\n" - "> @@ -45,14 +46,14 @@ static int max8997_battery_get_property(struct power_supply *psy,\n" + "> @@ -45,14 +46,14 @@ static int max8997_battery_get_property(struct power_=\n" + "supply *psy,\n" "> \t\tunion power_supply_propval *val)\n" "> {\n" - "> \tstruct charger_data *charger = power_supply_get_drvdata(psy);\n" - "> -\tstruct i2c_client *i2c = charger->iodev->i2c;\n" + "> \tstruct charger_data *charger =3D power_supply_get_drvdata(psy);\n" + "> -\tstruct i2c_client *i2c =3D charger->iodev->i2c;\n" "> \tint ret;\n" "> -\tu8 reg;\n" "> +\tunsigned int reg;\n" - "> \n" + "> =20\n" "> \tswitch (psp) {\n" "> \tcase POWER_SUPPLY_PROP_STATUS:\n" - "> \t\tval->intval = 0;\n" - "> -\t\tret = max8997_read_reg(i2c, MAX8997_REG_STATUS4, ®);\n" - "> +\t\tret = regmap_read(charger->iodev->regmap,\n" + "> \t\tval->intval =3D 0;\n" + "> -\t\tret =3D max8997_read_reg(i2c, MAX8997_REG_STATUS4, ®);\n" + "> +\t\tret =3D regmap_read(charger->iodev->regmap,\n" "> +\t\t\t\tMAX8997_REG_STATUS4, ®);\n" "> \t\tif (ret)\n" "> \t\t\treturn ret;\n" - "> \t\tif ((reg & (1 << 0)) == 0x1)\n" - "> @@ -61,7 +62,8 @@ static int max8997_battery_get_property(struct power_supply *psy,\n" + "> \t\tif ((reg & (1 << 0)) =3D=3D 0x1)\n" + "> @@ -61,7 +62,8 @@ static int max8997_battery_get_property(struct power_su=\n" + "pply *psy,\n" "> \t\tbreak;\n" "> \tcase POWER_SUPPLY_PROP_PRESENT:\n" - "> \t\tval->intval = 0;\n" - "> -\t\tret = max8997_read_reg(i2c, MAX8997_REG_STATUS4, ®);\n" - "> +\t\tret = regmap_read(charger->iodev->regmap,\n" + "> \t\tval->intval =3D 0;\n" + "> -\t\tret =3D max8997_read_reg(i2c, MAX8997_REG_STATUS4, ®);\n" + "> +\t\tret =3D regmap_read(charger->iodev->regmap,\n" "> +\t\t\t\tMAX8997_REG_STATUS4, ®);\n" "> \t\tif (ret)\n" "> \t\t\treturn ret;\n" - "> \t\tif ((reg & (1 << 2)) == 0x0)\n" - "> @@ -70,7 +72,8 @@ static int max8997_battery_get_property(struct power_supply *psy,\n" + "> \t\tif ((reg & (1 << 2)) =3D=3D 0x0)\n" + "> @@ -70,7 +72,8 @@ static int max8997_battery_get_property(struct power_su=\n" + "pply *psy,\n" "> \t\tbreak;\n" "> \tcase POWER_SUPPLY_PROP_ONLINE:\n" - "> \t\tval->intval = 0;\n" - "> -\t\tret = max8997_read_reg(i2c, MAX8997_REG_STATUS4, ®);\n" - "> +\t\tret = regmap_read(charger->iodev->regmap,\n" + "> \t\tval->intval =3D 0;\n" + "> -\t\tret =3D max8997_read_reg(i2c, MAX8997_REG_STATUS4, ®);\n" + "> +\t\tret =3D regmap_read(charger->iodev->regmap,\n" "> +\t\t\t\tMAX8997_REG_STATUS4, ®);\n" "> \t\tif (ret)\n" "> \t\t\treturn ret;\n" "> \t\t/* DCINOK */\n" - "> @@ -111,8 +114,8 @@ static int max8997_battery_probe(struct platform_device *pdev)\n" + "> @@ -111,8 +114,8 @@ static int max8997_battery_probe(struct platform_devi=\n" + "ce *pdev)\n" "> \t\tif (val > 0xf)\n" - "> \t\t\tval = 0xf;\n" - "> \n" - "> -\t\tret = max8997_update_reg(iodev->i2c,\n" + "> \t\t\tval =3D 0xf;\n" + "> =20\n" + "> -\t\tret =3D max8997_update_reg(iodev->i2c,\n" "> -\t\t\t\tMAX8997_REG_MBCCTRL5, val, 0xf);\n" - "> +\t\tret = regmap_update_bits(iodev->regmap,\n" + "> +\t\tret =3D regmap_update_bits(iodev->regmap,\n" "> +\t\t\t\tMAX8997_REG_MBCCTRL5, 0xf, val);\n" "> \t\tif (ret < 0) {\n" "> \t\t\tdev_err(&pdev->dev, \"Cannot use i2c bus.\\n\");\n" "> \t\t\treturn ret;\n" - "> @@ -121,20 +124,20 @@ static int max8997_battery_probe(struct platform_device *pdev)\n" - "> \n" + "> @@ -121,20 +124,20 @@ static int max8997_battery_probe(struct platform_de=\n" + "vice *pdev)\n" + "> =20\n" "> \tswitch (pdata->timeout) {\n" "> \tcase 5:\n" - "> -\t\tret = max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1,\n" + "> -\t\tret =3D max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1,\n" "> -\t\t\t\t0x2 << 4, 0x7 << 4);\n" - "> +\t\tret = regmap_update_bits(iodev->regmap,\n" + "> +\t\tret =3D regmap_update_bits(iodev->regmap,\n" "> +\t\t\t\tMAX8997_REG_MBCCTRL1, 0x7 << 4, 0x2 << 4);\n" "> \t\tbreak;\n" "> \tcase 6:\n" - "> -\t\tret = max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1,\n" + "> -\t\tret =3D max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1,\n" "> -\t\t\t\t0x3 << 4, 0x7 << 4);\n" - "> +\t\tret = regmap_update_bits(iodev->regmap,\n" + "> +\t\tret =3D regmap_update_bits(iodev->regmap,\n" "> +\t\t\t\tMAX8997_REG_MBCCTRL1, 0x7 << 4, 0x3 << 4);\n" "> \t\tbreak;\n" "> \tcase 7:\n" - "> -\t\tret = max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1,\n" + "> -\t\tret =3D max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1,\n" "> -\t\t\t\t0x4 << 4, 0x7 << 4);\n" - "> +\t\tret = regmap_update_bits(iodev->regmap,\n" + "> +\t\tret =3D regmap_update_bits(iodev->regmap,\n" "> +\t\t\t\tMAX8997_REG_MBCCTRL1, 0x7 << 4, 0x4 << 4);\n" "> \t\tbreak;\n" "> \tcase 0:\n" - "> -\t\tret = max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1,\n" + "> -\t\tret =3D max8997_update_reg(iodev->i2c, MAX8997_REG_MBCCTRL1,\n" "> -\t\t\t\t0x7 << 4, 0x7 << 4);\n" - "> +\t\tret = regmap_update_bits(iodev->regmap,\n" + "> +\t\tret =3D regmap_update_bits(iodev->regmap,\n" "> +\t\t\t\tMAX8997_REG_MBCCTRL1, 0x7 << 4, 0x7 << 4);\n" "> \t\tbreak;\n" "> \tdefault:\n" "> \t\tdev_err(&pdev->dev, \"incorrect timeout value (%d)\\n\",\n" - "> diff --git a/drivers/regulator/max8997-regulator.c b/drivers/regulator/max8997-regulator.c\n" + "> diff --git a/drivers/regulator/max8997-regulator.c b/drivers/regulator/ma=\n" + "x8997-regulator.c\n" "> index efabc0ea0e96..362d85a849d5 100644\n" "> --- a/drivers/regulator/max8997-regulator.c\n" "> +++ b/drivers/regulator/max8997-regulator.c\n" @@ -815,190 +850,203 @@ "> #include <linux/mfd/max8997-private.h>\n" "> #include <linux/regulator/of_regulator.h>\n" "> +#include <linux/regmap.h>\n" - "> \n" + "> =20\n" "> struct max8997_data {\n" "> \tstruct device *dev;\n" "> @@ -50,7 +51,7 @@ struct max8997_data {\n" "> \tint buck125_gpioindex;\n" "> \tbool ignore_gpiodvs_side_effect;\n" - "> \n" + "> =20\n" "> -\tu8 saved_states[MAX8997_REG_MAX];\n" "> +\tunsigned int saved_states[MAX8997_REG_MAX];\n" "> };\n" - "> \n" - "> static const unsigned int safeoutvolt[] = {\n" - "> @@ -257,15 +258,14 @@ static int max8997_get_enable_register(struct regulator_dev *rdev,\n" + "> =20\n" + "> static const unsigned int safeoutvolt[] =3D {\n" + "> @@ -257,15 +258,14 @@ static int max8997_get_enable_register(struct regul=\n" + "ator_dev *rdev,\n" "> static int max8997_reg_is_enabled(struct regulator_dev *rdev)\n" "> {\n" - "> \tstruct max8997_data *max8997 = rdev_get_drvdata(rdev);\n" - "> -\tstruct i2c_client *i2c = max8997->iodev->i2c;\n" + "> \tstruct max8997_data *max8997 =3D rdev_get_drvdata(rdev);\n" + "> -\tstruct i2c_client *i2c =3D max8997->iodev->i2c;\n" "> \tint ret, reg, mask, pattern;\n" "> -\tu8 val;\n" "> +\tunsigned int val;\n" - "> \n" - "> \tret = max8997_get_enable_register(rdev, ®, &mask, &pattern);\n" + "> =20\n" + "> \tret =3D max8997_get_enable_register(rdev, ®, &mask, &pattern);\n" "> \tif (ret)\n" "> \t\treturn ret;\n" - "> \n" - "> -\tret = max8997_read_reg(i2c, reg, &val);\n" - "> +\tret = regmap_read(max8997->iodev->regmap, reg, &val);\n" + "> =20\n" + "> -\tret =3D max8997_read_reg(i2c, reg, &val);\n" + "> +\tret =3D regmap_read(max8997->iodev->regmap, reg, &val);\n" "> \tif (ret)\n" "> \t\treturn ret;\n" - "> \n" - "> @@ -275,27 +275,25 @@ static int max8997_reg_is_enabled(struct regulator_dev *rdev)\n" + "> =20\n" + "> @@ -275,27 +275,25 @@ static int max8997_reg_is_enabled(struct regulator_=\n" + "dev *rdev)\n" "> static int max8997_reg_enable(struct regulator_dev *rdev)\n" "> {\n" - "> \tstruct max8997_data *max8997 = rdev_get_drvdata(rdev);\n" - "> -\tstruct i2c_client *i2c = max8997->iodev->i2c;\n" + "> \tstruct max8997_data *max8997 =3D rdev_get_drvdata(rdev);\n" + "> -\tstruct i2c_client *i2c =3D max8997->iodev->i2c;\n" "> \tint ret, reg, mask, pattern;\n" - "> \n" - "> \tret = max8997_get_enable_register(rdev, ®, &mask, &pattern);\n" + "> =20\n" + "> \tret =3D max8997_get_enable_register(rdev, ®, &mask, &pattern);\n" "> \tif (ret)\n" "> \t\treturn ret;\n" - "> \n" + "> =20\n" "> -\treturn max8997_update_reg(i2c, reg, pattern, mask);\n" "> +\treturn regmap_update_bits(max8997->iodev->regmap, reg, mask, pattern);\n" "> }\n" - "> \n" + "> =20\n" "> static int max8997_reg_disable(struct regulator_dev *rdev)\n" "> {\n" - "> \tstruct max8997_data *max8997 = rdev_get_drvdata(rdev);\n" - "> -\tstruct i2c_client *i2c = max8997->iodev->i2c;\n" + "> \tstruct max8997_data *max8997 =3D rdev_get_drvdata(rdev);\n" + "> -\tstruct i2c_client *i2c =3D max8997->iodev->i2c;\n" "> \tint ret, reg, mask, pattern;\n" - "> \n" - "> \tret = max8997_get_enable_register(rdev, ®, &mask, &pattern);\n" + "> =20\n" + "> \tret =3D max8997_get_enable_register(rdev, ®, &mask, &pattern);\n" "> \tif (ret)\n" "> \t\treturn ret;\n" - "> \n" + "> =20\n" "> -\treturn max8997_update_reg(i2c, reg, ~pattern, mask);\n" "> +\treturn regmap_update_bits(max8997->iodev->regmap, reg, mask, ~pattern);\n" "> }\n" - "> \n" + "> =20\n" "> static int max8997_get_voltage_register(struct regulator_dev *rdev,\n" - "> @@ -367,15 +365,14 @@ static int max8997_get_voltage_register(struct regulator_dev *rdev,\n" + "> @@ -367,15 +365,14 @@ static int max8997_get_voltage_register(struct regu=\n" + "lator_dev *rdev,\n" "> static int max8997_get_voltage_sel(struct regulator_dev *rdev)\n" "> {\n" - "> \tstruct max8997_data *max8997 = rdev_get_drvdata(rdev);\n" - "> -\tstruct i2c_client *i2c = max8997->iodev->i2c;\n" + "> \tstruct max8997_data *max8997 =3D rdev_get_drvdata(rdev);\n" + "> -\tstruct i2c_client *i2c =3D max8997->iodev->i2c;\n" "> \tint reg, shift, mask, ret;\n" "> -\tu8 val;\n" "> +\tunsigned int val;\n" - "> \n" - "> \tret = max8997_get_voltage_register(rdev, ®, &shift, &mask);\n" + "> =20\n" + "> \tret =3D max8997_get_voltage_register(rdev, ®, &shift, &mask);\n" "> \tif (ret)\n" "> \t\treturn ret;\n" - "> \n" - "> -\tret = max8997_read_reg(i2c, reg, &val);\n" - "> +\tret = regmap_read(max8997->iodev->regmap, reg, &val);\n" + "> =20\n" + "> -\tret =3D max8997_read_reg(i2c, reg, &val);\n" + "> +\tret =3D regmap_read(max8997->iodev->regmap, reg, &val);\n" "> \tif (ret)\n" "> \t\treturn ret;\n" - "> \n" - "> @@ -412,7 +409,6 @@ static int max8997_set_voltage_charger_cv(struct regulator_dev *rdev,\n" + "> =20\n" + "> @@ -412,7 +409,6 @@ static int max8997_set_voltage_charger_cv(struct regu=\n" + "lator_dev *rdev,\n" "> \t\tint min_uV, int max_uV, unsigned *selector)\n" "> {\n" - "> \tstruct max8997_data *max8997 = rdev_get_drvdata(rdev);\n" - "> -\tstruct i2c_client *i2c = max8997->iodev->i2c;\n" - "> \tint rid = rdev_get_id(rdev);\n" + "> \tstruct max8997_data *max8997 =3D rdev_get_drvdata(rdev);\n" + "> -\tstruct i2c_client *i2c =3D max8997->iodev->i2c;\n" + "> \tint rid =3D rdev_get_id(rdev);\n" "> \tint lb, ub;\n" - "> \tint reg, shift = 0, mask, ret = 0;\n" - "> @@ -454,7 +450,8 @@ static int max8997_set_voltage_charger_cv(struct regulator_dev *rdev,\n" - "> \n" - "> \t*selector = val;\n" - "> \n" - "> -\tret = max8997_update_reg(i2c, reg, val << shift, mask);\n" - "> +\tret = regmap_update_bits(max8997->iodev->regmap,\n" + "> \tint reg, shift =3D 0, mask, ret =3D 0;\n" + "> @@ -454,7 +450,8 @@ static int max8997_set_voltage_charger_cv(struct regu=\n" + "lator_dev *rdev,\n" + "> =20\n" + "> \t*selector =3D val;\n" + "> =20\n" + "> -\tret =3D max8997_update_reg(i2c, reg, val << shift, mask);\n" + "> +\tret =3D regmap_update_bits(max8997->iodev->regmap,\n" "> +\t\t\t\treg, mask, val << shift);\n" - "> \n" + "> =20\n" "> \treturn ret;\n" "> }\n" - "> @@ -467,7 +464,6 @@ static int max8997_set_voltage_ldobuck(struct regulator_dev *rdev,\n" + "> @@ -467,7 +464,6 @@ static int max8997_set_voltage_ldobuck(struct regulat=\n" + "or_dev *rdev,\n" "> \t\tint min_uV, int max_uV, unsigned *selector)\n" "> {\n" - "> \tstruct max8997_data *max8997 = rdev_get_drvdata(rdev);\n" - "> -\tstruct i2c_client *i2c = max8997->iodev->i2c;\n" + "> \tstruct max8997_data *max8997 =3D rdev_get_drvdata(rdev);\n" + "> -\tstruct i2c_client *i2c =3D max8997->iodev->i2c;\n" "> \tconst struct voltage_map_desc *desc;\n" - "> \tint rid = rdev_get_id(rdev);\n" + "> \tint rid =3D rdev_get_id(rdev);\n" "> \tint i, reg, shift, mask, ret;\n" - "> @@ -499,7 +495,8 @@ static int max8997_set_voltage_ldobuck(struct regulator_dev *rdev,\n" + "> @@ -499,7 +495,8 @@ static int max8997_set_voltage_ldobuck(struct regulat=\n" + "or_dev *rdev,\n" "> \tif (ret)\n" "> \t\treturn ret;\n" - "> \n" - "> -\tret = max8997_update_reg(i2c, reg, i << shift, mask << shift);\n" - "> +\tret = regmap_update_bits(max8997->iodev->regmap,\n" + "> =20\n" + "> -\tret =3D max8997_update_reg(i2c, reg, i << shift, mask << shift);\n" + "> +\tret =3D regmap_update_bits(max8997->iodev->regmap,\n" "> +\t\t\t\treg, mask << shift, i << shift);\n" - "> \t*selector = i;\n" - "> \n" + "> \t*selector =3D i;\n" + "> =20\n" "> \treturn ret;\n" - "> @@ -709,7 +706,6 @@ static int max8997_set_voltage_safeout_sel(struct regulator_dev *rdev,\n" + "> @@ -709,7 +706,6 @@ static int max8997_set_voltage_safeout_sel(struct reg=\n" + "ulator_dev *rdev,\n" "> \t\t\t\t\t unsigned selector)\n" "> {\n" - "> \tstruct max8997_data *max8997 = rdev_get_drvdata(rdev);\n" - "> -\tstruct i2c_client *i2c = max8997->iodev->i2c;\n" - "> \tint rid = rdev_get_id(rdev);\n" - "> \tint reg, shift = 0, mask, ret;\n" - "> \n" - "> @@ -720,13 +716,13 @@ static int max8997_set_voltage_safeout_sel(struct regulator_dev *rdev,\n" + "> \tstruct max8997_data *max8997 =3D rdev_get_drvdata(rdev);\n" + "> -\tstruct i2c_client *i2c =3D max8997->iodev->i2c;\n" + "> \tint rid =3D rdev_get_id(rdev);\n" + "> \tint reg, shift =3D 0, mask, ret;\n" + "> =20\n" + "> @@ -720,13 +716,13 @@ static int max8997_set_voltage_safeout_sel(struct r=\n" + "egulator_dev *rdev,\n" "> \tif (ret)\n" "> \t\treturn ret;\n" - "> \n" + "> =20\n" "> -\treturn max8997_update_reg(i2c, reg, selector << shift, mask << shift);\n" "> +\treturn regmap_update_bits(max8997->iodev->regmap,\n" "> +\t\t\t\treg, mask << shift, selector << shift);\n" "> }\n" - "> \n" + "> =20\n" "> static int max8997_reg_disable_suspend(struct regulator_dev *rdev)\n" "> {\n" - "> \tstruct max8997_data *max8997 = rdev_get_drvdata(rdev);\n" - "> -\tstruct i2c_client *i2c = max8997->iodev->i2c;\n" + "> \tstruct max8997_data *max8997 =3D rdev_get_drvdata(rdev);\n" + "> -\tstruct i2c_client *i2c =3D max8997->iodev->i2c;\n" "> \tint ret, reg, mask, pattern;\n" - "> \tint rid = rdev_get_id(rdev);\n" - "> \n" - "> @@ -734,20 +730,22 @@ static int max8997_reg_disable_suspend(struct regulator_dev *rdev)\n" + "> \tint rid =3D rdev_get_id(rdev);\n" + "> =20\n" + "> @@ -734,20 +730,22 @@ static int max8997_reg_disable_suspend(struct regul=\n" + "ator_dev *rdev)\n" "> \tif (ret)\n" "> \t\treturn ret;\n" - "> \n" + "> =20\n" "> -\tmax8997_read_reg(i2c, reg, &max8997->saved_states[rid]);\n" "> +\tregmap_read(max8997->iodev->regmap,\n" "> +\t\t\treg, &max8997->saved_states[rid]);\n" - "> \n" - "> \tif (rid == MAX8997_LDO1 ||\n" - "> \t\t\trid == MAX8997_LDO10 ||\n" - "> \t\t\trid == MAX8997_LDO21) {\n" + "> =20\n" + "> \tif (rid =3D=3D MAX8997_LDO1 ||\n" + "> \t\t\trid =3D=3D MAX8997_LDO10 ||\n" + "> \t\t\trid =3D=3D MAX8997_LDO21) {\n" "> \t\tdev_dbg(&rdev->dev, \"Conditional Power-Off for %s\\n\",\n" "> \t\t\t\trdev->desc->name);\n" "> -\t\treturn max8997_update_reg(i2c, reg, 0x40, mask);\n" "> +\t\treturn regmap_update_bits(max8997->iodev->regmap,\n" "> +\t\t\t\treg, mask, 0x40);\n" "> \t}\n" - "> \n" + "> =20\n" "> \tdev_dbg(&rdev->dev, \"Full Power-Off for %s (%xh -> %xh)\\n\",\n" "> \t\t\trdev->desc->name, max8997->saved_states[rid] & mask,\n" "> \t\t\t(~pattern) & mask);\n" "> -\treturn max8997_update_reg(i2c, reg, ~pattern, mask);\n" "> +\treturn regmap_update_bits(max8997->iodev->regmap, reg, mask, ~pattern);\n" "> }\n" - "> \n" - "> static struct regulator_ops max8997_ldo_ops = {\n" - "> @@ -1031,7 +1029,6 @@ static int max8997_pmic_probe(struct platform_device *pdev)\n" - "> \tstruct regulator_config config = { };\n" + "> =20\n" + "> static struct regulator_ops max8997_ldo_ops =3D {\n" + "> @@ -1031,7 +1029,6 @@ static int max8997_pmic_probe(struct platform_devic=\n" + "e *pdev)\n" + "> \tstruct regulator_config config =3D { };\n" "> \tstruct regulator_dev *rdev;\n" "> \tstruct max8997_data *max8997;\n" "> -\tstruct i2c_client *i2c;\n" "> \tint i, ret, nr_dvs;\n" - "> \tu8 max_buck1 = 0, max_buck2 = 0, max_buck5 = 0;\n" - "> \n" - "> @@ -1055,7 +1052,6 @@ static int max8997_pmic_probe(struct platform_device *pdev)\n" - "> \tmax8997->iodev = iodev;\n" - "> \tmax8997->num_regulators = pdata->num_regulators;\n" + "> \tu8 max_buck1 =3D 0, max_buck2 =3D 0, max_buck5 =3D 0;\n" + "> =20\n" + "> @@ -1055,7 +1052,6 @@ static int max8997_pmic_probe(struct platform_devic=\n" + "e *pdev)\n" + "> \tmax8997->iodev =3D iodev;\n" + "> \tmax8997->num_regulators =3D pdata->num_regulators;\n" "> \tplatform_set_drvdata(pdev, max8997);\n" - "> -\ti2c = max8997->iodev->i2c;\n" - "> \n" - "> \tmax8997->buck125_gpioindex = pdata->buck125_default_idx;\n" - "> \tmax8997->buck1_gpiodvs = pdata->buck1_gpiodvs;\n" - "> @@ -1105,25 +1101,25 @@ static int max8997_pmic_probe(struct platform_device *pdev)\n" - "> \n" + "> -\ti2c =3D max8997->iodev->i2c;\n" + "> =20\n" + "> \tmax8997->buck125_gpioindex =3D pdata->buck125_default_idx;\n" + "> \tmax8997->buck1_gpiodvs =3D pdata->buck1_gpiodvs;\n" + "> @@ -1105,25 +1101,25 @@ static int max8997_pmic_probe(struct platform_dev=\n" + "ice *pdev)\n" + "> =20\n" "> \t/* For the safety, set max voltage before setting up */\n" - "> \tfor (i = 0; i < 8; i++) {\n" + "> \tfor (i =3D 0; i < 8; i++) {\n" "> -\t\tmax8997_update_reg(i2c, MAX8997_REG_BUCK1DVS1 + i,\n" "> -\t\t\t\tmax_buck1, 0x3f);\n" "> -\t\tmax8997_update_reg(i2c, MAX8997_REG_BUCK2DVS1 + i,\n" @@ -1012,9 +1060,9 @@ "> +\t\tregmap_update_bits(max8997->iodev->regmap,\n" "> +\t\t\t\tMAX8997_REG_BUCK5DVS1 + i, 0x3f, max_buck5);\n" "> \t}\n" - "> \n" + "> =20\n" "> \t/* Initialize all the DVS related BUCK registers */\n" - "> \tfor (i = 0; i < nr_dvs; i++) {\n" + "> \tfor (i =3D 0; i < nr_dvs; i++) {\n" "> -\t\tmax8997_update_reg(i2c, MAX8997_REG_BUCK1DVS1 + i,\n" "> -\t\t\t\tmax8997->buck1_vol[i],\n" "> -\t\t\t\t0x3f);\n" @@ -1034,11 +1082,12 @@ "> +\t\t\t\tMAX8997_REG_BUCK5DVS1 + i,\n" "> +\t\t\t\t0x3f, max8997->buck5_vol[i]);\n" "> \t}\n" - "> \n" + "> =20\n" "> \t/*\n" - "> @@ -1167,16 +1163,17 @@ static int max8997_pmic_probe(struct platform_device *pdev)\n" + "> @@ -1167,16 +1163,17 @@ static int max8997_pmic_probe(struct platform_dev=\n" + "ice *pdev)\n" "> \t}\n" - "> \n" + "> =20\n" "> \t/* DVS-GPIO disabled */\n" "> -\tmax8997_update_reg(i2c, MAX8997_REG_BUCK1CTRL, (pdata->buck1_gpiodvs) ?\n" "> -\t\t\t(1 << 1) : (0 << 1), 1 << 1);\n" @@ -1052,14 +1101,14 @@ "> +\t\t\t1 << 1, (pdata->buck2_gpiodvs) ? (1 << 1) : (0 << 1));\n" "> +\tregmap_update_bits(max8997->iodev->regmap, MAX8997_REG_BUCK5CTRL,\n" "> +\t\t\t1 << 1, (pdata->buck5_gpiodvs) ? (1 << 1) : (0 << 1));\n" - "> \n" + "> =20\n" "> \t/* Misc Settings */\n" - "> \tmax8997->ramp_delay = 10; /* set 10mV/us, which is the default */\n" + "> \tmax8997->ramp_delay =3D 10; /* set 10mV/us, which is the default */\n" "> -\tmax8997_write_reg(i2c, MAX8997_REG_BUCKRAMP, (0xf << 4) | 0x9);\n" "> +\tregmap_write(max8997->iodev->regmap,\n" "> +\t\t\tMAX8997_REG_BUCKRAMP, (0xf << 4) | 0x9);\n" - "> \n" - "> \tfor (i = 0; i < pdata->num_regulators; i++) {\n" + "> =20\n" + "> \tfor (i =3D 0; i < pdata->num_regulators; i++) {\n" "> \t\tconst struct voltage_map_desc *desc;\n" "> diff --git a/drivers/rtc/rtc-max8997.c b/drivers/rtc/rtc-max8997.c\n" "> index db984d4bf952..d017a34a9f70 100644\n" @@ -1070,9 +1119,9 @@ "> #include <linux/mfd/max8997-private.h>\n" "> #include <linux/irqdomain.h>\n" "> +#include <linux/regmap.h>\n" - "> \n" + "> =20\n" "> /* Module parameter for WTSR function control */\n" - "> static int wtsr_en = 1;\n" + "> static int wtsr_en =3D 1;\n" "> @@ -70,7 +71,6 @@ enum {\n" "> struct max8997_rtc_info {\n" "> \tstruct device\t\t*dev;\n" @@ -1081,193 +1130,222 @@ "> \tstruct rtc_device\t*rtc_dev;\n" "> \tstruct mutex\t\tlock;\n" "> \tint virq;\n" - "> @@ -120,8 +120,8 @@ static inline int max8997_rtc_set_update_reg(struct max8997_rtc_info *info)\n" + "> @@ -120,8 +120,8 @@ static inline int max8997_rtc_set_update_reg(struct m=\n" + "ax8997_rtc_info *info)\n" "> {\n" "> \tint ret;\n" - "> \n" - "> -\tret = max8997_write_reg(info->rtc, MAX8997_RTC_UPDATE1,\n" + "> =20\n" + "> -\tret =3D max8997_write_reg(info->rtc, MAX8997_RTC_UPDATE1,\n" "> -\t\t\t\t\t\tRTC_UDR_MASK);\n" - "> +\tret = regmap_write(info->max8997->regmap_rtc,\n" + "> +\tret =3D regmap_write(info->max8997->regmap_rtc,\n" "> +\t\t\t\tMAX8997_RTC_UPDATE1, RTC_UDR_MASK);\n" "> \tif (ret < 0)\n" "> \t\tdev_err(info->dev, \"%s: fail to write update reg(%d)\\n\",\n" "> \t\t\t\t__func__, ret);\n" - "> @@ -142,7 +142,8 @@ static int max8997_rtc_read_time(struct device *dev, struct rtc_time *tm)\n" + "> @@ -142,7 +142,8 @@ static int max8997_rtc_read_time(struct device *dev, =\n" + "struct rtc_time *tm)\n" "> \tint ret;\n" - "> \n" + "> =20\n" "> \tmutex_lock(&info->lock);\n" - "> -\tret = max8997_bulk_read(info->rtc, MAX8997_RTC_SEC, RTC_NR_TIME, data);\n" - "> +\tret = regmap_bulk_read(info->max8997->regmap_rtc,\n" + "> -\tret =3D max8997_bulk_read(info->rtc, MAX8997_RTC_SEC, RTC_NR_TIME, data=\n" + ");\n" + "> +\tret =3D regmap_bulk_read(info->max8997->regmap_rtc,\n" "> +\t\t\t\tMAX8997_RTC_SEC, data, RTC_NR_TIME);\n" "> \tmutex_unlock(&info->lock);\n" - "> \n" + "> =20\n" "> \tif (ret < 0) {\n" - "> @@ -168,7 +169,8 @@ static int max8997_rtc_set_time(struct device *dev, struct rtc_time *tm)\n" - "> \n" + "> @@ -168,7 +169,8 @@ static int max8997_rtc_set_time(struct device *dev, s=\n" + "truct rtc_time *tm)\n" + "> =20\n" "> \tmutex_lock(&info->lock);\n" - "> \n" - "> -\tret = max8997_bulk_write(info->rtc, MAX8997_RTC_SEC, RTC_NR_TIME, data);\n" - "> +\tret = regmap_bulk_write(info->max8997->regmap_rtc,\n" + "> =20\n" + "> -\tret =3D max8997_bulk_write(info->rtc, MAX8997_RTC_SEC, RTC_NR_TIME, dat=\n" + "a);\n" + "> +\tret =3D regmap_bulk_write(info->max8997->regmap_rtc,\n" "> +\t\t\t\tMAX8997_RTC_SEC, data, RTC_NR_TIME);\n" "> \tif (ret < 0) {\n" "> \t\tdev_err(info->dev, \"%s: fail to write time reg(%d)\\n\", __func__,\n" "> \t\t\t\tret);\n" - "> @@ -185,13 +187,13 @@ static int max8997_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)\n" + "> @@ -185,13 +187,13 @@ static int max8997_rtc_read_alarm(struct device *de=\n" + "v, struct rtc_wkalrm *alrm)\n" "> {\n" - "> \tstruct max8997_rtc_info *info = dev_get_drvdata(dev);\n" + "> \tstruct max8997_rtc_info *info =3D dev_get_drvdata(dev);\n" "> \tu8 data[RTC_NR_TIME];\n" "> -\tu8 val;\n" "> +\tunsigned int val;\n" "> \tint i, ret;\n" - "> \n" + "> =20\n" "> \tmutex_lock(&info->lock);\n" - "> \n" - "> -\tret = max8997_bulk_read(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME,\n" + "> =20\n" + "> -\tret =3D max8997_bulk_read(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIM=\n" + "E,\n" "> -\t\t\tdata);\n" - "> +\tret = regmap_bulk_read(info->max8997->regmap_rtc,\n" + "> +\tret =3D regmap_bulk_read(info->max8997->regmap_rtc,\n" "> +\t\t\t\tMAX8997_RTC_ALARM1_SEC, data, RTC_NR_TIME);\n" "> \tif (ret < 0) {\n" "> \t\tdev_err(info->dev, \"%s:%d fail to read alarm reg(%d)\\n\",\n" "> \t\t\t\t__func__, __LINE__, ret);\n" - "> @@ -209,7 +211,8 @@ static int max8997_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)\n" + "> @@ -209,7 +211,8 @@ static int max8997_rtc_read_alarm(struct device *dev,=\n" + " struct rtc_wkalrm *alrm)\n" "> \t}\n" - "> \n" - "> \talrm->pending = 0;\n" - "> -\tret = max8997_read_reg(info->max8997->i2c, MAX8997_REG_STATUS1, &val);\n" - "> +\tret = regmap_read(info->max8997->regmap_rtc,\n" + "> =20\n" + "> \talrm->pending =3D 0;\n" + "> -\tret =3D max8997_read_reg(info->max8997->i2c, MAX8997_REG_STATUS1, &val)=\n" + ";\n" + "> +\tret =3D regmap_read(info->max8997->regmap_rtc,\n" "> +\t\t\t MAX8997_REG_STATUS1, &val);\n" "> \tif (ret < 0) {\n" "> \t\tdev_err(info->dev, \"%s:%d fail to read status1 reg(%d)\\n\",\n" "> \t\t\t\t__func__, __LINE__, ret);\n" - "> @@ -232,8 +235,8 @@ static int max8997_rtc_stop_alarm(struct max8997_rtc_info *info)\n" + "> @@ -232,8 +235,8 @@ static int max8997_rtc_stop_alarm(struct max8997_rtc_=\n" + "info *info)\n" "> \tif (!mutex_is_locked(&info->lock))\n" "> \t\tdev_warn(info->dev, \"%s: should have mutex locked\\n\", __func__);\n" - "> \n" - "> -\tret = max8997_bulk_read(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME,\n" + "> =20\n" + "> -\tret =3D max8997_bulk_read(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIM=\n" + "E,\n" "> -\t\t\t\tdata);\n" - "> +\tret = regmap_bulk_read(info->max8997->regmap_rtc,\n" + "> +\tret =3D regmap_bulk_read(info->max8997->regmap_rtc,\n" "> +\t\t\t\tMAX8997_RTC_ALARM1_SEC, data, RTC_NR_TIME);\n" "> \tif (ret < 0) {\n" "> \t\tdev_err(info->dev, \"%s: fail to read alarm reg(%d)\\n\",\n" "> \t\t\t\t__func__, ret);\n" - "> @@ -243,8 +246,8 @@ static int max8997_rtc_stop_alarm(struct max8997_rtc_info *info)\n" - "> \tfor (i = 0; i < RTC_NR_TIME; i++)\n" - "> \t\tdata[i] &= ~ALARM_ENABLE_MASK;\n" - "> \n" - "> -\tret = max8997_bulk_write(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME,\n" + "> @@ -243,8 +246,8 @@ static int max8997_rtc_stop_alarm(struct max8997_rtc_=\n" + "info *info)\n" + "> \tfor (i =3D 0; i < RTC_NR_TIME; i++)\n" + "> \t\tdata[i] &=3D ~ALARM_ENABLE_MASK;\n" + "> =20\n" + "> -\tret =3D max8997_bulk_write(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TI=\n" + "ME,\n" "> -\t\t\t\t data);\n" - "> +\tret = regmap_bulk_write(info->max8997->regmap_rtc,\n" + "> +\tret =3D regmap_bulk_write(info->max8997->regmap_rtc,\n" "> +\t\t\t\t MAX8997_RTC_ALARM1_SEC, data, RTC_NR_TIME);\n" "> \tif (ret < 0) {\n" "> \t\tdev_err(info->dev, \"%s: fail to write alarm reg(%d)\\n\",\n" "> \t\t\t\t__func__, ret);\n" - "> @@ -264,8 +267,8 @@ static int max8997_rtc_start_alarm(struct max8997_rtc_info *info)\n" + "> @@ -264,8 +267,8 @@ static int max8997_rtc_start_alarm(struct max8997_rtc=\n" + "_info *info)\n" "> \tif (!mutex_is_locked(&info->lock))\n" "> \t\tdev_warn(info->dev, \"%s: should have mutex locked\\n\", __func__);\n" - "> \n" - "> -\tret = max8997_bulk_read(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME,\n" + "> =20\n" + "> -\tret =3D max8997_bulk_read(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIM=\n" + "E,\n" "> -\t\t\t\tdata);\n" - "> +\tret = regmap_bulk_read(info->max8997->regmap_rtc,\n" + "> +\tret =3D regmap_bulk_read(info->max8997->regmap_rtc,\n" "> +\t\t\t\tMAX8997_RTC_ALARM1_SEC, data, RTC_NR_TIME);\n" "> \tif (ret < 0) {\n" "> \t\tdev_err(info->dev, \"%s: fail to read alarm reg(%d)\\n\",\n" "> \t\t\t\t__func__, ret);\n" - "> @@ -283,8 +286,8 @@ static int max8997_rtc_start_alarm(struct max8997_rtc_info *info)\n" + "> @@ -283,8 +286,8 @@ static int max8997_rtc_start_alarm(struct max8997_rtc=\n" + "_info *info)\n" "> \tif (data[RTC_DATE] & 0x1f)\n" - "> \t\tdata[RTC_DATE] |= (1 << ALARM_ENABLE_SHIFT);\n" - "> \n" - "> -\tret = max8997_bulk_write(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME,\n" + "> \t\tdata[RTC_DATE] |=3D (1 << ALARM_ENABLE_SHIFT);\n" + "> =20\n" + "> -\tret =3D max8997_bulk_write(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TI=\n" + "ME,\n" "> -\t\t\t\t data);\n" - "> +\tret = regmap_bulk_write(info->max8997->regmap_rtc,\n" + "> +\tret =3D regmap_bulk_write(info->max8997->regmap_rtc,\n" "> +\t\t\t\t MAX8997_RTC_ALARM1_SEC, data, RTC_NR_TIME);\n" "> \tif (ret < 0) {\n" "> \t\tdev_err(info->dev, \"%s: fail to write alarm reg(%d)\\n\",\n" "> \t\t\t\t__func__, ret);\n" - "> @@ -315,8 +318,8 @@ static int max8997_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)\n" + "> @@ -315,8 +318,8 @@ static int max8997_rtc_set_alarm(struct device *dev, =\n" + "struct rtc_wkalrm *alrm)\n" "> \tif (ret < 0)\n" "> \t\tgoto out;\n" - "> \n" - "> -\tret = max8997_bulk_write(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TIME,\n" + "> =20\n" + "> -\tret =3D max8997_bulk_write(info->rtc, MAX8997_RTC_ALARM1_SEC, RTC_NR_TI=\n" + "ME,\n" "> -\t\t\t\tdata);\n" - "> +\tret = regmap_bulk_write(info->max8997->regmap_rtc,\n" + "> +\tret =3D regmap_bulk_write(info->max8997->regmap_rtc,\n" "> +\t\t\t\t MAX8997_RTC_ALARM1_SEC, data, RTC_NR_TIME);\n" "> \tif (ret < 0) {\n" "> \t\tdev_err(info->dev, \"%s: fail to write alarm reg(%d)\\n\",\n" "> \t\t\t\t__func__, ret);\n" - "> @@ -387,7 +390,8 @@ static void max8997_rtc_enable_wtsr(struct max8997_rtc_info *info, bool enable)\n" + "> @@ -387,7 +390,8 @@ static void max8997_rtc_enable_wtsr(struct max8997_rt=\n" + "c_info *info, bool enable)\n" "> \tdev_info(info->dev, \"%s: %s WTSR\\n\", __func__,\n" "> \t\t\tenable ? \"enable\" : \"disable\");\n" - "> \n" - "> -\tret = max8997_update_reg(info->rtc, MAX8997_RTC_WTSR_SMPL, val, mask);\n" - "> +\tret = regmap_update_bits(info->max8997->regmap_rtc,\n" + "> =20\n" + "> -\tret =3D max8997_update_reg(info->rtc, MAX8997_RTC_WTSR_SMPL, val, mask)=\n" + ";\n" + "> +\tret =3D regmap_update_bits(info->max8997->regmap_rtc,\n" "> +\t\t\t\t MAX8997_RTC_WTSR_SMPL, mask, val);\n" "> \tif (ret < 0) {\n" "> \t\tdev_err(info->dev, \"%s: fail to update WTSR reg(%d)\\n\",\n" "> \t\t\t\t__func__, ret);\n" - "> @@ -400,7 +404,7 @@ static void max8997_rtc_enable_wtsr(struct max8997_rtc_info *info, bool enable)\n" - "> static void max8997_rtc_enable_smpl(struct max8997_rtc_info *info, bool enable)\n" + "> @@ -400,7 +404,7 @@ static void max8997_rtc_enable_wtsr(struct max8997_rt=\n" + "c_info *info, bool enable)\n" + "> static void max8997_rtc_enable_smpl(struct max8997_rtc_info *info, bool =\n" + "enable)\n" "> {\n" "> \tint ret;\n" "> -\tu8 val, mask;\n" "> +\tunsigned int val, mask;\n" - "> \n" + "> =20\n" "> \tif (!smpl_en)\n" "> \t\treturn;\n" - "> @@ -415,7 +419,8 @@ static void max8997_rtc_enable_smpl(struct max8997_rtc_info *info, bool enable)\n" + "> @@ -415,7 +419,8 @@ static void max8997_rtc_enable_smpl(struct max8997_rt=\n" + "c_info *info, bool enable)\n" "> \tdev_info(info->dev, \"%s: %s SMPL\\n\", __func__,\n" "> \t\t\tenable ? \"enable\" : \"disable\");\n" - "> \n" - "> -\tret = max8997_update_reg(info->rtc, MAX8997_RTC_WTSR_SMPL, val, mask);\n" - "> +\tret = regmap_update_bits(info->max8997->regmap_rtc,\n" + "> =20\n" + "> -\tret =3D max8997_update_reg(info->rtc, MAX8997_RTC_WTSR_SMPL, val, mask)=\n" + ";\n" + "> +\tret =3D regmap_update_bits(info->max8997->regmap_rtc,\n" "> +\t\t\t\t MAX8997_RTC_WTSR_SMPL, mask, val);\n" "> \tif (ret < 0) {\n" "> \t\tdev_err(info->dev, \"%s: fail to update SMPL reg(%d)\\n\",\n" "> \t\t\t\t__func__, ret);\n" - "> @@ -425,7 +430,8 @@ static void max8997_rtc_enable_smpl(struct max8997_rtc_info *info, bool enable)\n" + "> @@ -425,7 +430,8 @@ static void max8997_rtc_enable_smpl(struct max8997_rt=\n" + "c_info *info, bool enable)\n" "> \tmax8997_rtc_set_update_reg(info);\n" - "> \n" - "> \tval = 0;\n" + "> =20\n" + "> \tval =3D 0;\n" "> -\tmax8997_read_reg(info->rtc, MAX8997_RTC_WTSR_SMPL, &val);\n" "> +\tregmap_read(info->max8997->regmap_rtc,\n" "> +\t\t\t MAX8997_RTC_WTSR_SMPL, &val);\n" "> \tpr_info(\"WTSR_SMPL(0x%02x)\\n\", val);\n" "> }\n" - "> \n" - "> @@ -440,7 +446,8 @@ static int max8997_rtc_init_reg(struct max8997_rtc_info *info)\n" - "> \n" - "> \tinfo->rtc_24hr_mode = 1;\n" - "> \n" - "> -\tret = max8997_bulk_write(info->rtc, MAX8997_RTC_CTRLMASK, 2, data);\n" - "> +\tret = regmap_bulk_write(info->max8997->regmap_rtc,\n" + "> =20\n" + "> @@ -440,7 +446,8 @@ static int max8997_rtc_init_reg(struct max8997_rtc_in=\n" + "fo *info)\n" + "> =20\n" + "> \tinfo->rtc_24hr_mode =3D 1;\n" + "> =20\n" + "> -\tret =3D max8997_bulk_write(info->rtc, MAX8997_RTC_CTRLMASK, 2, data);\n" + "> +\tret =3D regmap_bulk_write(info->max8997->regmap_rtc,\n" "> +\t\t\t\t MAX8997_RTC_CTRLMASK, data, 2);\n" "> \tif (ret < 0) {\n" "> \t\tdev_err(info->dev, \"%s: fail to write controlm reg(%d)\\n\",\n" "> \t\t\t\t__func__, ret);\n" - "> @@ -465,7 +472,6 @@ static int max8997_rtc_probe(struct platform_device *pdev)\n" + "> @@ -465,7 +472,6 @@ static int max8997_rtc_probe(struct platform_device *=\n" + "pdev)\n" "> \tmutex_init(&info->lock);\n" - "> \tinfo->dev = &pdev->dev;\n" - "> \tinfo->max8997 = max8997;\n" - "> -\tinfo->rtc = max8997->rtc;\n" - "> \n" + "> \tinfo->dev =3D &pdev->dev;\n" + "> \tinfo->max8997 =3D max8997;\n" + "> -\tinfo->rtc =3D max8997->rtc;\n" + "> =20\n" "> \tplatform_set_drvdata(pdev, info);\n" - "> \n" - "> diff --git a/include/linux/mfd/max8997-private.h b/include/linux/mfd/max8997-private.h\n" + "> =20\n" + "> diff --git a/include/linux/mfd/max8997-private.h b/include/linux/mfd/max8=\n" + "997-private.h\n" "> index 78c76cd4d37b..ea80ef80dbf8 100644\n" "> --- a/include/linux/mfd/max8997-private.h\n" "> +++ b/include/linux/mfd/max8997-private.h\n" "> @@ -309,6 +309,8 @@ enum max8997_rtc_reg {\n" - "> \tMAX8997_RTC_ALARM2_MONTH\t= 0x22,\n" - "> \tMAX8997_RTC_ALARM2_YEAR\t\t= 0x23,\n" - "> \tMAX8997_RTC_ALARM2_DAY_OF_MONTH\t= 0x24,\n" + "> \tMAX8997_RTC_ALARM2_MONTH\t=3D 0x22,\n" + "> \tMAX8997_RTC_ALARM2_YEAR\t\t=3D 0x23,\n" + "> \tMAX8997_RTC_ALARM2_DAY_OF_MONTH\t=3D 0x24,\n" "> +\n" - "> +\tMAX8997_RTC_REG_END\t\t= 0x25,\n" + "> +\tMAX8997_RTC_REG_END\t\t=3D 0x25,\n" "> };\n" - "> \n" + "> =20\n" "> enum max8997_irq_source {\n" "> @@ -390,6 +392,11 @@ struct max8997_dev {\n" "> \tunsigned long type;\n" "> \tstruct platform_device *battery; /* battery control (not fuel gauge) */\n" - "> \n" + "> =20\n" "> +\tstruct regmap *regmap;\n" "> +\tstruct regmap *regmap_rtc;\n" "> +\tstruct regmap *regmap_haptic;\n" @@ -1278,43 +1356,47 @@ "> \tstruct irq_domain *irq_domain;\n" "> @@ -398,7 +405,7 @@ struct max8997_dev {\n" "> \tint irq_masks_cache[MAX8997_IRQ_GROUP_NR];\n" - "> \n" + "> =20\n" "> \t/* For hibernation */\n" "> -\tu8 reg_dump[MAX8997_REG_PMIC_END + MAX8997_MUIC_REG_END +\n" "> +\tunsigned int reg_dump[MAX8997_REG_PMIC_END + MAX8997_MUIC_REG_END +\n" "> \t\tMAX8997_HAPTIC_REG_END];\n" - "> \n" + "> =20\n" "> \tbool gpio_status[MAX8997_NUM_GPIO];\n" - "> @@ -413,14 +420,6 @@ extern int max8997_irq_init(struct max8997_dev *max8997);\n" + "> @@ -413,14 +420,6 @@ extern int max8997_irq_init(struct max8997_dev *max8=\n" + "997);\n" "> extern void max8997_irq_exit(struct max8997_dev *max8997);\n" "> extern int max8997_irq_resume(struct max8997_dev *max8997);\n" - "> \n" + "> =20\n" "> -extern int max8997_read_reg(struct i2c_client *i2c, u8 reg, u8 *dest);\n" "> -extern int max8997_bulk_read(struct i2c_client *i2c, u8 reg, int count,\n" "> -\t\t\t\tu8 *buf);\n" "> -extern int max8997_write_reg(struct i2c_client *i2c, u8 reg, u8 value);\n" "> -extern int max8997_bulk_write(struct i2c_client *i2c, u8 reg, int count,\n" "> -\t\t\t\tu8 *buf);\n" - "> -extern int max8997_update_reg(struct i2c_client *i2c, u8 reg, u8 val, u8 mask);\n" + "> -extern int max8997_update_reg(struct i2c_client *i2c, u8 reg, u8 val, u8=\n" + " mask);\n" "> -\n" "> #define MAX8997_GPIO_INT_BOTH\t(0x3 << 4)\n" "> #define MAX8997_GPIO_INT_RISE\t(0x2 << 4)\n" "> #define MAX8997_GPIO_INT_FALL\t(0x1 << 4)\n" "\n" - "-- \n" + "--=20\n" "Lee Jones\n" "Linaro STMicroelectronics Landing Team Lead\n" - "Linaro.org \342\224\202 Open source software for ARM SoCs\n" + "Linaro.org =E2=94=82 Open source software for ARM SoCs\n" "Follow Linaro: Facebook | Twitter | Blog\n" "\n" - "-- \n" + "--=20\n" "You received this message because you are subscribed to \"rtc-linux\".\n" "Membership options at http://groups.google.com/group/rtc-linux .\n" "Please read http://groups.google.com/group/rtc-linux/web/checklist\n" "before submitting a driver.\n" - "--- \n" - "You received this message because you are subscribed to the Google Groups \"rtc-linux\" group.\n" - "To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org\n" + "---=20\n" + "You received this message because you are subscribed to the Google Groups \"=\n" + "rtc-linux\" group.\n" + "To unsubscribe from this group and stop receiving emails from it, send an e=\n" + "mail to rtc-linux+unsubscribe@googlegroups.com.\n" For more options, visit https://groups.google.com/d/optout. -18d9993728809c61eefd12e1c37026bf5b9eeb06f4b15aa6529941d082eb8f0d +e4567f06f83ef72f171a394ef5adb8a29d73d419399ff0970ab45b71761f883b
diff --git a/a/1.txt b/N2/1.txt index 62ecd97..7345ef3 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -2,23 +2,23 @@ FAO Mark, Just your Ack missing on this set. -> From: Robert Baldyga <r.baldyga-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> +> From: Robert Baldyga <r.baldyga@samsung.com> > > This patch modifies max8997 driver and each associated function driver, > to use regmap instead of operating directly on i2c bus. It will allow to > simplify IRQ handling using regmap-irq. > -> Signed-off-by: Robert Baldyga <r.baldyga-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> -> Reviewed-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> -> Acked-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> -> Acked-by: Bryan Wu <cooloney-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> -> Acked-by: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> -> Acked-by: Sebastian Reichel <sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> -> Acked-by: Dmitry Torokhov <dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> -> Acked-by: Alexandre Belloni <alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> +> Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> +> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> +> Acked-by: Chanwoo Choi <cw00.choi@samsung.com> +> Acked-by: Bryan Wu <cooloney@gmail.com> +> Acked-by: Lee Jones <lee.jones@linaro.org> +> Acked-by: Sebastian Reichel <sre@kernel.org> +> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> +> Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> > [k.kozlowski: Collect acks, rebase on v4.6-rc6] -> Signed-off-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> -> Acked-by: Jacek Anaszewski <j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> +> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> +> Acked-by: Jacek Anaszewski <j.anaszewski@samsung.com> > --- > drivers/extcon/extcon-max8997.c | 31 ++++---- > drivers/input/misc/max8997_haptic.c | 34 ++++---- @@ -1272,15 +1272,5 @@ Just your Ack missing on this set. -- Lee Jones Linaro STMicroelectronics Landing Team Lead -Linaro.org │ Open source software for ARM SoCs +Linaro.org ? Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog - --- -You received this message because you are subscribed to "rtc-linux". -Membership options at http://groups.google.com/group/rtc-linux . -Please read http://groups.google.com/group/rtc-linux/web/checklist -before submitting a driver. ---- -You received this message because you are subscribed to the Google Groups "rtc-linux" group. -To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org -For more options, visit https://groups.google.com/d/optout. diff --git a/a/content_digest b/N2/content_digest index c4597e9..f9777d0 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -1,56 +1,32 @@ "ref\01466143833-5856-1-git-send-email-k.kozlowski@samsung.com\0" "ref\01466143833-5856-2-git-send-email-k.kozlowski@samsung.com\0" - "ref\01466143833-5856-2-git-send-email-k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org\0" - "From\0Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>\0" - "Subject\0Re: [RESEND v7 1/6] mfd: max8997: Use regmap to access registers\0" + "From\0lee.jones@linaro.org (Lee Jones)\0" + "Subject\0[RESEND v7 1/6] mfd: max8997: Use regmap to access registers\0" "Date\0Fri, 17 Jun 2016 08:53:49 +0100\0" - "To\0Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\0" - "Cc\0Kukjin Kim <kgene-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>" - MyungJoo Ham <myungjoo.ham-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> - Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> - Dmitry Torokhov <dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - Richard Purdie <rpurdie-Fm38FmjxZ/leoWH0uzbU5w@public.gmane.org> - Jacek Anaszewski <j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> - Sebastian Reichel <sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> - Dmitry Eremin-Solenikov <dbaryshkov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org> - Liam Girdwood <lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> - Alessandro Zummo <a.zummo-BfzFCNDTiLLj+vYz1yj4TQ@public.gmane.org> - Alexandre Belloni <alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> - devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org - linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-leds-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - rtc-linux-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org - r.baldyga-anjuHVi6/WSaMJb+Lgu22Q@public.gmane.org - " Bartlomiej Zolnierkiewicz <b.zolnierkie-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "FAO Mark,\n" "\n" "Just your Ack missing on this set.\n" "\n" - "> From: Robert Baldyga <r.baldyga-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" + "> From: Robert Baldyga <r.baldyga@samsung.com>\n" "> \n" "> This patch modifies max8997 driver and each associated function driver,\n" "> to use regmap instead of operating directly on i2c bus. It will allow to\n" "> simplify IRQ handling using regmap-irq.\n" "> \n" - "> Signed-off-by: Robert Baldyga <r.baldyga-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" - "> Reviewed-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" - "> Acked-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" - "> Acked-by: Bryan Wu <cooloney-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>\n" - "> Acked-by: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>\n" - "> Acked-by: Sebastian Reichel <sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>\n" - "> Acked-by: Dmitry Torokhov <dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>\n" - "> Acked-by: Alexandre Belloni <alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>\n" + "> Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>\n" + "> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>\n" + "> Acked-by: Chanwoo Choi <cw00.choi@samsung.com>\n" + "> Acked-by: Bryan Wu <cooloney@gmail.com>\n" + "> Acked-by: Lee Jones <lee.jones@linaro.org>\n" + "> Acked-by: Sebastian Reichel <sre@kernel.org>\n" + "> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>\n" + "> Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>\n" "> [k.kozlowski: Collect acks, rebase on v4.6-rc6]\n" - "> Signed-off-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" - "> Acked-by: Jacek Anaszewski <j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" + "> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>\n" + "> Acked-by: Jacek Anaszewski <j.anaszewski@samsung.com>\n" "> ---\n" "> drivers/extcon/extcon-max8997.c | 31 ++++----\n" "> drivers/input/misc/max8997_haptic.c | 34 ++++----\n" @@ -1304,17 +1280,7 @@ "-- \n" "Lee Jones\n" "Linaro STMicroelectronics Landing Team Lead\n" - "Linaro.org \342\224\202 Open source software for ARM SoCs\n" - "Follow Linaro: Facebook | Twitter | Blog\n" - "\n" - "-- \n" - "You received this message because you are subscribed to \"rtc-linux\".\n" - "Membership options at http://groups.google.com/group/rtc-linux .\n" - "Please read http://groups.google.com/group/rtc-linux/web/checklist\n" - "before submitting a driver.\n" - "--- \n" - "You received this message because you are subscribed to the Google Groups \"rtc-linux\" group.\n" - "To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org\n" - For more options, visit https://groups.google.com/d/optout. + "Linaro.org ? Open source software for ARM SoCs\n" + Follow Linaro: Facebook | Twitter | Blog -18d9993728809c61eefd12e1c37026bf5b9eeb06f4b15aa6529941d082eb8f0d +0b00aaa85859ea0ffec023759aac33a4184e366d0852232205c937b40319c3c9
diff --git a/a/1.txt b/N3/1.txt index 62ecd97..38f5788 100644 --- a/a/1.txt +++ b/N3/1.txt @@ -2,23 +2,23 @@ FAO Mark, Just your Ack missing on this set. -> From: Robert Baldyga <r.baldyga-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> +> From: Robert Baldyga <r.baldyga@samsung.com> > > This patch modifies max8997 driver and each associated function driver, > to use regmap instead of operating directly on i2c bus. It will allow to > simplify IRQ handling using regmap-irq. > -> Signed-off-by: Robert Baldyga <r.baldyga-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> -> Reviewed-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> -> Acked-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> -> Acked-by: Bryan Wu <cooloney-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> -> Acked-by: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> -> Acked-by: Sebastian Reichel <sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> -> Acked-by: Dmitry Torokhov <dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> -> Acked-by: Alexandre Belloni <alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> +> Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> +> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> +> Acked-by: Chanwoo Choi <cw00.choi@samsung.com> +> Acked-by: Bryan Wu <cooloney@gmail.com> +> Acked-by: Lee Jones <lee.jones@linaro.org> +> Acked-by: Sebastian Reichel <sre@kernel.org> +> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> +> Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> > [k.kozlowski: Collect acks, rebase on v4.6-rc6] -> Signed-off-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> -> Acked-by: Jacek Anaszewski <j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> +> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> +> Acked-by: Jacek Anaszewski <j.anaszewski@samsung.com> > --- > drivers/extcon/extcon-max8997.c | 31 ++++---- > drivers/input/misc/max8997_haptic.c | 34 ++++---- @@ -1274,13 +1274,3 @@ Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog - --- -You received this message because you are subscribed to "rtc-linux". -Membership options at http://groups.google.com/group/rtc-linux . -Please read http://groups.google.com/group/rtc-linux/web/checklist -before submitting a driver. ---- -You received this message because you are subscribed to the Google Groups "rtc-linux" group. -To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org -For more options, visit https://groups.google.com/d/optout. diff --git a/a/content_digest b/N3/content_digest index c4597e9..4558204 100644 --- a/a/content_digest +++ b/N3/content_digest @@ -1,56 +1,55 @@ "ref\01466143833-5856-1-git-send-email-k.kozlowski@samsung.com\0" "ref\01466143833-5856-2-git-send-email-k.kozlowski@samsung.com\0" - "ref\01466143833-5856-2-git-send-email-k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org\0" - "From\0Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>\0" + "From\0Lee Jones <lee.jones@linaro.org>\0" "Subject\0Re: [RESEND v7 1/6] mfd: max8997: Use regmap to access registers\0" "Date\0Fri, 17 Jun 2016 08:53:49 +0100\0" - "To\0Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\0" - "Cc\0Kukjin Kim <kgene-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>" - MyungJoo Ham <myungjoo.ham-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> - Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> - Dmitry Torokhov <dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - Richard Purdie <rpurdie-Fm38FmjxZ/leoWH0uzbU5w@public.gmane.org> - Jacek Anaszewski <j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> - Sebastian Reichel <sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> - Dmitry Eremin-Solenikov <dbaryshkov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org> - Liam Girdwood <lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> - Alessandro Zummo <a.zummo-BfzFCNDTiLLj+vYz1yj4TQ@public.gmane.org> - Alexandre Belloni <alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> - devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org - linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-leds-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - rtc-linux-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org - r.baldyga-anjuHVi6/WSaMJb+Lgu22Q@public.gmane.org - " Bartlomiej Zolnierkiewicz <b.zolnierkie-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\0" + "To\0Krzysztof Kozlowski <k.kozlowski@samsung.com>\0" + "Cc\0Kukjin Kim <kgene@kernel.org>" + MyungJoo Ham <myungjoo.ham@samsung.com> + Chanwoo Choi <cw00.choi@samsung.com> + Dmitry Torokhov <dmitry.torokhov@gmail.com> + Richard Purdie <rpurdie@rpsys.net> + Jacek Anaszewski <j.anaszewski@samsung.com> + Sebastian Reichel <sre@kernel.org> + Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> + David Woodhouse <dwmw2@infradead.org> + Liam Girdwood <lgirdwood@gmail.com> + Mark Brown <broonie@kernel.org> + Alessandro Zummo <a.zummo@towertech.it> + Alexandre Belloni <alexandre.belloni@free-electrons.com> + devicetree@vger.kernel.org + linux-arm-kernel@lists.infradead.org + linux-samsung-soc@vger.kernel.org + linux-kernel@vger.kernel.org + linux-input@vger.kernel.org + linux-leds@vger.kernel.org + linux-pm@vger.kernel.org + rtc-linux@googlegroups.com + r.baldyga@hackerion.com + " Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>\0" "\00:1\0" "b\0" "FAO Mark,\n" "\n" "Just your Ack missing on this set.\n" "\n" - "> From: Robert Baldyga <r.baldyga-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" + "> From: Robert Baldyga <r.baldyga@samsung.com>\n" "> \n" "> This patch modifies max8997 driver and each associated function driver,\n" "> to use regmap instead of operating directly on i2c bus. It will allow to\n" "> simplify IRQ handling using regmap-irq.\n" "> \n" - "> Signed-off-by: Robert Baldyga <r.baldyga-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" - "> Reviewed-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" - "> Acked-by: Chanwoo Choi <cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" - "> Acked-by: Bryan Wu <cooloney-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>\n" - "> Acked-by: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>\n" - "> Acked-by: Sebastian Reichel <sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>\n" - "> Acked-by: Dmitry Torokhov <dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>\n" - "> Acked-by: Alexandre Belloni <alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>\n" + "> Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>\n" + "> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>\n" + "> Acked-by: Chanwoo Choi <cw00.choi@samsung.com>\n" + "> Acked-by: Bryan Wu <cooloney@gmail.com>\n" + "> Acked-by: Lee Jones <lee.jones@linaro.org>\n" + "> Acked-by: Sebastian Reichel <sre@kernel.org>\n" + "> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>\n" + "> Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>\n" "> [k.kozlowski: Collect acks, rebase on v4.6-rc6]\n" - "> Signed-off-by: Krzysztof Kozlowski <k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" - "> Acked-by: Jacek Anaszewski <j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>\n" + "> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>\n" + "> Acked-by: Jacek Anaszewski <j.anaszewski@samsung.com>\n" "> ---\n" "> drivers/extcon/extcon-max8997.c | 31 ++++----\n" "> drivers/input/misc/max8997_haptic.c | 34 ++++----\n" @@ -1305,16 +1304,6 @@ "Lee Jones\n" "Linaro STMicroelectronics Landing Team Lead\n" "Linaro.org \342\224\202 Open source software for ARM SoCs\n" - "Follow Linaro: Facebook | Twitter | Blog\n" - "\n" - "-- \n" - "You received this message because you are subscribed to \"rtc-linux\".\n" - "Membership options at http://groups.google.com/group/rtc-linux .\n" - "Please read http://groups.google.com/group/rtc-linux/web/checklist\n" - "before submitting a driver.\n" - "--- \n" - "You received this message because you are subscribed to the Google Groups \"rtc-linux\" group.\n" - "To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org\n" - For more options, visit https://groups.google.com/d/optout. + Follow Linaro: Facebook | Twitter | Blog -18d9993728809c61eefd12e1c37026bf5b9eeb06f4b15aa6529941d082eb8f0d +94164c517711aafa708c7d20950963849a8cf65eb445b20d15c4c8dc252ea475
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.