Ok this tripped me up. > The device tree binding says: > > + compatible: > + oneOf: > + - const: microchip,lan8650 > + - items: > + - const: microchip,lan8651 > + - const: microchip,lan8650 > > So your DT node should either be: > > compatible = "microchip,lan8651", "microchip,lan8650"; > > or > > compatible = "microchip,lan8650" > > There is no mention of lan865x in the binding, so this patch is > clearly wrong. > > What do you have in your DT node? Initially I set compatible = "microchip,lan8650", and did not get the driver to probe, so I got carried away with adding things that were not necessary. I dropped my patch and tested again. What does work is setting: compatible = "microchip,lan8651" - or - compatible = "microchip,lan8651", "microchip,lan8650" but just compatible = "lan8650" does not work. Also I'm getting the output [ 0.125056] SPI driver lan8650 has no spi_device_id for microchip,lan8651 As Conor pointed out setting the define DRV_NAME to "lan8651" fixes that. Setting the define to "lan8650" yet gets the spi module to log the 'no spi_device id..'. I don't really have an opinion here, but I think there is a risk that more than one dev might stumble on the same thing as me and expect that either or should work. BR R