Hi Andrea, i added Jeremy, because AFAIK he was deeply involved in ACPI implementation of the RPi 4. Am 11.06.24 um 17:39 schrieb Andrea della Porta:
Hi, I'm on the verge of reworking the RP1 driver from downstream in order for it to be in good shape for upstream inclusion. RP1 is an MFD chipset that acts as a south-bridge PCIe endpoint sporting a pletora of subdevices (i.e. Ethernet, USB host controller, I2C, PWM, etc.) whose registers are all reachable starting from an offset from the BAR address. The main point here is that while the RP1 as an endpoint itself is discoverable via usual PCI enumeraiton, the devices it contains are not discoverable and must be declared e.g. via the devicetree. This is an RFC about the correct approach to use in integrating the driver and registering the subdevices.
I cannot provide much input into the technical discussion, but i would prefer an approach which works good with DT and ACPI. Best regards Stefan
Link: - [1]: https://github.com/raspberrypi/linux/blob/rpi-6.6.y/arch/arm/boot/dts/broadcom/rp1.dtsi - [2]: https://github.com/raspberrypi/linux/blob/rpi-6.6.y/drivers/mfd/rp1.c - [3]: https://lpc.events/event/17/contributions/1421/attachments/1337/2680/LPC2023%20Non-discoverable%20devices%20in%20PCI.pdf - [4]: https://lore.kernel.org/lkml/20230419231155.GA899497-robh@xxxxxxxxxx/t/ - [5]: https://lore.kernel.org/lkml/Y862WTT03%2FJxXUG8@xxxxxxxxx/