On 4/8/22 21:19, Javier Martinez Canillas wrote:
[snip]
There's also no reason to put the bus interface into the compatible as the same compatible will work on different buses. But since you want to add SPI, just using the 'i2c' one will confuse people. For that reason you could add 'solomon,ssd1305', etc. for both SPI support and I2C DRM.
That's not really true. There's a reason to add per bus compatible strings at least in Linux. And is that there's no information about the bus types in module aliases that are reported to user-space for module auto-loading.
Forgot to mention that in this particular case it will work but just because the SPI subsystem always report a module alias of the form "spi:device" even for devices that are registered through OF.
So having a single "solomon,ssd1306" would work because for I2C the module alias will be "of:NoledT(null)Csolomon,ssd1306" and for SPI it will be "spi:ssd1306".
But if ever the SPI subsystem is fixed to report proper OF module aliases things will break. And since the DT bindings is an ABI, it's safer to have "-i2c" and "-spi" compatible strings variants.