Commit | Line | Data |
---|---|---|
662a9586 HS |
1 | Rockchip SRAM for IO Voltage Domains: |
2 | ------------------------------------- | |
3 | ||
4 | IO domain voltages on some Rockchip SoCs are variable but need to be | |
5 | kept in sync between the regulators and the SoC using a special | |
6 | register. | |
7 | ||
8 | A specific example using rk3288: | |
9 | - If the regulator hooked up to a pin like SDMMC0_VDD is 3.3V then | |
10 | bit 7 of GRF_IO_VSEL needs to be 0. If the regulator hooked up to | |
11 | that same pin is 1.8V then bit 7 of GRF_IO_VSEL needs to be 1. | |
12 | ||
13 | Said another way, this driver simply handles keeping bits in the SoC's | |
14 | general register file (GRF) in sync with the actual value of a voltage | |
15 | hooked up to the pins. | |
16 | ||
17 | Note that this driver specifically doesn't include: | |
18 | - any logic for deciding what voltage we should set regulators to | |
19 | - any logic for deciding whether regulators (or internal SoC blocks) | |
20 | should have power or not have power | |
21 | ||
22 | If there were some other software that had the smarts of making | |
23 | decisions about regulators, it would work in conjunction with this | |
24 | driver. When that other software adjusted a regulator's voltage then | |
25 | this driver would handle telling the SoC about it. A good example is | |
26 | vqmmc for SD. In that case the dw_mmc driver simply is told about a | |
27 | regulator. It changes the regulator between 3.3V and 1.8V at the | |
28 | right time. This driver notices the change and makes sure that the | |
29 | SoC is on the same page. | |
30 | ||
31 | ||
32 | Required properties: | |
33 | - compatible: should be one of: | |
34 | - "rockchip,rk3188-io-voltage-domain" for rk3188 | |
35 | - "rockchip,rk3288-io-voltage-domain" for rk3288 | |
3fc147e9 HS |
36 | - "rockchip,rk3368-io-voltage-domain" for rk3368 |
37 | - "rockchip,rk3368-pmu-io-voltage-domain" for rk3368 pmu-domains | |
f447671b DW |
38 | - "rockchip,rk3399-io-voltage-domain" for rk3399 |
39 | - "rockchip,rk3399-pmu-io-voltage-domain" for rk3399 pmu-domains | |
662a9586 | 40 | |
bc19b9a8 HS |
41 | Deprecated properties: |
42 | - rockchip,grf: phandle to the syscon managing the "general register files" | |
43 | Systems should move the io-domains to a sub-node of the grf simple-mfd. | |
662a9586 HS |
44 | |
45 | You specify supplies using the standard regulator bindings by including | |
ac3e8ea1 | 46 | a phandle the relevant regulator. All specified supplies must be able |
662a9586 HS |
47 | to report their voltage. The IO Voltage Domain for any non-specified |
48 | supplies will be not be touched. | |
49 | ||
50 | Possible supplies for rk3188: | |
51 | - ap0-supply: The supply connected to AP0_VCC. | |
52 | - ap1-supply: The supply connected to AP1_VCC. | |
53 | - cif-supply: The supply connected to CIF_VCC. | |
54 | - flash-supply: The supply connected to FLASH_VCC. | |
55 | - lcdc0-supply: The supply connected to LCD0_VCC. | |
56 | - lcdc1-supply: The supply connected to LCD1_VCC. | |
57 | - vccio0-supply: The supply connected to VCCIO0. | |
58 | - vccio1-supply: The supply connected to VCCIO1. | |
59 | Sometimes also labeled VCCIO1 and VCCIO2. | |
60 | ||
61 | Possible supplies for rk3288: | |
62 | - audio-supply: The supply connected to APIO4_VDD. | |
63 | - bb-supply: The supply connected to APIO5_VDD. | |
64 | - dvp-supply: The supply connected to DVPIO_VDD. | |
65 | - flash0-supply: The supply connected to FLASH0_VDD. Typically for eMMC | |
66 | - flash1-supply: The supply connected to FLASH1_VDD. Also known as SDIO1. | |
67 | - gpio30-supply: The supply connected to APIO1_VDD. | |
68 | - gpio1830 The supply connected to APIO2_VDD. | |
69 | - lcdc-supply: The supply connected to LCDC_VDD. | |
70 | - sdcard-supply: The supply connected to SDMMC0_VDD. | |
71 | - wifi-supply: The supply connected to APIO3_VDD. Also known as SDIO0. | |
72 | ||
3fc147e9 HS |
73 | Possible supplies for rk3368: |
74 | - audio-supply: The supply connected to APIO3_VDD. | |
75 | - dvp-supply: The supply connected to DVPIO_VDD. | |
76 | - flash0-supply: The supply connected to FLASH0_VDD. Typically for eMMC | |
77 | - gpio30-supply: The supply connected to APIO1_VDD. | |
78 | - gpio1830 The supply connected to APIO4_VDD. | |
79 | - sdcard-supply: The supply connected to SDMMC0_VDD. | |
80 | - wifi-supply: The supply connected to APIO2_VDD. Also known as SDIO0. | |
81 | ||
82 | Possible supplies for rk3368 pmu-domains: | |
83 | - pmu-supply: The supply connected to PMUIO_VDD. | |
84 | - vop-supply: The supply connected to LCDC_VDD. | |
662a9586 | 85 | |
f447671b DW |
86 | Possible supplies for rk3399: |
87 | - bt656-supply: The supply connected to APIO2_VDD. | |
88 | - audio-supply: The supply connected to APIO5_VDD. | |
89 | - sdmmc-supply: The supply connected to SDMMC0_VDD. | |
90 | - gpio1830 The supply connected to APIO4_VDD. | |
91 | ||
92 | Possible supplies for rk3399 pmu-domains: | |
93 | - pmu1830-supply:The supply connected to PMUIO2_VDD. | |
94 | ||
662a9586 HS |
95 | Example: |
96 | ||
97 | io-domains { | |
98 | compatible = "rockchip,rk3288-io-voltage-domain"; | |
99 | rockchip,grf = <&grf>; | |
100 | ||
101 | audio-supply = <&vcc18_codec>; | |
102 | bb-supply = <&vcc33_io>; | |
103 | dvp-supply = <&vcc_18>; | |
104 | flash0-supply = <&vcc18_flashio>; | |
105 | gpio1830-supply = <&vcc33_io>; | |
106 | gpio30-supply = <&vcc33_pmuio>; | |
107 | lcdc-supply = <&vcc33_lcd>; | |
108 | sdcard-supply = <&vccio_sd>; | |
109 | wifi-supply = <&vcc18_wl>; | |
110 | }; |