I have been studying device level programming and was curious what everyone's experience is as far as finding documentation for the hardware? For instance, in my systems programming class we wrote a basic serial IO driver which communicated with a terminal, and for that I read the documentation for the chip we were using which explains just about everything I needed to know. My question is, are these type of manuals always available on request? Or can someone point me to the right place to look? I would think that these manuals would always be available from the manufacturer, but that doesn't seem to be the case.
As an example, I have a Logitech G5 mouse, which as far as I know doesn't have a Linux driver (to perform specific things like altering the DPI settings). If I wanted to write a driver, would Logitech supply me with the required documentation (as I can't find it on their site)? I understand that for many devices this type of documentation is always available, but it seems like it is impossible to find for others.
Thanks for looking!