I was going to put this on my blog but I figure someone else might have this problem so I'll put it here.
Summary Symptoms: 1. Gas shuts off from the pump everytime you try filling the tank so you have to fill at a certain angle. 2. you are getting a check engine light. 3. codes for the light read p0441, p0442, p0446
So here's what happened on my tundra. I bought it used a few years ago and it had the check engine light, the owner said he believed it to be a bad o2 sensor and he was partially correct. I changed out two bad o2 sensors but the code came back after the reset. I bought a obd2 code reader, if you do not have one you should get one as they are cheap and very helpful and the codes that came up were p0441, p0442, p0446.
When I read up on it, the first thing that it said was that it was evap code, but a lot of guys can fix it by changing the gas cap. I ordered a new OEM one from toyota and swapped it and it didn't fix it.
I was pretty sure it was the charcoal canister, there is one located not too far from the tundra fuel tank and a lot of guys online said it goes bad. I took it to the stealership and told them that I had run the codes and wanted them to give me an estimate for the fix. They said they would have to run their obd2 reader and charge me anyways. Sure enough they told me what I knew, it was the same codes I listed and the fix was to replace the entire charcoal canister assembly. They charged me 75 dollars for the code read which kinda pissed me off but that's how it works. The fix is about 800$ for the part I can't remember if that included labor but I told them no dice and left.
You will not be able to pass smog with a check engine light. I used the code reader for years to reset the code and drive it 75 miles and take it to the smog where it would pass everytime (you have to have a certain miles on a reset engine to pass the test), there was nothing wrong with my cats or smog system it was just the stupid charcoal canister assembly.
Most guys will tell you two things, 1. it is possible you overfilled the gas tank and gas got into the charcoal and ruined it. 2. You have a crack in the canister. Both of these are possible but to see the crack or any possible leak in the lines you will have to get a smoke test done at the mechanics. I read up a ton on this and the more I read it seemed to me to be unlikely that my canister cracked because it is shielded with a metal piece under the car. I doubted that it was ever overfilled where the gas would ruin the canister. You can test this by smelling it when you remove the apparatus and see if it reeks of gas and you can probably see small cracks or do a vacuum test to see if it's leaking. If your canister is cracked or contaminated you are sol and will have to buy a new one, although I read some guys who fixed theirs with jb weld.
I also read that there is a small solenoid that often fails. Depending on the year of your car it is very cheap, on mine it's not just a solenoid that you can swap out, its molded into another piece so it costs a bit more. I work with some solenoids at work and they fail all the time. I didn't want to pull the entire vapor canister off because you have to drop the exhaust system, but there is an online video that worked out perfectly to show how to remove the solenoid, that video is here:https://www.youtube.com/watch?v=1CTtChRKliY
You will need an extension for your rachet, there are two 10mm bolts that hold the solenoid in and they are a pain in the ass to get out, you want to watch that video.
I removed the solenoid and tested it with a 9v battery, you hook up leads to each plug of the solenoid. The solenoid didn't click so I knew it was bad. I ordered the new one from ebay under this search "TOYOTA OEM 04-06 Sienna Vapor Canister-Vacuum Control Valve 9008091224". The part cost 50$ shipped. Keep in mind there are different solenoids for different years and you will have to find out which one you have, I pulled mine up by looking at the parts list for my year/make of truck. When the new one came in, I ran the 9v battery test on it and it clicked.
I ran my truck for a week without the solenoid or hoses attached to the solenoid connected, I noticed that I could put gas in the truck without the pump constantly shutting off. Once I got the part, I put it in reverse order and since I removed the ground from the battery (you always want to remove the ground when working on anything electrical) it resets the computer. I have not had the code come up in two gas tanks so I am confident I fixed this problem, it used to come up about 150 miles after the computer reset. When I fill the truck the pump does not shut off at the station all the time.