diff options
Diffstat (limited to 'Documentation/devicetree')
-rw-r--r-- | Documentation/devicetree/bindings/arm/exynos/power_domain.txt | 13 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/cpufreq/cpufreq-dt.txt (renamed from Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt) | 8 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/power/power_domain.txt | 49 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/power/rockchip-io-domain.txt | 83 |
4 files changed, 142 insertions, 11 deletions
diff --git a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt index 8b4f7b7fe88b..abde1ea8a119 100644 --- a/Documentation/devicetree/bindings/arm/exynos/power_domain.txt +++ b/Documentation/devicetree/bindings/arm/exynos/power_domain.txt | |||
@@ -8,6 +8,8 @@ Required Properties: | |||
8 | * samsung,exynos4210-pd - for exynos4210 type power domain. | 8 | * samsung,exynos4210-pd - for exynos4210 type power domain. |
9 | - reg: physical base address of the controller and length of memory mapped | 9 | - reg: physical base address of the controller and length of memory mapped |
10 | region. | 10 | region. |
11 | - #power-domain-cells: number of cells in power domain specifier; | ||
12 | must be 0. | ||
11 | 13 | ||
12 | Optional Properties: | 14 | Optional Properties: |
13 | - clocks: List of clock handles. The parent clocks of the input clocks to the | 15 | - clocks: List of clock handles. The parent clocks of the input clocks to the |
@@ -29,6 +31,7 @@ Example: | |||
29 | lcd0: power-domain-lcd0 { | 31 | lcd0: power-domain-lcd0 { |
30 | compatible = "samsung,exynos4210-pd"; | 32 | compatible = "samsung,exynos4210-pd"; |
31 | reg = <0x10023C00 0x10>; | 33 | reg = <0x10023C00 0x10>; |
34 | #power-domain-cells = <0>; | ||
32 | }; | 35 | }; |
33 | 36 | ||
34 | mfc_pd: power-domain@10044060 { | 37 | mfc_pd: power-domain@10044060 { |
@@ -37,12 +40,8 @@ Example: | |||
37 | clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MOUT_SW_ACLK333>, | 40 | clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MOUT_SW_ACLK333>, |
38 | <&clock CLK_MOUT_USER_ACLK333>; | 41 | <&clock CLK_MOUT_USER_ACLK333>; |
39 | clock-names = "oscclk", "pclk0", "clk0"; | 42 | clock-names = "oscclk", "pclk0", "clk0"; |
43 | #power-domain-cells = <0>; | ||
40 | }; | 44 | }; |
41 | 45 | ||
42 | Example of the node using power domain: | 46 | See Documentation/devicetree/bindings/power/power_domain.txt for description |
43 | 47 | of consumer-side bindings. | |
44 | node { | ||
45 | /* ... */ | ||
46 | samsung,power-domain = <&lcd0>; | ||
47 | /* ... */ | ||
48 | }; | ||
diff --git a/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt b/Documentation/devicetree/bindings/cpufreq/cpufreq-dt.txt index 366690cb86a3..e41c98ffbccb 100644 --- a/Documentation/devicetree/bindings/cpufreq/cpufreq-cpu0.txt +++ b/Documentation/devicetree/bindings/cpufreq/cpufreq-dt.txt | |||
@@ -1,8 +1,8 @@ | |||
1 | Generic CPU0 cpufreq driver | 1 | Generic cpufreq driver |
2 | 2 | ||
3 | It is a generic cpufreq driver for CPU0 frequency management. It | 3 | It is a generic DT based cpufreq driver for frequency management. It supports |
4 | supports both uniprocessor (UP) and symmetric multiprocessor (SMP) | 4 | both uniprocessor (UP) and symmetric multiprocessor (SMP) systems which share |
5 | systems which share clock and voltage across all CPUs. | 5 | clock and voltage across all CPUs. |
6 | 6 | ||
7 | Both required and optional properties listed below must be defined | 7 | Both required and optional properties listed below must be defined |
8 | under node /cpus/cpu@0. | 8 | under node /cpus/cpu@0. |
diff --git a/Documentation/devicetree/bindings/power/power_domain.txt b/Documentation/devicetree/bindings/power/power_domain.txt new file mode 100644 index 000000000000..98c16672ab5f --- /dev/null +++ b/Documentation/devicetree/bindings/power/power_domain.txt | |||
@@ -0,0 +1,49 @@ | |||
1 | * Generic PM domains | ||
2 | |||
3 | System on chip designs are often divided into multiple PM domains that can be | ||
4 | used for power gating of selected IP blocks for power saving by reduced leakage | ||
5 | current. | ||
6 | |||
7 | This device tree binding can be used to bind PM domain consumer devices with | ||
8 | their PM domains provided by PM domain providers. A PM domain provider can be | ||
9 | represented by any node in the device tree and can provide one or more PM | ||
10 | domains. A consumer node can refer to the provider by a phandle and a set of | ||
11 | phandle arguments (so called PM domain specifiers) of length specified by the | ||
12 | #power-domain-cells property in the PM domain provider node. | ||
13 | |||
14 | ==PM domain providers== | ||
15 | |||
16 | Required properties: | ||
17 | - #power-domain-cells : Number of cells in a PM domain specifier; | ||
18 | Typically 0 for nodes representing a single PM domain and 1 for nodes | ||
19 | providing multiple PM domains (e.g. power controllers), but can be any value | ||
20 | as specified by device tree binding documentation of particular provider. | ||
21 | |||
22 | Example: | ||
23 | |||
24 | power: power-controller@12340000 { | ||
25 | compatible = "foo,power-controller"; | ||
26 | reg = <0x12340000 0x1000>; | ||
27 | #power-domain-cells = <1>; | ||
28 | }; | ||
29 | |||
30 | The node above defines a power controller that is a PM domain provider and | ||
31 | expects one cell as its phandle argument. | ||
32 | |||
33 | ==PM domain consumers== | ||
34 | |||
35 | Required properties: | ||
36 | - power-domains : A phandle and PM domain specifier as defined by bindings of | ||
37 | the power controller specified by phandle. | ||
38 | |||
39 | Example: | ||
40 | |||
41 | leaky-device@12350000 { | ||
42 | compatible = "foo,i-leak-current"; | ||
43 | reg = <0x12350000 0x1000>; | ||
44 | power-domains = <&power 0>; | ||
45 | }; | ||
46 | |||
47 | The node above defines a typical PM domain consumer device, which is located | ||
48 | inside a PM domain with index 0 of a power controller represented by a node | ||
49 | with the label "power". | ||
diff --git a/Documentation/devicetree/bindings/power/rockchip-io-domain.txt b/Documentation/devicetree/bindings/power/rockchip-io-domain.txt new file mode 100644 index 000000000000..6fbf6e7ecde6 --- /dev/null +++ b/Documentation/devicetree/bindings/power/rockchip-io-domain.txt | |||
@@ -0,0 +1,83 @@ | |||
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 | ||
36 | - rockchip,grf: phandle to the syscon managing the "general register files" | ||
37 | |||
38 | |||
39 | You specify supplies using the standard regulator bindings by including | ||
40 | a phandle the the relevant regulator. All specified supplies must be able | ||
41 | to report their voltage. The IO Voltage Domain for any non-specified | ||
42 | supplies will be not be touched. | ||
43 | |||
44 | Possible supplies for rk3188: | ||
45 | - ap0-supply: The supply connected to AP0_VCC. | ||
46 | - ap1-supply: The supply connected to AP1_VCC. | ||
47 | - cif-supply: The supply connected to CIF_VCC. | ||
48 | - flash-supply: The supply connected to FLASH_VCC. | ||
49 | - lcdc0-supply: The supply connected to LCD0_VCC. | ||
50 | - lcdc1-supply: The supply connected to LCD1_VCC. | ||
51 | - vccio0-supply: The supply connected to VCCIO0. | ||
52 | - vccio1-supply: The supply connected to VCCIO1. | ||
53 | Sometimes also labeled VCCIO1 and VCCIO2. | ||
54 | |||
55 | Possible supplies for rk3288: | ||
56 | - audio-supply: The supply connected to APIO4_VDD. | ||
57 | - bb-supply: The supply connected to APIO5_VDD. | ||
58 | - dvp-supply: The supply connected to DVPIO_VDD. | ||
59 | - flash0-supply: The supply connected to FLASH0_VDD. Typically for eMMC | ||
60 | - flash1-supply: The supply connected to FLASH1_VDD. Also known as SDIO1. | ||
61 | - gpio30-supply: The supply connected to APIO1_VDD. | ||
62 | - gpio1830 The supply connected to APIO2_VDD. | ||
63 | - lcdc-supply: The supply connected to LCDC_VDD. | ||
64 | - sdcard-supply: The supply connected to SDMMC0_VDD. | ||
65 | - wifi-supply: The supply connected to APIO3_VDD. Also known as SDIO0. | ||
66 | |||
67 | |||
68 | Example: | ||
69 | |||
70 | io-domains { | ||
71 | compatible = "rockchip,rk3288-io-voltage-domain"; | ||
72 | rockchip,grf = <&grf>; | ||
73 | |||
74 | audio-supply = <&vcc18_codec>; | ||
75 | bb-supply = <&vcc33_io>; | ||
76 | dvp-supply = <&vcc_18>; | ||
77 | flash0-supply = <&vcc18_flashio>; | ||
78 | gpio1830-supply = <&vcc33_io>; | ||
79 | gpio30-supply = <&vcc33_pmuio>; | ||
80 | lcdc-supply = <&vcc33_lcd>; | ||
81 | sdcard-supply = <&vccio_sd>; | ||
82 | wifi-supply = <&vcc18_wl>; | ||
83 | }; | ||