aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2013-06-19 19:43:19 -0400
committerArnd Bergmann <arnd@arndb.de>2013-06-19 19:43:19 -0400
commita44bde66bec168889c95bd1d0d15834b02387901 (patch)
tree70e8d2bbc26d72d51928e6aacb274829f835a5d1 /arch
parentef0a3402cccf75b43b1ed854f57fb11b54a1241a (diff)
parent50dbb4cfbc264b074759e8fb5d8e0c0496a1b072 (diff)
Merge tag 'zynq-dt-for-3.11' of git://git.xilinx.com/linux-xlnx into next/dt
From Michal Simek: arm: Xilinx Zynq dt changes for v3.11 The branch contains: - DT uart handling cleanup - Support for zc706 and zed board - Removal of board compatible string * tag 'zynq-dt-for-3.11' of git://git.xilinx.com/linux-xlnx: arm: dt: zynq: Add support for the zed platform arm: dt: zynq: Add support for the zc706 platform arm: dt: zynq: Use 'status' property for UART nodes arm: zynq: Remove board specific compatibility string clk: zynq: Remove deprecated clock code arm: zynq: Migrate platform to clock controller clk: zynq: Add clock controller driver clk: zynq: Factor out PLL driver Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/Makefile4
-rw-r--r--arch/arm/boot/dts/zynq-7000.dtsi73
-rw-r--r--arch/arm/boot/dts/zynq-zc702.dts6
-rw-r--r--arch/arm/boot/dts/zynq-zc706.dts35
-rw-r--r--arch/arm/boot/dts/zynq-zed.dts35
-rw-r--r--arch/arm/mach-zynq/common.c1
-rw-r--r--arch/arm/mach-zynq/slcr.c2
7 files changed, 100 insertions, 56 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 4823c3121ee2..4c904a8e458a 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -216,7 +216,9 @@ dtb-$(CONFIG_ARCH_VT8500) += vt8500-bv07.dtb \
216 wm8650-mid.dtb \ 216 wm8650-mid.dtb \
217 wm8750-apc8750.dtb \ 217 wm8750-apc8750.dtb \
218 wm8850-w70v2.dtb 218 wm8850-w70v2.dtb
219dtb-$(CONFIG_ARCH_ZYNQ) += zynq-zc702.dtb 219dtb-$(CONFIG_ARCH_ZYNQ) += zynq-zc702.dtb \
220 zynq-zc706.dtb \
221 zynq-zed.dtb
220 222
221targets += dtbs 223targets += dtbs
222targets += $(dtb-y) 224targets += $(dtb-y)
diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
index 14fb2e609bab..6f54a64850eb 100644
--- a/arch/arm/boot/dts/zynq-7000.dtsi
+++ b/arch/arm/boot/dts/zynq-7000.dtsi
@@ -49,16 +49,20 @@
49 49
50 uart0: uart@e0000000 { 50 uart0: uart@e0000000 {
51 compatible = "xlnx,xuartps"; 51 compatible = "xlnx,xuartps";
52 status = "disabled";
53 clocks = <&clkc 23>, <&clkc 40>;
54 clock-names = "ref_clk", "aper_clk";
52 reg = <0xE0000000 0x1000>; 55 reg = <0xE0000000 0x1000>;
53 interrupts = <0 27 4>; 56 interrupts = <0 27 4>;
54 clocks = <&uart_clk 0>;
55 }; 57 };
56 58
57 uart1: uart@e0001000 { 59 uart1: uart@e0001000 {
58 compatible = "xlnx,xuartps"; 60 compatible = "xlnx,xuartps";
61 status = "disabled";
62 clocks = <&clkc 24>, <&clkc 41>;
63 clock-names = "ref_clk", "aper_clk";
59 reg = <0xE0001000 0x1000>; 64 reg = <0xE0001000 0x1000>;
60 interrupts = <0 50 4>; 65 interrupts = <0 50 4>;
61 clocks = <&uart_clk 1>;
62 }; 66 };
63 67
64 slcr: slcr@f8000000 { 68 slcr: slcr@f8000000 {
@@ -69,50 +73,21 @@
69 #address-cells = <1>; 73 #address-cells = <1>;
70 #size-cells = <0>; 74 #size-cells = <0>;
71 75
72 ps_clk: ps_clk { 76 clkc: clkc {
73 #clock-cells = <0>;
74 compatible = "fixed-clock";
75 /* clock-frequency set in board-specific file */
76 clock-output-names = "ps_clk";
77 };
78 armpll: armpll {
79 #clock-cells = <0>;
80 compatible = "xlnx,zynq-pll";
81 clocks = <&ps_clk>;
82 reg = <0x100 0x110>;
83 clock-output-names = "armpll";
84 };
85 ddrpll: ddrpll {
86 #clock-cells = <0>;
87 compatible = "xlnx,zynq-pll";
88 clocks = <&ps_clk>;
89 reg = <0x104 0x114>;
90 clock-output-names = "ddrpll";
91 };
92 iopll: iopll {
93 #clock-cells = <0>;
94 compatible = "xlnx,zynq-pll";
95 clocks = <&ps_clk>;
96 reg = <0x108 0x118>;
97 clock-output-names = "iopll";
98 };
99 uart_clk: uart_clk {
100 #clock-cells = <1>;
101 compatible = "xlnx,zynq-periph-clock";
102 clocks = <&iopll &armpll &ddrpll>;
103 reg = <0x154>;
104 clock-output-names = "uart0_ref_clk",
105 "uart1_ref_clk";
106 };
107 cpu_clk: cpu_clk {
108 #clock-cells = <1>; 77 #clock-cells = <1>;
109 compatible = "xlnx,zynq-cpu-clock"; 78 compatible = "xlnx,ps7-clkc";
110 clocks = <&iopll &armpll &ddrpll>; 79 ps-clk-frequency = <33333333>;
111 reg = <0x120 0x1C4>; 80 clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x",
112 clock-output-names = "cpu_6x4x", 81 "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x",
113 "cpu_3x2x", 82 "dci", "lqspi", "smc", "pcap", "gem0", "gem1",
114 "cpu_2x", 83 "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1",
115 "cpu_1x"; 84 "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1",
85 "dma", "usb0_aper", "usb1_aper", "gem0_aper",
86 "gem1_aper", "sdio0_aper", "sdio1_aper",
87 "spi0_aper", "spi1_aper", "can0_aper", "can1_aper",
88 "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper",
89 "gpio_aper", "lqspi_aper", "smc_aper", "swdt",
90 "dbg_trc", "dbg_apb";
116 }; 91 };
117 }; 92 };
118 }; 93 };
@@ -121,9 +96,8 @@
121 interrupt-parent = <&intc>; 96 interrupt-parent = <&intc>;
122 interrupts = < 0 10 4 0 11 4 0 12 4 >; 97 interrupts = < 0 10 4 0 11 4 0 12 4 >;
123 compatible = "cdns,ttc"; 98 compatible = "cdns,ttc";
99 clocks = <&clkc 6>;
124 reg = <0xF8001000 0x1000>; 100 reg = <0xF8001000 0x1000>;
125 clocks = <&cpu_clk 3>;
126 clock-names = "cpu_1x";
127 clock-ranges; 101 clock-ranges;
128 }; 102 };
129 103
@@ -131,9 +105,8 @@
131 interrupt-parent = <&intc>; 105 interrupt-parent = <&intc>;
132 interrupts = < 0 37 4 0 38 4 0 39 4 >; 106 interrupts = < 0 37 4 0 38 4 0 39 4 >;
133 compatible = "cdns,ttc"; 107 compatible = "cdns,ttc";
108 clocks = <&clkc 6>;
134 reg = <0xF8002000 0x1000>; 109 reg = <0xF8002000 0x1000>;
135 clocks = <&cpu_clk 3>;
136 clock-names = "cpu_1x";
137 clock-ranges; 110 clock-ranges;
138 }; 111 };
139 scutimer: scutimer@f8f00600 { 112 scutimer: scutimer@f8f00600 {
@@ -141,7 +114,7 @@
141 interrupts = < 1 13 0x301 >; 114 interrupts = < 1 13 0x301 >;
142 compatible = "arm,cortex-a9-twd-timer"; 115 compatible = "arm,cortex-a9-twd-timer";
143 reg = < 0xf8f00600 0x20 >; 116 reg = < 0xf8f00600 0x20 >;
144 clocks = <&cpu_clk 1>; 117 clocks = <&clkc 4>;
145 } ; 118 } ;
146 }; 119 };
147}; 120};
diff --git a/arch/arm/boot/dts/zynq-zc702.dts b/arch/arm/boot/dts/zynq-zc702.dts
index 86f44d5b0265..21aea99a067b 100644
--- a/arch/arm/boot/dts/zynq-zc702.dts
+++ b/arch/arm/boot/dts/zynq-zc702.dts
@@ -24,11 +24,11 @@
24 }; 24 };
25 25
26 chosen { 26 chosen {
27 bootargs = "console=ttyPS1,115200 earlyprintk"; 27 bootargs = "console=ttyPS0,115200 earlyprintk";
28 }; 28 };
29 29
30}; 30};
31 31
32&ps_clk { 32&uart1 {
33 clock-frequency = <33333330>; 33 status = "okay";
34}; 34};
diff --git a/arch/arm/boot/dts/zynq-zc706.dts b/arch/arm/boot/dts/zynq-zc706.dts
new file mode 100644
index 000000000000..79009e0b74b9
--- /dev/null
+++ b/arch/arm/boot/dts/zynq-zc706.dts
@@ -0,0 +1,35 @@
1/*
2 * Copyright (C) 2011 Xilinx
3 * Copyright (C) 2012 National Instruments Corp.
4 * Copyright (C) 2013 Xilinx
5 *
6 * This software is licensed under the terms of the GNU General Public
7 * License version 2, as published by the Free Software Foundation, and
8 * may be copied, distributed, and modified under those terms.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15/dts-v1/;
16/include/ "zynq-7000.dtsi"
17
18/ {
19 model = "Zynq ZC706 Development Board";
20 compatible = "xlnx,zynq-zc706", "xlnx,zynq-7000";
21
22 memory {
23 device_type = "memory";
24 reg = <0 0x40000000>;
25 };
26
27 chosen {
28 bootargs = "console=ttyPS0,115200 earlyprintk";
29 };
30
31};
32
33&uart1 {
34 status = "okay";
35};
diff --git a/arch/arm/boot/dts/zynq-zed.dts b/arch/arm/boot/dts/zynq-zed.dts
new file mode 100644
index 000000000000..d6acf2b1cdf4
--- /dev/null
+++ b/arch/arm/boot/dts/zynq-zed.dts
@@ -0,0 +1,35 @@
1/*
2 * Copyright (C) 2011 Xilinx
3 * Copyright (C) 2012 National Instruments Corp.
4 * Copyright (C) 2013 Xilinx
5 *
6 * This software is licensed under the terms of the GNU General Public
7 * License version 2, as published by the Free Software Foundation, and
8 * may be copied, distributed, and modified under those terms.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15/dts-v1/;
16/include/ "zynq-7000.dtsi"
17
18/ {
19 model = "Zynq Zed Development Board";
20 compatible = "xlnx,zynq-7000";
21
22 memory {
23 device_type = "memory";
24 reg = <0 0x20000000>;
25 };
26
27 chosen {
28 bootargs = "console=ttyPS0,115200 earlyprintk";
29 };
30
31};
32
33&uart1 {
34 status = "okay";
35};
diff --git a/arch/arm/mach-zynq/common.c b/arch/arm/mach-zynq/common.c
index 5bfe7035b73d..7e3d5f400aad 100644
--- a/arch/arm/mach-zynq/common.c
+++ b/arch/arm/mach-zynq/common.c
@@ -98,7 +98,6 @@ static void zynq_system_reset(char mode, const char *cmd)
98} 98}
99 99
100static const char * const zynq_dt_match[] = { 100static const char * const zynq_dt_match[] = {
101 "xlnx,zynq-zc702",
102 "xlnx,zynq-7000", 101 "xlnx,zynq-7000",
103 NULL 102 NULL
104}; 103};
diff --git a/arch/arm/mach-zynq/slcr.c b/arch/arm/mach-zynq/slcr.c
index c70969b9c258..50d008d8f87f 100644
--- a/arch/arm/mach-zynq/slcr.c
+++ b/arch/arm/mach-zynq/slcr.c
@@ -117,7 +117,7 @@ int __init zynq_slcr_init(void)
117 117
118 pr_info("%s mapped to %p\n", np->name, zynq_slcr_base); 118 pr_info("%s mapped to %p\n", np->name, zynq_slcr_base);
119 119
120 xilinx_zynq_clocks_init(zynq_slcr_base); 120 zynq_clock_init(zynq_slcr_base);
121 121
122 of_node_put(np); 122 of_node_put(np);
123 123