The idle speed control valve adjusts the idle speed from a base idle speed, both up and down. Say the base idle speed is set for 500 rpm before the ISCV adjusts it...it can move the idle down 30 steps, and up 200 steps.

The ecu learns the correct default position and stores it if you start the engine cold, let it warm up fully without stepping on the gas, then drive off.

If the throttle is messed with, or the engine has a big vacuum leak, the ISCV will be at the end of its adjustment, or not be able to get the idle speed low enough, and set codes.

Many times, people who don't know fuel injection cars try to adjust the idle speed at the throttle. This will do nothing but cause problems till the ISCV runs out of adjustment, then the idle speed will start changing.

I would guess you just have to have the idle speed set up, or a vacuum leak fixed and all will be well.