[PATCH 2/4] pwm: sun50i: Add H616 PWM support
kernel test robot
lkp at intel.com
Fri Dec 5 20:32:50 PST 2025
Hi Richard,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 6987d58a9cbc5bd57c983baa514474a86c945d56]
url: https://github.com/intel-lab-lkp/linux/commits/Richard-Genoud/dt-bindings-pwm-sunxi-add-PWM-controller-for-Allwinner-H616/20251205-214804
base: 6987d58a9cbc5bd57c983baa514474a86c945d56
patch link: https://lore.kernel.org/r/20251205100239.1563353-3-richard.genoud%40bootlin.com
patch subject: [PATCH 2/4] pwm: sun50i: Add H616 PWM support
config: parisc-allyesconfig (https://download.01.org/0day-ci/archive/20251206/202512061246.jJ5UrB71-lkp@intel.com/config)
compiler: hppa-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251206/202512061246.jJ5UrB71-lkp@intel.com/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 <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512061246.jJ5UrB71-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/pwm/pwm-sun50i-h616.c: In function 'h616_pwm_get_state':
drivers/pwm/pwm-sun50i-h616.c:76:41: error: implicit declaration of function 'FIELD_GET' [-Wimplicit-function-declaration]
76 | #define PWM_REG_DUTY(reg) FIELD_GET(PWM_DUTY_MASK, reg)
| ^~~~~~~~~
drivers/pwm/pwm-sun50i-h616.c:452:30: note: in expansion of macro 'PWM_REG_DUTY'
452 | tmp = NSEC_PER_SEC * PWM_REG_DUTY(val);
| ^~~~~~~~~~~~
drivers/pwm/pwm-sun50i-h616.c: In function 'h616_pwm_calc':
drivers/pwm/pwm-sun50i-h616.c:79:41: error: implicit declaration of function 'FIELD_MAX' [-Wimplicit-function-declaration]
79 | #define PWM_PERIOD_MAX FIELD_MAX(PWM_PERIOD_MASK)
| ^~~~~~~~~
drivers/pwm/pwm-sun50i-h616.c:493:54: note: in expansion of macro 'PWM_PERIOD_MAX'
493 | freq = div64_u64(NSEC_PER_SEC * (u64)PWM_PERIOD_MAX, period);
| ^~~~~~~~~~~~~~
drivers/pwm/pwm-sun50i-h616.c: In function 'h616_pwm_apply':
drivers/pwm/pwm-sun50i-h616.c:78:41: error: implicit declaration of function 'FIELD_PREP' [-Wimplicit-function-declaration]
78 | #define PWM_DUTY(dty) FIELD_PREP(PWM_DUTY_MASK, dty)
| ^~~~~~~~~~
drivers/pwm/pwm-sun50i-h616.c:577:23: note: in expansion of macro 'PWM_DUTY'
577 | val = PWM_DUTY(chan->active_cycles);
| ^~~~~~~~
drivers/pwm/pwm-sun50i-h616.c: In function 'h616_add_composite_clk':
>> drivers/pwm/pwm-sun50i-h616.c:666:28: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
666 | mux->reg = (u64)mux->reg + reg;
| ^
drivers/pwm/pwm-sun50i-h616.c:676:29: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
676 | gate->reg = (u64)gate->reg + reg;
| ^
drivers/pwm/pwm-sun50i-h616.c:686:29: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
686 | rate->reg = (u64)rate->reg + reg;
| ^
vim +666 drivers/pwm/pwm-sun50i-h616.c
650
651 static int h616_add_composite_clk(const struct clk_pwm_data *data,
652 void __iomem *reg, spinlock_t *lock,
653 struct device *dev, struct clk_hw **hw)
654 {
655 const struct clk_ops *mux_ops = NULL, *gate_ops = NULL, *rate_ops = NULL;
656 struct clk_hw *mux_hw = NULL, *gate_hw = NULL, *rate_hw = NULL;
657
658
659 if (data->mux_hw) {
660 struct clk_mux *mux;
661
662 mux_hw = data->mux_hw;
663 mux = to_clk_mux(mux_hw);
664 mux->lock = lock;
665 mux_ops = mux_hw->init->ops;
> 666 mux->reg = (u64)mux->reg + reg;
667 }
668
669 if (data->gate_hw) {
670 struct clk_gate *gate;
671
672 gate_hw = data->gate_hw;
673 gate = to_clk_gate(gate_hw);
674 gate->lock = lock;
675 gate_ops = gate_hw->init->ops;
676 gate->reg = (u64)gate->reg + reg;
677 }
678
679 if (data->rate_hw) {
680 struct clk_divider *rate;
681
682 rate_hw = data->rate_hw;
683 rate = to_clk_divider(rate_hw);
684 rate_ops = rate_hw->init->ops;
685 rate->lock = lock;
686 rate->reg = (u64)rate->reg + reg;
687
688 if (rate->table) {
689 const struct clk_div_table *clkt;
690 int table_size = 0;
691
692 for (clkt = rate->table; clkt->div; clkt++)
693 table_size++;
694 rate->width = order_base_2(table_size);
695 }
696 }
697
698 *hw = clk_hw_register_composite(dev, data->name, data->parent_names,
699 data->num_parents, mux_hw,
700 mux_ops, rate_hw, rate_ops,
701 gate_hw, gate_ops, data->flags);
702
703 return PTR_ERR_OR_ZERO(*hw);
704 }
705
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the linux-arm-kernel
mailing list