This is something I came across while on a reverse engineering forum I frequent.
Essentially this guy wanted to control RGB and fan headers on his B350 board from linux and decided to reverse engineer the IO chip because MSI wouldn't send him specs (obviously).
https://kazlauskas.me/entries/i-reverse-engineered-a-motherboard.html
There's now a linux utility for controlling the RGB on MSI B350 boards