mt7621-mmc driver improvements

From: George Hilliard
Date: Wed Feb 20 2019 - 00:18:11 EST


This is a series of patches to provide a little TLC for the mt7621-mmc driver.
My original goal was to get it working on the MT7688, and I have succeeded. I
suspect it will now work on any of the MT762x line. The main change was
getting the driver to use the pinctrl subsystem instead of hand-jamming the
pinctrl registers -- the bit offsets were only correct for the MT7621.

Because of this change, the driver now expects a pinctrl device reference in
the mmc controller's device tree node; without it, it will bail out. This
could break existing setups that don't specify it because it "just worked" up
until now. So currently I just let the old behavior fall away because this is
a staging driver. But if this is a problem, the old behavior could be added
back as a fallback.

Beyond that, there are largely code cleanups and a couple other correctness
fixes that I hope are self-explanatory. The TODO list is largely unchanged,
aside from the couple of TODO comments in the code that I have addressed.
Ultimately, I think this driver could potentially be merged with the "real"
mtk-mmc driver as the TODO suggests, but someone who is more familiar with the
IP core will have to do that. Mediatek documentation (that I can find) is very
sparse. Besides, their codebases have begun to diverge.

Feedback welcome!