[chenxing:mstar_v6_5_reorder 344/700] drivers/iio/adc/msc313e_sar.c:595:78: warning: passing argument 3 of 'pinctrl_generic_add_group' discards 'const' qualifier from pointer target type
kernel test robot <[email protected]> Sun, 02 Aug 2026 00:16:56 +0800
| Newsgroups | dev.linux.lists.oe-kbuild-all |
|---|---|
| Message-ID | <[email protected]> |
tree: https://github.com/linux-chenxing/linux.git mstar_v6_5_reorder head: 1a5c60e65ea399670a5384b869c4958338af2799 commit: 88c3adc69c81ffc51dcc5902ec2f4b50e72ce948 [344/700] iio: adc: Add driver for mstar SAR config: nios2-allmodconfig (https://download.01.org/0day-ci/archive/20260802/[email protected]/config) compiler: nios2-linux-gcc (GCC) 11.5.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260802/[email protected]/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All warnings (new ones prefixed by >>): drivers/iio/adc/msc313e_sar.c: In function 'msc313e_sar_probe_pinctrl': >> drivers/iio/adc/msc313e_sar.c:595:78: warning: passing argument 3 of 'pinctrl_generic_add_group' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 595 | ret = pinctrl_generic_add_group(sar->pinctrl_dev, grp->name, &grp->pin, | ^~~~~~~~~ In file included from drivers/iio/adc/msc313e_sar.c:25: drivers/iio/adc/../../pinctrl/core.h:225:36: note: expected 'int *' but argument is of type 'const int *' 225 | int *gpins, int ngpins, void *data); | ~~~~~^~~~~ >> drivers/iio/adc/msc313e_sar.c:602:50: warning: passing argument 5 of 'pinmux_generic_add_function' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 602 | &func->group, 1, func); | ^~~~ In file included from drivers/iio/adc/msc313e_sar.c:27: drivers/iio/adc/../../pinctrl/pinmux.h:166:39: note: expected 'void *' but argument is of type 'const struct sar_pinctrl_function *' 166 | void *data); | ~~~~~~^~~~ drivers/iio/adc/msc313e_sar.c: In function 'msc313e_sar_probe': >> drivers/iio/adc/msc313e_sar.c:624:20: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 624 | match_data = of_device_get_match_data(&pdev->dev); | ^ >> drivers/iio/adc/msc313e_sar.c:737:1: warning: label 'out' defined but not used [-Wunused-label] 737 | out: | ^~~ vim +595 drivers/iio/adc/msc313e_sar.c 566 567 static int msc313e_sar_probe_pinctrl(struct platform_device *pdev, 568 struct msc313e_sar *sar) { 569 int i, ret; 570 571 sar->gpio_range.name = "sar"; 572 sar->gpio_range.id = 0; 573 sar->gpio_range.base = sar->gpiochip.base; 574 sar->gpio_range.pins = sar->info->rangepins; 575 sar->gpio_range.npins = sar->info->nrangepins; 576 sar->gpio_range.gc = &sar->gpiochip; 577 578 sar->pinctrl_desc.name = DRIVER_NAME; 579 sar->pinctrl_desc.pctlops = &sar_pinctrl_ops; 580 sar->pinctrl_desc.pmxops = &sar_pinmux_ops; 581 sar->pinctrl_desc.owner = THIS_MODULE; 582 sar->pinctrl_desc.pins = sar->info->pins; 583 sar->pinctrl_desc.npins = sar->info->npins; 584 585 ret = devm_pinctrl_register_and_init(&pdev->dev, &sar->pinctrl_desc, sar, 586 &sar->pinctrl_dev); 587 588 if (ret) { 589 dev_err(&pdev->dev, "failed to register pinctrl\n"); 590 return ret; 591 } 592 593 for (i = 0; i < sar->info->ngroups; i++) { 594 const struct sar_pinctrl_group *grp = &sar->info->groups[i]; > 595 ret = pinctrl_generic_add_group(sar->pinctrl_dev, grp->name, &grp->pin, 596 1, NULL); 597 } 598 599 for (i = 0; i < ARRAY_SIZE(sar_pinctrl_functions); i++) { 600 const struct sar_pinctrl_function *func = &sar_pinctrl_functions[i]; 601 ret = pinmux_generic_add_function(sar->pinctrl_dev, func->name, > 602 &func->group, 1, func); 603 604 } 605 606 pinctrl_add_gpio_range(sar->pinctrl_dev, &sar->gpio_range); 607 608 ret = pinctrl_enable(sar->pinctrl_dev); 609 if (ret) 610 dev_err(&pdev->dev, "failed to enable pinctrl\n"); 611 612 return ret; 613 } 614 615 static int msc313e_sar_probe(struct platform_device *pdev) 616 { 617 int ret = 0; 618 struct mstar_sar_info *match_data; 619 struct iio_dev *indio_dev; 620 struct msc313e_sar *sar; 621 __iomem void *base; 622 int irq; 623 > 624 match_data = of_device_get_match_data(&pdev->dev); 625 if (!match_data) 626 return -EINVAL; 627 628 indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*sar)); 629 if(!indio_dev) 630 return -ENOMEM; 631 632 sar = iio_priv(indio_dev); 633 634 sar->info = match_data; 635 636 base = devm_platform_ioremap_resource(pdev, 0); 637 if (IS_ERR(base)) 638 return PTR_ERR(base); 639 640 sar->regmap = devm_regmap_init_mmio(&pdev->dev, base, 641 &msc313_sar_regmap_config); 642 if (IS_ERR(sar->regmap)) { 643 dev_err(&pdev->dev, "failed to register regmap"); 644 return PTR_ERR(sar->regmap); 645 } 646 647 sar->pmsleep = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, "mstar,pmsleep"); 648 if (IS_ERR(sar->pmsleep)) 649 return PTR_ERR(sar->pmsleep); 650 651 sar->field_load = devm_regmap_field_alloc(&pdev->dev, sar->regmap, ctrl_load_field); 652 sar->field_freerun = devm_regmap_field_alloc(&pdev->dev, sar->regmap, ctrl_freerun_field); 653 sar->field_analogpd = devm_regmap_field_alloc(&pdev->dev, sar->regmap, ctrl_analogpd_field); 654 sar->field_start = devm_regmap_field_alloc(&pdev->dev, sar->regmap, ctrl_start_field); 655 sar->field_digitalpd = devm_regmap_field_alloc(&pdev->dev, sar->regmap, ctrl_digitalpd_field); 656 sar->field_mode = devm_regmap_field_alloc(&pdev->dev, sar->regmap, ctrl_mode_field); 657 sar->field_singlech = devm_regmap_field_alloc(&pdev->dev, sar->regmap, ctrl_singlech_field); 658 sar->field_channel = devm_regmap_field_alloc(&pdev->dev, sar->regmap, ctrl_channel_field); 659 660 sar->field_gpio_en = devm_regmap_field_alloc(&pdev->dev, sar->regmap, gpio_ctrl_en_field); 661 sar->field_gpio_oen = devm_regmap_field_alloc(&pdev->dev, sar->regmap, gpio_ctrl_oen_field); 662 sar->field_gpio_value = devm_regmap_field_alloc(&pdev->dev, sar->regmap, gpio_data_value_field); 663 sar->field_gpio_in = devm_regmap_field_alloc(&pdev->dev, sar->regmap, gpio_data_in_field); 664 sar->field_vref_ts = devm_regmap_field_alloc(&pdev->dev, sar->regmap, vref_ts_field); 665 666 sar->clk = devm_clk_get(&pdev->dev, "sar_clk"); 667 if (IS_ERR(sar->clk)) { 668 dev_err(&pdev->dev, "failed to get clk\n"); 669 return PTR_ERR(sar->clk); 670 } 671 672 irq = of_irq_get_byname(pdev->dev.of_node, "sar"); 673 if (!irq) 674 return -EINVAL; 675 676 ret = devm_request_irq(&pdev->dev, irq, msc313e_sar_irq, IRQF_SHARED, 677 dev_name(&pdev->dev), indio_dev); 678 if (ret) 679 return ret; 680 681 irq = of_irq_get_byname(pdev->dev.of_node, "wakeup"); 682 if (!irq) 683 return -EINVAL; 684 685 ret = devm_request_irq(&pdev->dev, irq, msc313e_sar_irq, IRQF_SHARED, 686 dev_name(&pdev->dev), indio_dev); 687 if (ret) 688 return ret; 689 690 sar->wakeirq_gpio = of_irq_get_byname(pdev->dev.of_node, "wakeup_gpio"); 691 if (!sar->wakeirq_gpio) 692 return -EINVAL; 693 694 ret = devm_request_irq(&pdev->dev, sar->wakeirq_gpio, msc313e_sar_irq, IRQF_SHARED, 695 dev_name(&pdev->dev), indio_dev); 696 if (ret) 697 return ret; 698 699 indio_dev->name = platform_get_device_id(pdev)->name; 700 indio_dev->dev.parent = &pdev->dev; 701 indio_dev->dev.of_node = pdev->dev.of_node; 702 indio_dev->modes = INDIO_DIRECT_MODE; 703 indio_dev->info = &msc313e_sar_iio_info; 704 indio_dev->num_channels = ARRAY_SIZE(msc313e_sar_channels); 705 indio_dev->channels = msc313e_sar_channels; 706 707 platform_set_drvdata(pdev, indio_dev); 708 709 ret = devm_iio_device_register(&pdev->dev, indio_dev); 710 if (ret) 711 return ret; 712 713 ret = msc313e_sar_probe_gpio(pdev, sar); 714 if (ret) 715 return ret; 716 717 ret = msc313e_sar_probe_pinctrl(pdev, sar); 718 if (ret) 719 return ret; 720 721 clk_prepare_enable(sar->clk); 722 723 regmap_write(sar->regmap, REG_SAMPLE_PERIOD, 0x0f); 724 725 regmap_write(sar->regmap, REG_INT_CLR, ~0); 726 regmap_write(sar->regmap, REG_INT_MASK, 0); 727 728 /* turn the adc on */ 729 regmap_field_write(sar->field_analogpd, 0); 730 regmap_field_write(sar->field_digitalpd, 0); 731 732 /* set the temp sensor to 2.0v */ 733 regmap_field_write(sar->field_vref_ts, 0); 734 735 device_init_wakeup(&pdev->dev, 1); 736 > 737 out: 738 return ret; 739 } 740 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki