Yes but wasn't the intention to allow the kernel hackers to work on pre-release hardware? After the hardware was released for sale, the NDA would be void and they could release the source code under the GPL. Anyway, basically you're just translating the protocol spec from English into C or C++. The same details are visible in the source code. If the company considers the protocol a trade secret you can't share the source code. Or that's how I understand it (IANAL).