Heiko Stübner | 662a958 | 2014-09-11 15:48:55 -0700 | [diff] [blame] | 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 |
David Wu | 7db36b1 | 2017-02-23 20:33:11 +0800 | [diff] [blame] | 36 | - "rockchip,rk3328-io-voltage-domain" for rk3328 |
Heiko Stuebner | 3fc147e | 2015-08-04 21:37:01 +0200 | [diff] [blame] | 37 | - "rockchip,rk3368-io-voltage-domain" for rk3368 |
| 38 | - "rockchip,rk3368-pmu-io-voltage-domain" for rk3368 pmu-domains |
David Wu | f447671 | 2016-03-16 02:45:26 +0800 | [diff] [blame] | 39 | - "rockchip,rk3399-io-voltage-domain" for rk3399 |
| 40 | - "rockchip,rk3399-pmu-io-voltage-domain" for rk3399 pmu-domains |
Heiko Stübner | 662a958 | 2014-09-11 15:48:55 -0700 | [diff] [blame] | 41 | |
Heiko Stuebner | bc19b9a | 2016-03-31 15:48:42 +0200 | [diff] [blame] | 42 | Deprecated properties: |
| 43 | - rockchip,grf: phandle to the syscon managing the "general register files" |
| 44 | Systems should move the io-domains to a sub-node of the grf simple-mfd. |
Heiko Stübner | 662a958 | 2014-09-11 15:48:55 -0700 | [diff] [blame] | 45 | |
| 46 | You specify supplies using the standard regulator bindings by including |
Masanari Iida | ac3e8ea | 2015-01-02 22:54:39 +0900 | [diff] [blame] | 47 | a phandle the relevant regulator. All specified supplies must be able |
Heiko Stübner | 662a958 | 2014-09-11 15:48:55 -0700 | [diff] [blame] | 48 | to report their voltage. The IO Voltage Domain for any non-specified |
| 49 | supplies will be not be touched. |
| 50 | |
| 51 | Possible supplies for rk3188: |
| 52 | - ap0-supply: The supply connected to AP0_VCC. |
| 53 | - ap1-supply: The supply connected to AP1_VCC. |
| 54 | - cif-supply: The supply connected to CIF_VCC. |
| 55 | - flash-supply: The supply connected to FLASH_VCC. |
| 56 | - lcdc0-supply: The supply connected to LCD0_VCC. |
| 57 | - lcdc1-supply: The supply connected to LCD1_VCC. |
| 58 | - vccio0-supply: The supply connected to VCCIO0. |
| 59 | - vccio1-supply: The supply connected to VCCIO1. |
| 60 | Sometimes also labeled VCCIO1 and VCCIO2. |
| 61 | |
| 62 | Possible supplies for rk3288: |
| 63 | - audio-supply: The supply connected to APIO4_VDD. |
| 64 | - bb-supply: The supply connected to APIO5_VDD. |
| 65 | - dvp-supply: The supply connected to DVPIO_VDD. |
| 66 | - flash0-supply: The supply connected to FLASH0_VDD. Typically for eMMC |
| 67 | - flash1-supply: The supply connected to FLASH1_VDD. Also known as SDIO1. |
| 68 | - gpio30-supply: The supply connected to APIO1_VDD. |
| 69 | - gpio1830 The supply connected to APIO2_VDD. |
| 70 | - lcdc-supply: The supply connected to LCDC_VDD. |
| 71 | - sdcard-supply: The supply connected to SDMMC0_VDD. |
| 72 | - wifi-supply: The supply connected to APIO3_VDD. Also known as SDIO0. |
| 73 | |
Heiko Stuebner | 3fc147e | 2015-08-04 21:37:01 +0200 | [diff] [blame] | 74 | Possible supplies for rk3368: |
| 75 | - audio-supply: The supply connected to APIO3_VDD. |
| 76 | - dvp-supply: The supply connected to DVPIO_VDD. |
| 77 | - flash0-supply: The supply connected to FLASH0_VDD. Typically for eMMC |
| 78 | - gpio30-supply: The supply connected to APIO1_VDD. |
| 79 | - gpio1830 The supply connected to APIO4_VDD. |
| 80 | - sdcard-supply: The supply connected to SDMMC0_VDD. |
| 81 | - wifi-supply: The supply connected to APIO2_VDD. Also known as SDIO0. |
| 82 | |
| 83 | Possible supplies for rk3368 pmu-domains: |
| 84 | - pmu-supply: The supply connected to PMUIO_VDD. |
| 85 | - vop-supply: The supply connected to LCDC_VDD. |
Heiko Stübner | 662a958 | 2014-09-11 15:48:55 -0700 | [diff] [blame] | 86 | |
David Wu | f447671 | 2016-03-16 02:45:26 +0800 | [diff] [blame] | 87 | Possible supplies for rk3399: |
| 88 | - bt656-supply: The supply connected to APIO2_VDD. |
| 89 | - audio-supply: The supply connected to APIO5_VDD. |
| 90 | - sdmmc-supply: The supply connected to SDMMC0_VDD. |
| 91 | - gpio1830 The supply connected to APIO4_VDD. |
| 92 | |
| 93 | Possible supplies for rk3399 pmu-domains: |
| 94 | - pmu1830-supply:The supply connected to PMUIO2_VDD. |
| 95 | |
Heiko Stübner | 662a958 | 2014-09-11 15:48:55 -0700 | [diff] [blame] | 96 | Example: |
| 97 | |
| 98 | io-domains { |
| 99 | compatible = "rockchip,rk3288-io-voltage-domain"; |
| 100 | rockchip,grf = <&grf>; |
| 101 | |
| 102 | audio-supply = <&vcc18_codec>; |
| 103 | bb-supply = <&vcc33_io>; |
| 104 | dvp-supply = <&vcc_18>; |
| 105 | flash0-supply = <&vcc18_flashio>; |
| 106 | gpio1830-supply = <&vcc33_io>; |
| 107 | gpio30-supply = <&vcc33_pmuio>; |
| 108 | lcdc-supply = <&vcc33_lcd>; |
| 109 | sdcard-supply = <&vccio_sd>; |
| 110 | wifi-supply = <&vcc18_wl>; |
| 111 | }; |