The internal oscillator of MachXO2 and MachXO3 (OSCH for MachXO2/XO3L/XO3LF and OSCJ for MachXO3D) are turned on by default thus it will consume power even though it is not instantiated in the design.
To turn it off at user mode instantiate it at your design set STDBY pin to 1 like below:
OSCH u1(.STDBY(1'B1),.OSC(clk),.SEDSTDBY());
Take note that when you turn off OSCH/OSCJ at user mode you cannot do background programming for SPI and I2C until you turn it on.
It is advised to turn it on before doing background programming for SPI and I2C then turn it off again after programming to save power.