Tommy's very, very childish as a full fn imo; I think it only suits a child of about six years and younger. Give him the full name
Thomas, and then call him
Tommy. That way, he can decide when he's older whether he wants to go by
Thomas,
Tommy, or
Tom.
Miranda