Не шибкий знаток, но для I2S приходилось c DMA возиться. Я идею эмуляции внешней шины в LPC поднимал как-то на сахаре. Дело в том, что в LPC (и не только кортекс) есть очень полезная фишка в DMA контроллере - linked lists. По этим связанным спискам можно запустить любую последовательность пересылок. GPIO тоже поддерживают DMA. Нужно фкурить доку и посчитать... Под адресный счетчик адреса можно какой-нить таймер приспособить (вроде ограничений на адрес регистра нет).