On Mon, Nov 21, 2022 at 06:24:18PM +0100, Gerald Loacker wrote: > Am 21.11.2022 um 15:04 schrieb Andy Shevchenko: > > On Mon, Nov 21, 2022 at 01:35:42PM +0100, Gerald Loacker wrote: ... > >> + if (!device_property_read_string(data->dev, "ti,angle-measurement", > >> + &angle_measurement)) { > >> + if (!strcmp(angle_measurement, "off")) > >> + data->angle_measurement = TMAG5273_ANGLE_EN_OFF; > >> + else if (!strcmp(angle_measurement, "x-y")) > >> + data->angle_measurement = TMAG5273_ANGLE_EN_X_Y; > >> + else if (!strcmp(angle_measurement, "y-z")) > >> + data->angle_measurement = TMAG5273_ANGLE_EN_Y_Z; > >> + else if (!strcmp(angle_measurement, "x-z")) > >> + data->angle_measurement = TMAG5273_ANGLE_EN_X_Z; > >> + else > >> + dev_warn(data->dev, > >> + "failed to read angle-measurement\n"); > > > > Can't you use match_string()? > > > > Yes, I will use match_string(). > > > And you actually can do a bit differently, can you? > > > > angle_measurement = "...default..."; > > if (device_property_...) > > dev_warn(data->dev, "failed to read angle-measurement\n"); > > I think we shouldn't warn here, as angle_measurement isn't a required > property. Besides that I will do it this way. > > > ret = match_string(); > > if (ret < 0) > > dev_warn(data->dev, "invalid angle-measurement value\n"); > > else > > data->angle_measurement = ret; > > > >> + } After looking into DT patch I think you can even use device_property_match_string(), ... > >> + snprintf(data->name, sizeof(data->name), "tmag5273x%1u", > > > > There is a difference between %1u and %.1u. And I believe you wanted the > > latter, but... > > %1u works fine for me. Can you point me to the documentation for %.1u? man printf(3) It was a surprise to me that many developers don't know the difference here. The %NNNNu defines the _minimum_ digits to print, while the %.NNNu defines the _exact_ amount of digits to print (NNN -- a number). > >> + data->version); -- With Best Regards, Andy Shevchenko