aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2013-10-28 00:54:02 -0400
committerOlof Johansson <olof@lixom.net>2013-10-28 00:54:02 -0400
commit2de1a7a855e3c543ee9c954f36103aeabc6830d1 (patch)
tree5562c785ec8bb5b1ee94acbd4846d7c1f7cc1d93
parentd31a408f4f48e2b7e65e8c0285eb5e669aa7600d (diff)
parent93457b9cb980ffeeef020c3bcd99065c3807619b (diff)
Merge most of tag 'tags/exynos-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git into next/dt
From Kukjin Kim, these are device-tree updates for Exynos. Among the changes: - add MIPI PHY node for exynos4 - update regulator for origen and exynos5250-arndale - add support HDMI for exynos5250, exynos5420 * commit '93457b9cb980ffeeef020c3bcd99065c3807619b': ARM: dts: Add HDMI related I2C nodes for Arndale board ARM: dts: enable hdmi subsystem for exynos5420 smdk board ARM: dts: add dt nodes for hdmi subsystem for exynos5420 ARM: dts: add i2c device nodes for Exynos5420 ARM: dts: add clocks to hdmi dt node for exynos5250 ARM: dts: add mixer clocks to mixer node for Exynos5250 of/documentation: update with clock information for exynos hdmi subsystem ARM: dts: Disable Exynos5250 I2S controllers by default ARM: dts: Add reg property to regulator nodes in exynos5250-arndale ARM: dts: Add fixed voltage regulator to simple bus for origen ARM: dts: Add MIPI PHY node to exynos4.dtsi
-rw-r--r--Documentation/devicetree/bindings/video/exynos_hdmi.txt14
-rw-r--r--Documentation/devicetree/bindings/video/exynos_mixer.txt4
-rw-r--r--arch/arm/boot/dts/exynos4.dtsi10
-rw-r--r--arch/arm/boot/dts/exynos4210-origen.dts21
-rw-r--r--arch/arm/boot/dts/exynos4412-origen.dts21
-rw-r--r--arch/arm/boot/dts/exynos5250-arndale.dts33
-rw-r--r--arch/arm/boot/dts/exynos5250-smdk5250.dts8
-rw-r--r--arch/arm/boot/dts/exynos5250.dtsi11
-rw-r--r--arch/arm/boot/dts/exynos5420-smdk5420.dts26
-rw-r--r--arch/arm/boot/dts/exynos5420.dtsi75
10 files changed, 193 insertions, 30 deletions
diff --git a/Documentation/devicetree/bindings/video/exynos_hdmi.txt b/Documentation/devicetree/bindings/video/exynos_hdmi.txt
index 323983be3c30..50decf8e1b90 100644
--- a/Documentation/devicetree/bindings/video/exynos_hdmi.txt
+++ b/Documentation/devicetree/bindings/video/exynos_hdmi.txt
@@ -12,7 +12,19 @@ Required properties:
12 a) phandle of the gpio controller node. 12 a) phandle of the gpio controller node.
13 b) pin number within the gpio controller. 13 b) pin number within the gpio controller.
14 c) optional flags and pull up/down. 14 c) optional flags and pull up/down.
15 15- clocks: list of clock IDs from SoC clock driver.
16 a) hdmi: Gate of HDMI IP bus clock.
17 b) sclk_hdmi: Gate of HDMI special clock.
18 c) sclk_pixel: Pixel special clock, one of the two possible inputs of
19 HDMI clock mux.
20 d) sclk_hdmiphy: HDMI PHY clock output, one of two possible inputs of
21 HDMI clock mux.
22 e) mout_hdmi: It is required by the driver to switch between the 2
23 parents i.e. sclk_pixel and sclk_hdmiphy. If hdmiphy is stable
24 after configuration, parent is set to sclk_hdmiphy else
25 sclk_pixel.
26- clock-names: aliases as per driver requirements for above clock IDs:
27 "hdmi", "sclk_hdmi", "sclk_pixel", "sclk_hdmiphy" and "mout_hdmi".
16Example: 28Example:
17 29
18 hdmi { 30 hdmi {
diff --git a/Documentation/devicetree/bindings/video/exynos_mixer.txt b/Documentation/devicetree/bindings/video/exynos_mixer.txt
index 3334b0a8e343..7bfde9c9d658 100644
--- a/Documentation/devicetree/bindings/video/exynos_mixer.txt
+++ b/Documentation/devicetree/bindings/video/exynos_mixer.txt
@@ -10,6 +10,10 @@ Required properties:
10- reg: physical base address of the mixer and length of memory mapped 10- reg: physical base address of the mixer and length of memory mapped
11 region. 11 region.
12- interrupts: interrupt number to the cpu. 12- interrupts: interrupt number to the cpu.
13- clocks: list of clock IDs from SoC clock driver.
14 a) mixer: Gate of Mixer IP bus clock.
15 b) sclk_hdmi: HDMI Special clock, one of the two possible inputs of
16 mixer mux.
13 17
14Example: 18Example:
15 19
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index caadc0257342..a73eeb5f258f 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -49,6 +49,12 @@
49 reg = <0x10000000 0x100>; 49 reg = <0x10000000 0x100>;
50 }; 50 };
51 51
52 mipi_phy: video-phy@10020710 {
53 compatible = "samsung,s5pv210-mipi-video-phy";
54 reg = <0x10020710 8>;
55 #phy-cells = <1>;
56 };
57
52 pd_mfc: mfc-power-domain@10023C40 { 58 pd_mfc: mfc-power-domain@10023C40 {
53 compatible = "samsung,exynos4210-pd"; 59 compatible = "samsung,exynos4210-pd";
54 reg = <0x10023C40 0x20>; 60 reg = <0x10023C40 0x20>;
@@ -161,6 +167,8 @@
161 clock-names = "csis", "sclk_csis"; 167 clock-names = "csis", "sclk_csis";
162 bus-width = <4>; 168 bus-width = <4>;
163 samsung,power-domain = <&pd_cam>; 169 samsung,power-domain = <&pd_cam>;
170 phys = <&mipi_phy 0>;
171 phy-names = "csis";
164 status = "disabled"; 172 status = "disabled";
165 #address-cells = <1>; 173 #address-cells = <1>;
166 #size-cells = <0>; 174 #size-cells = <0>;
@@ -174,6 +182,8 @@
174 clock-names = "csis", "sclk_csis"; 182 clock-names = "csis", "sclk_csis";
175 bus-width = <2>; 183 bus-width = <2>;
176 samsung,power-domain = <&pd_cam>; 184 samsung,power-domain = <&pd_cam>;
185 phys = <&mipi_phy 2>;
186 phy-names = "csis";
177 status = "disabled"; 187 status = "disabled";
178 #address-cells = <1>; 188 #address-cells = <1>;
179 #size-cells = <0>; 189 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts
index 382d8c7e2906..d3340db03000 100644
--- a/arch/arm/boot/dts/exynos4210-origen.dts
+++ b/arch/arm/boot/dts/exynos4210-origen.dts
@@ -32,13 +32,20 @@
32 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";
33 }; 33 };
34 34
35 mmc_reg: voltage-regulator { 35 regulators {
36 compatible = "regulator-fixed"; 36 compatible = "simple-bus";
37 regulator-name = "VMEM_VDD_2.8V"; 37 #address-cells = <1>;
38 regulator-min-microvolt = <2800000>; 38 #size-cells = <0>;
39 regulator-max-microvolt = <2800000>; 39
40 gpio = <&gpx1 1 0>; 40 mmc_reg: regulator@0 {
41 enable-active-high; 41 compatible = "regulator-fixed";
42 reg = <0>;
43 regulator-name = "VMEM_VDD_2.8V";
44 regulator-min-microvolt = <2800000>;
45 regulator-max-microvolt = <2800000>;
46 gpio = <&gpx1 1 0>;
47 enable-active-high;
48 };
42 }; 49 };
43 50
44 tmu@100C0000 { 51 tmu@100C0000 {
diff --git a/arch/arm/boot/dts/exynos4412-origen.dts b/arch/arm/boot/dts/exynos4412-origen.dts
index 8768b03702e5..d65984c440f6 100644
--- a/arch/arm/boot/dts/exynos4412-origen.dts
+++ b/arch/arm/boot/dts/exynos4412-origen.dts
@@ -32,13 +32,20 @@
32 reg = <0x0203F000 0x1000>; 32 reg = <0x0203F000 0x1000>;
33 }; 33 };
34 34
35 mmc_reg: voltage-regulator { 35 regulators {
36 compatible = "regulator-fixed"; 36 compatible = "simple-bus";
37 regulator-name = "VMEM_VDD_2.8V"; 37 #address-cells = <1>;
38 regulator-min-microvolt = <2800000>; 38 #size-cells = <0>;
39 regulator-max-microvolt = <2800000>; 39
40 gpio = <&gpx1 1 0>; 40 mmc_reg: regulator@0 {
41 enable-active-high; 41 compatible = "regulator-fixed";
42 reg = <0>;
43 regulator-name = "VMEM_VDD_2.8V";
44 regulator-min-microvolt = <2800000>;
45 regulator-max-microvolt = <2800000>;
46 gpio = <&gpx1 1 0>;
47 enable-active-high;
48 };
42 }; 49 };
43 50
44 pinctrl@11000000 { 51 pinctrl@11000000 {
diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts b/arch/arm/boot/dts/exynos5250-arndale.dts
index cee55fa33731..684527087aa4 100644
--- a/arch/arm/boot/dts/exynos5250-arndale.dts
+++ b/arch/arm/boot/dts/exynos5250-arndale.dts
@@ -324,7 +324,14 @@
324 }; 324 };
325 325
326 i2c@12C80000 { 326 i2c@12C80000 {
327 status = "disabled"; 327 samsung,i2c-sda-delay = <100>;
328 samsung,i2c-max-bus-freq = <66000>;
329 samsung,i2c-slave-addr = <0x50>;
330
331 hdmiddc@50 {
332 compatible = "samsung,exynos4210-hdmiddc";
333 reg = <0x50>;
334 };
328 }; 335 };
329 336
330 i2c@12C90000 { 337 i2c@12C90000 {
@@ -362,6 +369,17 @@
362 status = "disabled"; 369 status = "disabled";
363 }; 370 };
364 371
372 i2c@12CE0000 {
373 samsung,i2c-sda-delay = <100>;
374 samsung,i2c-max-bus-freq = <66000>;
375 samsung,i2c-slave-addr = <0x38>;
376
377 hdmiphy@38 {
378 compatible = "samsung,exynos4212-hdmiphy";
379 reg = <0x38>;
380 };
381 };
382
365 i2c@121D0000 { 383 i2c@121D0000 {
366 status = "disabled"; 384 status = "disabled";
367 }; 385 };
@@ -412,6 +430,10 @@
412 status = "disabled"; 430 status = "disabled";
413 }; 431 };
414 432
433 i2s0: i2s@03830000 {
434 status = "okay";
435 };
436
415 spi_0: spi@12d20000 { 437 spi_0: spi@12d20000 {
416 status = "disabled"; 438 status = "disabled";
417 }; 439 };
@@ -482,13 +504,15 @@
482 #address-cells = <1>; 504 #address-cells = <1>;
483 #size-cells = <0>; 505 #size-cells = <0>;
484 506
485 main_dc_reg: fixedregulator@1 { 507 main_dc_reg: regulator@0 {
486 compatible = "regulator-fixed"; 508 compatible = "regulator-fixed";
509 reg = <0>;
487 regulator-name = "MAIN_DC"; 510 regulator-name = "MAIN_DC";
488 }; 511 };
489 512
490 mmc_reg: voltage-regulator { 513 mmc_reg: regulator@1 {
491 compatible = "regulator-fixed"; 514 compatible = "regulator-fixed";
515 reg = <1>;
492 regulator-name = "VDD_33ON_2.8V"; 516 regulator-name = "VDD_33ON_2.8V";
493 regulator-min-microvolt = <2800000>; 517 regulator-min-microvolt = <2800000>;
494 regulator-max-microvolt = <2800000>; 518 regulator-max-microvolt = <2800000>;
@@ -496,8 +520,9 @@
496 enable-active-high; 520 enable-active-high;
497 }; 521 };
498 522
499 reg_hdmi_en: fixedregulator@0 { 523 reg_hdmi_en: regulator@2 {
500 compatible = "regulator-fixed"; 524 compatible = "regulator-fixed";
525 reg = <2>;
501 regulator-name = "hdmi-en"; 526 regulator-name = "hdmi-en";
502 }; 527 };
503 }; 528 };
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts
index 2538b329f2ce..f86d56760a45 100644
--- a/arch/arm/boot/dts/exynos5250-smdk5250.dts
+++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts
@@ -231,14 +231,6 @@
231 status = "okay"; 231 status = "okay";
232 }; 232 };
233 233
234 i2s1: i2s@12D60000 {
235 status = "disabled";
236 };
237
238 i2s2: i2s@12D70000 {
239 status = "disabled";
240 };
241
242 sound { 234 sound {
243 compatible = "samsung,smdk-wm8994"; 235 compatible = "samsung,smdk-wm8994";
244 236
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
index bbac42a78ce5..9db5047812f3 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -422,6 +422,7 @@
422 422
423 i2s0: i2s@03830000 { 423 i2s0: i2s@03830000 {
424 compatible = "samsung,s5pv210-i2s"; 424 compatible = "samsung,s5pv210-i2s";
425 status = "disabled";
425 reg = <0x03830000 0x100>; 426 reg = <0x03830000 0x100>;
426 dmas = <&pdma0 10 427 dmas = <&pdma0 10
427 &pdma0 9 428 &pdma0 9
@@ -438,6 +439,7 @@
438 439
439 i2s1: i2s@12D60000 { 440 i2s1: i2s@12D60000 {
440 compatible = "samsung,s3c6410-i2s"; 441 compatible = "samsung,s3c6410-i2s";
442 status = "disabled";
441 reg = <0x12D60000 0x100>; 443 reg = <0x12D60000 0x100>;
442 dmas = <&pdma1 12 444 dmas = <&pdma1 12
443 &pdma1 11>; 445 &pdma1 11>;
@@ -450,6 +452,7 @@
450 452
451 i2s2: i2s@12D70000 { 453 i2s2: i2s@12D70000 {
452 compatible = "samsung,s3c6410-i2s"; 454 compatible = "samsung,s3c6410-i2s";
455 status = "disabled";
453 reg = <0x12D70000 0x100>; 456 reg = <0x12D70000 0x100>;
454 dmas = <&pdma0 12 457 dmas = <&pdma0 12
455 &pdma0 11>; 458 &pdma0 11>;
@@ -615,16 +618,18 @@
615 compatible = "samsung,exynos4212-hdmi"; 618 compatible = "samsung,exynos4212-hdmi";
616 reg = <0x14530000 0x70000>; 619 reg = <0x14530000 0x70000>;
617 interrupts = <0 95 0>; 620 interrupts = <0 95 0>;
618 clocks = <&clock 333>, <&clock 136>, <&clock 137>, 621 clocks = <&clock 344>, <&clock 136>, <&clock 137>,
619 <&clock 333>, <&clock 333>; 622 <&clock 159>, <&clock 1024>;
620 clock-names = "hdmi", "sclk_hdmi", "sclk_pixel", 623 clock-names = "hdmi", "sclk_hdmi", "sclk_pixel",
621 "sclk_hdmiphy", "hdmiphy"; 624 "sclk_hdmiphy", "mout_hdmi";
622 }; 625 };
623 626
624 mixer { 627 mixer {
625 compatible = "samsung,exynos5250-mixer"; 628 compatible = "samsung,exynos5250-mixer";
626 reg = <0x14450000 0x10000>; 629 reg = <0x14450000 0x10000>;
627 interrupts = <0 94 0>; 630 interrupts = <0 94 0>;
631 clocks = <&clock 343>, <&clock 136>;
632 clock-names = "mixer", "sclk_hdmi";
628 }; 633 };
629 634
630 dp_phy: video-phy@10040720 { 635 dp_phy: video-phy@10040720 {
diff --git a/arch/arm/boot/dts/exynos5420-smdk5420.dts b/arch/arm/boot/dts/exynos5420-smdk5420.dts
index bafba25ba7c2..79524c74c603 100644
--- a/arch/arm/boot/dts/exynos5420-smdk5420.dts
+++ b/arch/arm/boot/dts/exynos5420-smdk5420.dts
@@ -61,4 +61,30 @@
61 }; 61 };
62 }; 62 };
63 63
64 pinctrl@13400000 {
65 hdmi_hpd_irq: hdmi-hpd-irq {
66 samsung,pins = "gpx3-7";
67 samsung,pin-function = <0>;
68 samsung,pin-pud = <1>;
69 samsung,pin-drv = <0>;
70 };
71 };
72
73 hdmi@14530000 {
74 status = "okay";
75 hpd-gpio = <&gpx3 7 0>;
76 pinctrl-names = "default";
77 pinctrl-0 = <&hdmi_hpd_irq>;
78 };
79
80 i2c_2: i2c@12C80000 {
81 samsung,i2c-sda-delay = <100>;
82 samsung,i2c-max-bus-freq = <66000>;
83 status = "okay";
84
85 hdmiddc@50 {
86 compatible = "samsung,exynos4210-hdmiddc";
87 reg = <0x50>;
88 };
89 };
64}; 90};
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
index d537cd704e19..09aa06cb3d3a 100644
--- a/arch/arm/boot/dts/exynos5420.dtsi
+++ b/arch/arm/boot/dts/exynos5420.dtsi
@@ -27,6 +27,10 @@
27 pinctrl2 = &pinctrl_2; 27 pinctrl2 = &pinctrl_2;
28 pinctrl3 = &pinctrl_3; 28 pinctrl3 = &pinctrl_3;
29 pinctrl4 = &pinctrl_4; 29 pinctrl4 = &pinctrl_4;
30 i2c0 = &i2c_0;
31 i2c1 = &i2c_1;
32 i2c2 = &i2c_2;
33 i2c3 = &i2c_3;
30 }; 34 };
31 35
32 cpus { 36 cpus {
@@ -235,4 +239,75 @@
235 io-channel-ranges; 239 io-channel-ranges;
236 status = "disabled"; 240 status = "disabled";
237 }; 241 };
242
243 i2c_0: i2c@12C60000 {
244 compatible = "samsung,s3c2440-i2c";
245 reg = <0x12C60000 0x100>;
246 interrupts = <0 56 0>;
247 #address-cells = <1>;
248 #size-cells = <0>;
249 clocks = <&clock 261>;
250 clock-names = "i2c";
251 pinctrl-names = "default";
252 pinctrl-0 = <&i2c0_bus>;
253 status = "disabled";
254 };
255
256 i2c_1: i2c@12C70000 {
257 compatible = "samsung,s3c2440-i2c";
258 reg = <0x12C70000 0x100>;
259 interrupts = <0 57 0>;
260 #address-cells = <1>;
261 #size-cells = <0>;
262 clocks = <&clock 262>;
263 clock-names = "i2c";
264 pinctrl-names = "default";
265 pinctrl-0 = <&i2c1_bus>;
266 status = "disabled";
267 };
268
269 i2c_2: i2c@12C80000 {
270 compatible = "samsung,s3c2440-i2c";
271 reg = <0x12C80000 0x100>;
272 interrupts = <0 58 0>;
273 #address-cells = <1>;
274 #size-cells = <0>;
275 clocks = <&clock 263>;
276 clock-names = "i2c";
277 pinctrl-names = "default";
278 pinctrl-0 = <&i2c2_bus>;
279 status = "disabled";
280 };
281
282 i2c_3: i2c@12C90000 {
283 compatible = "samsung,s3c2440-i2c";
284 reg = <0x12C90000 0x100>;
285 interrupts = <0 59 0>;
286 #address-cells = <1>;
287 #size-cells = <0>;
288 clocks = <&clock 264>;
289 clock-names = "i2c";
290 pinctrl-names = "default";
291 pinctrl-0 = <&i2c3_bus>;
292 status = "disabled";
293 };
294
295 hdmi@14530000 {
296 compatible = "samsung,exynos4212-hdmi";
297 reg = <0x14530000 0x70000>;
298 interrupts = <0 95 0>;
299 clocks = <&clock 413>, <&clock 143>, <&clock 768>,
300 <&clock 158>, <&clock 640>;
301 clock-names = "hdmi", "sclk_hdmi", "sclk_pixel",
302 "sclk_hdmiphy", "mout_hdmi";
303 status = "disabled";
304 };
305
306 mixer@14450000 {
307 compatible = "samsung,exynos5420-mixer";
308 reg = <0x14450000 0x10000>;
309 interrupts = <0 94 0>;
310 clocks = <&clock 431>, <&clock 143>;
311 clock-names = "mixer", "sclk_hdmi";
312 };
238}; 313};