Regarding IATA/ICAO codes (depending on airport) it is the airline's preference as to whether they wish to have IATA or ICAO codes on FIDS. The airline will usually want the code to reflect what is shown on the boarding pass issued. So for example, EasyJet and TUI UK boarding passes have their ICAO prefix, it then makes sense for the airport to display ICAO prefix for said airlines.
I've noticed at some Aena airports particularly AGP, only ICAO codes are shown on the FIDS. However this could've course changed since 2 years ago.