aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/media/s5p-mfc.txt21
-rw-r--r--Documentation/devicetree/bindings/usb/exynos-usb.txt40
-rw-r--r--arch/arm/boot/dts/Makefile3
-rw-r--r--arch/arm/boot/dts/cros5250-common.dtsi138
-rw-r--r--arch/arm/boot/dts/exynos4.dtsi8
-rw-r--r--arch/arm/boot/dts/exynos4210-origen.dts6
-rw-r--r--arch/arm/boot/dts/exynos4210-smdkv310.dts6
-rw-r--r--arch/arm/boot/dts/exynos4412-odroidx.dts97
-rw-r--r--arch/arm/boot/dts/exynos4412-origen.dts418
-rw-r--r--arch/arm/boot/dts/exynos4412-smdk4412.dts13
-rw-r--r--arch/arm/boot/dts/exynos5250-arndale.dts122
-rw-r--r--arch/arm/boot/dts/exynos5250-smdk5250.dts13
-rw-r--r--arch/arm/boot/dts/exynos5250-snow.dts4
-rw-r--r--arch/arm/boot/dts/exynos5250.dtsi42
-rw-r--r--arch/arm/boot/dts/exynos5440-ssdk5440.dts16
-rw-r--r--arch/arm/boot/dts/exynos5440.dtsi42
-rw-r--r--arch/arm/mach-exynos/Kconfig2
-rw-r--r--arch/arm/mach-exynos/mach-exynos4-dt.c17
-rw-r--r--arch/arm/mach-exynos/mach-exynos5-dt.c1
19 files changed, 968 insertions, 41 deletions
diff --git a/Documentation/devicetree/bindings/media/s5p-mfc.txt b/Documentation/devicetree/bindings/media/s5p-mfc.txt
index 67ec3d4ccc7f..bf0182d8da25 100644
--- a/Documentation/devicetree/bindings/media/s5p-mfc.txt
+++ b/Documentation/devicetree/bindings/media/s5p-mfc.txt
@@ -21,3 +21,24 @@ Required properties:
21 21
22 - samsung,mfc-l : Base address of the second memory bank used by MFC 22 - samsung,mfc-l : Base address of the second memory bank used by MFC
23 for DMA contiguous memory allocation and its size. 23 for DMA contiguous memory allocation and its size.
24
25Optional properties:
26 - samsung,power-domain : power-domain property defined with a phandle
27 to respective power domain.
28
29Example:
30SoC specific DT entry:
31
32mfc: codec@13400000 {
33 compatible = "samsung,mfc-v5";
34 reg = <0x13400000 0x10000>;
35 interrupts = <0 94 0>;
36 samsung,power-domain = <&pd_mfc>;
37};
38
39Board specific DT entry:
40
41codec@13400000 {
42 samsung,mfc-r = <0x43000000 0x800000>;
43 samsung,mfc-l = <0x51000000 0x800000>;
44};
diff --git a/Documentation/devicetree/bindings/usb/exynos-usb.txt b/Documentation/devicetree/bindings/usb/exynos-usb.txt
new file mode 100644
index 000000000000..f66fcddba46f
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/exynos-usb.txt
@@ -0,0 +1,40 @@
1Samsung Exynos SoC USB controller
2
3The USB devices interface with USB controllers on Exynos SOCs.
4The device node has following properties.
5
6EHCI
7Required properties:
8 - compatible: should be "samsung,exynos4210-ehci" for USB 2.0
9 EHCI controller in host mode.
10 - reg: physical base address of the controller and length of memory mapped
11 region.
12 - interrupts: interrupt number to the cpu.
13
14Optional properties:
15 - samsung,vbus-gpio: if present, specifies the GPIO that
16 needs to be pulled up for the bus to be powered.
17
18Example:
19
20 usb@12110000 {
21 compatible = "samsung,exynos4210-ehci";
22 reg = <0x12110000 0x100>;
23 interrupts = <0 71 0>;
24 samsung,vbus-gpio = <&gpx2 6 1 3 3>;
25 };
26
27OHCI
28Required properties:
29 - compatible: should be "samsung,exynos4210-ohci" for USB 2.0
30 OHCI companion controller in host mode.
31 - reg: physical base address of the controller and length of memory mapped
32 region.
33 - interrupts: interrupt number to the cpu.
34
35Example:
36 usb@12120000 {
37 compatible = "samsung,exynos4210-ohci";
38 reg = <0x12120000 0x100>;
39 interrupts = <0 71 0>;
40 };
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 9c6255884cbb..d3cd880d70b3 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -42,7 +42,10 @@ dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \
42dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \ 42dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
43 exynos4210-smdkv310.dtb \ 43 exynos4210-smdkv310.dtb \
44 exynos4210-trats.dtb \ 44 exynos4210-trats.dtb \
45 exynos4412-odroidx.dtb \
45 exynos4412-smdk4412.dtb \ 46 exynos4412-smdk4412.dtb \
47 exynos4412-origen.dtb \
48 exynos5250-arndale.dtb \
46 exynos5250-smdk5250.dtb \ 49 exynos5250-smdk5250.dtb \
47 exynos5250-snow.dtb \ 50 exynos5250-snow.dtb \
48 exynos5440-ssdk5440.dtb 51 exynos5440-ssdk5440.dtb
diff --git a/arch/arm/boot/dts/cros5250-common.dtsi b/arch/arm/boot/dts/cros5250-common.dtsi
index 46c098017036..62eceb4f0d3f 100644
--- a/arch/arm/boot/dts/cros5250-common.dtsi
+++ b/arch/arm/boot/dts/cros5250-common.dtsi
@@ -24,6 +24,144 @@
24 samsung,i2c-max-bus-freq = <378000>; 24 samsung,i2c-max-bus-freq = <378000>;
25 gpios = <&gpb3 0 2 3 0>, 25 gpios = <&gpb3 0 2 3 0>,
26 <&gpb3 1 2 3 0>; 26 <&gpb3 1 2 3 0>;
27
28 max77686@09 {
29 compatible = "maxim,max77686";
30 reg = <0x09>;
31
32 voltage-regulators {
33 ldo1_reg: LDO1 {
34 regulator-name = "P1.0V_LDO_OUT1";
35 regulator-min-microvolt = <1000000>;
36 regulator-max-microvolt = <1000000>;
37 regulator-always-on;
38 };
39
40 ldo2_reg: LDO2 {
41 regulator-name = "P1.8V_LDO_OUT2";
42 regulator-min-microvolt = <1800000>;
43 regulator-max-microvolt = <1800000>;
44 regulator-always-on;
45 };
46
47 ldo3_reg: LDO3 {
48 regulator-name = "P1.8V_LDO_OUT3";
49 regulator-min-microvolt = <1800000>;
50 regulator-max-microvolt = <1800000>;
51 regulator-always-on;
52 };
53
54 ldo7_reg: LDO7 {
55 regulator-name = "P1.1V_LDO_OUT7";
56 regulator-min-microvolt = <1100000>;
57 regulator-max-microvolt = <1100000>;
58 regulator-always-on;
59 };
60
61 ldo8_reg: LDO8 {
62 regulator-name = "P1.0V_LDO_OUT8";
63 regulator-min-microvolt = <1000000>;
64 regulator-max-microvolt = <1000000>;
65 regulator-always-on;
66 };
67
68 ldo10_reg: LDO10 {
69 regulator-name = "P1.8V_LDO_OUT10";
70 regulator-min-microvolt = <1800000>;
71 regulator-max-microvolt = <1800000>;
72 regulator-always-on;
73 };
74
75 ldo12_reg: LDO12 {
76 regulator-name = "P3.0V_LDO_OUT12";
77 regulator-min-microvolt = <3000000>;
78 regulator-max-microvolt = <3000000>;
79 regulator-always-on;
80 };
81
82 ldo14_reg: LDO14 {
83 regulator-name = "P1.8V_LDO_OUT14";
84 regulator-min-microvolt = <1800000>;
85 regulator-max-microvolt = <1800000>;
86 regulator-always-on;
87 };
88
89 ldo15_reg: LDO15 {
90 regulator-name = "P1.0V_LDO_OUT15";
91 regulator-min-microvolt = <1000000>;
92 regulator-max-microvolt = <1000000>;
93 regulator-always-on;
94 };
95
96 ldo16_reg: LDO16 {
97 regulator-name = "P1.8V_LDO_OUT16";
98 regulator-min-microvolt = <1800000>;
99 regulator-max-microvolt = <1800000>;
100 regulator-always-on;
101 };
102
103 buck1_reg: BUCK1 {
104 regulator-name = "vdd_mif";
105 regulator-min-microvolt = <950000>;
106 regulator-max-microvolt = <1300000>;
107 regulator-always-on;
108 regulator-boot-on;
109 };
110
111 buck2_reg: BUCK2 {
112 regulator-name = "vdd_arm";
113 regulator-min-microvolt = <850000>;
114 regulator-max-microvolt = <1350000>;
115 regulator-always-on;
116 regulator-boot-on;
117 };
118
119 buck3_reg: BUCK3 {
120 regulator-name = "vdd_int";
121 regulator-min-microvolt = <900000>;
122 regulator-max-microvolt = <1200000>;
123 regulator-always-on;
124 regulator-boot-on;
125 };
126
127 buck4_reg: BUCK4 {
128 regulator-name = "vdd_g3d";
129 regulator-min-microvolt = <850000>;
130 regulator-max-microvolt = <1300000>;
131 regulator-always-on;
132 regulator-boot-on;
133 };
134
135 buck5_reg: BUCK5 {
136 regulator-name = "P1.8V_BUCK_OUT5";
137 regulator-min-microvolt = <1800000>;
138 regulator-max-microvolt = <1800000>;
139 regulator-always-on;
140 regulator-boot-on;
141 };
142
143 buck6_reg: BUCK6 {
144 regulator-name = "P1.35V_BUCK_OUT6";
145 regulator-min-microvolt = <1350000>;
146 regulator-max-microvolt = <1350000>;
147 regulator-always-on;
148 };
149
150 buck7_reg: BUCK7 {
151 regulator-name = "P2.0V_BUCK_OUT7";
152 regulator-min-microvolt = <2000000>;
153 regulator-max-microvolt = <2000000>;
154 regulator-always-on;
155 };
156
157 buck8_reg: BUCK8 {
158 regulator-name = "P2.85V_BUCK_OUT8";
159 regulator-min-microvolt = <2850000>;
160 regulator-max-microvolt = <2850000>;
161 regulator-always-on;
162 };
163 };
164 };
27 }; 165 };
28 166
29 i2c@12C70000 { 167 i2c@12C70000 {
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index e1347fceb5bc..6581bb2252e7 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -131,6 +131,14 @@
131 status = "disabled"; 131 status = "disabled";
132 }; 132 };
133 133
134 mfc: codec@13400000 {
135 compatible = "samsung,mfc-v5";
136 reg = <0x13400000 0x10000>;
137 interrupts = <0 94 0>;
138 samsung,power-domain = <&pd_mfc>;
139 status = "disabled";
140 };
141
134 serial@13800000 { 142 serial@13800000 {
135 compatible = "samsung,exynos4210-uart"; 143 compatible = "samsung,exynos4210-uart";
136 reg = <0x13800000 0x100>; 144 reg = <0x13800000 0x100>;
diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts
index f2710018e84e..052606b52ec7 100644
--- a/arch/arm/boot/dts/exynos4210-origen.dts
+++ b/arch/arm/boot/dts/exynos4210-origen.dts
@@ -57,6 +57,12 @@
57 status = "okay"; 57 status = "okay";
58 }; 58 };
59 59
60 codec@13400000 {
61 samsung,mfc-r = <0x43000000 0x800000>;
62 samsung,mfc-l = <0x51000000 0x800000>;
63 status = "okay";
64 };
65
60 serial@13800000 { 66 serial@13800000 {
61 status = "okay"; 67 status = "okay";
62 }; 68 };
diff --git a/arch/arm/boot/dts/exynos4210-smdkv310.dts b/arch/arm/boot/dts/exynos4210-smdkv310.dts
index f63490707f3a..2b1e03a4c0d0 100644
--- a/arch/arm/boot/dts/exynos4210-smdkv310.dts
+++ b/arch/arm/boot/dts/exynos4210-smdkv310.dts
@@ -43,6 +43,12 @@
43 status = "okay"; 43 status = "okay";
44 }; 44 };
45 45
46 codec@13400000 {
47 samsung,mfc-r = <0x43000000 0x800000>;
48 samsung,mfc-l = <0x51000000 0x800000>;
49 status = "okay";
50 };
51
46 serial@13800000 { 52 serial@13800000 {
47 status = "okay"; 53 status = "okay";
48 }; 54 };
diff --git a/arch/arm/boot/dts/exynos4412-odroidx.dts b/arch/arm/boot/dts/exynos4412-odroidx.dts
new file mode 100644
index 000000000000..0084d9548bbf
--- /dev/null
+++ b/arch/arm/boot/dts/exynos4412-odroidx.dts
@@ -0,0 +1,97 @@
1/*
2 * Hardkernel's Exynos4412 based ODROID-X board device tree source
3 *
4 * Copyright (c) 2012 Dongjin Kim <tobetter@gmail.com>
5 *
6 * Device tree source file for Hardkernel's ODROID-X board which is based on
7 * Samsung's Exynos4412 SoC.
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
12*/
13
14/dts-v1/;
15/include/ "exynos4412.dtsi"
16
17/ {
18 model = "Hardkernel ODROID-X board based on Exynos4412";
19 compatible = "hardkernel,odroid-x", "samsung,exynos4412";
20
21 memory {
22 reg = <0x40000000 0x40000000>;
23 };
24
25 leds {
26 compatible = "gpio-leds";
27 led1 {
28 label = "led1:heart";
29 gpios = <&gpc1 0 1>;
30 default-state = "on";
31 linux,default-trigger = "heartbeat";
32 };
33 led2 {
34 label = "led2:mmc0";
35 gpios = <&gpc1 2 1>;
36 default-state = "on";
37 linux,default-trigger = "mmc0";
38 };
39 };
40
41 mshc@12550000 {
42 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
43 pinctrl-names = "default";
44 status = "okay";
45
46 num-slots = <1>;
47 supports-highspeed;
48 broken-cd;
49 fifo-depth = <0x80>;
50 card-detect-delay = <200>;
51 samsung,dw-mshc-ciu-div = <3>;
52 samsung,dw-mshc-sdr-timing = <2 3>;
53 samsung,dw-mshc-ddr-timing = <1 2>;
54
55 slot@0 {
56 reg = <0>;
57 bus-width = <8>;
58 };
59 };
60
61 regulator_p3v3 {
62 compatible = "regulator-fixed";
63 regulator-name = "p3v3_en";
64 regulator-min-microvolt = <3300000>;
65 regulator-max-microvolt = <3300000>;
66 gpio = <&gpa1 1 1>;
67 enable-active-high;
68 regulator-boot-on;
69 };
70
71 rtc@10070000 {
72 status = "okay";
73 };
74
75 sdhci@12530000 {
76 bus-width = <4>;
77 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
78 pinctrl-names = "default";
79 status = "okay";
80 };
81
82 serial@13800000 {
83 status = "okay";
84 };
85
86 serial@13810000 {
87 status = "okay";
88 };
89
90 serial@13820000 {
91 status = "okay";
92 };
93
94 serial@13830000 {
95 status = "okay";
96 };
97};
diff --git a/arch/arm/boot/dts/exynos4412-origen.dts b/arch/arm/boot/dts/exynos4412-origen.dts
new file mode 100644
index 000000000000..31e14c4b9ac3
--- /dev/null
+++ b/arch/arm/boot/dts/exynos4412-origen.dts
@@ -0,0 +1,418 @@
1/*
2 * Insignal's Exynos4412 based Origen board device tree source
3 *
4 * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 *
7 * Device tree source file for Insignal's Origen board which is based on
8 * Samsung's Exynos4412 SoC.
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
13*/
14
15/dts-v1/;
16/include/ "exynos4412.dtsi"
17
18/ {
19 model = "Insignal Origen evaluation board based on Exynos4412";
20 compatible = "insignal,origen4412", "samsung,exynos4412";
21
22 memory {
23 reg = <0x40000000 0x40000000>;
24 };
25
26 chosen {
27 bootargs ="console=ttySAC2,115200";
28 };
29
30 mmc_reg: voltage-regulator {
31 compatible = "regulator-fixed";
32 regulator-name = "VMEM_VDD_2.8V";
33 regulator-min-microvolt = <2800000>;
34 regulator-max-microvolt = <2800000>;
35 gpio = <&gpx1 1 0>;
36 enable-active-high;
37 };
38
39 sdhci@12530000 {
40 bus-width = <4>;
41 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>;
42 pinctrl-names = "default";
43 vmmc-supply = <&mmc_reg>;
44 status = "okay";
45 };
46
47 mshc@12550000 {
48 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
49 pinctrl-names = "default";
50 status = "okay";
51
52 num-slots = <1>;
53 supports-highspeed;
54 broken-cd;
55 fifo-depth = <0x80>;
56 card-detect-delay = <200>;
57 samsung,dw-mshc-ciu-div = <3>;
58 samsung,dw-mshc-sdr-timing = <2 3>;
59 samsung,dw-mshc-ddr-timing = <1 2>;
60
61 slot@0 {
62 reg = <0>;
63 bus-width = <8>;
64 };
65 };
66
67 codec@13400000 {
68 samsung,mfc-r = <0x43000000 0x800000>;
69 samsung,mfc-l = <0x51000000 0x800000>;
70 status = "okay";
71 };
72
73 serial@13800000 {
74 status = "okay";
75 };
76
77 serial@13810000 {
78 status = "okay";
79 };
80
81 serial@13820000 {
82 status = "okay";
83 };
84
85 serial@13830000 {
86 status = "okay";
87 };
88
89 i2c@13860000 {
90 #address-cells = <1>;
91 #size-cells = <0>;
92 samsung,i2c-sda-delay = <100>;
93 samsung,i2c-max-bus-freq = <20000>;
94 pinctrl-0 = <&i2c0_bus>;
95 pinctrl-names = "default";
96 status = "okay";
97
98 s5m8767_pmic@66 {
99 compatible = "samsung,s5m8767-pmic";
100 reg = <0x66>;
101
102 s5m8767,pmic-buck-default-dvs-idx = <3>;
103
104 s5m8767,pmic-buck-dvs-gpios = <&gpx2 3 0>,
105 <&gpx2 4 0>,
106 <&gpx2 5 0>;
107
108 s5m8767,pmic-buck-ds-gpios = <&gpm3 5 0>,
109 <&gpm3 6 0>,
110 <&gpm3 7 0>;
111
112 s5m8767,pmic-buck2-dvs-voltage = <1250000>, <1200000>,
113 <1200000>, <1200000>,
114 <1200000>, <1200000>,
115 <1200000>, <1200000>;
116
117 s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>,
118 <1100000>, <1100000>,
119 <1100000>, <1100000>,
120 <1100000>, <1100000>;
121
122 s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>,
123 <1200000>, <1200000>,
124 <1200000>, <1200000>,
125 <1200000>, <1200000>;
126
127 regulators {
128 ldo1_reg: LDO1 {
129 regulator-name = "VDD_ALIVE";
130 regulator-min-microvolt = <1100000>;
131 regulator-max-microvolt = <1100000>;
132 regulator-always-on;
133 regulator-boot-on;
134 op_mode = <1>; /* Normal Mode */
135 };
136
137 ldo2_reg: LDO2 {
138 regulator-name = "VDDQ_M12";
139 regulator-min-microvolt = <1200000>;
140 regulator-max-microvolt = <1200000>;
141 regulator-always-on;
142 op_mode = <1>; /* Normal Mode */
143 };
144
145 ldo3_reg: LDO3 {
146 regulator-name = "VDDIOAP_18";
147 regulator-min-microvolt = <1800000>;
148 regulator-max-microvolt = <1800000>;
149 regulator-always-on;
150 op_mode = <1>; /* Normal Mode */
151 };
152
153 ldo4_reg: LDO4 {
154 regulator-name = "VDDQ_PRE";
155 regulator-min-microvolt = <1800000>;
156 regulator-max-microvolt = <1800000>;
157 regulator-always-on;
158 op_mode = <1>; /* Normal Mode */
159 };
160
161 ldo5_reg: LDO5 {
162 regulator-name = "VDD18_2M";
163 regulator-min-microvolt = <1800000>;
164 regulator-max-microvolt = <1800000>;
165 regulator-always-on;
166 op_mode = <1>; /* Normal Mode */
167 };
168
169 ldo6_reg: LDO6 {
170 regulator-name = "VDD10_MPLL";
171 regulator-min-microvolt = <1000000>;
172 regulator-max-microvolt = <1000000>;
173 regulator-always-on;
174 op_mode = <1>; /* Normal Mode */
175 };
176
177 ldo7_reg: LDO7 {
178 regulator-name = "VDD10_XPLL";
179 regulator-min-microvolt = <1000000>;
180 regulator-max-microvolt = <1000000>;
181 regulator-always-on;
182 op_mode = <1>; /* Normal Mode */
183 };
184
185 ldo8_reg: LDO8 {
186 regulator-name = "VDD10_MIPI";
187 regulator-min-microvolt = <1000000>;
188 regulator-max-microvolt = <1000000>;
189 regulator-always-on;
190 op_mode = <1>; /* Normal Mode */
191 };
192
193 ldo9_reg: LDO9 {
194 regulator-name = "VDD33_LCD";
195 regulator-min-microvolt = <3300000>;
196 regulator-max-microvolt = <3300000>;
197 regulator-always-on;
198 op_mode = <1>; /* Normal Mode */
199 };
200
201 ldo10_reg: LDO10 {
202 regulator-name = "VDD18_MIPI";
203 regulator-min-microvolt = <1800000>;
204 regulator-max-microvolt = <1800000>;
205 regulator-always-on;
206 op_mode = <1>; /* Normal Mode */
207 };
208
209 ldo11_reg: LDO11 {
210 regulator-name = "VDD18_ABB1";
211 regulator-min-microvolt = <1800000>;
212 regulator-max-microvolt = <1800000>;
213 regulator-always-on;
214 op_mode = <1>; /* Normal Mode */
215 };
216
217 ldo12_reg: LDO12 {
218 regulator-name = "VDD33_UOTG";
219 regulator-min-microvolt = <3300000>;
220 regulator-max-microvolt = <3300000>;
221 regulator-always-on;
222 op_mode = <1>; /* Normal Mode */
223 };
224
225 ldo13_reg: LDO13 {
226 regulator-name = "VDDIOPERI_18";
227 regulator-min-microvolt = <1800000>;
228 regulator-max-microvolt = <1800000>;
229 regulator-always-on;
230 op_mode = <1>; /* Normal Mode */
231 };
232
233 ldo14_reg: LDO14 {
234 regulator-name = "VDD18_ABB02";
235 regulator-min-microvolt = <1800000>;
236 regulator-max-microvolt = <1800000>;
237 regulator-always-on;
238 op_mode = <1>; /* Normal Mode */
239 };
240
241 ldo15_reg: LDO15 {
242 regulator-name = "VDD10_USH";
243 regulator-min-microvolt = <1000000>;
244 regulator-max-microvolt = <1000000>;
245 regulator-always-on;
246 op_mode = <1>; /* Normal Mode */
247 };
248
249 ldo16_reg: LDO16 {
250 regulator-name = "VDD18_HSIC";
251 regulator-min-microvolt = <1800000>;
252 regulator-max-microvolt = <1800000>;
253 regulator-always-on;
254 op_mode = <1>; /* Normal Mode */
255 };
256
257 ldo17_reg: LDO17 {
258 regulator-name = "VDDIOAP_MMC012_28";
259 regulator-min-microvolt = <2800000>;
260 regulator-max-microvolt = <2800000>;
261 regulator-always-on;
262 op_mode = <1>; /* Normal Mode */
263 };
264
265 ldo18_reg: LDO18 {
266 regulator-name = "VDDIOPERI_28";
267 regulator-min-microvolt = <2800000>;
268 regulator-max-microvolt = <2800000>;
269 regulator-always-on;
270 op_mode = <1>; /* Normal Mode */
271 };
272
273 ldo19_reg: LDO19 {
274 regulator-name = "DVDD25";
275 regulator-min-microvolt = <2500000>;
276 regulator-max-microvolt = <2500000>;
277 regulator-always-on;
278 op_mode = <1>; /* Normal Mode */
279 };
280
281 ldo20_reg: LDO20 {
282 regulator-name = "VDD28_CAM";
283 regulator-min-microvolt = <2800000>;
284 regulator-max-microvolt = <2800000>;
285 regulator-always-on;
286 op_mode = <1>; /* Normal Mode */
287 };
288
289 ldo21_reg: LDO21 {
290 regulator-name = "VDD28_AF";
291 regulator-min-microvolt = <2800000>;
292 regulator-max-microvolt = <2800000>;
293 regulator-always-on;
294 op_mode = <1>; /* Normal Mode */
295 };
296
297 ldo22_reg: LDO22 {
298 regulator-name = "VDDA28_2M";
299 regulator-min-microvolt = <2800000>;
300 regulator-max-microvolt = <2800000>;
301 regulator-always-on;
302 op_mode = <1>; /* Normal Mode */
303 };
304
305 ldo23_reg: LDO23 {
306 regulator-name = "VDD28_TF";
307 regulator-min-microvolt = <2800000>;
308 regulator-max-microvolt = <2800000>;
309 regulator-always-on;
310 op_mode = <1>; /* Normal Mode */
311 };
312
313 ldo24_reg: LDO24 {
314 regulator-name = "VDD33_A31";
315 regulator-min-microvolt = <3300000>;
316 regulator-max-microvolt = <3300000>;
317 regulator-always-on;
318 op_mode = <1>; /* Normal Mode */
319 };
320
321 ldo25_reg: LDO25 {
322 regulator-name = "VDD18_CAM";
323 regulator-min-microvolt = <1800000>;
324 regulator-max-microvolt = <1800000>;
325 regulator-always-on;
326 op_mode = <1>; /* Normal Mode */
327 };
328
329 ldo26_reg: LDO26 {
330 regulator-name = "VDD18_A31";
331 regulator-min-microvolt = <1800000>;
332 regulator-max-microvolt = <1800000>;
333 regulator-always-on;
334 op_mode = <1>; /* Normal Mode */
335 };
336
337 ldo27_reg: LDO27 {
338 regulator-name = "GPS_1V8";
339 regulator-min-microvolt = <1800000>;
340 regulator-max-microvolt = <1800000>;
341 regulator-always-on;
342 op_mode = <1>; /* Normal Mode */
343 };
344
345 ldo28_reg: LDO28 {
346 regulator-name = "DVDD12";
347 regulator-min-microvolt = <1200000>;
348 regulator-max-microvolt = <1200000>;
349 regulator-always-on;
350 op_mode = <1>; /* Normal Mode */
351 };
352
353 buck1_reg: BUCK1 {
354 regulator-name = "vdd_mif";
355 regulator-min-microvolt = <950000>;
356 regulator-max-microvolt = <1100000>;
357 regulator-always-on;
358 regulator-boot-on;
359 op_mode = <1>; /* Normal Mode */
360 };
361
362 buck2_reg: BUCK2 {
363 regulator-name = "vdd_arm";
364 regulator-min-microvolt = <925000>;
365 regulator-max-microvolt = <1300000>;
366 regulator-always-on;
367 regulator-boot-on;
368 op_mode = <1>; /* Normal Mode */
369 };
370
371 buck3_reg: BUCK3 {
372 regulator-name = "vdd_int";
373 regulator-min-microvolt = <900000>;
374 regulator-max-microvolt = <1200000>;
375 regulator-always-on;
376 regulator-boot-on;
377 op_mode = <1>; /* Normal Mode */
378 };
379
380 buck4_reg: BUCK4 {
381 regulator-name = "vdd_g3d";
382 regulator-min-microvolt = <750000>;
383 regulator-max-microvolt = <1500000>;
384 regulator-always-on;
385 regulator-boot-on;
386 op_mode = <1>; /* Normal Mode */
387 };
388
389 buck5_reg: BUCK5 {
390 regulator-name = "vdd_m12";
391 regulator-min-microvolt = <750000>;
392 regulator-max-microvolt = <1500000>;
393 regulator-always-on;
394 regulator-boot-on;
395 op_mode = <1>; /* Normal Mode */
396 };
397
398 buck6_reg: BUCK6 {
399 regulator-name = "vdd12_5m";
400 regulator-min-microvolt = <750000>;
401 regulator-max-microvolt = <1500000>;
402 regulator-always-on;
403 regulator-boot-on;
404 op_mode = <1>; /* Normal Mode */
405 };
406
407 buck9_reg: BUCK9 {
408 regulator-name = "vddf28_emmc";
409 regulator-min-microvolt = <750000>;
410 regulator-max-microvolt = <3000000>;
411 regulator-always-on;
412 regulator-boot-on;
413 op_mode = <1>; /* Normal Mode */
414 };
415 };
416 };
417 };
418};
diff --git a/arch/arm/boot/dts/exynos4412-smdk4412.dts b/arch/arm/boot/dts/exynos4412-smdk4412.dts
index f05bf575cc45..6ae42765b613 100644
--- a/arch/arm/boot/dts/exynos4412-smdk4412.dts
+++ b/arch/arm/boot/dts/exynos4412-smdk4412.dts
@@ -27,6 +27,19 @@
27 bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc"; 27 bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc";
28 }; 28 };
29 29
30 sdhci@12530000 {
31 bus-width = <4>;
32 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>;
33 pinctrl-names = "default";
34 status = "okay";
35 };
36
37 codec@13400000 {
38 samsung,mfc-r = <0x43000000 0x800000>;
39 samsung,mfc-l = <0x51000000 0x800000>;
40 status = "okay";
41 };
42
30 serial@13800000 { 43 serial@13800000 {
31 status = "okay"; 44 status = "okay";
32 }; 45 };
diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts b/arch/arm/boot/dts/exynos5250-arndale.dts
new file mode 100644
index 000000000000..63572f9db51d
--- /dev/null
+++ b/arch/arm/boot/dts/exynos5250-arndale.dts
@@ -0,0 +1,122 @@
1/*
2 * Samsung's Exynos5250 based Arndale board device tree source
3 *
4 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10*/
11
12/dts-v1/;
13/include/ "exynos5250.dtsi"
14
15/ {
16 model = "Insignal Arndale evaluation board based on EXYNOS5250";
17 compatible = "insignal,arndale", "samsung,exynos5250";
18
19 memory {
20 reg = <0x40000000 0x80000000>;
21 };
22
23 chosen {
24 bootargs = "console=ttySAC2,115200";
25 };
26
27 i2c@12C60000 {
28 status = "disabled";
29 };
30
31 i2c@12C70000 {
32 status = "disabled";
33 };
34
35 i2c@12C80000 {
36 status = "disabled";
37 };
38
39 i2c@12C90000 {
40 status = "disabled";
41 };
42
43 i2c@12CA0000 {
44 status = "disabled";
45 };
46
47 i2c@12CB0000 {
48 status = "disabled";
49 };
50
51 i2c@12CC0000 {
52 status = "disabled";
53 };
54
55 i2c@12CD0000 {
56 status = "disabled";
57 };
58
59 i2c@121D0000 {
60 status = "disabled";
61 };
62
63 dwmmc_0: dwmmc0@12200000 {
64 num-slots = <1>;
65 supports-highspeed;
66 broken-cd;
67 fifo-depth = <0x80>;
68 card-detect-delay = <200>;
69 samsung,dw-mshc-ciu-div = <3>;
70 samsung,dw-mshc-sdr-timing = <2 3>;
71 samsung,dw-mshc-ddr-timing = <1 2>;
72
73 slot@0 {
74 reg = <0>;
75 bus-width = <8>;
76 gpios = <&gpc0 0 2 0 3>, <&gpc0 1 2 0 3>,
77 <&gpc0 3 2 3 3>, <&gpc0 4 2 3 3>,
78 <&gpc0 5 2 3 3>, <&gpc0 6 2 3 3>,
79 <&gpc1 0 2 3 3>, <&gpc1 1 2 3 3>,
80 <&gpc1 2 2 3 3>, <&gpc1 3 2 3 3>;
81 };
82 };
83
84 dwmmc_1: dwmmc1@12210000 {
85 status = "disabled";
86 };
87
88 dwmmc_2: dwmmc2@12220000 {
89 num-slots = <1>;
90 supports-highspeed;
91 fifo-depth = <0x80>;
92 card-detect-delay = <200>;
93 samsung,dw-mshc-ciu-div = <3>;
94 samsung,dw-mshc-sdr-timing = <2 3>;
95 samsung,dw-mshc-ddr-timing = <1 2>;
96
97 slot@0 {
98 reg = <0>;
99 bus-width = <4>;
100 samsung,cd-pinmux-gpio = <&gpc3 2 2 3 3>;
101 gpios = <&gpc3 0 2 0 3>, <&gpc3 1 2 0 3>,
102 <&gpc3 3 2 3 3>, <&gpc3 4 2 3 3>,
103 <&gpc3 5 2 3 3>, <&gpc3 6 2 3 3>;
104 };
105 };
106
107 dwmmc_3: dwmmc3@12230000 {
108 status = "disabled";
109 };
110
111 spi_0: spi@12d20000 {
112 status = "disabled";
113 };
114
115 spi_1: spi@12d30000 {
116 status = "disabled";
117 };
118
119 spi_2: spi@12d40000 {
120 status = "disabled";
121 };
122};
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts
index 1b8d4106d338..a8d7233866fa 100644
--- a/arch/arm/boot/dts/exynos5250-smdk5250.dts
+++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts
@@ -231,4 +231,17 @@
231 samsung,i2s-controller = <&i2s0>; 231 samsung,i2s-controller = <&i2s0>;
232 samsung,audio-codec = <&wm8994>; 232 samsung,audio-codec = <&wm8994>;
233 }; 233 };
234
235 usb@12110000 {
236 samsung,vbus-gpio = <&gpx2 6 1 3 3>;
237 };
238
239 dp-controller {
240 samsung,color-space = <0>;
241 samsung,dynamic-range = <0>;
242 samsung,ycbcr-coeff = <0>;
243 samsung,color-depth = <1>;
244 samsung,link-rate = <0x0a>;
245 samsung,lane-count = <4>;
246 };
234}; 247};
diff --git a/arch/arm/boot/dts/exynos5250-snow.dts b/arch/arm/boot/dts/exynos5250-snow.dts
index 17dd951c1cd2..47b6b847b4a5 100644
--- a/arch/arm/boot/dts/exynos5250-snow.dts
+++ b/arch/arm/boot/dts/exynos5250-snow.dts
@@ -40,4 +40,8 @@
40 <&gpc4 5 2 3 0>, <&gpc4 6 2 3 0>; 40 <&gpc4 5 2 3 0>, <&gpc4 6 2 3 0>;
41 }; 41 };
42 }; 42 };
43
44 usb@12110000 {
45 samsung,vbus-gpio = <&gpx1 1 1 3 3>;
46 };
43}; 47};
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
index b1ac73e21c80..37a90dd6a4d2 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -46,6 +46,16 @@
46 i2c8 = &i2c_8; 46 i2c8 = &i2c_8;
47 }; 47 };
48 48
49 pd_gsc: gsc-power-domain@0x10044000 {
50 compatible = "samsung,exynos4210-pd";
51 reg = <0x10044000 0x20>;
52 };
53
54 pd_mfc: mfc-power-domain@0x10044040 {
55 compatible = "samsung,exynos4210-pd";
56 reg = <0x10044040 0x20>;
57 };
58
49 gic:interrupt-controller@10481000 { 59 gic:interrupt-controller@10481000 {
50 compatible = "arm,cortex-a9-gic"; 60 compatible = "arm,cortex-a9-gic";
51 #interrupt-cells = <3>; 61 #interrupt-cells = <3>;
@@ -79,6 +89,7 @@
79 compatible = "samsung,mfc-v6"; 89 compatible = "samsung,mfc-v6";
80 reg = <0x11000000 0x10000>; 90 reg = <0x11000000 0x10000>;
81 interrupts = <0 96 0>; 91 interrupts = <0 96 0>;
92 samsung,power-domain = <&pd_mfc>;
82 }; 93 };
83 94
84 rtc { 95 rtc {
@@ -301,6 +312,18 @@
301 dma-names = "tx", "rx"; 312 dma-names = "tx", "rx";
302 }; 313 };
303 314
315 usb@12110000 {
316 compatible = "samsung,exynos4210-ehci";
317 reg = <0x12110000 0x100>;
318 interrupts = <0 71 0>;
319 };
320
321 usb@12120000 {
322 compatible = "samsung,exynos4210-ohci";
323 reg = <0x12120000 0x100>;
324 interrupts = <0 71 0>;
325 };
326
304 amba { 327 amba {
305 #address-cells = <1>; 328 #address-cells = <1>;
306 #size-cells = <1>; 329 #size-cells = <1>;
@@ -592,28 +615,33 @@
592 }; 615 };
593 }; 616 };
594 617
618
595 gsc_0: gsc@0x13e00000 { 619 gsc_0: gsc@0x13e00000 {
596 compatible = "samsung,exynos5-gsc"; 620 compatible = "samsung,exynos5-gsc";
597 reg = <0x13e00000 0x1000>; 621 reg = <0x13e00000 0x1000>;
598 interrupts = <0 85 0>; 622 interrupts = <0 85 0>;
623 samsung,power-domain = <&pd_gsc>;
599 }; 624 };
600 625
601 gsc_1: gsc@0x13e10000 { 626 gsc_1: gsc@0x13e10000 {
602 compatible = "samsung,exynos5-gsc"; 627 compatible = "samsung,exynos5-gsc";
603 reg = <0x13e10000 0x1000>; 628 reg = <0x13e10000 0x1000>;
604 interrupts = <0 86 0>; 629 interrupts = <0 86 0>;
630 samsung,power-domain = <&pd_gsc>;
605 }; 631 };
606 632
607 gsc_2: gsc@0x13e20000 { 633 gsc_2: gsc@0x13e20000 {
608 compatible = "samsung,exynos5-gsc"; 634 compatible = "samsung,exynos5-gsc";
609 reg = <0x13e20000 0x1000>; 635 reg = <0x13e20000 0x1000>;
610 interrupts = <0 87 0>; 636 interrupts = <0 87 0>;
637 samsung,power-domain = <&pd_gsc>;
611 }; 638 };
612 639
613 gsc_3: gsc@0x13e30000 { 640 gsc_3: gsc@0x13e30000 {
614 compatible = "samsung,exynos5-gsc"; 641 compatible = "samsung,exynos5-gsc";
615 reg = <0x13e30000 0x1000>; 642 reg = <0x13e30000 0x1000>;
616 interrupts = <0 88 0>; 643 interrupts = <0 88 0>;
644 samsung,power-domain = <&pd_gsc>;
617 }; 645 };
618 646
619 hdmi { 647 hdmi {
@@ -627,4 +655,18 @@
627 reg = <0x14450000 0x10000>; 655 reg = <0x14450000 0x10000>;
628 interrupts = <0 94 0>; 656 interrupts = <0 94 0>;
629 }; 657 };
658
659 dp-controller {
660 compatible = "samsung,exynos5-dp";
661 reg = <0x145b0000 0x1000>;
662 interrupts = <10 3>;
663 interrupt-parent = <&combiner>;
664 #address-cells = <1>;
665 #size-cells = <0>;
666
667 dptx-phy {
668 reg = <0x10040720>;
669 samsung,enable-mask = <1>;
670 };
671 };
630}; 672};
diff --git a/arch/arm/boot/dts/exynos5440-ssdk5440.dts b/arch/arm/boot/dts/exynos5440-ssdk5440.dts
index 81e2c964a900..ee60c57823ab 100644
--- a/arch/arm/boot/dts/exynos5440-ssdk5440.dts
+++ b/arch/arm/boot/dts/exynos5440-ssdk5440.dts
@@ -27,20 +27,4 @@
27 spi { 27 spi {
28 status = "disabled"; 28 status = "disabled";
29 }; 29 };
30
31 i2c@F0000 {
32 status = "disabled";
33 };
34
35 i2c@100000 {
36 status = "disabled";
37 };
38
39 watchdog {
40 status = "disabled";
41 };
42
43 rtc {
44 status = "disabled";
45 };
46}; 30};
diff --git a/arch/arm/boot/dts/exynos5440.dtsi b/arch/arm/boot/dts/exynos5440.dtsi
index 5f3562ad6746..5c5a69954d8b 100644
--- a/arch/arm/boot/dts/exynos5440.dtsi
+++ b/arch/arm/boot/dts/exynos5440.dtsi
@@ -24,43 +24,35 @@
24 }; 24 };
25 25
26 cpus { 26 cpus {
27 #address-cells = <1>;
28 #size-cells = <0>;
29
27 cpu@0 { 30 cpu@0 {
28 compatible = "arm,cortex-a15"; 31 compatible = "arm,cortex-a15";
29 timer { 32 reg = <0>;
30 compatible = "arm,armv7-timer";
31 interrupts = <1 13 0xf08>;
32 clock-frequency = <1000000>;
33 };
34 }; 33 };
35 cpu@1 { 34 cpu@1 {
36 compatible = "arm,cortex-a15"; 35 compatible = "arm,cortex-a15";
37 timer { 36 reg = <1>;
38 compatible = "arm,armv7-timer";
39 interrupts = <1 14 0xf08>;
40 clock-frequency = <1000000>;
41 };
42 }; 37 };
43 cpu@2 { 38 cpu@2 {
44 compatible = "arm,cortex-a15"; 39 compatible = "arm,cortex-a15";
45 timer { 40 reg = <2>;
46 compatible = "arm,armv7-timer";
47 interrupts = <1 14 0xf08>;
48 clock-frequency = <1000000>;
49 };
50 }; 41 };
51 cpu@3 { 42 cpu@3 {
52 compatible = "arm,cortex-a15"; 43 compatible = "arm,cortex-a15";
53 timer { 44 reg = <3>;
54 compatible = "arm,armv7-timer";
55 interrupts = <1 14 0xf08>;
56 clock-frequency = <1000000>;
57 };
58 }; 45 };
59 }; 46 };
60 47
61 common { 48 timer {
62 compatible = "samsung,exynos5440"; 49 compatible = "arm,cortex-a15-timer",
63 50 "arm,armv7-timer";
51 interrupts = <1 13 0xf08>,
52 <1 14 0xf08>,
53 <1 11 0xf08>,
54 <1 10 0xf08>;
55 clock-frequency = <50000000>;
64 }; 56 };
65 57
66 serial@B0000 { 58 serial@B0000 {
@@ -110,7 +102,7 @@
110 }; 102 };
111 103
112 i2c@F0000 { 104 i2c@F0000 {
113 compatible = "samsung,s3c2440-i2c"; 105 compatible = "samsung,exynos5440-i2c";
114 reg = <0xF0000 0x1000>; 106 reg = <0xF0000 0x1000>;
115 interrupts = <0 5 0>; 107 interrupts = <0 5 0>;
116 #address-cells = <1>; 108 #address-cells = <1>;
@@ -118,7 +110,7 @@
118 }; 110 };
119 111
120 i2c@100000 { 112 i2c@100000 {
121 compatible = "samsung,s3c2440-i2c"; 113 compatible = "samsung,exynos5440-i2c";
122 reg = <0x100000 0x1000>; 114 reg = <0x100000 0x1000>;
123 interrupts = <0 6 0>; 115 interrupts = <0 6 0>;
124 #address-cells = <1>; 116 #address-cells = <1>;
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 2f45906d6ee5..bc15b9ee8174 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -61,6 +61,7 @@ config SOC_EXYNOS5250
61 bool "SAMSUNG EXYNOS5250" 61 bool "SAMSUNG EXYNOS5250"
62 default y 62 default y
63 depends on ARCH_EXYNOS5 63 depends on ARCH_EXYNOS5
64 select PM_GENERIC_DOMAINS if PM
64 select S5P_PM if PM 65 select S5P_PM if PM
65 select S5P_SLEEP if PM 66 select S5P_SLEEP if PM
66 select S5P_DEV_MFC 67 select S5P_DEV_MFC
@@ -410,6 +411,7 @@ config MACH_EXYNOS4_DT
410 select HAVE_SAMSUNG_KEYPAD if INPUT_KEYBOARD 411 select HAVE_SAMSUNG_KEYPAD if INPUT_KEYBOARD
411 select PINCTRL 412 select PINCTRL
412 select PINCTRL_EXYNOS 413 select PINCTRL_EXYNOS
414 select S5P_DEV_MFC
413 select USE_OF 415 select USE_OF
414 help 416 help
415 Machine support for Samsung Exynos4 machine with device tree enabled. 417 Machine support for Samsung Exynos4 machine with device tree enabled.
diff --git a/arch/arm/mach-exynos/mach-exynos4-dt.c b/arch/arm/mach-exynos/mach-exynos4-dt.c
index 3358088c822a..fad268f8548c 100644
--- a/arch/arm/mach-exynos/mach-exynos4-dt.c
+++ b/arch/arm/mach-exynos/mach-exynos4-dt.c
@@ -12,13 +12,16 @@
12*/ 12*/
13 13
14#include <linux/of_platform.h> 14#include <linux/of_platform.h>
15#include <linux/of_fdt.h>
15#include <linux/serial_core.h> 16#include <linux/serial_core.h>
17#include <linux/memblock.h>
16 18
17#include <asm/mach/arch.h> 19#include <asm/mach/arch.h>
18#include <mach/map.h> 20#include <mach/map.h>
19 21
20#include <plat/cpu.h> 22#include <plat/cpu.h>
21#include <plat/regs-serial.h> 23#include <plat/regs-serial.h>
24#include <plat/mfc.h>
22 25
23#include "common.h" 26#include "common.h"
24 27
@@ -113,6 +116,7 @@ static const struct of_dev_auxdata exynos4_auxdata_lookup[] __initconst = {
113 "exynos-sysmmu.14", NULL), /* FIMC-LITE0(4x12) */ 116 "exynos-sysmmu.14", NULL), /* FIMC-LITE0(4x12) */
114 OF_DEV_AUXDATA("samsung,exynos-sysmmu", 0x123C0000, 117 OF_DEV_AUXDATA("samsung,exynos-sysmmu", 0x123C0000,
115 "exynos-sysmmu.15", NULL), /* FIMC-LITE1(4x12) */ 118 "exynos-sysmmu.15", NULL), /* FIMC-LITE1(4x12) */
119 OF_DEV_AUXDATA("samsung,mfc-v5", 0x13400000, "s5p-mfc", NULL),
116 {}, 120 {},
117}; 121};
118 122
@@ -135,6 +139,18 @@ static char const *exynos4_dt_compat[] __initdata = {
135 NULL 139 NULL
136}; 140};
137 141
142static void __init exynos4_reserve(void)
143{
144#ifdef CONFIG_S5P_DEV_MFC
145 struct s5p_mfc_dt_meminfo mfc_mem;
146
147 /* Reserve memory for MFC only if it's available */
148 mfc_mem.compatible = "samsung,mfc-v5";
149 if (of_scan_flat_dt(s5p_fdt_find_mfc_mem, &mfc_mem))
150 s5p_mfc_reserve_mem(mfc_mem.roff, mfc_mem.rsize, mfc_mem.loff,
151 mfc_mem.lsize);
152#endif
153}
138DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)") 154DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)")
139 /* Maintainer: Thomas Abraham <thomas.abraham@linaro.org> */ 155 /* Maintainer: Thomas Abraham <thomas.abraham@linaro.org> */
140 .smp = smp_ops(exynos_smp_ops), 156 .smp = smp_ops(exynos_smp_ops),
@@ -145,4 +161,5 @@ DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)")
145 .init_time = exynos4_timer_init, 161 .init_time = exynos4_timer_init,
146 .dt_compat = exynos4_dt_compat, 162 .dt_compat = exynos4_dt_compat,
147 .restart = exynos4_restart, 163 .restart = exynos4_restart,
164 .reserve = exynos4_reserve,
148MACHINE_END 165MACHINE_END
diff --git a/arch/arm/mach-exynos/mach-exynos5-dt.c b/arch/arm/mach-exynos/mach-exynos5-dt.c
index acaeb14db54b..8ef895745175 100644
--- a/arch/arm/mach-exynos/mach-exynos5-dt.c
+++ b/arch/arm/mach-exynos/mach-exynos5-dt.c
@@ -139,6 +139,7 @@ static const struct of_dev_auxdata exynos5250_auxdata_lookup[] __initconst = {
139 "exynos-sysmmu.13", NULL), /* FIMC-LITE1 */ 139 "exynos-sysmmu.13", NULL), /* FIMC-LITE1 */
140 OF_DEV_AUXDATA("samsung,exynos-sysmmu", 0x10A60000, 140 OF_DEV_AUXDATA("samsung,exynos-sysmmu", 0x10A60000,
141 "exynos-sysmmu.14", NULL), /* G2D */ 141 "exynos-sysmmu.14", NULL), /* G2D */
142 OF_DEV_AUXDATA("samsung,exynos5-dp", 0x145B0000, "exynos-dp", NULL),
142 {}, 143 {},
143}; 144};
144 145