diff options
author | Olof Johansson <olof@lixom.net> | 2012-11-26 03:06:23 -0500 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2012-11-26 03:06:23 -0500 |
commit | d408c5dcc524dfc8e687c443719a3d6be86e2ea0 (patch) | |
tree | 0fee3f9936e9950d3b0db7d4f466b2b89718a2bb /arch | |
parent | 8d2282a77bf0977e7033d8ea5970f369bc28f0f0 (diff) | |
parent | d80162eccd56c40228e1232de8a203e8553b20a4 (diff) |
Merge branch 'next/dt-samsung-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/dt
From Kukjin Kim:
Here is second Samsung DT stuff for v3.8.
This is including power domain DT support for exynos and Google ARM
Chromebook, Snow board and exynos4210-origen updates.
* 'next/dt-samsung-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
ARM: dts: Use drive strength 3 for SD pins for exynos4
ARM: dts: Set up power domains for exynos4
ARM: EXYNOS: Bind devices to power domains using DT
ARM: EXYNOS: Fix power domain name initialization
ARM: EXYNOS: Detect power domain state on registration from DT
ARM: dts: Add vmmc fixed voltage regulator for exynos4210-origen
ARM: dts: Update sdhci nodes for current bindings for exynos4210-origen
ARM: dts: Update for pinctrl-samsung driver for exynos4210-origen
ARM: dts: Split memory sections for exynos4210-origen
ARM: EXYNOS: add all i2c busses to auxdata for DT
ARM: dts: Add aliases for i2c controller for exynos4
ARM: dts: Add board dts file for Snow board (ARM Chromebook)
ARM: dts: Move the dwmmc aliases from smdk5250 dts to exynos
Add/add conflicts resolved in arch/arm/boot/dts/exynos5250-smdk5250.dts
and arch/arm/mach-exynos/mach-exynos5-dt.c.
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/boot/dts/Makefile | 3 | ||||
-rw-r--r-- | arch/arm/boot/dts/cros5250-common.dtsi | 184 | ||||
-rw-r--r-- | arch/arm/boot/dts/exynos4.dtsi | 54 | ||||
-rw-r--r-- | arch/arm/boot/dts/exynos4210-origen.dts | 54 | ||||
-rw-r--r-- | arch/arm/boot/dts/exynos4210-pinctrl.dtsi | 56 | ||||
-rw-r--r-- | arch/arm/boot/dts/exynos4210.dtsi | 5 | ||||
-rw-r--r-- | arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | 56 | ||||
-rw-r--r-- | arch/arm/boot/dts/exynos5250-smdk5250.dts | 12 | ||||
-rw-r--r-- | arch/arm/boot/dts/exynos5250-snow.dts | 43 | ||||
-rw-r--r-- | arch/arm/boot/dts/exynos5250.dtsi | 12 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-exynos5-dt.c | 10 | ||||
-rw-r--r-- | arch/arm/mach-exynos/pm_domains.c | 93 |
12 files changed, 474 insertions, 108 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 83faa72dc176..a31211904e91 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -26,7 +26,8 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \ | |||
26 | exynos4210-smdkv310.dtb \ | 26 | exynos4210-smdkv310.dtb \ |
27 | exynos4210-trats.dtb \ | 27 | exynos4210-trats.dtb \ |
28 | exynos4412-smdk4412.dtb \ | 28 | exynos4412-smdk4412.dtb \ |
29 | exynos5250-smdk5250.dtb | 29 | exynos5250-smdk5250.dtb \ |
30 | exynos5250-snow.dtb | ||
30 | dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb | 31 | dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb |
31 | dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \ | 32 | dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \ |
32 | integratorcp.dtb | 33 | integratorcp.dtb |
diff --git a/arch/arm/boot/dts/cros5250-common.dtsi b/arch/arm/boot/dts/cros5250-common.dtsi new file mode 100644 index 000000000000..fddd17417433 --- /dev/null +++ b/arch/arm/boot/dts/cros5250-common.dtsi | |||
@@ -0,0 +1,184 @@ | |||
1 | /* | ||
2 | * Common device tree include for all Exynos 5250 boards based off of Daisy. | ||
3 | * | ||
4 | * Copyright (c) 2012 Google, Inc | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | / { | ||
12 | aliases { | ||
13 | }; | ||
14 | |||
15 | memory { | ||
16 | reg = <0x40000000 0x80000000>; | ||
17 | }; | ||
18 | |||
19 | chosen { | ||
20 | }; | ||
21 | |||
22 | i2c@12C60000 { | ||
23 | samsung,i2c-sda-delay = <100>; | ||
24 | samsung,i2c-max-bus-freq = <378000>; | ||
25 | gpios = <&gpb3 0 2 3 0>, | ||
26 | <&gpb3 1 2 3 0>; | ||
27 | }; | ||
28 | |||
29 | i2c@12C70000 { | ||
30 | samsung,i2c-sda-delay = <100>; | ||
31 | samsung,i2c-max-bus-freq = <378000>; | ||
32 | gpios = <&gpb3 2 2 3 0>, | ||
33 | <&gpb3 3 2 3 0>; | ||
34 | }; | ||
35 | |||
36 | i2c@12C80000 { | ||
37 | samsung,i2c-sda-delay = <100>; | ||
38 | samsung,i2c-max-bus-freq = <66000>; | ||
39 | |||
40 | /* | ||
41 | * Disabled pullups since external part has its own pullups and | ||
42 | * double-pulling gets us out of spec in some cases. | ||
43 | */ | ||
44 | gpios = <&gpa0 6 3 0 0>, | ||
45 | <&gpa0 7 3 0 0>; | ||
46 | |||
47 | hdmiddc@50 { | ||
48 | compatible = "samsung,exynos5-hdmiddc"; | ||
49 | reg = <0x50>; | ||
50 | }; | ||
51 | }; | ||
52 | |||
53 | i2c@12C90000 { | ||
54 | samsung,i2c-sda-delay = <100>; | ||
55 | samsung,i2c-max-bus-freq = <66000>; | ||
56 | gpios = <&gpa1 2 3 3 0>, | ||
57 | <&gpa1 3 3 3 0>; | ||
58 | }; | ||
59 | |||
60 | i2c@12CA0000 { | ||
61 | status = "disabled"; | ||
62 | }; | ||
63 | |||
64 | i2c@12CB0000 { | ||
65 | samsung,i2c-sda-delay = <100>; | ||
66 | samsung,i2c-max-bus-freq = <66000>; | ||
67 | gpios = <&gpa2 2 3 3 0>, | ||
68 | <&gpa2 3 3 3 0>; | ||
69 | }; | ||
70 | |||
71 | i2c@12CC0000 { | ||
72 | status = "disabled"; | ||
73 | }; | ||
74 | |||
75 | i2c@12CD0000 { | ||
76 | samsung,i2c-sda-delay = <100>; | ||
77 | samsung,i2c-max-bus-freq = <66000>; | ||
78 | gpios = <&gpb2 2 3 3 0>, | ||
79 | <&gpb2 3 3 3 0>; | ||
80 | }; | ||
81 | |||
82 | i2c@12CE0000 { | ||
83 | samsung,i2c-sda-delay = <100>; | ||
84 | samsung,i2c-max-bus-freq = <378000>; | ||
85 | |||
86 | hdmiphy@38 { | ||
87 | compatible = "samsung,exynos5-hdmiphy"; | ||
88 | reg = <0x38>; | ||
89 | }; | ||
90 | }; | ||
91 | |||
92 | dwmmc0@12200000 { | ||
93 | num-slots = <1>; | ||
94 | supports-highspeed; | ||
95 | broken-cd; | ||
96 | fifo-depth = <0x80>; | ||
97 | card-detect-delay = <200>; | ||
98 | samsung,dw-mshc-ciu-div = <3>; | ||
99 | samsung,dw-mshc-sdr-timing = <2 3 3>; | ||
100 | samsung,dw-mshc-ddr-timing = <1 2 3>; | ||
101 | |||
102 | slot@0 { | ||
103 | reg = <0>; | ||
104 | bus-width = <8>; | ||
105 | gpios = <&gpc0 0 2 0 3>, <&gpc0 1 2 0 3>, | ||
106 | <&gpc1 0 2 3 3>, <&gpc1 1 2 3 3>, | ||
107 | <&gpc1 2 2 3 3>, <&gpc1 3 2 3 3>, | ||
108 | <&gpc0 3 2 3 3>, <&gpc0 4 2 3 3>, | ||
109 | <&gpc0 5 2 3 3>, <&gpc0 6 2 3 3>; | ||
110 | }; | ||
111 | }; | ||
112 | |||
113 | dwmmc1@12210000 { | ||
114 | status = "disabled"; | ||
115 | }; | ||
116 | |||
117 | dwmmc2@12220000 { | ||
118 | num-slots = <1>; | ||
119 | supports-highspeed; | ||
120 | fifo-depth = <0x80>; | ||
121 | card-detect-delay = <200>; | ||
122 | samsung,dw-mshc-ciu-div = <3>; | ||
123 | samsung,dw-mshc-sdr-timing = <2 3 3>; | ||
124 | samsung,dw-mshc-ddr-timing = <1 2 3>; | ||
125 | |||
126 | slot@0 { | ||
127 | reg = <0>; | ||
128 | bus-width = <4>; | ||
129 | samsung,cd-pinmux-gpio = <&gpc3 2 2 3 3>; | ||
130 | wp-gpios = <&gpc2 1 0 0 3>; | ||
131 | gpios = <&gpc3 0 2 0 3>, <&gpc3 1 2 0 3>, | ||
132 | <&gpc3 3 2 3 3>, <&gpc3 4 2 3 3>, | ||
133 | <&gpc3 5 2 3 3>, <&gpc3 6 2 3 3>; | ||
134 | }; | ||
135 | }; | ||
136 | |||
137 | dwmmc3@12230000 { | ||
138 | num-slots = <1>; | ||
139 | supports-highspeed; | ||
140 | broken-cd; | ||
141 | fifo-depth = <0x80>; | ||
142 | card-detect-delay = <200>; | ||
143 | samsung,dw-mshc-ciu-div = <3>; | ||
144 | samsung,dw-mshc-sdr-timing = <2 3 3>; | ||
145 | samsung,dw-mshc-ddr-timing = <1 2 3>; | ||
146 | |||
147 | slot@0 { | ||
148 | reg = <0>; | ||
149 | bus-width = <4>; | ||
150 | /* See board-specific dts files for GPIOs */ | ||
151 | }; | ||
152 | }; | ||
153 | |||
154 | spi_0: spi@12d20000 { | ||
155 | status = "disabled"; | ||
156 | }; | ||
157 | |||
158 | spi_1: spi@12d30000 { | ||
159 | gpios = <&gpa2 4 2 3 0>, | ||
160 | <&gpa2 6 2 3 0>, | ||
161 | <&gpa2 7 2 3 0>; | ||
162 | samsung,spi-src-clk = <0>; | ||
163 | num-cs = <1>; | ||
164 | }; | ||
165 | |||
166 | spi_2: spi@12d40000 { | ||
167 | status = "disabled"; | ||
168 | }; | ||
169 | |||
170 | hdmi { | ||
171 | hpd-gpio = <&gpx3 7 0xf 1 3>; | ||
172 | }; | ||
173 | |||
174 | gpio-keys { | ||
175 | compatible = "gpio-keys"; | ||
176 | |||
177 | power { | ||
178 | label = "Power"; | ||
179 | gpios = <&gpx1 3 0 0x10000 0>; | ||
180 | linux,code = <116>; /* KEY_POWER */ | ||
181 | gpio-key,wakeup; | ||
182 | }; | ||
183 | }; | ||
184 | }; | ||
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi index a26c3dd58269..3428f1a94dcc 100644 --- a/arch/arm/boot/dts/exynos4.dtsi +++ b/arch/arm/boot/dts/exynos4.dtsi | |||
@@ -28,6 +28,44 @@ | |||
28 | spi0 = &spi_0; | 28 | spi0 = &spi_0; |
29 | spi1 = &spi_1; | 29 | spi1 = &spi_1; |
30 | spi2 = &spi_2; | 30 | spi2 = &spi_2; |
31 | i2c0 = &i2c_0; | ||
32 | i2c1 = &i2c_1; | ||
33 | i2c2 = &i2c_2; | ||
34 | i2c3 = &i2c_3; | ||
35 | i2c4 = &i2c_4; | ||
36 | i2c5 = &i2c_5; | ||
37 | i2c6 = &i2c_6; | ||
38 | i2c7 = &i2c_7; | ||
39 | }; | ||
40 | |||
41 | pd_mfc: mfc-power-domain@10023C40 { | ||
42 | compatible = "samsung,exynos4210-pd"; | ||
43 | reg = <0x10023C40 0x20>; | ||
44 | }; | ||
45 | |||
46 | pd_g3d: g3d-power-domain@10023C60 { | ||
47 | compatible = "samsung,exynos4210-pd"; | ||
48 | reg = <0x10023C60 0x20>; | ||
49 | }; | ||
50 | |||
51 | pd_lcd0: lcd0-power-domain@10023C80 { | ||
52 | compatible = "samsung,exynos4210-pd"; | ||
53 | reg = <0x10023C80 0x20>; | ||
54 | }; | ||
55 | |||
56 | pd_tv: tv-power-domain@10023C20 { | ||
57 | compatible = "samsung,exynos4210-pd"; | ||
58 | reg = <0x10023C20 0x20>; | ||
59 | }; | ||
60 | |||
61 | pd_cam: cam-power-domain@10023C00 { | ||
62 | compatible = "samsung,exynos4210-pd"; | ||
63 | reg = <0x10023C00 0x20>; | ||
64 | }; | ||
65 | |||
66 | pd_gps: gps-power-domain@10023CE0 { | ||
67 | compatible = "samsung,exynos4210-pd"; | ||
68 | reg = <0x10023CE0 0x20>; | ||
31 | }; | 69 | }; |
32 | 70 | ||
33 | gic:interrupt-controller@10490000 { | 71 | gic:interrupt-controller@10490000 { |
@@ -121,7 +159,7 @@ | |||
121 | status = "disabled"; | 159 | status = "disabled"; |
122 | }; | 160 | }; |
123 | 161 | ||
124 | i2c@13860000 { | 162 | i2c_0: i2c@13860000 { |
125 | #address-cells = <1>; | 163 | #address-cells = <1>; |
126 | #size-cells = <0>; | 164 | #size-cells = <0>; |
127 | compatible = "samsung,s3c2440-i2c"; | 165 | compatible = "samsung,s3c2440-i2c"; |
@@ -130,7 +168,7 @@ | |||
130 | status = "disabled"; | 168 | status = "disabled"; |
131 | }; | 169 | }; |
132 | 170 | ||
133 | i2c@13870000 { | 171 | i2c_1: i2c@13870000 { |
134 | #address-cells = <1>; | 172 | #address-cells = <1>; |
135 | #size-cells = <0>; | 173 | #size-cells = <0>; |
136 | compatible = "samsung,s3c2440-i2c"; | 174 | compatible = "samsung,s3c2440-i2c"; |
@@ -139,7 +177,7 @@ | |||
139 | status = "disabled"; | 177 | status = "disabled"; |
140 | }; | 178 | }; |
141 | 179 | ||
142 | i2c@13880000 { | 180 | i2c_2: i2c@13880000 { |
143 | #address-cells = <1>; | 181 | #address-cells = <1>; |
144 | #size-cells = <0>; | 182 | #size-cells = <0>; |
145 | compatible = "samsung,s3c2440-i2c"; | 183 | compatible = "samsung,s3c2440-i2c"; |
@@ -148,7 +186,7 @@ | |||
148 | status = "disabled"; | 186 | status = "disabled"; |
149 | }; | 187 | }; |
150 | 188 | ||
151 | i2c@13890000 { | 189 | i2c_3: i2c@13890000 { |
152 | #address-cells = <1>; | 190 | #address-cells = <1>; |
153 | #size-cells = <0>; | 191 | #size-cells = <0>; |
154 | compatible = "samsung,s3c2440-i2c"; | 192 | compatible = "samsung,s3c2440-i2c"; |
@@ -157,7 +195,7 @@ | |||
157 | status = "disabled"; | 195 | status = "disabled"; |
158 | }; | 196 | }; |
159 | 197 | ||
160 | i2c@138A0000 { | 198 | i2c_4: i2c@138A0000 { |
161 | #address-cells = <1>; | 199 | #address-cells = <1>; |
162 | #size-cells = <0>; | 200 | #size-cells = <0>; |
163 | compatible = "samsung,s3c2440-i2c"; | 201 | compatible = "samsung,s3c2440-i2c"; |
@@ -166,7 +204,7 @@ | |||
166 | status = "disabled"; | 204 | status = "disabled"; |
167 | }; | 205 | }; |
168 | 206 | ||
169 | i2c@138B0000 { | 207 | i2c_5: i2c@138B0000 { |
170 | #address-cells = <1>; | 208 | #address-cells = <1>; |
171 | #size-cells = <0>; | 209 | #size-cells = <0>; |
172 | compatible = "samsung,s3c2440-i2c"; | 210 | compatible = "samsung,s3c2440-i2c"; |
@@ -175,7 +213,7 @@ | |||
175 | status = "disabled"; | 213 | status = "disabled"; |
176 | }; | 214 | }; |
177 | 215 | ||
178 | i2c@138C0000 { | 216 | i2c_6: i2c@138C0000 { |
179 | #address-cells = <1>; | 217 | #address-cells = <1>; |
180 | #size-cells = <0>; | 218 | #size-cells = <0>; |
181 | compatible = "samsung,s3c2440-i2c"; | 219 | compatible = "samsung,s3c2440-i2c"; |
@@ -184,7 +222,7 @@ | |||
184 | status = "disabled"; | 222 | status = "disabled"; |
185 | }; | 223 | }; |
186 | 224 | ||
187 | i2c@138D0000 { | 225 | i2c_7: i2c@138D0000 { |
188 | #address-cells = <1>; | 226 | #address-cells = <1>; |
189 | #size-cells = <0>; | 227 | #size-cells = <0>; |
190 | compatible = "samsung,s3c2440-i2c"; | 228 | compatible = "samsung,s3c2440-i2c"; |
diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts index f16c99f2f0fc..f2710018e84e 100644 --- a/arch/arm/boot/dts/exynos4210-origen.dts +++ b/arch/arm/boot/dts/exynos4210-origen.dts | |||
@@ -22,38 +22,38 @@ | |||
22 | compatible = "insignal,origen", "samsung,exynos4210"; | 22 | compatible = "insignal,origen", "samsung,exynos4210"; |
23 | 23 | ||
24 | memory { | 24 | memory { |
25 | reg = <0x40000000 0x40000000>; | 25 | reg = <0x40000000 0x10000000 |
26 | 0x50000000 0x10000000 | ||
27 | 0x60000000 0x10000000 | ||
28 | 0x70000000 0x10000000>; | ||
26 | }; | 29 | }; |
27 | 30 | ||
28 | chosen { | 31 | chosen { |
29 | bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc"; | 32 | bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc"; |
30 | }; | 33 | }; |
31 | 34 | ||
35 | mmc_reg: voltage-regulator { | ||
36 | compatible = "regulator-fixed"; | ||
37 | regulator-name = "VMEM_VDD_2.8V"; | ||
38 | regulator-min-microvolt = <2800000>; | ||
39 | regulator-max-microvolt = <2800000>; | ||
40 | gpio = <&gpx1 1 0>; | ||
41 | enable-active-high; | ||
42 | }; | ||
43 | |||
32 | sdhci@12530000 { | 44 | sdhci@12530000 { |
33 | samsung,sdhci-bus-width = <4>; | 45 | bus-width = <4>; |
34 | linux,mmc_cap_4_bit_data; | 46 | pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>; |
35 | samsung,sdhci-cd-internal; | 47 | pinctrl-names = "default"; |
36 | gpio-cd = <&gpk2 2 2 3 3>; | 48 | vmmc-supply = <&mmc_reg>; |
37 | gpios = <&gpk2 0 2 0 3>, | ||
38 | <&gpk2 1 2 0 3>, | ||
39 | <&gpk2 3 2 3 3>, | ||
40 | <&gpk2 4 2 3 3>, | ||
41 | <&gpk2 5 2 3 3>, | ||
42 | <&gpk2 6 2 3 3>; | ||
43 | status = "okay"; | 49 | status = "okay"; |
44 | }; | 50 | }; |
45 | 51 | ||
46 | sdhci@12510000 { | 52 | sdhci@12510000 { |
47 | samsung,sdhci-bus-width = <4>; | 53 | bus-width = <4>; |
48 | linux,mmc_cap_4_bit_data; | 54 | pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_cd>; |
49 | samsung,sdhci-cd-internal; | 55 | pinctrl-names = "default"; |
50 | gpio-cd = <&gpk0 2 2 3 3>; | 56 | vmmc-supply = <&mmc_reg>; |
51 | gpios = <&gpk0 0 2 0 3>, | ||
52 | <&gpk0 1 2 0 3>, | ||
53 | <&gpk0 3 2 3 3>, | ||
54 | <&gpk0 4 2 3 3>, | ||
55 | <&gpk0 5 2 3 3>, | ||
56 | <&gpk0 6 2 3 3>; | ||
57 | status = "okay"; | 57 | status = "okay"; |
58 | }; | 58 | }; |
59 | 59 | ||
@@ -80,35 +80,35 @@ | |||
80 | 80 | ||
81 | up { | 81 | up { |
82 | label = "Up"; | 82 | label = "Up"; |
83 | gpios = <&gpx2 0 0 0x10000 2>; | 83 | gpios = <&gpx2 0 1>; |
84 | linux,code = <103>; | 84 | linux,code = <103>; |
85 | gpio-key,wakeup; | 85 | gpio-key,wakeup; |
86 | }; | 86 | }; |
87 | 87 | ||
88 | down { | 88 | down { |
89 | label = "Down"; | 89 | label = "Down"; |
90 | gpios = <&gpx2 1 0 0x10000 2>; | 90 | gpios = <&gpx2 1 1>; |
91 | linux,code = <108>; | 91 | linux,code = <108>; |
92 | gpio-key,wakeup; | 92 | gpio-key,wakeup; |
93 | }; | 93 | }; |
94 | 94 | ||
95 | back { | 95 | back { |
96 | label = "Back"; | 96 | label = "Back"; |
97 | gpios = <&gpx1 7 0 0x10000 2>; | 97 | gpios = <&gpx1 7 1>; |
98 | linux,code = <158>; | 98 | linux,code = <158>; |
99 | gpio-key,wakeup; | 99 | gpio-key,wakeup; |
100 | }; | 100 | }; |
101 | 101 | ||
102 | home { | 102 | home { |
103 | label = "Home"; | 103 | label = "Home"; |
104 | gpios = <&gpx1 6 0 0x10000 2>; | 104 | gpios = <&gpx1 6 1>; |
105 | linux,code = <102>; | 105 | linux,code = <102>; |
106 | gpio-key,wakeup; | 106 | gpio-key,wakeup; |
107 | }; | 107 | }; |
108 | 108 | ||
109 | menu { | 109 | menu { |
110 | label = "Menu"; | 110 | label = "Menu"; |
111 | gpios = <&gpx1 5 0 0x10000 2>; | 111 | gpios = <&gpx1 5 1>; |
112 | linux,code = <139>; | 112 | linux,code = <139>; |
113 | gpio-key,wakeup; | 113 | gpio-key,wakeup; |
114 | }; | 114 | }; |
@@ -117,7 +117,7 @@ | |||
117 | leds { | 117 | leds { |
118 | compatible = "gpio-leds"; | 118 | compatible = "gpio-leds"; |
119 | status { | 119 | status { |
120 | gpios = <&gpx1 3 0 0x10000 2>; | 120 | gpios = <&gpx1 3 1>; |
121 | linux,default-trigger = "heartbeat"; | 121 | linux,default-trigger = "heartbeat"; |
122 | }; | 122 | }; |
123 | }; | 123 | }; |
diff --git a/arch/arm/boot/dts/exynos4210-pinctrl.dtsi b/arch/arm/boot/dts/exynos4210-pinctrl.dtsi index 6a4a1a04221c..55a2efb763d1 100644 --- a/arch/arm/boot/dts/exynos4210-pinctrl.dtsi +++ b/arch/arm/boot/dts/exynos4210-pinctrl.dtsi | |||
@@ -482,196 +482,196 @@ | |||
482 | samsung,pins = "gpk0-0"; | 482 | samsung,pins = "gpk0-0"; |
483 | samsung,pin-function = <2>; | 483 | samsung,pin-function = <2>; |
484 | samsung,pin-pud = <0>; | 484 | samsung,pin-pud = <0>; |
485 | samsung,pin-drv = <0>; | 485 | samsung,pin-drv = <3>; |
486 | }; | 486 | }; |
487 | 487 | ||
488 | sd0_cmd: sd0-cmd { | 488 | sd0_cmd: sd0-cmd { |
489 | samsung,pins = "gpk0-1"; | 489 | samsung,pins = "gpk0-1"; |
490 | samsung,pin-function = <2>; | 490 | samsung,pin-function = <2>; |
491 | samsung,pin-pud = <0>; | 491 | samsung,pin-pud = <0>; |
492 | samsung,pin-drv = <0>; | 492 | samsung,pin-drv = <3>; |
493 | }; | 493 | }; |
494 | 494 | ||
495 | sd0_cd: sd0-cd { | 495 | sd0_cd: sd0-cd { |
496 | samsung,pins = "gpk0-2"; | 496 | samsung,pins = "gpk0-2"; |
497 | samsung,pin-function = <2>; | 497 | samsung,pin-function = <2>; |
498 | samsung,pin-pud = <3>; | 498 | samsung,pin-pud = <3>; |
499 | samsung,pin-drv = <0>; | 499 | samsung,pin-drv = <3>; |
500 | }; | 500 | }; |
501 | 501 | ||
502 | sd0_bus1: sd0-bus-width1 { | 502 | sd0_bus1: sd0-bus-width1 { |
503 | samsung,pins = "gpk0-3"; | 503 | samsung,pins = "gpk0-3"; |
504 | samsung,pin-function = <2>; | 504 | samsung,pin-function = <2>; |
505 | samsung,pin-pud = <3>; | 505 | samsung,pin-pud = <3>; |
506 | samsung,pin-drv = <0>; | 506 | samsung,pin-drv = <3>; |
507 | }; | 507 | }; |
508 | 508 | ||
509 | sd0_bus4: sd0-bus-width4 { | 509 | sd0_bus4: sd0-bus-width4 { |
510 | samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6"; | 510 | samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6"; |
511 | samsung,pin-function = <2>; | 511 | samsung,pin-function = <2>; |
512 | samsung,pin-pud = <3>; | 512 | samsung,pin-pud = <3>; |
513 | samsung,pin-drv = <0>; | 513 | samsung,pin-drv = <3>; |
514 | }; | 514 | }; |
515 | 515 | ||
516 | sd0_bus8: sd0-bus-width8 { | 516 | sd0_bus8: sd0-bus-width8 { |
517 | samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; | 517 | samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; |
518 | samsung,pin-function = <3>; | 518 | samsung,pin-function = <3>; |
519 | samsung,pin-pud = <3>; | 519 | samsung,pin-pud = <3>; |
520 | samsung,pin-drv = <0>; | 520 | samsung,pin-drv = <3>; |
521 | }; | 521 | }; |
522 | 522 | ||
523 | sd4_clk: sd4-clk { | 523 | sd4_clk: sd4-clk { |
524 | samsung,pins = "gpk0-0"; | 524 | samsung,pins = "gpk0-0"; |
525 | samsung,pin-function = <3>; | 525 | samsung,pin-function = <3>; |
526 | samsung,pin-pud = <0>; | 526 | samsung,pin-pud = <0>; |
527 | samsung,pin-drv = <0>; | 527 | samsung,pin-drv = <3>; |
528 | }; | 528 | }; |
529 | 529 | ||
530 | sd4_cmd: sd4-cmd { | 530 | sd4_cmd: sd4-cmd { |
531 | samsung,pins = "gpk0-1"; | 531 | samsung,pins = "gpk0-1"; |
532 | samsung,pin-function = <3>; | 532 | samsung,pin-function = <3>; |
533 | samsung,pin-pud = <0>; | 533 | samsung,pin-pud = <0>; |
534 | samsung,pin-drv = <0>; | 534 | samsung,pin-drv = <3>; |
535 | }; | 535 | }; |
536 | 536 | ||
537 | sd4_cd: sd4-cd { | 537 | sd4_cd: sd4-cd { |
538 | samsung,pins = "gpk0-2"; | 538 | samsung,pins = "gpk0-2"; |
539 | samsung,pin-function = <3>; | 539 | samsung,pin-function = <3>; |
540 | samsung,pin-pud = <3>; | 540 | samsung,pin-pud = <3>; |
541 | samsung,pin-drv = <0>; | 541 | samsung,pin-drv = <3>; |
542 | }; | 542 | }; |
543 | 543 | ||
544 | sd4_bus1: sd4-bus-width1 { | 544 | sd4_bus1: sd4-bus-width1 { |
545 | samsung,pins = "gpk0-3"; | 545 | samsung,pins = "gpk0-3"; |
546 | samsung,pin-function = <3>; | 546 | samsung,pin-function = <3>; |
547 | samsung,pin-pud = <3>; | 547 | samsung,pin-pud = <3>; |
548 | samsung,pin-drv = <0>; | 548 | samsung,pin-drv = <3>; |
549 | }; | 549 | }; |
550 | 550 | ||
551 | sd4_bus4: sd4-bus-width4 { | 551 | sd4_bus4: sd4-bus-width4 { |
552 | samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6"; | 552 | samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6"; |
553 | samsung,pin-function = <3>; | 553 | samsung,pin-function = <3>; |
554 | samsung,pin-pud = <3>; | 554 | samsung,pin-pud = <3>; |
555 | samsung,pin-drv = <0>; | 555 | samsung,pin-drv = <3>; |
556 | }; | 556 | }; |
557 | 557 | ||
558 | sd4_bus8: sd4-bus-width8 { | 558 | sd4_bus8: sd4-bus-width8 { |
559 | samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; | 559 | samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; |
560 | samsung,pin-function = <3>; | 560 | samsung,pin-function = <3>; |
561 | samsung,pin-pud = <4>; | 561 | samsung,pin-pud = <4>; |
562 | samsung,pin-drv = <0>; | 562 | samsung,pin-drv = <3>; |
563 | }; | 563 | }; |
564 | 564 | ||
565 | sd1_clk: sd1-clk { | 565 | sd1_clk: sd1-clk { |
566 | samsung,pins = "gpk1-0"; | 566 | samsung,pins = "gpk1-0"; |
567 | samsung,pin-function = <2>; | 567 | samsung,pin-function = <2>; |
568 | samsung,pin-pud = <0>; | 568 | samsung,pin-pud = <0>; |
569 | samsung,pin-drv = <0>; | 569 | samsung,pin-drv = <3>; |
570 | }; | 570 | }; |
571 | 571 | ||
572 | sd1_cmd: sd1-cmd { | 572 | sd1_cmd: sd1-cmd { |
573 | samsung,pins = "gpk1-1"; | 573 | samsung,pins = "gpk1-1"; |
574 | samsung,pin-function = <2>; | 574 | samsung,pin-function = <2>; |
575 | samsung,pin-pud = <0>; | 575 | samsung,pin-pud = <0>; |
576 | samsung,pin-drv = <0>; | 576 | samsung,pin-drv = <3>; |
577 | }; | 577 | }; |
578 | 578 | ||
579 | sd1_cd: sd1-cd { | 579 | sd1_cd: sd1-cd { |
580 | samsung,pins = "gpk1-2"; | 580 | samsung,pins = "gpk1-2"; |
581 | samsung,pin-function = <2>; | 581 | samsung,pin-function = <2>; |
582 | samsung,pin-pud = <3>; | 582 | samsung,pin-pud = <3>; |
583 | samsung,pin-drv = <0>; | 583 | samsung,pin-drv = <3>; |
584 | }; | 584 | }; |
585 | 585 | ||
586 | sd1_bus1: sd1-bus-width1 { | 586 | sd1_bus1: sd1-bus-width1 { |
587 | samsung,pins = "gpk1-3"; | 587 | samsung,pins = "gpk1-3"; |
588 | samsung,pin-function = <2>; | 588 | samsung,pin-function = <2>; |
589 | samsung,pin-pud = <3>; | 589 | samsung,pin-pud = <3>; |
590 | samsung,pin-drv = <0>; | 590 | samsung,pin-drv = <3>; |
591 | }; | 591 | }; |
592 | 592 | ||
593 | sd1_bus4: sd1-bus-width4 { | 593 | sd1_bus4: sd1-bus-width4 { |
594 | samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; | 594 | samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; |
595 | samsung,pin-function = <2>; | 595 | samsung,pin-function = <2>; |
596 | samsung,pin-pud = <3>; | 596 | samsung,pin-pud = <3>; |
597 | samsung,pin-drv = <0>; | 597 | samsung,pin-drv = <3>; |
598 | }; | 598 | }; |
599 | 599 | ||
600 | sd2_clk: sd2-clk { | 600 | sd2_clk: sd2-clk { |
601 | samsung,pins = "gpk2-0"; | 601 | samsung,pins = "gpk2-0"; |
602 | samsung,pin-function = <2>; | 602 | samsung,pin-function = <2>; |
603 | samsung,pin-pud = <0>; | 603 | samsung,pin-pud = <0>; |
604 | samsung,pin-drv = <0>; | 604 | samsung,pin-drv = <3>; |
605 | }; | 605 | }; |
606 | 606 | ||
607 | sd2_cmd: sd2-cmd { | 607 | sd2_cmd: sd2-cmd { |
608 | samsung,pins = "gpk2-1"; | 608 | samsung,pins = "gpk2-1"; |
609 | samsung,pin-function = <2>; | 609 | samsung,pin-function = <2>; |
610 | samsung,pin-pud = <0>; | 610 | samsung,pin-pud = <0>; |
611 | samsung,pin-drv = <0>; | 611 | samsung,pin-drv = <3>; |
612 | }; | 612 | }; |
613 | 613 | ||
614 | sd2_cd: sd2-cd { | 614 | sd2_cd: sd2-cd { |
615 | samsung,pins = "gpk2-2"; | 615 | samsung,pins = "gpk2-2"; |
616 | samsung,pin-function = <2>; | 616 | samsung,pin-function = <2>; |
617 | samsung,pin-pud = <3>; | 617 | samsung,pin-pud = <3>; |
618 | samsung,pin-drv = <0>; | 618 | samsung,pin-drv = <3>; |
619 | }; | 619 | }; |
620 | 620 | ||
621 | sd2_bus1: sd2-bus-width1 { | 621 | sd2_bus1: sd2-bus-width1 { |
622 | samsung,pins = "gpk2-3"; | 622 | samsung,pins = "gpk2-3"; |
623 | samsung,pin-function = <2>; | 623 | samsung,pin-function = <2>; |
624 | samsung,pin-pud = <3>; | 624 | samsung,pin-pud = <3>; |
625 | samsung,pin-drv = <0>; | 625 | samsung,pin-drv = <3>; |
626 | }; | 626 | }; |
627 | 627 | ||
628 | sd2_bus4: sd2-bus-width4 { | 628 | sd2_bus4: sd2-bus-width4 { |
629 | samsung,pins = "gpk2-3", "gpk2-4", "gpk2-5", "gpk2-6"; | 629 | samsung,pins = "gpk2-3", "gpk2-4", "gpk2-5", "gpk2-6"; |
630 | samsung,pin-function = <2>; | 630 | samsung,pin-function = <2>; |
631 | samsung,pin-pud = <3>; | 631 | samsung,pin-pud = <3>; |
632 | samsung,pin-drv = <0>; | 632 | samsung,pin-drv = <3>; |
633 | }; | 633 | }; |
634 | 634 | ||
635 | sd2_bus8: sd2-bus-width8 { | 635 | sd2_bus8: sd2-bus-width8 { |
636 | samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6"; | 636 | samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6"; |
637 | samsung,pin-function = <3>; | 637 | samsung,pin-function = <3>; |
638 | samsung,pin-pud = <3>; | 638 | samsung,pin-pud = <3>; |
639 | samsung,pin-drv = <0>; | 639 | samsung,pin-drv = <3>; |
640 | }; | 640 | }; |
641 | 641 | ||
642 | sd3_clk: sd3-clk { | 642 | sd3_clk: sd3-clk { |
643 | samsung,pins = "gpk3-0"; | 643 | samsung,pins = "gpk3-0"; |
644 | samsung,pin-function = <2>; | 644 | samsung,pin-function = <2>; |
645 | samsung,pin-pud = <0>; | 645 | samsung,pin-pud = <0>; |
646 | samsung,pin-drv = <0>; | 646 | samsung,pin-drv = <3>; |
647 | }; | 647 | }; |
648 | 648 | ||
649 | sd3_cmd: sd3-cmd { | 649 | sd3_cmd: sd3-cmd { |
650 | samsung,pins = "gpk3-1"; | 650 | samsung,pins = "gpk3-1"; |
651 | samsung,pin-function = <2>; | 651 | samsung,pin-function = <2>; |
652 | samsung,pin-pud = <0>; | 652 | samsung,pin-pud = <0>; |
653 | samsung,pin-drv = <0>; | 653 | samsung,pin-drv = <3>; |
654 | }; | 654 | }; |
655 | 655 | ||
656 | sd3_cd: sd3-cd { | 656 | sd3_cd: sd3-cd { |
657 | samsung,pins = "gpk3-2"; | 657 | samsung,pins = "gpk3-2"; |
658 | samsung,pin-function = <2>; | 658 | samsung,pin-function = <2>; |
659 | samsung,pin-pud = <3>; | 659 | samsung,pin-pud = <3>; |
660 | samsung,pin-drv = <0>; | 660 | samsung,pin-drv = <3>; |
661 | }; | 661 | }; |
662 | 662 | ||
663 | sd3_bus1: sd3-bus-width1 { | 663 | sd3_bus1: sd3-bus-width1 { |
664 | samsung,pins = "gpk3-3"; | 664 | samsung,pins = "gpk3-3"; |
665 | samsung,pin-function = <2>; | 665 | samsung,pin-function = <2>; |
666 | samsung,pin-pud = <3>; | 666 | samsung,pin-pud = <3>; |
667 | samsung,pin-drv = <0>; | 667 | samsung,pin-drv = <3>; |
668 | }; | 668 | }; |
669 | 669 | ||
670 | sd3_bus4: sd3-bus-width4 { | 670 | sd3_bus4: sd3-bus-width4 { |
671 | samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6"; | 671 | samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6"; |
672 | samsung,pin-function = <2>; | 672 | samsung,pin-function = <2>; |
673 | samsung,pin-pud = <3>; | 673 | samsung,pin-pud = <3>; |
674 | samsung,pin-drv = <0>; | 674 | samsung,pin-drv = <3>; |
675 | }; | 675 | }; |
676 | 676 | ||
677 | eint0: ext-int0 { | 677 | eint0: ext-int0 { |
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi index 939f6399c9c7..e31bfc4a6f09 100644 --- a/arch/arm/boot/dts/exynos4210.dtsi +++ b/arch/arm/boot/dts/exynos4210.dtsi | |||
@@ -31,6 +31,11 @@ | |||
31 | pinctrl2 = &pinctrl_2; | 31 | pinctrl2 = &pinctrl_2; |
32 | }; | 32 | }; |
33 | 33 | ||
34 | pd_lcd1: lcd1-power-domain@10023CA0 { | ||
35 | compatible = "samsung,exynos4210-pd"; | ||
36 | reg = <0x10023CA0 0x20>; | ||
37 | }; | ||
38 | |||
34 | gic:interrupt-controller@10490000 { | 39 | gic:interrupt-controller@10490000 { |
35 | cpu-offset = <0x8000>; | 40 | cpu-offset = <0x8000>; |
36 | }; | 41 | }; |
diff --git a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi index 56f4669cecc1..8e6115adcd97 100644 --- a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi +++ b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | |||
@@ -586,196 +586,196 @@ | |||
586 | samsung,pins = "gpk0-0"; | 586 | samsung,pins = "gpk0-0"; |
587 | samsung,pin-function = <2>; | 587 | samsung,pin-function = <2>; |
588 | samsung,pin-pud = <0>; | 588 | samsung,pin-pud = <0>; |
589 | samsung,pin-drv = <0>; | 589 | samsung,pin-drv = <3>; |
590 | }; | 590 | }; |
591 | 591 | ||
592 | sd0_cmd: sd0-cmd { | 592 | sd0_cmd: sd0-cmd { |
593 | samsung,pins = "gpk0-1"; | 593 | samsung,pins = "gpk0-1"; |
594 | samsung,pin-function = <2>; | 594 | samsung,pin-function = <2>; |
595 | samsung,pin-pud = <0>; | 595 | samsung,pin-pud = <0>; |
596 | samsung,pin-drv = <0>; | 596 | samsung,pin-drv = <3>; |
597 | }; | 597 | }; |
598 | 598 | ||
599 | sd0_cd: sd0-cd { | 599 | sd0_cd: sd0-cd { |
600 | samsung,pins = "gpk0-2"; | 600 | samsung,pins = "gpk0-2"; |
601 | samsung,pin-function = <2>; | 601 | samsung,pin-function = <2>; |
602 | samsung,pin-pud = <3>; | 602 | samsung,pin-pud = <3>; |
603 | samsung,pin-drv = <0>; | 603 | samsung,pin-drv = <3>; |
604 | }; | 604 | }; |
605 | 605 | ||
606 | sd0_bus1: sd0-bus-width1 { | 606 | sd0_bus1: sd0-bus-width1 { |
607 | samsung,pins = "gpk0-3"; | 607 | samsung,pins = "gpk0-3"; |
608 | samsung,pin-function = <2>; | 608 | samsung,pin-function = <2>; |
609 | samsung,pin-pud = <3>; | 609 | samsung,pin-pud = <3>; |
610 | samsung,pin-drv = <0>; | 610 | samsung,pin-drv = <3>; |
611 | }; | 611 | }; |
612 | 612 | ||
613 | sd0_bus4: sd0-bus-width4 { | 613 | sd0_bus4: sd0-bus-width4 { |
614 | samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6"; | 614 | samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6"; |
615 | samsung,pin-function = <2>; | 615 | samsung,pin-function = <2>; |
616 | samsung,pin-pud = <3>; | 616 | samsung,pin-pud = <3>; |
617 | samsung,pin-drv = <0>; | 617 | samsung,pin-drv = <3>; |
618 | }; | 618 | }; |
619 | 619 | ||
620 | sd0_bus8: sd0-bus-width8 { | 620 | sd0_bus8: sd0-bus-width8 { |
621 | samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; | 621 | samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; |
622 | samsung,pin-function = <3>; | 622 | samsung,pin-function = <3>; |
623 | samsung,pin-pud = <3>; | 623 | samsung,pin-pud = <3>; |
624 | samsung,pin-drv = <0>; | 624 | samsung,pin-drv = <3>; |
625 | }; | 625 | }; |
626 | 626 | ||
627 | sd4_clk: sd4-clk { | 627 | sd4_clk: sd4-clk { |
628 | samsung,pins = "gpk0-0"; | 628 | samsung,pins = "gpk0-0"; |
629 | samsung,pin-function = <3>; | 629 | samsung,pin-function = <3>; |
630 | samsung,pin-pud = <0>; | 630 | samsung,pin-pud = <0>; |
631 | samsung,pin-drv = <0>; | 631 | samsung,pin-drv = <3>; |
632 | }; | 632 | }; |
633 | 633 | ||
634 | sd4_cmd: sd4-cmd { | 634 | sd4_cmd: sd4-cmd { |
635 | samsung,pins = "gpk0-1"; | 635 | samsung,pins = "gpk0-1"; |
636 | samsung,pin-function = <3>; | 636 | samsung,pin-function = <3>; |
637 | samsung,pin-pud = <0>; | 637 | samsung,pin-pud = <0>; |
638 | samsung,pin-drv = <0>; | 638 | samsung,pin-drv = <3>; |
639 | }; | 639 | }; |
640 | 640 | ||
641 | sd4_cd: sd4-cd { | 641 | sd4_cd: sd4-cd { |
642 | samsung,pins = "gpk0-2"; | 642 | samsung,pins = "gpk0-2"; |
643 | samsung,pin-function = <3>; | 643 | samsung,pin-function = <3>; |
644 | samsung,pin-pud = <3>; | 644 | samsung,pin-pud = <3>; |
645 | samsung,pin-drv = <0>; | 645 | samsung,pin-drv = <3>; |
646 | }; | 646 | }; |
647 | 647 | ||
648 | sd4_bus1: sd4-bus-width1 { | 648 | sd4_bus1: sd4-bus-width1 { |
649 | samsung,pins = "gpk0-3"; | 649 | samsung,pins = "gpk0-3"; |
650 | samsung,pin-function = <3>; | 650 | samsung,pin-function = <3>; |
651 | samsung,pin-pud = <3>; | 651 | samsung,pin-pud = <3>; |
652 | samsung,pin-drv = <0>; | 652 | samsung,pin-drv = <3>; |
653 | }; | 653 | }; |
654 | 654 | ||
655 | sd4_bus4: sd4-bus-width4 { | 655 | sd4_bus4: sd4-bus-width4 { |
656 | samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6"; | 656 | samsung,pins = "gpk0-3", "gpk0-4", "gpk0-5", "gpk0-6"; |
657 | samsung,pin-function = <3>; | 657 | samsung,pin-function = <3>; |
658 | samsung,pin-pud = <3>; | 658 | samsung,pin-pud = <3>; |
659 | samsung,pin-drv = <0>; | 659 | samsung,pin-drv = <3>; |
660 | }; | 660 | }; |
661 | 661 | ||
662 | sd4_bus8: sd4-bus-width8 { | 662 | sd4_bus8: sd4-bus-width8 { |
663 | samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; | 663 | samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; |
664 | samsung,pin-function = <3>; | 664 | samsung,pin-function = <3>; |
665 | samsung,pin-pud = <4>; | 665 | samsung,pin-pud = <4>; |
666 | samsung,pin-drv = <0>; | 666 | samsung,pin-drv = <3>; |
667 | }; | 667 | }; |
668 | 668 | ||
669 | sd1_clk: sd1-clk { | 669 | sd1_clk: sd1-clk { |
670 | samsung,pins = "gpk1-0"; | 670 | samsung,pins = "gpk1-0"; |
671 | samsung,pin-function = <2>; | 671 | samsung,pin-function = <2>; |
672 | samsung,pin-pud = <0>; | 672 | samsung,pin-pud = <0>; |
673 | samsung,pin-drv = <0>; | 673 | samsung,pin-drv = <3>; |
674 | }; | 674 | }; |
675 | 675 | ||
676 | sd1_cmd: sd1-cmd { | 676 | sd1_cmd: sd1-cmd { |
677 | samsung,pins = "gpk1-1"; | 677 | samsung,pins = "gpk1-1"; |
678 | samsung,pin-function = <2>; | 678 | samsung,pin-function = <2>; |
679 | samsung,pin-pud = <0>; | 679 | samsung,pin-pud = <0>; |
680 | samsung,pin-drv = <0>; | 680 | samsung,pin-drv = <3>; |
681 | }; | 681 | }; |
682 | 682 | ||
683 | sd1_cd: sd1-cd { | 683 | sd1_cd: sd1-cd { |
684 | samsung,pins = "gpk1-2"; | 684 | samsung,pins = "gpk1-2"; |
685 | samsung,pin-function = <2>; | 685 | samsung,pin-function = <2>; |
686 | samsung,pin-pud = <3>; | 686 | samsung,pin-pud = <3>; |
687 | samsung,pin-drv = <0>; | 687 | samsung,pin-drv = <3>; |
688 | }; | 688 | }; |
689 | 689 | ||
690 | sd1_bus1: sd1-bus-width1 { | 690 | sd1_bus1: sd1-bus-width1 { |
691 | samsung,pins = "gpk1-3"; | 691 | samsung,pins = "gpk1-3"; |
692 | samsung,pin-function = <2>; | 692 | samsung,pin-function = <2>; |
693 | samsung,pin-pud = <3>; | 693 | samsung,pin-pud = <3>; |
694 | samsung,pin-drv = <0>; | 694 | samsung,pin-drv = <3>; |
695 | }; | 695 | }; |
696 | 696 | ||
697 | sd1_bus4: sd1-bus-width4 { | 697 | sd1_bus4: sd1-bus-width4 { |
698 | samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; | 698 | samsung,pins = "gpk1-3", "gpk1-4", "gpk1-5", "gpk1-6"; |
699 | samsung,pin-function = <2>; | 699 | samsung,pin-function = <2>; |
700 | samsung,pin-pud = <3>; | 700 | samsung,pin-pud = <3>; |
701 | samsung,pin-drv = <0>; | 701 | samsung,pin-drv = <3>; |
702 | }; | 702 | }; |
703 | 703 | ||
704 | sd2_clk: sd2-clk { | 704 | sd2_clk: sd2-clk { |
705 | samsung,pins = "gpk2-0"; | 705 | samsung,pins = "gpk2-0"; |
706 | samsung,pin-function = <2>; | 706 | samsung,pin-function = <2>; |
707 | samsung,pin-pud = <0>; | 707 | samsung,pin-pud = <0>; |
708 | samsung,pin-drv = <0>; | 708 | samsung,pin-drv = <3>; |
709 | }; | 709 | }; |
710 | 710 | ||
711 | sd2_cmd: sd2-cmd { | 711 | sd2_cmd: sd2-cmd { |
712 | samsung,pins = "gpk2-1"; | 712 | samsung,pins = "gpk2-1"; |
713 | samsung,pin-function = <2>; | 713 | samsung,pin-function = <2>; |
714 | samsung,pin-pud = <0>; | 714 | samsung,pin-pud = <0>; |
715 | samsung,pin-drv = <0>; | 715 | samsung,pin-drv = <3>; |
716 | }; | 716 | }; |
717 | 717 | ||
718 | sd2_cd: sd2-cd { | 718 | sd2_cd: sd2-cd { |
719 | samsung,pins = "gpk2-2"; | 719 | samsung,pins = "gpk2-2"; |
720 | samsung,pin-function = <2>; | 720 | samsung,pin-function = <2>; |
721 | samsung,pin-pud = <3>; | 721 | samsung,pin-pud = <3>; |
722 | samsung,pin-drv = <0>; | 722 | samsung,pin-drv = <3>; |
723 | }; | 723 | }; |
724 | 724 | ||
725 | sd2_bus1: sd2-bus-width1 { | 725 | sd2_bus1: sd2-bus-width1 { |
726 | samsung,pins = "gpk2-3"; | 726 | samsung,pins = "gpk2-3"; |
727 | samsung,pin-function = <2>; | 727 | samsung,pin-function = <2>; |
728 | samsung,pin-pud = <3>; | 728 | samsung,pin-pud = <3>; |
729 | samsung,pin-drv = <0>; | 729 | samsung,pin-drv = <3>; |
730 | }; | 730 | }; |
731 | 731 | ||
732 | sd2_bus4: sd2-bus-width4 { | 732 | sd2_bus4: sd2-bus-width4 { |
733 | samsung,pins = "gpk2-3", "gpk2-4", "gpk2-5", "gpk2-6"; | 733 | samsung,pins = "gpk2-3", "gpk2-4", "gpk2-5", "gpk2-6"; |
734 | samsung,pin-function = <2>; | 734 | samsung,pin-function = <2>; |
735 | samsung,pin-pud = <3>; | 735 | samsung,pin-pud = <3>; |
736 | samsung,pin-drv = <0>; | 736 | samsung,pin-drv = <3>; |
737 | }; | 737 | }; |
738 | 738 | ||
739 | sd2_bus8: sd2-bus-width8 { | 739 | sd2_bus8: sd2-bus-width8 { |
740 | samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6"; | 740 | samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6"; |
741 | samsung,pin-function = <3>; | 741 | samsung,pin-function = <3>; |
742 | samsung,pin-pud = <3>; | 742 | samsung,pin-pud = <3>; |
743 | samsung,pin-drv = <0>; | 743 | samsung,pin-drv = <3>; |
744 | }; | 744 | }; |
745 | 745 | ||
746 | sd3_clk: sd3-clk { | 746 | sd3_clk: sd3-clk { |
747 | samsung,pins = "gpk3-0"; | 747 | samsung,pins = "gpk3-0"; |
748 | samsung,pin-function = <2>; | 748 | samsung,pin-function = <2>; |
749 | samsung,pin-pud = <0>; | 749 | samsung,pin-pud = <0>; |
750 | samsung,pin-drv = <0>; | 750 | samsung,pin-drv = <3>; |
751 | }; | 751 | }; |
752 | 752 | ||
753 | sd3_cmd: sd3-cmd { | 753 | sd3_cmd: sd3-cmd { |
754 | samsung,pins = "gpk3-1"; | 754 | samsung,pins = "gpk3-1"; |
755 | samsung,pin-function = <2>; | 755 | samsung,pin-function = <2>; |
756 | samsung,pin-pud = <0>; | 756 | samsung,pin-pud = <0>; |
757 | samsung,pin-drv = <0>; | 757 | samsung,pin-drv = <3>; |
758 | }; | 758 | }; |
759 | 759 | ||
760 | sd3_cd: sd3-cd { | 760 | sd3_cd: sd3-cd { |
761 | samsung,pins = "gpk3-2"; | 761 | samsung,pins = "gpk3-2"; |
762 | samsung,pin-function = <2>; | 762 | samsung,pin-function = <2>; |
763 | samsung,pin-pud = <3>; | 763 | samsung,pin-pud = <3>; |
764 | samsung,pin-drv = <0>; | 764 | samsung,pin-drv = <3>; |
765 | }; | 765 | }; |
766 | 766 | ||
767 | sd3_bus1: sd3-bus-width1 { | 767 | sd3_bus1: sd3-bus-width1 { |
768 | samsung,pins = "gpk3-3"; | 768 | samsung,pins = "gpk3-3"; |
769 | samsung,pin-function = <2>; | 769 | samsung,pin-function = <2>; |
770 | samsung,pin-pud = <3>; | 770 | samsung,pin-pud = <3>; |
771 | samsung,pin-drv = <0>; | 771 | samsung,pin-drv = <3>; |
772 | }; | 772 | }; |
773 | 773 | ||
774 | sd3_bus4: sd3-bus-width4 { | 774 | sd3_bus4: sd3-bus-width4 { |
775 | samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6"; | 775 | samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6"; |
776 | samsung,pin-function = <2>; | 776 | samsung,pin-function = <2>; |
777 | samsung,pin-pud = <3>; | 777 | samsung,pin-pud = <3>; |
778 | samsung,pin-drv = <0>; | 778 | samsung,pin-drv = <3>; |
779 | }; | 779 | }; |
780 | 780 | ||
781 | keypad_col0: keypad-col0 { | 781 | keypad_col0: keypad-col0 { |
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts index 29f133371c11..942d5761ca97 100644 --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts | |||
@@ -17,10 +17,6 @@ | |||
17 | compatible = "samsung,smdk5250", "samsung,exynos5250"; | 17 | compatible = "samsung,smdk5250", "samsung,exynos5250"; |
18 | 18 | ||
19 | aliases { | 19 | aliases { |
20 | mshc0 = &dwmmc_0; | ||
21 | mshc1 = &dwmmc_1; | ||
22 | mshc2 = &dwmmc_2; | ||
23 | mshc3 = &dwmmc_3; | ||
24 | }; | 20 | }; |
25 | 21 | ||
26 | memory { | 22 | memory { |
@@ -112,7 +108,7 @@ | |||
112 | }; | 108 | }; |
113 | }; | 109 | }; |
114 | 110 | ||
115 | dwmmc_0: dwmmc0@12200000 { | 111 | dwmmc0@12200000 { |
116 | num-slots = <1>; | 112 | num-slots = <1>; |
117 | supports-highspeed; | 113 | supports-highspeed; |
118 | broken-cd; | 114 | broken-cd; |
@@ -133,11 +129,11 @@ | |||
133 | }; | 129 | }; |
134 | }; | 130 | }; |
135 | 131 | ||
136 | dwmmc_1: dwmmc1@12210000 { | 132 | dwmmc1@12210000 { |
137 | status = "disabled"; | 133 | status = "disabled"; |
138 | }; | 134 | }; |
139 | 135 | ||
140 | dwmmc_2: dwmmc2@12220000 { | 136 | dwmmc2@12220000 { |
141 | num-slots = <1>; | 137 | num-slots = <1>; |
142 | supports-highspeed; | 138 | supports-highspeed; |
143 | fifo-depth = <0x80>; | 139 | fifo-depth = <0x80>; |
@@ -158,7 +154,7 @@ | |||
158 | }; | 154 | }; |
159 | }; | 155 | }; |
160 | 156 | ||
161 | dwmmc_3: dwmmc3@12230000 { | 157 | dwmmc3@12230000 { |
162 | status = "disabled"; | 158 | status = "disabled"; |
163 | }; | 159 | }; |
164 | 160 | ||
diff --git a/arch/arm/boot/dts/exynos5250-snow.dts b/arch/arm/boot/dts/exynos5250-snow.dts new file mode 100644 index 000000000000..17dd951c1cd2 --- /dev/null +++ b/arch/arm/boot/dts/exynos5250-snow.dts | |||
@@ -0,0 +1,43 @@ | |||
1 | /* | ||
2 | * Google Snow board device tree source | ||
3 | * | ||
4 | * Copyright (c) 2012 Google, Inc | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | /dts-v1/; | ||
12 | /include/ "exynos5250.dtsi" | ||
13 | /include/ "cros5250-common.dtsi" | ||
14 | |||
15 | / { | ||
16 | model = "Google Snow"; | ||
17 | compatible = "google,snow", "samsung,exynos5250"; | ||
18 | |||
19 | gpio-keys { | ||
20 | compatible = "gpio-keys"; | ||
21 | |||
22 | lid-switch { | ||
23 | label = "Lid"; | ||
24 | gpios = <&gpx3 5 0 0x10000 0>; | ||
25 | linux,input-type = <5>; /* EV_SW */ | ||
26 | linux,code = <0>; /* SW_LID */ | ||
27 | debounce-interval = <1>; | ||
28 | gpio-key,wakeup; | ||
29 | }; | ||
30 | }; | ||
31 | |||
32 | /* | ||
33 | * On Snow we've got SIP WiFi and so can keep drive strengths low to | ||
34 | * reduce EMI. | ||
35 | */ | ||
36 | dwmmc3@12230000 { | ||
37 | slot@0 { | ||
38 | gpios = <&gpc4 0 2 0 0>, <&gpc4 1 2 3 0>, | ||
39 | <&gpc4 3 2 3 0>, <&gpc4 4 2 3 0>, | ||
40 | <&gpc4 5 2 3 0>, <&gpc4 6 2 3 0>; | ||
41 | }; | ||
42 | }; | ||
43 | }; | ||
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi index b82b829171ae..36d8246ea50e 100644 --- a/arch/arm/boot/dts/exynos5250.dtsi +++ b/arch/arm/boot/dts/exynos5250.dtsi | |||
@@ -31,6 +31,10 @@ | |||
31 | gsc1 = &gsc_1; | 31 | gsc1 = &gsc_1; |
32 | gsc2 = &gsc_2; | 32 | gsc2 = &gsc_2; |
33 | gsc3 = &gsc_3; | 33 | gsc3 = &gsc_3; |
34 | mshc0 = &dwmmc_0; | ||
35 | mshc1 = &dwmmc_1; | ||
36 | mshc2 = &dwmmc_2; | ||
37 | mshc3 = &dwmmc_3; | ||
34 | }; | 38 | }; |
35 | 39 | ||
36 | gic:interrupt-controller@10481000 { | 40 | gic:interrupt-controller@10481000 { |
@@ -224,7 +228,7 @@ | |||
224 | #size-cells = <0>; | 228 | #size-cells = <0>; |
225 | }; | 229 | }; |
226 | 230 | ||
227 | dwmmc0@12200000 { | 231 | dwmmc_0: dwmmc0@12200000 { |
228 | compatible = "samsung,exynos5250-dw-mshc"; | 232 | compatible = "samsung,exynos5250-dw-mshc"; |
229 | reg = <0x12200000 0x1000>; | 233 | reg = <0x12200000 0x1000>; |
230 | interrupts = <0 75 0>; | 234 | interrupts = <0 75 0>; |
@@ -232,7 +236,7 @@ | |||
232 | #size-cells = <0>; | 236 | #size-cells = <0>; |
233 | }; | 237 | }; |
234 | 238 | ||
235 | dwmmc1@12210000 { | 239 | dwmmc_1: dwmmc1@12210000 { |
236 | compatible = "samsung,exynos5250-dw-mshc"; | 240 | compatible = "samsung,exynos5250-dw-mshc"; |
237 | reg = <0x12210000 0x1000>; | 241 | reg = <0x12210000 0x1000>; |
238 | interrupts = <0 76 0>; | 242 | interrupts = <0 76 0>; |
@@ -240,7 +244,7 @@ | |||
240 | #size-cells = <0>; | 244 | #size-cells = <0>; |
241 | }; | 245 | }; |
242 | 246 | ||
243 | dwmmc2@12220000 { | 247 | dwmmc_2: dwmmc2@12220000 { |
244 | compatible = "samsung,exynos5250-dw-mshc"; | 248 | compatible = "samsung,exynos5250-dw-mshc"; |
245 | reg = <0x12220000 0x1000>; | 249 | reg = <0x12220000 0x1000>; |
246 | interrupts = <0 77 0>; | 250 | interrupts = <0 77 0>; |
@@ -248,7 +252,7 @@ | |||
248 | #size-cells = <0>; | 252 | #size-cells = <0>; |
249 | }; | 253 | }; |
250 | 254 | ||
251 | dwmmc3@12230000 { | 255 | dwmmc_3: dwmmc3@12230000 { |
252 | compatible = "samsung,exynos5250-dw-mshc"; | 256 | compatible = "samsung,exynos5250-dw-mshc"; |
253 | reg = <0x12230000 0x1000>; | 257 | reg = <0x12230000 0x1000>; |
254 | interrupts = <0 78 0>; | 258 | interrupts = <0 78 0>; |
diff --git a/arch/arm/mach-exynos/mach-exynos5-dt.c b/arch/arm/mach-exynos/mach-exynos5-dt.c index 28146f2f71dc..25f464cf7979 100644 --- a/arch/arm/mach-exynos/mach-exynos5-dt.c +++ b/arch/arm/mach-exynos/mach-exynos5-dt.c | |||
@@ -52,6 +52,16 @@ static const struct of_dev_auxdata exynos5250_auxdata_lookup[] __initconst = { | |||
52 | "s3c2440-i2c.1", NULL), | 52 | "s3c2440-i2c.1", NULL), |
53 | OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS5_PA_IIC(2), | 53 | OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS5_PA_IIC(2), |
54 | "s3c2440-i2c.2", NULL), | 54 | "s3c2440-i2c.2", NULL), |
55 | OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS5_PA_IIC(3), | ||
56 | "s3c2440-i2c.3", NULL), | ||
57 | OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS5_PA_IIC(4), | ||
58 | "s3c2440-i2c.4", NULL), | ||
59 | OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS5_PA_IIC(5), | ||
60 | "s3c2440-i2c.5", NULL), | ||
61 | OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS5_PA_IIC(6), | ||
62 | "s3c2440-i2c.6", NULL), | ||
63 | OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS5_PA_IIC(7), | ||
64 | "s3c2440-i2c.7", NULL), | ||
55 | OF_DEV_AUXDATA("samsung,s3c2440-hdmiphy-i2c", EXYNOS5_PA_IIC(8), | 65 | OF_DEV_AUXDATA("samsung,s3c2440-hdmiphy-i2c", EXYNOS5_PA_IIC(8), |
56 | "s3c2440-hdmiphy-i2c", NULL), | 66 | "s3c2440-hdmiphy-i2c", NULL), |
57 | OF_DEV_AUXDATA("samsung,exynos5250-dw-mshc", EXYNOS5_PA_DWMCI0, | 67 | OF_DEV_AUXDATA("samsung,exynos5250-dw-mshc", EXYNOS5_PA_DWMCI0, |
diff --git a/arch/arm/mach-exynos/pm_domains.c b/arch/arm/mach-exynos/pm_domains.c index c0bc83a7663e..9f1351de52f7 100644 --- a/arch/arm/mach-exynos/pm_domains.c +++ b/arch/arm/mach-exynos/pm_domains.c | |||
@@ -19,6 +19,8 @@ | |||
19 | #include <linux/pm_domain.h> | 19 | #include <linux/pm_domain.h> |
20 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
21 | #include <linux/of_address.h> | 21 | #include <linux/of_address.h> |
22 | #include <linux/of_platform.h> | ||
23 | #include <linux/sched.h> | ||
22 | 24 | ||
23 | #include <mach/regs-pmu.h> | 25 | #include <mach/regs-pmu.h> |
24 | #include <plat/devs.h> | 26 | #include <plat/devs.h> |
@@ -83,12 +85,88 @@ static struct exynos_pm_domain PD = { \ | |||
83 | } | 85 | } |
84 | 86 | ||
85 | #ifdef CONFIG_OF | 87 | #ifdef CONFIG_OF |
88 | static void exynos_add_device_to_domain(struct exynos_pm_domain *pd, | ||
89 | struct device *dev) | ||
90 | { | ||
91 | int ret; | ||
92 | |||
93 | dev_dbg(dev, "adding to power domain %s\n", pd->pd.name); | ||
94 | |||
95 | while (1) { | ||
96 | ret = pm_genpd_add_device(&pd->pd, dev); | ||
97 | if (ret != -EAGAIN) | ||
98 | break; | ||
99 | cond_resched(); | ||
100 | } | ||
101 | |||
102 | pm_genpd_dev_need_restore(dev, true); | ||
103 | } | ||
104 | |||
105 | static void exynos_remove_device_from_domain(struct device *dev) | ||
106 | { | ||
107 | struct generic_pm_domain *genpd = dev_to_genpd(dev); | ||
108 | int ret; | ||
109 | |||
110 | dev_dbg(dev, "removing from power domain %s\n", genpd->name); | ||
111 | |||
112 | while (1) { | ||
113 | ret = pm_genpd_remove_device(genpd, dev); | ||
114 | if (ret != -EAGAIN) | ||
115 | break; | ||
116 | cond_resched(); | ||
117 | } | ||
118 | } | ||
119 | |||
120 | static void exynos_read_domain_from_dt(struct device *dev) | ||
121 | { | ||
122 | struct platform_device *pd_pdev; | ||
123 | struct exynos_pm_domain *pd; | ||
124 | struct device_node *node; | ||
125 | |||
126 | node = of_parse_phandle(dev->of_node, "samsung,power-domain", 0); | ||
127 | if (!node) | ||
128 | return; | ||
129 | pd_pdev = of_find_device_by_node(node); | ||
130 | if (!pd_pdev) | ||
131 | return; | ||
132 | pd = platform_get_drvdata(pd_pdev); | ||
133 | exynos_add_device_to_domain(pd, dev); | ||
134 | } | ||
135 | |||
136 | static int exynos_pm_notifier_call(struct notifier_block *nb, | ||
137 | unsigned long event, void *data) | ||
138 | { | ||
139 | struct device *dev = data; | ||
140 | |||
141 | switch (event) { | ||
142 | case BUS_NOTIFY_BIND_DRIVER: | ||
143 | if (dev->of_node) | ||
144 | exynos_read_domain_from_dt(dev); | ||
145 | |||
146 | break; | ||
147 | |||
148 | case BUS_NOTIFY_UNBOUND_DRIVER: | ||
149 | exynos_remove_device_from_domain(dev); | ||
150 | |||
151 | break; | ||
152 | } | ||
153 | return NOTIFY_DONE; | ||
154 | } | ||
155 | |||
156 | static struct notifier_block platform_nb = { | ||
157 | .notifier_call = exynos_pm_notifier_call, | ||
158 | }; | ||
159 | |||
86 | static __init int exynos_pm_dt_parse_domains(void) | 160 | static __init int exynos_pm_dt_parse_domains(void) |
87 | { | 161 | { |
162 | struct platform_device *pdev; | ||
88 | struct device_node *np; | 163 | struct device_node *np; |
89 | 164 | ||
90 | for_each_compatible_node(np, NULL, "samsung,exynos4210-pd") { | 165 | for_each_compatible_node(np, NULL, "samsung,exynos4210-pd") { |
91 | struct exynos_pm_domain *pd; | 166 | struct exynos_pm_domain *pd; |
167 | int on; | ||
168 | |||
169 | pdev = of_find_device_by_node(np); | ||
92 | 170 | ||
93 | pd = kzalloc(sizeof(*pd), GFP_KERNEL); | 171 | pd = kzalloc(sizeof(*pd), GFP_KERNEL); |
94 | if (!pd) { | 172 | if (!pd) { |
@@ -97,15 +175,22 @@ static __init int exynos_pm_dt_parse_domains(void) | |||
97 | return -ENOMEM; | 175 | return -ENOMEM; |
98 | } | 176 | } |
99 | 177 | ||
100 | if (of_get_property(np, "samsung,exynos4210-pd-off", NULL)) | 178 | pd->pd.name = kstrdup(np->name, GFP_KERNEL); |
101 | pd->is_off = true; | 179 | pd->name = pd->pd.name; |
102 | pd->name = np->name; | ||
103 | pd->base = of_iomap(np, 0); | 180 | pd->base = of_iomap(np, 0); |
104 | pd->pd.power_off = exynos_pd_power_off; | 181 | pd->pd.power_off = exynos_pd_power_off; |
105 | pd->pd.power_on = exynos_pd_power_on; | 182 | pd->pd.power_on = exynos_pd_power_on; |
106 | pd->pd.of_node = np; | 183 | pd->pd.of_node = np; |
107 | pm_genpd_init(&pd->pd, NULL, false); | 184 | |
185 | platform_set_drvdata(pdev, pd); | ||
186 | |||
187 | on = __raw_readl(pd->base + 0x4) & S5P_INT_LOCAL_PWR_EN; | ||
188 | |||
189 | pm_genpd_init(&pd->pd, NULL, !on); | ||
108 | } | 190 | } |
191 | |||
192 | bus_register_notifier(&platform_bus_type, &platform_nb); | ||
193 | |||
109 | return 0; | 194 | return 0; |
110 | } | 195 | } |
111 | #else | 196 | #else |