84 lines
3.3 KiB
Plaintext
84 lines
3.3 KiB
Plaintext
|
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 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>;
|
||
|
};
|