Hi Christian,
im Prinzip kann man beide Devices am gleichen SPI-Bus laufen lassen wenn man eigene CS spendiert. Wirklich zum Laufen bekommen habe ich das jedoch nie. Ich habe dann immer mit zwei Instanzen gearbeitet. Und zB diese Kombination funktioniert: ESPuino/settings-lolin_d32_pro.h at 0476fb05f85c67feeaf7e4d9e320b7233866b766 · biologist79/ESPuino · GitHub.
Bevor du jedoch weiterhin Arbeit investierst an dieser Stelle ein Hinweis: SPI ist beim d32 pro zwar toll, weil man den Reader gleich dabei hat, jedoch ist SD via spi höchstens halb so schnell wie sdmmc. Und zudem gibt es auch noch einen Bug, der dazu führt, dass Uploads abbrechen. Und zwar ohne, dass man das merkt. D.h. die Dateien werden unvollständig geschrieben und beim Abspielen wundert man sich, warum der Abspielvorgang plötzlich mitten im Titel stoppt. Ist natürlich kein Problem, wenn man zum Filetransfer immer die SD Karte ausbaut, aber ansonsten halt schon super nervig. Weil es passiert auch nicht immer sondern nur manchmal.
Es gibt daher seit einer Weile diesen PCB: Lolin D32 pro mit SD_MMC, PN5180, max. fünf Buttons und Port-Expander (SMD). Braucht halt, da man sdmmc von den GPIOs leider nicht verschieben kann, einen externen Reader.
Zur zweiten Frage: Die „Kosten“, den Reader alle paar hundert ms zu pollen erschienen mir weniger hoch, als einen zusätzlichen GPIO zu belegen. Was man jedoch machen könnte: Per Lötbrücke auf dem o.g. PCB kann man irq auf den Port-Expander legen. Der Code müsste dann halt erweitert werden, aber dann sollte man den irq des rc522 nutzen können. Eigentlich gedacht ist irq hier dir den Reader pn5180, da dieser den ESP32 auch aufwecken kann, aber das hindert einen ja nicht, das für den rc522 zu nutzen.