The 29 year old who featured in 93 games scoring 17 goals for Bolton joining them in 2011 and then leaving the club as a free agent in the summer of 2014.
Eagles said: “We touched base [with Charlton] last season, but Bolton wouldn’t let me come.
“I came down Monday, trained, had a fitness test and everything was alright. Then on Wednesday night I agreed to it. I just wanted to get it done.
“I’ve had a great feeling about being here, it’s a massive club.
“I’m over the moon to be here and as soon as I knew they wanted to sign me it didn’t matter what they offered me I just wanted to be here.”
Would anyone have liked to see him back at the Macron under Neil Lennon?