diff options
author | Arnd Bergmann <arnd@arndb.de> | 2013-06-19 19:43:19 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2013-06-19 19:43:19 -0400 |
commit | a44bde66bec168889c95bd1d0d15834b02387901 (patch) | |
tree | 70e8d2bbc26d72d51928e6aacb274829f835a5d1 /arch | |
parent | ef0a3402cccf75b43b1ed854f57fb11b54a1241a (diff) | |
parent | 50dbb4cfbc264b074759e8fb5d8e0c0496a1b072 (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/Makefile | 4 | ||||
-rw-r--r-- | arch/arm/boot/dts/zynq-7000.dtsi | 73 | ||||
-rw-r--r-- | arch/arm/boot/dts/zynq-zc702.dts | 6 | ||||
-rw-r--r-- | arch/arm/boot/dts/zynq-zc706.dts | 35 | ||||
-rw-r--r-- | arch/arm/boot/dts/zynq-zed.dts | 35 | ||||
-rw-r--r-- | arch/arm/mach-zynq/common.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-zynq/slcr.c | 2 |
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 |
219 | dtb-$(CONFIG_ARCH_ZYNQ) += zynq-zc702.dtb | 219 | dtb-$(CONFIG_ARCH_ZYNQ) += zynq-zc702.dtb \ |
220 | zynq-zc706.dtb \ | ||
221 | zynq-zed.dtb | ||
220 | 222 | ||
221 | targets += dtbs | 223 | targets += dtbs |
222 | targets += $(dtb-y) | 224 | targets += $(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 | ||
100 | static const char * const zynq_dt_match[] = { | 100 | static 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 | ||