[PATCH 2/5] mfd: rk8xx: Add RK816 support

kernel test robot lkp at intel.com
Fri Mar 22 14:45:09 PDT 2024


Hi Alex,

kernel test robot noticed the following build errors:

[auto build test ERROR on lee-mfd/for-mfd-next]
[also build test ERROR on lee-mfd/for-mfd-fixes broonie-regulator/for-next robh/for-next linus/master v6.8 next-20240322]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Alex-Bee/dt-bindings-mfd-Add-rk816-binding/20240321-224318
base:   https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next
patch link:    https://lore.kernel.org/r/20240321143911.90210-5-knaerzche%40gmail.com
patch subject: [PATCH 2/5] mfd: rk8xx: Add RK816 support
config: arm-randconfig-002-20240322 (https://download.01.org/0day-ci/archive/20240323/202403230551.Vc1eaxTr-lkp@intel.com/config)
compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project 23de3862dce582ce91c1aa914467d982cb1a73b4)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240323/202403230551.Vc1eaxTr-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/202403230551.Vc1eaxTr-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   In file included from drivers/mfd/rk8xx-core.c:14:
   In file included from include/linux/mfd/rk808.h:18:
   In file included from include/linux/regulator/machine.h:15:
   In file included from include/linux/regulator/consumer.h:35:
   In file included from include/linux/suspend.h:5:
   In file included from include/linux/swap.h:9:
   In file included from include/linux/memcontrol.h:20:
   In file included from include/linux/mm.h:2188:
   include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     522 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
>> drivers/mfd/rk8xx-core.c:395:8: warning: 'const' type qualifier on return type has no effect [-Wignored-qualifiers]
     395 | static const unsigned int rk816_get_irq_reg(struct regmap_irq_chip_data *data,
         |        ^~~~~
>> drivers/mfd/rk8xx-core.c:573:17: error: incompatible function pointer types initializing 'unsigned int (*)(struct regmap_irq_chip_data *, unsigned int, int)' with an expression of type 'const unsigned int (struct regmap_irq_chip_data *, unsigned int, int)' [-Wincompatible-function-pointer-types]
     573 |         .get_irq_reg = rk816_get_irq_reg,
         |                        ^~~~~~~~~~~~~~~~~
   2 warnings and 1 error generated.


vim +573 drivers/mfd/rk8xx-core.c

   394	
 > 395	static const unsigned int rk816_get_irq_reg(struct regmap_irq_chip_data *data,
   396						    unsigned int base, int index)
   397	{
   398		unsigned int irq_reg = base;
   399	
   400		switch (base) {
   401		case RK816_INT_STS_REG1:
   402			irq_reg += rk816_irq_status_offsets[index];
   403			break;
   404		case RK816_INT_STS_MSK_REG1:
   405			irq_reg += rk816_irq_mask_offsets[index];
   406			break;
   407		}
   408	
   409		return irq_reg;
   410	};
   411	
   412	static const struct regmap_irq rk816_irqs[] = {
   413		/* INT_STS_REG1 IRQs */
   414		REGMAP_IRQ_REG(RK816_IRQ_PWRON_FALL, 0, RK816_INT_STS_PWRON_FALL),
   415		REGMAP_IRQ_REG(RK816_IRQ_PWRON_RISE, 0, RK816_INT_STS_PWRON_RISE),
   416	
   417		/* INT_STS_REG2 IRQs  */
   418		REGMAP_IRQ_REG(RK816_IRQ_VB_LOW, 1, RK816_INT_STS_VB_LOW),
   419		REGMAP_IRQ_REG(RK816_IRQ_PWRON, 1, RK816_INT_STS_PWRON),
   420		REGMAP_IRQ_REG(RK816_IRQ_PWRON_LP, 1, RK816_INT_STS_PWRON_LP),
   421		REGMAP_IRQ_REG(RK816_IRQ_HOTDIE, 1, RK816_INT_STS_HOTDIE),
   422		REGMAP_IRQ_REG(RK816_IRQ_RTC_ALARM, 1, RK816_INT_STS_RTC_ALARM),
   423		REGMAP_IRQ_REG(RK816_IRQ_RTC_PERIOD, 1, RK816_INT_STS_RTC_PERIOD),
   424		REGMAP_IRQ_REG(RK816_IRQ_USB_OV, 1, RK816_INT_STS_USB_OV),
   425	
   426		/* INT_STS3 IRQs */
   427		REGMAP_IRQ_REG(RK816_IRQ_PLUG_IN, 2, RK816_INT_STS_PLUG_IN),
   428		REGMAP_IRQ_REG(RK816_IRQ_PLUG_OUT, 2, RK816_INT_STS_PLUG_OUT),
   429		REGMAP_IRQ_REG(RK816_IRQ_CHG_OK, 2, RK816_INT_STS_CHG_OK),
   430		REGMAP_IRQ_REG(RK816_IRQ_CHG_TE, 2, RK816_INT_STS_CHG_TE),
   431		REGMAP_IRQ_REG(RK816_IRQ_CHG_TS, 2, RK816_INT_STS_CHG_TS),
   432		REGMAP_IRQ_REG(RK816_IRQ_CHG_CVTLIM, 2, RK816_INT_STS_CHG_CVTLIM),
   433		REGMAP_IRQ_REG(RK816_IRQ_DISCHG_ILIM, 2, RK816_INT_STS_DISCHG_ILIM),
   434	};
   435	
   436	static const struct regmap_irq rk818_irqs[] = {
   437		/* INT_STS */
   438		[RK818_IRQ_VOUT_LO] = {
   439			.mask = RK818_IRQ_VOUT_LO_MSK,
   440			.reg_offset = 0,
   441		},
   442		[RK818_IRQ_VB_LO] = {
   443			.mask = RK818_IRQ_VB_LO_MSK,
   444			.reg_offset = 0,
   445		},
   446		[RK818_IRQ_PWRON] = {
   447			.mask = RK818_IRQ_PWRON_MSK,
   448			.reg_offset = 0,
   449		},
   450		[RK818_IRQ_PWRON_LP] = {
   451			.mask = RK818_IRQ_PWRON_LP_MSK,
   452			.reg_offset = 0,
   453		},
   454		[RK818_IRQ_HOTDIE] = {
   455			.mask = RK818_IRQ_HOTDIE_MSK,
   456			.reg_offset = 0,
   457		},
   458		[RK818_IRQ_RTC_ALARM] = {
   459			.mask = RK818_IRQ_RTC_ALARM_MSK,
   460			.reg_offset = 0,
   461		},
   462		[RK818_IRQ_RTC_PERIOD] = {
   463			.mask = RK818_IRQ_RTC_PERIOD_MSK,
   464			.reg_offset = 0,
   465		},
   466		[RK818_IRQ_USB_OV] = {
   467			.mask = RK818_IRQ_USB_OV_MSK,
   468			.reg_offset = 0,
   469		},
   470	
   471		/* INT_STS2 */
   472		[RK818_IRQ_PLUG_IN] = {
   473			.mask = RK818_IRQ_PLUG_IN_MSK,
   474			.reg_offset = 1,
   475		},
   476		[RK818_IRQ_PLUG_OUT] = {
   477			.mask = RK818_IRQ_PLUG_OUT_MSK,
   478			.reg_offset = 1,
   479		},
   480		[RK818_IRQ_CHG_OK] = {
   481			.mask = RK818_IRQ_CHG_OK_MSK,
   482			.reg_offset = 1,
   483		},
   484		[RK818_IRQ_CHG_TE] = {
   485			.mask = RK818_IRQ_CHG_TE_MSK,
   486			.reg_offset = 1,
   487		},
   488		[RK818_IRQ_CHG_TS1] = {
   489			.mask = RK818_IRQ_CHG_TS1_MSK,
   490			.reg_offset = 1,
   491		},
   492		[RK818_IRQ_TS2] = {
   493			.mask = RK818_IRQ_TS2_MSK,
   494			.reg_offset = 1,
   495		},
   496		[RK818_IRQ_CHG_CVTLIM] = {
   497			.mask = RK818_IRQ_CHG_CVTLIM_MSK,
   498			.reg_offset = 1,
   499		},
   500		[RK818_IRQ_DISCHG_ILIM] = {
   501			.mask = RK818_IRQ_DISCHG_ILIM_MSK,
   502			.reg_offset = 1,
   503		},
   504	};
   505	
   506	static const struct regmap_irq rk817_irqs[RK817_IRQ_END] = {
   507		REGMAP_IRQ_REG_LINE(0, 8),
   508		REGMAP_IRQ_REG_LINE(1, 8),
   509		REGMAP_IRQ_REG_LINE(2, 8),
   510		REGMAP_IRQ_REG_LINE(3, 8),
   511		REGMAP_IRQ_REG_LINE(4, 8),
   512		REGMAP_IRQ_REG_LINE(5, 8),
   513		REGMAP_IRQ_REG_LINE(6, 8),
   514		REGMAP_IRQ_REG_LINE(7, 8),
   515		REGMAP_IRQ_REG_LINE(8, 8),
   516		REGMAP_IRQ_REG_LINE(9, 8),
   517		REGMAP_IRQ_REG_LINE(10, 8),
   518		REGMAP_IRQ_REG_LINE(11, 8),
   519		REGMAP_IRQ_REG_LINE(12, 8),
   520		REGMAP_IRQ_REG_LINE(13, 8),
   521		REGMAP_IRQ_REG_LINE(14, 8),
   522		REGMAP_IRQ_REG_LINE(15, 8),
   523		REGMAP_IRQ_REG_LINE(16, 8),
   524		REGMAP_IRQ_REG_LINE(17, 8),
   525		REGMAP_IRQ_REG_LINE(18, 8),
   526		REGMAP_IRQ_REG_LINE(19, 8),
   527		REGMAP_IRQ_REG_LINE(20, 8),
   528		REGMAP_IRQ_REG_LINE(21, 8),
   529		REGMAP_IRQ_REG_LINE(22, 8),
   530		REGMAP_IRQ_REG_LINE(23, 8)
   531	};
   532	
   533	static struct regmap_irq_chip rk805_irq_chip = {
   534		.name = "rk805",
   535		.irqs = rk805_irqs,
   536		.num_irqs = ARRAY_SIZE(rk805_irqs),
   537		.num_regs = 1,
   538		.status_base = RK805_INT_STS_REG,
   539		.mask_base = RK805_INT_STS_MSK_REG,
   540		.ack_base = RK805_INT_STS_REG,
   541		.init_ack_masked = true,
   542	};
   543	
   544	static struct regmap_irq_chip rk806_irq_chip = {
   545		.name = "rk806",
   546		.irqs = rk806_irqs,
   547		.num_irqs = ARRAY_SIZE(rk806_irqs),
   548		.num_regs = 2,
   549		.irq_reg_stride = 2,
   550		.mask_base = RK806_INT_MSK0,
   551		.status_base = RK806_INT_STS0,
   552		.ack_base = RK806_INT_STS0,
   553		.init_ack_masked = true,
   554	};
   555	
   556	static const struct regmap_irq_chip rk808_irq_chip = {
   557		.name = "rk808",
   558		.irqs = rk808_irqs,
   559		.num_irqs = ARRAY_SIZE(rk808_irqs),
   560		.num_regs = 2,
   561		.irq_reg_stride = 2,
   562		.status_base = RK808_INT_STS_REG1,
   563		.mask_base = RK808_INT_STS_MSK_REG1,
   564		.ack_base = RK808_INT_STS_REG1,
   565		.init_ack_masked = true,
   566	};
   567	
   568	static const struct regmap_irq_chip rk816_irq_chip = {
   569		.name = "rk816",
   570		.irqs = rk816_irqs,
   571		.num_irqs = ARRAY_SIZE(rk816_irqs),
   572		.num_regs = 3,
 > 573		.get_irq_reg = rk816_get_irq_reg,
   574		.status_base = RK816_INT_STS_REG1,
   575		.mask_base = RK816_INT_STS_MSK_REG1,
   576		.ack_base = RK816_INT_STS_REG1,
   577		.init_ack_masked = true,
   578	};
   579	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki



More information about the linux-arm-kernel mailing list