sleep begets sleep - go back to regular long naps and earlier bedtimes so that he is getting optimal sleep amounts - at his age it should be 15 hours about.
Put some white noise in his room - either a fan or noise machine, and possibly a CD on continous play. Also tell him that until the sky is light it is not time to get up. When he gets older you can use his door being open or a number on the clock as the key to when it's time to be awake.
kids get into habits easily, all it takes is ONE time of you treating an early waking like it's really time to get up and they get set in that time. So treat the early waking like you would a middle of the night one - put him back in bed and tell him sorry, not time to wake yet.
He may be going through a growth spurt, so give him a protein rich (not sugary at all) snack right before he brushes his teeth at night to make sure he makes it to morning.