There are two methods to program homelink. Pair the car to the garage door unit, or the garage door unit to the car. In theory the first is easier, but not always 100%.
To program homelink, hold the outer 2 buttons (imagine the buttons being labeled 1-2-3, hold 1 and 3) until they are a solid green light, then press the homelink button you want to control the garage door opener at the same time as your garage door remote and hold it until the light starts blinking quickly. Release and it should be good.
If it is failing to program that way, then get a ladder and look at the garage door motor/unit hanging from your ceiling. They are all very different, but the button is usually on the back (the side facing away from the garage door), could be on the left side of the unit or in the back behind a small panel.
It is a 'learning' button, so it will force the garage door opener to pair with the car instead of the car with the garage door opener. It might delete the codes used by your 'visor' remotes, but not that big of a deal. Anyways, hit the button on the garage door unit then push the desired homelink button in the car, and it should work. If the visor remotes deprogram hit the button on the garage door unit again and then hit the button on the remote.
Hope that helps someone!