On Fri, Dec 18, 2020 at 08:32:11PM +0000, Mark Brown wrote:
So, I strongly suspect, MFD should create mfd devices on a MFD bus type.
Historically people did try to create custom bus types, as I have pointed out before there was then pushback that these were duplicating the platform bus so everything uses platform bus.
Yes, I vaugely remember..
I don't know what to say, it seems Greg doesn't share this view of platform devices as a universal device.
Reading between the lines, I suppose things would have been happier with some kind of inheritance scheme where platform device remained as only instantiated directly in board files, while drivers could bind to OF/DT/ACPI/FPGA/etc device instantiations with minimal duplication & boilerplate.
And maybe that is exactly what we have today with platform devices, though the name is now unfortunate.
I can't tell the difference between what it's doing and what SOF is doing, the code I've seen is just looking at the system it's running on and registering a fixed set of client devices. It looks slightly different because it's registering a device at a time with some wrapper functions involved but that's what the code actually does.
SOF's aux bus usage in general seems weird to me, but if you think it fits the mfd scheme of primarily describing HW to partition vs describing a SW API then maybe it should use mfd.
The only problem with mfd as far as SOF is concerned was Greg was not happy when he saw PCI stuff in the MFD subsystem.
This whole thing started when Intel first proposed to directly create platform_device's in their ethernet driver and Greg had a quite strong NAK to that.
MFD still doesn't fit what mlx5 and others in the netdev area are trying to do. Though it could have been soe-horned it would have been really weird to create a platform device with an empty HW resource list. At a certain point the bus type has to mean *something*!
Jason