On 09/09/2022 09:16, Ibrahim Tilki wrote: > MAX31760 is a precision fan speed controller with nonvolatile lookup table. > Device has one internal and one external temperature sensor support. > Controls two fans and measures their speeds. Generates hardware alerts when > programmable max and critical temperatures are exceeded. > > Signed-off-by: Ibrahim Tilki <Ibrahim.Tilki@xxxxxxxxxx> > Reviewed-by: Nurettin Bolucu <Nurettin.Bolucu@xxxxxxxxxx> > + > +static int max31760_probe(struct i2c_client *client) > +{ > + struct device *dev = &client->dev; > + struct max31760_state *state; > + struct device *hwmon_dev; > + int ret; > + > + state = devm_kzalloc(dev, sizeof(struct max31760_state), GFP_KERNEL); sizeof(*) run checkpatch on your code > + if (!state) > + return -ENOMEM; > + > + state->regmap = devm_regmap_init_i2c(client, ®map_config); > + if (IS_ERR(state->regmap)) > + return dev_err_probe(dev, > + PTR_ERR(state->regmap), > + "regmap initialization failed\n"); > + > + dev_set_drvdata(dev, state); > + > + /* Set alert output to comparator mode */ > + ret = regmap_set_bits(state->regmap, REG_CR2, CR2_ALERTS); > + if (ret) > + return dev_err_probe(dev, ret, "cannot write register\n"); > + > + max31760_create_lut_nodes(state); > + > + hwmon_dev = devm_hwmon_device_register_with_info(dev, client->name, > + state, > + &max31760_chip_info, > + state->groups); > + > + return PTR_ERR_OR_ZERO(hwmon_dev); > +} > + > +static const struct of_device_id max31760_of_match[] = { > + {.compatible = "adi,max31760"}, > + { } > +}; > +MODULE_DEVICE_TABLE(of, max31760_of_match); > + > +static const struct i2c_device_id max31760_id[] = { > + {"max31760"}, > + { } > +}; > +MODULE_DEVICE_TABLE(i2c, max31760_id); > + > +static int __maybe_unused max31760_suspend(struct device *dev) > +{ > + struct max31760_state *state = dev_get_drvdata(dev); > + > + return regmap_set_bits(state->regmap, REG_CR2, CR2_STBY); > +} > + > +static int __maybe_unused max31760_resume(struct device *dev) > +{ > + struct max31760_state *state = dev_get_drvdata(dev); > + > + return regmap_clear_bits(state->regmap, REG_CR2, CR2_STBY); > +} > + > +static SIMPLE_DEV_PM_OPS(max31760_pm_ops, max31760_suspend, max31760_resume); DEFINE_SIMPLE_DEV_PM_OPS and drop maybe_unused. > + > +static struct i2c_driver max31760_driver = { > + .class = I2C_CLASS_HWMON, > + .driver = { > + .name = "max31760", > + .of_match_table = of_match_ptr(max31760_of_match), of_match_ptr goes with maybe_unuses. You should see compile test warnings... Best regards, Krzysztof