Re: [PATCH v8 08/13] misc: rp1: RaspberryPi RP1 misc driver
From: Rob Herring
Date: Tue Apr 15 2025 - 13:19:39 EST
On Tue, Apr 15, 2025 at 11:14 AM Greg Kroah-Hartman
<gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
>
> On Tue, Apr 15, 2025 at 05:41:26PM +0200, Andrea della Porta wrote:
> > Hi Greg,
> >
> > On 17:14 Tue 15 Apr , Greg Kroah-Hartman wrote:
> > > On Tue, Apr 15, 2025 at 04:55:05PM +0200, Herve Codina wrote:
> > > > Hi Greg,
> > > >
> > > > On Tue, 15 Apr 2025 16:06:43 +0200
> > > > Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> > > >
> > > > > On Wed, Mar 19, 2025 at 10:52:29PM +0100, Andrea della Porta wrote:
> > > > > > The RaspberryPi RP1 is a PCI multi function device containing
> > > > > > peripherals ranging from Ethernet to USB controller, I2C, SPI
> > > > > > and others.
> > > > >
> > > > > So shouldn't this be using the auxbus code? That's designed to "split
> > > > > up" PCI devices such that you can share them this way.
> > > > >
> > > > > Or did that get rejected somewhere previously?
> > > > >
> > > >
> > > > It doesn't use auxbus probably for the exact same reason that the
> > > > one given for the LAN966x PCI device driver [0] and [1].
> > > >
> > > > Avoid all boiler plate needed with auxbus whereas drivers already exist
> > > > as platform drivers. Internal devices are handled by those platform drivers.
> > > > Those devi just need to be described as platform devices and device-tree is
> > > > fully relevant for that description.
> > > >
> > > > [0] https://lore.kernel.org/all/CAL_Jsq+1r3SSaXupdNAcXO-4rcV-_3_hwh0XJaBsB9fuX5nBCQ@xxxxxxxxxxxxxx/
> > > > [1] https://lore.kernel.org/all/Y9kuxrL3XaCG+blk@xxxxxxxxx/
> > >
> > > I really hate creating platform devices below a PCI device, so I'll keep
> > > complaining about this every time people try to do it.
> >
> > I agree with you, but as Herve has already pointed out this would mean incurring
> > in significant work to adapt drivers for all the peripherals (there are quite a
> > few), while with this approach they would be left untouched.
>
> We have no problem with reworking existing drivers, especially if they
> will be doing the correct thing. Don't let that be an excuse, it
> doesn't work with me, sorry :)
Let me resurrect of_platform_bus so we can stop repeating the same
conversation... MMIO based devices using DT (and ACPI) are platform
devices. There is no other answer in the kernel today.
Rob