Hi Chiang, kernel test robot noticed the following build warnings: [auto build test WARNING on groeck-staging/hwmon-next] [also build test WARNING on robh/for-next linus/master v6.15-rc3 next-20250424] [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/Chiang-Brian/dt-bindings-trivial-Add-tps53685-support/20250424-222559 base: https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git hwmon-next patch link: https://lore.kernel.org/r/20250424132538.2004510-2-chiang.brian%40inventec.corp-partner.google.com patch subject: [PATCH v6 1/2] hwmon: (pmbus/tps53679) Add support for TPS53685 config: nios2-randconfig-002-20250425 (https://download.01.org/0day-ci/archive/20250426/202504260043.Q4NkFYgs-lkp@xxxxxxxxx/config) compiler: nios2-linux-gcc (GCC) 13.3.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250426/202504260043.Q4NkFYgs-lkp@xxxxxxxxx/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@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202504260043.Q4NkFYgs-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): drivers/hwmon/pmbus/tps53679.c: In function 'tps53679_identify_multiphase': >> drivers/hwmon/pmbus/tps53679.c:133:57: warning: passing argument 3 of 'tps53679_identify_chip' makes pointer from integer without a cast [-Wint-conversion] 133 | ret = tps53679_identify_chip(client, pmbus_rev, device_id); | ^~~~~~~~~ | | | int drivers/hwmon/pmbus/tps53679.c:90:54: note: expected 'char *' but argument is of type 'int' 90 | u8 revision, char *id) | ~~~~~~^~ drivers/hwmon/pmbus/tps53679.c: In function 'tps53681_identify': >> drivers/hwmon/pmbus/tps53679.c:34:32: warning: passing argument 4 of 'tps53679_identify_multiphase' makes integer from pointer without a cast [-Wint-conversion] 34 | #define TPS53681_DEVICE_ID "\x81" | ^~~~~~ | | | char * drivers/hwmon/pmbus/tps53679.c:165:45: note: in expansion of macro 'TPS53681_DEVICE_ID' 165 | TPS53681_DEVICE_ID); | ^~~~~~~~~~~~~~~~~~ drivers/hwmon/pmbus/tps53679.c:129:60: note: expected 'int' but argument is of type 'char *' 129 | int pmbus_rev, int device_id) | ~~~~^~~~~~~~~ vim +/tps53679_identify_chip +133 drivers/hwmon/pmbus/tps53679.c 610526527a13e4 Vadim Pasternak 2017-08-30 33 a49c0dafb304b8 Chiang Brian 2025-04-24 @34 #define TPS53681_DEVICE_ID "\x81" a49c0dafb304b8 Chiang Brian 2025-04-24 35 #define TPS53685_DEVICE_ID "TIShP" 53030bcc87e4a4 Guenter Roeck 2020-01-20 36 53030bcc87e4a4 Guenter Roeck 2020-01-20 37 #define TPS53681_PMBUS_REVISION 0x33 53030bcc87e4a4 Guenter Roeck 2020-01-20 38 53030bcc87e4a4 Guenter Roeck 2020-01-20 39 #define TPS53681_MFR_SPECIFIC_20 0xe4 /* Number of phases, per page */ 53030bcc87e4a4 Guenter Roeck 2020-01-20 40 dd43193976b9a7 Stephen Kitt 2020-08-08 41 static const struct i2c_device_id tps53679_id[]; dd43193976b9a7 Stephen Kitt 2020-08-08 42 53030bcc87e4a4 Guenter Roeck 2020-01-20 43 static int tps53679_identify_mode(struct i2c_client *client, 610526527a13e4 Vadim Pasternak 2017-08-30 44 struct pmbus_driver_info *info) 610526527a13e4 Vadim Pasternak 2017-08-30 45 { 610526527a13e4 Vadim Pasternak 2017-08-30 46 u8 vout_params; b9fa0a3acfd86c Vadim Pasternak 2020-01-13 47 int i, ret; 610526527a13e4 Vadim Pasternak 2017-08-30 48 6f944004f873e3 Guenter Roeck 2020-01-24 49 for (i = 0; i < info->pages; i++) { 610526527a13e4 Vadim Pasternak 2017-08-30 50 /* Read the register with VOUT scaling value.*/ b9fa0a3acfd86c Vadim Pasternak 2020-01-13 51 ret = pmbus_read_byte_data(client, i, PMBUS_VOUT_MODE); 610526527a13e4 Vadim Pasternak 2017-08-30 52 if (ret < 0) 610526527a13e4 Vadim Pasternak 2017-08-30 53 return ret; 610526527a13e4 Vadim Pasternak 2017-08-30 54 610526527a13e4 Vadim Pasternak 2017-08-30 55 vout_params = ret & GENMASK(4, 0); 610526527a13e4 Vadim Pasternak 2017-08-30 56 610526527a13e4 Vadim Pasternak 2017-08-30 57 switch (vout_params) { 610526527a13e4 Vadim Pasternak 2017-08-30 58 case TPS53679_PROT_VR13_10MV: 610526527a13e4 Vadim Pasternak 2017-08-30 59 case TPS53679_PROT_VR12_5_10MV: b9fa0a3acfd86c Vadim Pasternak 2020-01-13 60 info->vrm_version[i] = vr13; 610526527a13e4 Vadim Pasternak 2017-08-30 61 break; 610526527a13e4 Vadim Pasternak 2017-08-30 62 case TPS53679_PROT_VR13_5MV: 610526527a13e4 Vadim Pasternak 2017-08-30 63 case TPS53679_PROT_VR12_5MV: 610526527a13e4 Vadim Pasternak 2017-08-30 64 case TPS53679_PROT_IMVP8_5MV: b9fa0a3acfd86c Vadim Pasternak 2020-01-13 65 info->vrm_version[i] = vr12; 610526527a13e4 Vadim Pasternak 2017-08-30 66 break; 610526527a13e4 Vadim Pasternak 2017-08-30 67 default: 610526527a13e4 Vadim Pasternak 2017-08-30 68 return -EINVAL; 610526527a13e4 Vadim Pasternak 2017-08-30 69 } b9fa0a3acfd86c Vadim Pasternak 2020-01-13 70 } 610526527a13e4 Vadim Pasternak 2017-08-30 71 610526527a13e4 Vadim Pasternak 2017-08-30 72 return 0; 610526527a13e4 Vadim Pasternak 2017-08-30 73 } 610526527a13e4 Vadim Pasternak 2017-08-30 74 53030bcc87e4a4 Guenter Roeck 2020-01-20 75 static int tps53679_identify_phases(struct i2c_client *client, 53030bcc87e4a4 Guenter Roeck 2020-01-20 76 struct pmbus_driver_info *info) 53030bcc87e4a4 Guenter Roeck 2020-01-20 77 { 53030bcc87e4a4 Guenter Roeck 2020-01-20 78 int ret; 53030bcc87e4a4 Guenter Roeck 2020-01-20 79 53030bcc87e4a4 Guenter Roeck 2020-01-20 80 /* On TPS53681, only channel A provides per-phase output current */ 53030bcc87e4a4 Guenter Roeck 2020-01-20 81 ret = pmbus_read_byte_data(client, 0, TPS53681_MFR_SPECIFIC_20); 53030bcc87e4a4 Guenter Roeck 2020-01-20 82 if (ret < 0) 53030bcc87e4a4 Guenter Roeck 2020-01-20 83 return ret; 53030bcc87e4a4 Guenter Roeck 2020-01-20 84 info->phases[0] = (ret & 0x07) + 1; 53030bcc87e4a4 Guenter Roeck 2020-01-20 85 53030bcc87e4a4 Guenter Roeck 2020-01-20 86 return 0; 53030bcc87e4a4 Guenter Roeck 2020-01-20 87 } 53030bcc87e4a4 Guenter Roeck 2020-01-20 88 53030bcc87e4a4 Guenter Roeck 2020-01-20 89 static int tps53679_identify_chip(struct i2c_client *client, a49c0dafb304b8 Chiang Brian 2025-04-24 90 u8 revision, char *id) 53030bcc87e4a4 Guenter Roeck 2020-01-20 91 { 53030bcc87e4a4 Guenter Roeck 2020-01-20 92 u8 buf[I2C_SMBUS_BLOCK_MAX]; 53030bcc87e4a4 Guenter Roeck 2020-01-20 93 int ret; a49c0dafb304b8 Chiang Brian 2025-04-24 94 int buf_len; a49c0dafb304b8 Chiang Brian 2025-04-24 95 int id_len; 53030bcc87e4a4 Guenter Roeck 2020-01-20 96 53030bcc87e4a4 Guenter Roeck 2020-01-20 97 ret = pmbus_read_byte_data(client, 0, PMBUS_REVISION); 53030bcc87e4a4 Guenter Roeck 2020-01-20 98 if (ret < 0) 53030bcc87e4a4 Guenter Roeck 2020-01-20 99 return ret; 53030bcc87e4a4 Guenter Roeck 2020-01-20 100 if (ret != revision) { 53030bcc87e4a4 Guenter Roeck 2020-01-20 101 dev_err(&client->dev, "Unexpected PMBus revision 0x%x\n", ret); 53030bcc87e4a4 Guenter Roeck 2020-01-20 102 return -ENODEV; 53030bcc87e4a4 Guenter Roeck 2020-01-20 103 } 53030bcc87e4a4 Guenter Roeck 2020-01-20 104 53030bcc87e4a4 Guenter Roeck 2020-01-20 105 ret = i2c_smbus_read_block_data(client, PMBUS_IC_DEVICE_ID, buf); 53030bcc87e4a4 Guenter Roeck 2020-01-20 106 if (ret < 0) 53030bcc87e4a4 Guenter Roeck 2020-01-20 107 return ret; a49c0dafb304b8 Chiang Brian 2025-04-24 108 a49c0dafb304b8 Chiang Brian 2025-04-24 109 /* Adjust length if null terminator if present */ a49c0dafb304b8 Chiang Brian 2025-04-24 110 buf_len = (buf[ret - 1] != '\x00' ? ret : ret - 1); a49c0dafb304b8 Chiang Brian 2025-04-24 111 a49c0dafb304b8 Chiang Brian 2025-04-24 112 id_len = strlen(id); a49c0dafb304b8 Chiang Brian 2025-04-24 113 a49c0dafb304b8 Chiang Brian 2025-04-24 114 if (buf_len != id_len || strncmp(id, buf, id_len)) { a49c0dafb304b8 Chiang Brian 2025-04-24 115 dev_err(&client->dev, "Unexpected device ID: %*ph\n", ret, buf); 53030bcc87e4a4 Guenter Roeck 2020-01-20 116 return -ENODEV; 53030bcc87e4a4 Guenter Roeck 2020-01-20 117 } 53030bcc87e4a4 Guenter Roeck 2020-01-20 118 return 0; 53030bcc87e4a4 Guenter Roeck 2020-01-20 119 } 53030bcc87e4a4 Guenter Roeck 2020-01-20 120 53030bcc87e4a4 Guenter Roeck 2020-01-20 121 /* 53030bcc87e4a4 Guenter Roeck 2020-01-20 122 * Common identification function for chips with multi-phase support. 53030bcc87e4a4 Guenter Roeck 2020-01-20 123 * Since those chips have special configuration registers, we want to have 53030bcc87e4a4 Guenter Roeck 2020-01-20 124 * some level of reassurance that we are really talking with the chip 53030bcc87e4a4 Guenter Roeck 2020-01-20 125 * being probed. Check PMBus revision and chip ID. 53030bcc87e4a4 Guenter Roeck 2020-01-20 126 */ 53030bcc87e4a4 Guenter Roeck 2020-01-20 127 static int tps53679_identify_multiphase(struct i2c_client *client, 53030bcc87e4a4 Guenter Roeck 2020-01-20 128 struct pmbus_driver_info *info, 53030bcc87e4a4 Guenter Roeck 2020-01-20 129 int pmbus_rev, int device_id) 53030bcc87e4a4 Guenter Roeck 2020-01-20 130 { 53030bcc87e4a4 Guenter Roeck 2020-01-20 131 int ret; 53030bcc87e4a4 Guenter Roeck 2020-01-20 132 53030bcc87e4a4 Guenter Roeck 2020-01-20 @133 ret = tps53679_identify_chip(client, pmbus_rev, device_id); 53030bcc87e4a4 Guenter Roeck 2020-01-20 134 if (ret < 0) 53030bcc87e4a4 Guenter Roeck 2020-01-20 135 return ret; 53030bcc87e4a4 Guenter Roeck 2020-01-20 136 53030bcc87e4a4 Guenter Roeck 2020-01-20 137 ret = tps53679_identify_mode(client, info); 53030bcc87e4a4 Guenter Roeck 2020-01-20 138 if (ret < 0) 53030bcc87e4a4 Guenter Roeck 2020-01-20 139 return ret; 53030bcc87e4a4 Guenter Roeck 2020-01-20 140 53030bcc87e4a4 Guenter Roeck 2020-01-20 141 return tps53679_identify_phases(client, info); 53030bcc87e4a4 Guenter Roeck 2020-01-20 142 } 53030bcc87e4a4 Guenter Roeck 2020-01-20 143 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki