On 31/10/2024 18:24, Jan Petrous wrote: > 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 I don't understand. In both cases you can 'detect r', if by this you meant match and bind. I don't care which one is the fallback, but if one does not work it points to different issues with your code. Best regards, Krzysztof