Do companies produce specs for their devices and developers use those? Do developers use some kind of reverse engineering techniques?
BSDs and Linux generally have full driver support for all devices for which companies have released specifications (this kind devices are commonly known as open hardware). Sometimes companies not only provide specifications but also write open source driver and donate it to the projects. One example of such company is
Areca which makes best hardware RAID controllers money can buy and has official FreeBSD and OpenBSD drivers for example.
Unfortunately some companies like NVidia, Broadcom, Raspberry Pi for example claim that their intellectual property will be stolen if the hardware specifications are released. They don't provide any documentations for their hardware and require their customers to run specific OS for which they release proprietary blob drivers. Those companies should be generally ignored and such hardware should not be purchased.
There are also companies which operate in between mode. Namely they are willing to release hardware specs to all parties willing to sign non disclosure agreements (NDA) but not to general public. FreeBSD community in generally tries to work with such companies. On another hand OpenBSD project is an example of community which has morally uncompromising point of view that NDA are unacceptable and no OpenBSD developer has ever signed NDA.
As I anticipate that some people will try to make this GPL vs BSD vs (whatever is your favourite license war) I will finish this paragraph with the statement that above has nothing to do with the licensing model. If the company decides to open its hardware and possibly write open source driver they can chose to license the driver anyway they like. A typically business friendly BSD license is preferred but not necessary.
For the record Linux is fully proprietary OS and about 40% of its drivers comes from the grey area which lies in between NDA and fully closed hardware. Raspberry Pi is an example of closed hardware which is fully "supported by Linux". In reality Raspberry Pi is a Linux version of Microsoft Office.
Reverse engineering of the closed hardware is possible but generally consider waist of time. If somebody is trying to close source its hardware there is a typically good reason (hardware sucks so they are trying to hide it). Non the less there are few examples of successfully reverse engineered drivers.