I've created a repository for an eMMC interface using the RPi Pico, I haven't and currently can't even test it out in reality, though in theory I currently have a CLK signal, CMD sending (48bit packages) and CMD receiving (48bit and 136bit responses, is set when sending to determine which state machine to use, though probably can be even more optimized)
I also have DAT0 receiving, receiving gets triggered through MCU code via an IRQ.
Again, I haven't tested it out at all, I was just following the documentation on the MMC 4.1 interface (downloadable for free on JEDEC's website). Two things missing: I forgot to actively pull the CMD and DAT0 lines to HIGH and also a PIO can only have 32 instructions, which is why I currently don't have DAT0 sending.
I could just load DAT0 sending into the second PIO but my idea was to have everything on one PIO, sadge..
I tried to document what I was doing in the sourcecode, but honestly it's a complete mess and there's still a lot to do.
Anyway, if anyone likes to mess with the Pico's PIOs, here's something to look at I guess:
https://github.com/Overflwn/pico_emmc