Newer Elelabs/Popp is a good option for ZHA, but be sure to get older EFR32 model not using EFR32 as they been selling Zigbee adapters a long time and previous models used older EM35x/EM35xx chip. Rumour is also that Elelabs/Popp will release a newer EFR32MG24 based dongle before the summer.
https://www.home-assistant.io/integrations/zha
CC2652P/CC2652R/CC2652RB adapters is also a good option that also works in Zigbee2MQTT too. See ex. ITead Sonoff Zigbee 3.0 USB Dongle Plus (CC2652P) or Electrolama ZZH (CC2652R).
Silicon Labs and Texas Instruments radios listed in ZHA docs however recommend updating firmware:
https://www.home-assistant.io/integrations/zha#known-working-zigbee-radio-modules
FYI, POPP are rebranded Elelabs Zigbee Coordinator and support for them is very good in ZHA:
https://github.com/Elelabs/elelabs-zigbee-ezsp-utility
I believe that you first need to disable Bluetooth on Raspberry Pi if want to use a Zigbee shield or hat?
https://community.home-assistant.io/t/disable-bluetooth/56048
https://help.aeotec.com/support/solutions/articles/6000246463-setup-z-pi-7-with-home-assistant-and-zwavejs2mqtt-on-a-raspberry-pi
From that example “This is required since both Bluetooth and Z-Pi 7 utilize the same serial port dev/ttyAMA0, in order for Z-Pi 7 to form a connection to your RPi, you must disable Bluetooth.”
Meaning that need to edit so your /boot/config.txt file should contain something like:
enable_uart=1
dtoverlay=miniuart-bt
dtoverlay=disable-bt
You then need to configure the correct Serial Device Path and serial port speed for Radio Type “ezsp”.
Dont’ know for GPIO adapters but Device path for USB adapters under Supervisor → Host → Hardware