In I2C the fall time is restricted to around 20ns as a risk of EMI(Even at 400Khz) but even a normal GPIO works at 150 MHz.Why is this so?
tl; dr version: I2C is slow and can use heavy slew-rate limiting to reduce EMI. This won't work with a fast signal, which needs good signal integrity (SI) design.
All digital signals emit harmonics regardless of the clock rate. That's the nature of square pulses. The faster the switching time, the more higher-frequency harmonics will be produced when it changes state.
I2C is a shared bus. It can be routed widely on a board, have many devices connected, and even sent over cabling (like HDMI DDC). This means it can have a large loop area, and since it isn’t terminated, it can have also have noise / ringing issues (harmonics) that can lead to EMI.
One way to manage EMI is to limit the edge rate so that the harmonics are reduced. This also improves signal integrity as ringing is reduced.
Fast GPIO Signals
The 150 MHz I/O signal also emits harmonics. It’s not any 'better' than I2C, it is just different. It needs a more comprehensive SI design: more attention paid to basics like return path, termination and loop area, and, yes, slew rate that's fast enough but not too fast. These are all essential for such a fast signal to work at all.
Good SI design improves EMI and vice-versa. They go hand-in-hand. And because with fast signals you have to address SI, you also are addressing EMI too. That doesn't mean you still won't have EMI issues with fast GPIOs, but at least your system with good SI will have laid the groundwork.
You need much faster slew rate than 50ns to achieve 150 MHz square wave, which means much larger frequencies and much larger EMI.
The point is not the signal frequency itself, but how fast transitions it has. I2C is meant to just work without worrying about impedance matching, so it is also designed not to need it, so anyone can wire it and it will most likely just work, because it is supposed to have slow edges. A 150 MHz clock is so much harder to get right regarding even PCB trace impedance and source termination.
Sometimes GPIO pins have so strong drivers that it will generate ringing on the signal, no matter if it is only toggled at 1 Hz. Of course since it happens less often it is not usually a problem regarding EMI, but signal integrity.
Fast GPIOs are absolutely an EMI risk. This risk can be mitigated through various steps such as properly terminated lines, close coupling to ground planes, keeping tracks short and so-on. If you don't there is a good chance your system won't work at all.
What is less obvious to most is that fast IO lines used for slow signals can also be an EMI risk. This is an easy place to get caught out (and I have done it myself in the past). You get sloppy with the wiring because you think the system slow, but because of the fast edges there is still significant possibility of interference, either to external circuits or to other lines on the same bus (A problem I have run into is signals coupling from the SCLK line to the CS line on SPI).
Phillips was designing I2C for use in TVs, so presumably they wanted to be able to run it over cheap wiring without causing interference either to itself or to the operation of the TV.