Hi Krzysztof, On 02/11/2024 10:52, Krzysztof Kozlowski wrote: > On Fri, Nov 01, 2024 at 10:06:08AM +0200, Andrei Stefanescu wrote: >> +static int nxp_siul2_probe(struct platform_device *pdev) >> +{ >> + struct nxp_siul2_mfd *priv; >> + int ret; >> + >> + priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); >> + if (!priv) >> + return -ENOMEM; >> + >> + priv->num_siul2 = S32G_NUM_SIUL2; >> + priv->siul2 = devm_kcalloc(&pdev->dev, priv->num_siul2, >> + sizeof(*priv->siul2), GFP_KERNEL); >> + if (!priv->siul2) >> + return -ENOMEM; >> + >> + platform_set_drvdata(pdev, priv); >> + ret = nxp_siul2_parse_dtb(pdev); >> + if (ret) >> + return ret; >> + >> + return devm_mfd_add_devices(&pdev->dev, PLATFORM_DEVID_AUTO, >> + nxp_siul2_devs, ARRAY_SIZE(nxp_siul2_devs), >> + NULL, 0, NULL); >> +} >> + >> +static const struct of_device_id nxp_siul2_dt_ids[] = { >> + { .compatible = "nxp,s32g2-siul2" }, >> + { .compatible = "nxp,s32g3-siul2" }, > > So devices are comaptible? Why doesn't your binding express it? Yes, as far as I know, there is no difference in the integration of the SIUL2 module for S32G2 and S32G3 SoCs. I am not sure how to express this compatibility. Should I mention the "nxp,s32g3-siul2" compatible as a fallback one? Best regards, Andrei > >> + { }, >> +}; >> +MODULE_DEVICE_TABLE(of, nxp_siul2_dt_ids); >> + >> +static struct platform_driver nxp_siul2_mfd_driver = { >> + .driver = { >> + .name = "nxp-siul2-mfd", >> + .of_match_table = nxp_siul2_dt_ids, >> + }, >> + .probe = nxp_siul2_probe, >> +}; > > Best regards, > Krzysztof >