mmc: JZ4770: Use two-edge interrupt trigger

This feature is already emulated in our interrupt controller driver,
no need to emulate it again in the MMC driver.
mmc: JZ4770: Removed PIO support

We only want to use DMA in production and having the extra code present
complicates refactoring.
mmc: JZ4770: Declare jz_mmc_detect() in header
mmc: JZ4770: Handle power management using struct dev_pm_ops
mmc: JZ4770: Removed debug code from jz_mmc_main.c
mmc: JZ4770: Inline jz_mmc_controller_(de)init
mmc: JZ4770: Renamed "plat" field to the more conventional "pdata"
mmc: JZ4770: Clean up probe function

Make it more like the jz4740 driver's probe function.
Also use devres where possible.
No need to set drvdata to NULL, the kernel does that for us.
And don't pretend that DMA is optional.
mmc: JZ4770: Store struct jz_mmc_host as drvdata

The original driver stored struct mmc_host instead.

Also removed redundant NULL checks: if the drvdata is NULL, the driver
is not operational and these functions will not be called.
mmc: JZ4770: Handle clock and power more like JZ4740 driver

The set_ios handler is where it all happens.

For some reason, the driver hangs at initialisation if the reset is
performed with disabled device clock. I haven't figured out yet why,
but I have reduced the time that the clock is enabled to a minimum.
MIPS: JZ4770: GCW0: Eliminate CONFIG_JZ_SYSTEM_AT_CARD

Since we had that feature enabled in our config, keep the "defined"
version of each check.

Removed commented out code to wake up on SD insertion. Inserting a card
can mean the user wants to access files from that card, but it could
just as well mean the user wants to store the card inside the unit
without wanting to access it at this time.
mmc: JZ4770: Eliminate CONFIG_JZ_SYSTEM_AT_CARD

Instead of a compile-time option and hardcoded to MSC0, look at the
platform data: if there is no status_irq defined, treat it as an
always-present card.
mmc: JZ4770: Refuse to probe without platform data

There is really no way we can run without knowing which GPIO pins to
use, so don't even try. By bailing out early we can avoid checks later.

Also print an error message if we refuse to probe because of an invalid
device ID.
mmc: JZ4770: Put change detection IRQ request in its own function

Also changed the order of host and pdev arguments for the other request
functions, to be consistent with the JZ4740 driver.
mmc: JZ4770: Leave change detection to generic MMC code
mmc: JZ4770: Removed unused fields from platform data
mmc: JZ4770: Removed redundant max_bus_width platform data field

Instead, set bus width capabilities based on the bus_width field.
MIPS: JZ4770: GCW0: Removed max_bus_width MMC platform data field

This field was removed in the driver, so don't set it anymore.
mmc: JZ4770: Use slot-gpio implementations of read-only and change detect

Also updated GPIO labels to use the same name that slot-gpio does
(device name instead of host name).
mmc: JZ4770: Enable erase capability