I had code P0120 come up in March one time. I cleared it. Then in the last week, it returned about 5 times. I replaced the TPS with a Toyota Throttle Position Sensor bought from the dealer. Probably overpaid. It was $110. Once calibrated, the code is gone and having driven 200 miles or so.
A $25 wifi hotspot ELM 327 OBDII reader from Amazon and free version of DashCommand for iPhone / iPad allowed me to measure the throttle % to calibrate the sensor. I found it more successful to calibrate the zero position than idle. Zero position requires removing the intake to throttle body snorkel and pushing the throttle plate 100% closed. I set the TPS @ 12%, which is mid-way point between 10% and 14% called out in the FSM. I think normal ignition on position is supposed to be 16%. When I set that way, I still received an out-of-range code. Weird, but problem easily solved using the other calibration method.
What is also interesting is the engine seems more responsive. I'm guessing the old TPS was worn out in the normal operating range and maybe returned delayed responses to the engine control computer.
Thanks for the info here.
Doug