On Thu, Oct 31, 2024 at 06:16:46PM +0100, Jan Petrous wrote: > On Thu, Oct 31, 2024 at 04:44:45PM +0100, Krzysztof Kozlowski wrote: > > On 31/10/2024 15:43, Jan Petrous wrote: > > > On Tue, Oct 29, 2024 at 08:13:40AM +0100, Krzysztof Kozlowski wrote: > > >> On Mon, Oct 28, 2024 at 09:24:56PM +0100, Jan Petrous (OSS) wrote: > > >>> + plat->init = s32_gmac_init; > > >>> + plat->exit = s32_gmac_exit; > > >>> + plat->fix_mac_speed = s32_fix_mac_speed; > > >>> + > > >>> + plat->bsp_priv = gmac; > > >>> + > > >>> + return stmmac_pltfr_probe(pdev, plat, &res); > > >>> +} > > >>> + > > >>> +static const struct of_device_id s32_dwmac_match[] = { > > >>> + { .compatible = "nxp,s32g2-dwmac" }, > > >>> + { .compatible = "nxp,s32g3-dwmac" }, > > >>> + { .compatible = "nxp,s32r-dwmac" }, > > >> > > >> Why do you need three same entries? > > >> > > > > > > We have three different SoCs and in v3 review you told me > > > to return all back: > > > https://patchwork.kernel.org/comment/26067257/ > > > > It was about binding, not driver. > > > > I also asked there: use proper fallback and compatibility. Both comments > > of course affect your driver, but why choosing only first part? > > > > Does it mean I should remove first two (G2/G3) members from match array > and use "nxp,s32r-dwmac" as fallback for G2/G3? And similarly change > the bindings to: > > compatible: > oneOf: > - const: nxp,s32r-dwmac > - items: > - enum: > - nxp,s32g2-dwmac > - nxp,s32g3-dwmac > - const: nxp,s32r-dwmac > > And add here, into the driver, those members back when some device > specific feature will be needed? Am I understand your hints right? > Sorry, it's not correct. This way I'm not able to detect S32R which is the only one with higher speed. Then I could use the G2 as fallback I think, Ie.: compatible: oneOf: - const: nxp,s32g2-dwmac - items: - enum: - nxp,s32g3-dwmac - nxp,s32r-dwmac - const: nxp,s32g2-dwmac BR. /Jan