Funny, I never actually thought about this question before. :)
The first thing I'd say is that you'll know when you get into a bit. If you take a couple of entry level courses for both hardware and software, you'll know pretty soon whether you enjoy hardware engineering or software coding better. Either way you go, you'll end up learning a lot about both.
Also keep in mind that most hardware companies employ software engineers and most software companies have some hardware specialists (although they're not usually designing hardware). It's a lot more fluid than you might think. I'm in sales for a software company and my job is to partner with hardware companies (the major PC brands you already know) to distribute our software (that's referred to as OEM sales). And I have a systems engineer (SE) who works with me. His job is to bridge the world between hardware and software, making sure our software works well with the OEM's computers, doesn't slow them down, etc. There are a lot of jobs that bridge both worlds.
My experience has been that if you study what you love, work hard, be persistent, and are open to unexpected opportunities, you'll do great!