On 28/02/2025 11:31, Matthias Fend wrote: > + tps6131x->reset_gpio = devm_gpiod_get_optional(&client->dev, "reset", GPIOD_OUT_HIGH); > + ret = tps6131x_reset_chip(tps6131x); > + if (ret) > + return dev_err_probe(&client->dev, ret, "Failed to reset LED controller\n"); > + > + ret = tps6131x_init_chip(tps6131x); > + if (ret) > + return dev_err_probe(&client->dev, ret, "Failed to initialize LED controller\n"); > + > + ret = tps6131x_led_class_setup(tps6131x); > + if (ret) > + return dev_err_probe(&client->dev, ret, "Failed to setup led class\n"); > + > + ret = tps6131x_v4l2_setup(tps6131x); > + if (ret) > + return dev_err_probe(&client->dev, ret, "Failed to setup v4l2 flash\n"); > + > + return 0; > +} > + > +static void tps6131x_remove(struct i2c_client *client) > +{ > + struct tps6131x *tps6131x = i2c_get_clientdata(client); > + > + v4l2_flash_release(tps6131x->v4l2_flash); > + > + cancel_delayed_work_sync(&tps6131x->torch_refresh_work); > +} > + > +static const struct of_device_id of_tps6131x_leds_match[] = { > + { .compatible = "ti,tps61310" }, > + { .compatible = "ti,tps61311" }, No differences? So devices are fully compatible? Then it should be expressed in the binding with fallback. Or the binding description or commit msg should explain why they are not compatible. Best regards, Krzysztof