The charge stems from Garrett's Feb. 1 arrest at a subway station.
Police said they approached Garrett after spotting him sweating and shaking as he was about to board a train. Police said Garrett informed them he had black tar heroin hidden in his shoe, the Los Angeles Times reported.
The 48-year-old actor is due back in court March 16.
Garrett lawyer Andrew Flier told the newspaper the allegations are "out of character" for the actor, who has long battled an addiction to drugs, but reportedly has been trying to clean up his act in recent years.
"He's completely stayed out of trouble, he's changed his life a lot, he's taking care of his mother," Flier told the Times.
Garrett's film credits include "Shaker Run," "Thunder Alley" and "The Outsiders." He also had a recurring role on TV's "Family."
Boston schools pull out free condoms over wrapping complaints
Ray Liotta sues skin care company over use of likeness