Rockchip SRAM for IO Voltage Domains:
-------------------------------------

IO domain voltages on some Rockchip SoCs are variable but need to be
kept in sync between the regulators and the SoC using a special
register.

A specific example using rk3288:
- If the regulator hooked up to a pin like SDMMC0_VDD is 3.3V then
  bit 7 of GRF_IO_VSEL needs to be 0.  If the regulator hooked up to
  that same pin is 1.8V then bit 7 of GRF_IO_VSEL needs to be 1.

Said another way, this driver simply handles keeping bits in the SoC's
general register file (GRF) in sync with the actual value of a voltage
hooked up to the pins.

Note that this driver specifically doesn't include:
- any logic for deciding what voltage we should set regulators to
- any logic for deciding whether regulators (or internal SoC blocks)
  should have power or not have power

If there were some other software that had the smarts of making
decisions about regulators, it would work in conjunction with this
driver.  When that other software adjusted a regulator's voltage then
this driver would handle telling the SoC about it.  A good example is
vqmmc for SD.  In that case the dw_mmc driver simply is told about a
regulator.  It changes the regulator between 3.3V and 1.8V at the
right time.  This driver notices the change and makes sure that the
SoC is on the same page.


Required properties:
- compatible: should be one of:
  - "rockchip,rk3188-io-voltage-domain" for rk3188
  - "rockchip,rk3288-io-voltage-domain" for rk3288
- rockchip,grf: phandle to the syscon managing the "general register files"


You specify supplies using the standard regulator bindings by including
a phandle the relevant regulator.  All specified supplies must be able
to report their voltage.  The IO Voltage Domain for any non-specified
supplies will be not be touched.

Possible supplies for rk3188:
- ap0-supply:    The supply connected to AP0_VCC.
- ap1-supply:    The supply connected to AP1_VCC.
- cif-supply:    The supply connected to CIF_VCC.
- flash-supply:  The supply connected to FLASH_VCC.
- lcdc0-supply:  The supply connected to LCD0_VCC.
- lcdc1-supply:  The supply connected to LCD1_VCC.
- vccio0-supply: The supply connected to VCCIO0.
- vccio1-supply: The supply connected to VCCIO1.
                 Sometimes also labeled VCCIO1 and VCCIO2.

Possible supplies for rk3288:
- audio-supply:  The supply connected to APIO4_VDD.
- bb-supply:     The supply connected to APIO5_VDD.
- dvp-supply:    The supply connected to DVPIO_VDD.
- flash0-supply: The supply connected to FLASH0_VDD.  Typically for eMMC
- flash1-supply: The supply connected to FLASH1_VDD.  Also known as SDIO1.
- gpio30-supply: The supply connected to APIO1_VDD.
- gpio1830       The supply connected to APIO2_VDD.
- lcdc-supply:   The supply connected to LCDC_VDD.
- sdcard-supply: The supply connected to SDMMC0_VDD.
- wifi-supply:   The supply connected to APIO3_VDD.  Also known as SDIO0.


Example:

	io-domains {
		compatible = "rockchip,rk3288-io-voltage-domain";
		rockchip,grf = <&grf>;

		audio-supply = <&vcc18_codec>;
		bb-supply = <&vcc33_io>;
		dvp-supply = <&vcc_18>;
		flash0-supply = <&vcc18_flashio>;
		gpio1830-supply = <&vcc33_io>;
		gpio30-supply = <&vcc33_pmuio>;
		lcdc-supply = <&vcc33_lcd>;
		sdcard-supply = <&vccio_sd>;
		wifi-supply = <&vcc18_wl>;
	};
