Hi Saravanan, I love your patch! Perhaps something to improve: [auto build test WARNING on next-20200320] [also build test WARNING on v5.6-rc7] [cannot apply to ljones-mfd/for-mfd-next iio/togreg power-supply/for-next v5.6-rc6 v5.6-rc5 v5.6-rc4] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Saravanan-Sekar/Add-battery-charger-driver-support-for-MP2629/20200323-064940 base: d8f289c16fbb72e17b783175c1fb0942816264fd reproduce: # apt-get install sparse # sparse version: v0.6.1-187-gbff9b106-dirty make ARCH=x86_64 allmodconfig make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' If you fix the issue, kindly add following tag Reported-by: kbuild test robot sparse warnings: (new ones prefixed by >>) >> drivers/power/supply/mp2629_charger.c:584:47: sparse: sparse: Using plain integer as NULL pointer vim +584 drivers/power/supply/mp2629_charger.c 578 579 static int mp2629_charger_probe(struct platform_device *pdev) 580 { 581 struct device *dev = &pdev->dev; 582 void **pdata = pdev->dev.platform_data; 583 struct mp2629_charger *charger; > 584 struct power_supply_config psy_cfg = {0}; 585 int ret, i; 586 587 charger = devm_kzalloc(dev, sizeof(*charger), GFP_KERNEL); 588 if (!charger) 589 return -ENOMEM; 590 591 charger->regmap = *pdata; 592 charger->dev = dev; 593 charger->irq = platform_get_irq(pdev, 0); 594 platform_set_drvdata(pdev, charger); 595 596 for (i = 0; i <= TERM_CURRENT; i++) { 597 charger->regmap_fields[i] = devm_regmap_field_alloc(dev, 598 charger->regmap, mp2629_reg_fields[i]); 599 if (IS_ERR(charger->regmap_fields[i])) { 600 dev_err(dev, "regmap field alloc fail %d\n", i); 601 return PTR_ERR(charger->regmap_fields[i]); 602 } 603 } 604 605 for (i = 0; i < MP2629_ADC_CHAN_END; i++) { 606 charger->iiochan[i] = iio_channel_get(dev, adc_chan_name[i]); 607 if (IS_ERR(charger->iiochan[i])) { 608 ret = PTR_ERR(charger->iiochan[i]); 609 goto iio_fail; 610 } 611 } 612 613 charger->usb = devm_power_supply_register(dev, &mp2629_usb_desc, NULL); 614 if (IS_ERR(charger->usb)) { 615 ret = PTR_ERR(charger->usb); 616 goto iio_fail; 617 } 618 619 psy_cfg.drv_data = charger; 620 psy_cfg.attr_grp = mp2629_charger_sysfs_groups; 621 charger->battery = devm_power_supply_register(dev, 622 &mp2629_battery_desc, &psy_cfg); 623 if (IS_ERR(charger->battery)) { 624 ret = PTR_ERR(charger->battery); 625 goto iio_fail; 626 } 627 628 ret = regmap_update_bits(charger->regmap, MP2629_REG_CHARGE_CTRL, 629 MP2629_MASK_CHARGE_CTRL, BIT(4)); 630 if (ret) { 631 dev_err(dev, "enable charge fail: %d\n", ret); 632 goto iio_fail; 633 } 634 635 regmap_update_bits(charger->regmap, MP2629_REG_TIMER_CTRL, 636 MP2629_MASK_WDOG_CTRL, 0); 637 638 INIT_WORK(&charger->charger_work, mp2629_charger_work); 639 mutex_init(&charger->lock); 640 641 if (charger->irq) { 642 ret = devm_request_irq(dev, charger->irq, mp2629_irq_handler, 643 IRQF_TRIGGER_RISING, "mp2629-charger", 644 charger); 645 if (ret) { 646 dev_err(dev, "failed to request gpio IRQ\n"); 647 goto iio_fail; 648 } 649 } 650 651 regmap_update_bits(charger->regmap, MP2629_REG_INTERRUPT, 652 GENMASK(6, 5), (BIT(6) | BIT(5))); 653 654 return 0; 655 656 iio_fail: 657 while (i--) 658 iio_channel_release(charger->iiochan[i]); 659 660 dev_err(dev, "driver register fail: %d\n", ret); 661 return ret; 662 } 663 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org