Re: [PATCH net-next v4 11/12] microchip: lan865x: add driver support for Microchip's LAN865X MAC-PHY

Ramón Nordin Rodriguez
2024-04-27T20:13:36Z

On Sat, Apr 27, 2024 at 08:57:43PM +0100, Conor Dooley wrote:
> > static const struct of_device_id lan865x_dt_ids[] = {
> > - { .compatible = "microchip,lan8651", "microchip,lan8650" },
>
> Huh, that's very strange. I don't see a single instance in the tree of a
> of_device_id struct like this with two compatibles like this (at least
> with a search of `rg "\.compatible.*\", \"" drivers/`.
>
> Given the fallbacks in the binding, only "microchip,lan8650" actually
> needs to be here.
>
> > + { .compatible = "microchip,lan865x", "microchip,lan8650" },
> > { /* Sentinel */ }
> > };
> > MODULE_DEVICE_TABLE(of, lan865x_dt_ids);
> >
> > Along with compatible = "microchip,lan865x" in the dts
>
> Just to be clear, the compatible w/ an x is unacceptable due to the
> wildcard and the binding should stay as-is. Whatever probing bugs
> the code has need to be resolved instead :)
>

All right, so when I change to

@@ -364,7 +364,7 @@ static void lan865x_remove(struct spi_device *spi)
}

static const struct of_device_id lan865x_dt_ids[] = {
- { .compatible = "microchip,lan8651", "microchip,lan8650" },
+ { .compatible = "microchip,lan8650" },
{ /* Sentinel */ }
};
MODULE_DEVICE_TABLE(of, lan865x_dt_ids);

I still get the output
[ 0.124266] SPI driver lan865x has no spi_device_id for microchip,lan8650
But the driver does probe and I get a network interface.

If no one beats me to it I'll single step the probe tomorrow.
R