The former Newcastle and Ipswich playmaker, 25, is leaving the Addicks when his contract expires at the end of June and has agreed to make the short move across South London to Selhurst Park.
"I am ever so pleased," said Warnock.
"He is one I have been after for a while and I bid £1million for him when I was at Sheffield United but he went to Newcastle instead.
"I am delighted really, he is a young lad with so much to prove.
"He just needs to enjoy himself a bit and play with a smile on his face."