Every SoC vendor produces and provides SDKs that do essentially the same thing. They're all doing UART, SPI, I2C - the usual suspects - in their own way, but ultimately perform the same function. The only real difference between one vendor's UART driver vs. another is the level of hardware support for standard driver features, and the hardware register interface.
I know what you're thinking - that some vendor's UART drivers are "better" than others, offering higher level APIs with features like message buffering and built-in interrupt context handling - and you are right. That's why Firmware Modules builds our drivers once that match or exceed the features and function of the best available SoC peripheral drivers from any vendor.
Some SoC features such as clock and power management require significant vendor-specific treatment. However our SoC firmware drivers are designed to take care of these complex device-specific implementation requirements by wrapping them into simple top-level concepts like "sleep" that our drivers and framework can leverage in a device-independent way to ensure our applications consume the lowest power possible on any device.
In the IoT space especially, vendor SDKs tend to be repackaging of a small set of common open source components and wrappers, including transport protocols (e.g. MQTT, CoAP, TCP/IP, 6LoWPAN), transport security frameworks (e.g. TLS), message serializers (e.g. cJSON).
At Firmware Modules we build and support one firmware driver and module suite for all platforms, leveraging the module-oriented design of the Firmware Module System to plug in device-specific interfaces at the lowest levels only, all the while using the most efficient and powerful 'C' programming language throughout. And, our firmware driver and module suites and applications are all available under the ubiquitous and permissive BSD 3-clause license terms. It can't get any easier than that.