I recently worked on a project using the iMX8MQ and iMX8M Mini, where we controlled many devices on the M4 and some others on the Linux side.
We did not use the RDC, though planned to for safety prior to production.
The trick is to disable in the Linux device tree the buses you wish to dedicate to the M4, so that Linux basically does not know they exist. As a result, the M4 side can freely use them. This means you would need to start with NXP's Yocto distribution for your processor, modify and rebuild the device tree and install it on your board. It wouldn't hurt to rebuild the whole thing (kernel, kernel modules, root fs) so they all definitely match each other.
Another trick relates to GPIO pin interrupts. Each side (Linux and M4) can set up and receive interrupts, but only when they are properly allocated in separate 16 bit GPIO blocks. The reason being, that there is only a single hardware interrupt line per 16 GPIOs (e.g., GPIO4 pins 0-15; GPIO1 pins 16-31; etc.). As long as the hardware is correctly designed, the M4 can also use these without fear. If you are using an NXP dev kit, you probably can't change much in this regard so would need to work within the limitations of that design.
This advice should apply to your i.MX7 Dual as well, I believe.