fork download
  1. /*
  2.  * Copyright (C) 2011 - 2014 Xilinx
  3.  *
  4.  * This software is licensed under the terms of the GNU General Public
  5.  * License version 2, as published by the Free Software Foundation, and
  6.  * may be copied, distributed, and modified under those terms.
  7.  *
  8.  * This program is distributed in the hope that it will be useful,
  9.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11.  * GNU General Public License for more details.
  12.  */
  13. /include/ "skeleton.dtsi"
  14.  
  15. / {
  16. compatible = "xlnx,zynq-7000";
  17.  
  18. cpus {
  19. #address-cells = <1>;
  20. #size-cells = <0>;
  21.  
  22. cpu@0 {
  23. compatible = "arm,cortex-a9";
  24. device_type = "cpu";
  25. reg = <0>;
  26. clocks = <&clkc 3>;
  27. clock-latency = <1000>;
  28. cpu0-supply = <&regulator_vccpint>;
  29. operating-points = <
  30. /* kHz uV */
  31. 666667 1000000
  32. 333334 1000000
  33. >;
  34. };
  35.  
  36. cpu@1 {
  37. compatible = "arm,cortex-a9";
  38. device_type = "cpu";
  39. reg = <1>;
  40. clocks = <&clkc 3>;
  41. };
  42. };
  43.  
  44. pmu {
  45. compatible = "arm,cortex-a9-pmu";
  46. interrupts = <0 5 4>, <0 6 4>;
  47. interrupt-parent = <&intc>;
  48. reg = < 0xf8891000 0x1000 0xf8893000 0x1000 >;
  49. };
  50.  
  51. regulator_vccpint: fixedregulator@0 {
  52. compatible = "regulator-fixed";
  53. regulator-name = "VCCPINT";
  54. regulator-min-microvolt = <1000000>;
  55. regulator-max-microvolt = <1000000>;
  56. regulator-boot-on;
  57. regulator-always-on;
  58. };
  59.  
  60. amba: amba {
  61. compatible = "simple-bus";
  62. #address-cells = <1>;
  63. #size-cells = <1>;
  64. interrupt-parent = <&intc>;
  65. ranges;
  66.  
  67. adc: adc@f8007100 {
  68. compatible = "xlnx,zynq-xadc-1.00.a";
  69. reg = <0xf8007100 0x20>;
  70. interrupts = <0 7 4>;
  71. interrupt-parent = <&intc>;
  72. clocks = <&clkc 12>;
  73. };
  74.  
  75. can0: can@e0008000 {
  76. compatible = "xlnx,zynq-can-1.0";
  77. status = "disabled";
  78. clocks = <&clkc 19>, <&clkc 36>;
  79. clock-names = "can_clk", "pclk";
  80. reg = <0xe0008000 0x1000>;
  81. interrupts = <0 28 4>;
  82. interrupt-parent = <&intc>;
  83. tx-fifo-depth = <0x40>;
  84. rx-fifo-depth = <0x40>;
  85. };
  86.  
  87. can1: can@e0009000 {
  88. compatible = "xlnx,zynq-can-1.0";
  89. status = "disabled";
  90. clocks = <&clkc 20>, <&clkc 37>;
  91. clock-names = "can_clk", "pclk";
  92. reg = <0xe0009000 0x1000>;
  93. interrupts = <0 51 4>;
  94. interrupt-parent = <&intc>;
  95. tx-fifo-depth = <0x40>;
  96. rx-fifo-depth = <0x40>;
  97. };
  98.  
  99. gpio0: gpio@e000a000 {
  100. compatible = "xlnx,zynq-gpio-1.0";
  101. #gpio-cells = <2>;
  102. clocks = <&clkc 42>;
  103. gpio-controller;
  104. interrupt-parent = <&intc>;
  105. interrupts = <0 20 4>;
  106. reg = <0xe000a000 0x1000>;
  107. };
  108.  
  109. i2c0: i2c@e0004000 {
  110. compatible = "cdns,i2c-r1p10";
  111. status = "disabled";
  112. clocks = <&clkc 38>;
  113. interrupt-parent = <&intc>;
  114. interrupts = <0 25 4>;
  115. reg = <0xe0004000 0x1000>;
  116. #address-cells = <1>;
  117. #size-cells = <0>;
  118. };
  119.  
  120. i2c1: i2c@e0005000 {
  121. compatible = "cdns,i2c-r1p10";
  122. status = "disabled";
  123. clocks = <&clkc 39>;
  124. interrupt-parent = <&intc>;
  125. interrupts = <0 48 4>;
  126. reg = <0xe0005000 0x1000>;
  127. #address-cells = <1>;
  128. #size-cells = <0>;
  129. };
  130.  
  131. intc: interrupt-controller@f8f01000 {
  132. compatible = "arm,cortex-a9-gic";
  133. #interrupt-cells = <3>;
  134. interrupt-controller;
  135. reg = <0xF8F01000 0x1000>,
  136. <0xF8F00100 0x100>;
  137. };
  138.  
  139. L2: cache-controller@f8f02000 {
  140. compatible = "arm,pl310-cache";
  141. reg = <0xF8F02000 0x1000>;
  142. arm,data-latency = <3 2 2>;
  143. arm,tag-latency = <2 2 2>;
  144. cache-unified;
  145. cache-level = <2>;
  146. };
  147.  
  148. mc: memory-controller@f8006000 {
  149. compatible = "xlnx,zynq-ddrc-a05";
  150. reg = <0xf8006000 0x1000>;
  151. xlnx,has-ecc = <0x0>;
  152. };
  153.  
  154. ocmc: ocmc@f800c000 {
  155. compatible = "xlnx,zynq-ocmc-1.0";
  156. interrupt-parent = <&intc>;
  157. interrupts = <0 3 4>;
  158. reg = <0xf800c000 0x1000>;
  159. };
  160.  
  161. uart0: serial@e0000000 {
  162. compatible = "xlnx,xuartps", "cdns,uart-r1p8";
  163. status = "disabled";
  164. clocks = <&clkc 23>, <&clkc 40>;
  165. clock-names = "uart_clk", "pclk";
  166. reg = <0xE0000000 0x1000>;
  167. interrupts = <0 27 4>;
  168. };
  169.  
  170. uart1: serial@e0001000 {
  171. compatible = "xlnx,xuartps", "cdns,uart-r1p8";
  172. status = "disabled";
  173. clocks = <&clkc 24>, <&clkc 41>;
  174. clock-names = "uart_clk", "pclk";
  175. reg = <0xE0001000 0x1000>;
  176. interrupts = <0 50 4>;
  177. };
  178.  
  179. spi0: spi@e0006000 {
  180. compatible = "xlnx,zynq-spi-r1p6";
  181. reg = <0xe0006000 0x1000>;
  182. status = "disabled";
  183. interrupt-parent = <&intc>;
  184. interrupts = <0 26 4>;
  185. clocks = <&clkc 25>, <&clkc 34>;
  186. clock-names = "ref_clk", "pclk";
  187. #address-cells = <1>;
  188. #size-cells = <0>;
  189. };
  190.  
  191. spi1: spi@e0007000 {
  192. compatible = "xlnx,zynq-spi-r1p6";
  193. reg = <0xe0007000 0x1000>;
  194. status = "disabled";
  195. interrupt-parent = <&intc>;
  196. interrupts = <0 49 4>;
  197. clocks = <&clkc 26>, <&clkc 35>;
  198. clock-names = "ref_clk", "pclk";
  199. #address-cells = <1>;
  200. #size-cells = <0>;
  201. };
  202.  
  203. qspi: spi@e000d000 {
  204. clock-names = "ref_clk", "pclk";
  205. clocks = <&clkc 10>, <&clkc 43>;
  206. compatible = "xlnx,zynq-qspi-1.0";
  207. status = "disabled";
  208. interrupt-parent = <&intc>;
  209. interrupts = <0 19 4>;
  210. reg = <0xe000d000 0x1000>;
  211. #address-cells = <1>;
  212. #size-cells = <0>;
  213. };
  214.  
  215. smcc: memory-controller@e000e000 {
  216. #address-cells = <1>;
  217. #size-cells = <1>;
  218. status = "disabled";
  219. clock-names = "memclk", "aclk";
  220. clocks = <&clkc 11>, <&clkc 44>;
  221. compatible = "arm,pl353-smc-r2p1";
  222. interrupt-parent = <&intc>;
  223. interrupts = <0 18 4>;
  224. ranges ;
  225. reg = <0xe000e000 0x1000>;
  226. nand0: flash@e1000000 {
  227. status = "disabled";
  228. compatible = "arm,pl353-nand-r2p1";
  229. reg = <0xe1000000 0x1000000>;
  230. #address-cells = <0x1>;
  231. #size-cells = <0x1>;
  232. };
  233. nor0: flash@e2000000 {
  234. status = "disabled";
  235. compatible = "cfi-flash";
  236. reg = <0xe2000000 0x1000>;
  237. #address-cells = <1>;
  238. #size-cells = <1>;
  239. };
  240. };
  241.  
  242. gem0: ethernet@e000b000 {
  243. compatible = "xlnx,ps7-ethernet-1.00.a";
  244. reg = <0xe000b000 0x1000>;
  245. status = "disabled";
  246. interrupts = <0 22 4>;
  247. clocks = <&clkc 13>, <&clkc 30>;
  248. clock-names = "ref_clk", "aper_clk";
  249. local-mac-address = [00 0a 35 00 00 00];
  250. xlnx,has-mdio = <0x1>;
  251. #address-cells = <1>;
  252. #size-cells = <0>;
  253. };
  254.  
  255. gem1: ethernet@e000c000 {
  256. compatible = "xlnx,ps7-ethernet-1.00.a";
  257. reg = <0xe000c000 0x1000>;
  258. status = "disabled";
  259. interrupts = <0 45 4>;
  260. clocks = <&clkc 14>, <&clkc 31>;
  261. clock-names = "ref_clk", "aper_clk";
  262. local-mac-address = [00 0a 35 00 00 00];
  263. xlnx,has-mdio = <0x1>;
  264. #address-cells = <1>;
  265. #size-cells = <0>;
  266. };
  267.  
  268. sdhci0: sdhci@e0100000 {
  269. compatible = "arasan,sdhci-8.9a";
  270. status = "disabled";
  271. clock-names = "clk_xin", "clk_ahb";
  272. clocks = <&clkc 21>, <&clkc 32>;
  273. interrupt-parent = <&intc>;
  274. interrupts = <0 24 4>;
  275. reg = <0xe0100000 0x1000>;
  276. };
  277.  
  278. sdhci1: sdhci@e0101000 {
  279. compatible = "arasan,sdhci-8.9a";
  280. status = "disabled";
  281. clock-names = "clk_xin", "clk_ahb";
  282. clocks = <&clkc 22>, <&clkc 33>;
  283. interrupt-parent = <&intc>;
  284. interrupts = <0 47 4>;
  285. reg = <0xe0101000 0x1000>;
  286. };
  287.  
  288. slcr: slcr@f8000000 {
  289. #address-cells = <1>;
  290. #size-cells = <1>;
  291. compatible = "xlnx,zynq-slcr", "syscon";
  292. reg = <0xF8000000 0x1000>;
  293. ranges;
  294. clkc: clkc@100 {
  295. #clock-cells = <1>;
  296. compatible = "xlnx,ps7-clkc";
  297. ps-clk-frequency = <33333333>;
  298. fclk-enable = <0xf>;
  299. clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x",
  300. "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x",
  301. "dci", "lqspi", "smc", "pcap", "gem0", "gem1",
  302. "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1",
  303. "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1",
  304. "dma", "usb0_aper", "usb1_aper", "gem0_aper",
  305. "gem1_aper", "sdio0_aper", "sdio1_aper",
  306. "spi0_aper", "spi1_aper", "can0_aper", "can1_aper",
  307. "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper",
  308. "gpio_aper", "lqspi_aper", "smc_aper", "swdt",
  309. "dbg_trc", "dbg_apb";
  310. reg = <0x100 0x100>;
  311. };
  312. };
  313.  
  314. dmac_s: dmac@f8003000 {
  315. compatible = "arm,pl330", "arm,primecell";
  316. reg = <0xf8003000 0x1000>;
  317. interrupt-parent = <&intc>;
  318. interrupt-names = "abort", "dma0", "dma1", "dma2", "dma3",
  319. "dma4", "dma5", "dma6", "dma7";
  320. interrupts = <0 13 4>,
  321. <0 14 4>, <0 15 4>,
  322. <0 16 4>, <0 17 4>,
  323. <0 40 4>, <0 41 4>,
  324. <0 42 4>, <0 43 4>;
  325. #dma-cells = <1>;
  326. #dma-channels = <8>;
  327. #dma-requests = <4>;
  328. clocks = <&clkc 27>;
  329. clock-names = "apb_pclk";
  330. };
  331.  
  332. devcfg: devcfg@f8007000 {
  333. clock-names = "ref_clk", "fclk0", "fclk1", "fclk2", "fclk3";
  334. clocks = <&clkc 12>, <&clkc 15>, <&clkc 16>, <&clkc 17>, <&clkc 18>;
  335. compatible = "xlnx,zynq-devcfg-1.0";
  336. interrupt-parent = <&intc>;
  337. interrupts = <0 8 4>;
  338. reg = <0xf8007000 0x100>;
  339. };
  340.  
  341. global_timer: timer@f8f00200 {
  342. compatible = "arm,cortex-a9-global-timer";
  343. reg = <0xf8f00200 0x20>;
  344. interrupts = <1 11 0x301>;
  345. interrupt-parent = <&intc>;
  346. clocks = <&clkc 4>;
  347. };
  348.  
  349. ttc0: timer@f8001000 {
  350. interrupt-parent = <&intc>;
  351. interrupts = <0 10 4>, <0 11 4>, <0 12 4>;
  352. compatible = "cdns,ttc";
  353. clocks = <&clkc 6>;
  354. reg = <0xF8001000 0x1000>;
  355. };
  356.  
  357. ttc1: timer@f8002000 {
  358. interrupt-parent = <&intc>;
  359. interrupts = <0 37 4>, <0 38 4>, <0 39 4>;
  360. compatible = "cdns,ttc";
  361. clocks = <&clkc 6>;
  362. reg = <0xF8002000 0x1000>;
  363. };
  364.  
  365. scutimer: timer@f8f00600 {
  366. interrupt-parent = <&intc>;
  367. interrupts = <1 13 0x301>;
  368. compatible = "arm,cortex-a9-twd-timer";
  369. reg = <0xf8f00600 0x20>;
  370. clocks = <&clkc 4>;
  371. };
  372.  
  373. watchdog0: watchdog@f8005000 {
  374. clocks = <&clkc 45>;
  375. compatible = "cdns,wdt-r1p2";
  376. interrupt-parent = <&intc>;
  377. interrupts = <0 9 1>;
  378. reg = <0xf8005000 0x1000>;
  379. timeout-sec = <10>;
  380. };
  381.  
  382. usb0: usb@e0002000 {
  383. clocks = <&clkc 28>;
  384. compatible = "xlnx,ps7-usb-1.00.a", "xlnx,zynq-usb-1.00.a";
  385. status = "disabled";
  386. interrupt-parent = <&intc>;
  387. interrupts = <0 21 4>;
  388. reg = <0xe0002000 0x1000>;
  389. };
  390.  
  391. usb1: usb@e0003000 {
  392. clocks = <&clkc 29>;
  393. compatible = "xlnx,ps7-usb-1.00.a", "xlnx,zynq-usb-1.00.a";
  394. status = "disabled";
  395. interrupt-parent = <&intc>;
  396. interrupts = <0 44 4>;
  397. reg = <0xe0003000 0x1000>;
  398. };
  399. };
  400. };
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.c:13:1: error: expected identifier or '(' before '/' token
 /include/ "skeleton.dtsi"
 ^
prog.c:19:4: error: invalid preprocessing directive #address
   #address-cells = <1>;
    ^
prog.c:20:4: error: invalid preprocessing directive #size
   #size-cells = <0>;
    ^
prog.c:22:6: error: stray '@' in program
   cpu@0 {
      ^
prog.c:36:6: error: stray '@' in program
   cpu@1 {
      ^
prog.c:51:35: error: stray '@' in program
  regulator_vccpint: fixedregulator@0 {
                                   ^
prog.c:62:4: error: invalid preprocessing directive #address
   #address-cells = <1>;
    ^
prog.c:63:4: error: invalid preprocessing directive #size
   #size-cells = <1>;
    ^
prog.c:67:11: error: stray '@' in program
   adc: adc@f8007100 {
           ^
prog.c:75:12: error: stray '@' in program
   can0: can@e0008000 {
            ^
prog.c:87:12: error: stray '@' in program
   can1: can@e0009000 {
            ^
prog.c:99:14: error: stray '@' in program
   gpio0: gpio@e000a000 {
              ^
prog.c:101:5: error: invalid preprocessing directive #gpio
    #gpio-cells = <2>;
     ^
prog.c:109:12: error: stray '@' in program
   i2c0: i2c@e0004000 {
            ^
prog.c:116:5: error: invalid preprocessing directive #address
    #address-cells = <1>;
     ^
prog.c:117:5: error: invalid preprocessing directive #size
    #size-cells = <0>;
     ^
prog.c:120:12: error: stray '@' in program
   i2c1: i2c@e0005000 {
            ^
prog.c:127:5: error: invalid preprocessing directive #address
    #address-cells = <1>;
     ^
prog.c:128:5: error: invalid preprocessing directive #size
    #size-cells = <0>;
     ^
prog.c:131:29: error: stray '@' in program
   intc: interrupt-controller@f8f01000 {
                             ^
prog.c:133:5: error: invalid preprocessing directive #interrupt
    #interrupt-cells = <3>;
     ^
prog.c:139:23: error: stray '@' in program
   L2: cache-controller@f8f02000 {
                       ^
prog.c:148:24: error: stray '@' in program
   mc: memory-controller@f8006000 {
                        ^
prog.c:154:13: error: stray '@' in program
   ocmc: ocmc@f800c000 {
             ^
prog.c:161:16: error: stray '@' in program
   uart0: serial@e0000000 {
                ^
prog.c:170:16: error: stray '@' in program
   uart1: serial@e0001000 {
                ^
prog.c:179:12: error: stray '@' in program
   spi0: spi@e0006000 {
            ^
prog.c:187:5: error: invalid preprocessing directive #address
    #address-cells = <1>;
     ^
prog.c:188:5: error: invalid preprocessing directive #size
    #size-cells = <0>;
     ^
prog.c:191:12: error: stray '@' in program
   spi1: spi@e0007000 {
            ^
prog.c:199:5: error: invalid preprocessing directive #address
    #address-cells = <1>;
     ^
prog.c:200:5: error: invalid preprocessing directive #size
    #size-cells = <0>;
     ^
prog.c:203:12: error: stray '@' in program
   qspi: spi@e000d000 {
            ^
prog.c:211:5: error: invalid preprocessing directive #address
    #address-cells = <1>;
     ^
prog.c:212:5: error: invalid preprocessing directive #size
    #size-cells = <0>;
     ^
prog.c:215:26: error: stray '@' in program
   smcc: memory-controller@e000e000 {
                          ^
prog.c:216:5: error: invalid preprocessing directive #address
    #address-cells = <1>;
     ^
prog.c:217:5: error: invalid preprocessing directive #size
    #size-cells = <1>;
     ^
prog.c:226:16: error: stray '@' in program
    nand0: flash@e1000000 {
                ^
prog.c:230:6: error: invalid preprocessing directive #address
     #address-cells = <0x1>;
      ^
prog.c:231:6: error: invalid preprocessing directive #size
     #size-cells = <0x1>;
      ^
prog.c:233:15: error: stray '@' in program
    nor0: flash@e2000000 {
               ^
prog.c:237:6: error: invalid preprocessing directive #address
     #address-cells = <1>;
      ^
prog.c:238:6: error: invalid preprocessing directive #size
     #size-cells = <1>;
      ^
prog.c:242:17: error: stray '@' in program
   gem0: ethernet@e000b000 {
                 ^
prog.c:249:28: error: invalid suffix "a" on integer constant
    local-mac-address = [00 0a 35 00 00 00];
                            ^
prog.c:251:5: error: invalid preprocessing directive #address
    #address-cells = <1>;
     ^
prog.c:252:5: error: invalid preprocessing directive #size
    #size-cells = <0>;
     ^
prog.c:255:17: error: stray '@' in program
   gem1: ethernet@e000c000 {
                 ^
prog.c:262:28: error: invalid suffix "a" on integer constant
    local-mac-address = [00 0a 35 00 00 00];
                            ^
prog.c:264:5: error: invalid preprocessing directive #address
    #address-cells = <1>;
     ^
prog.c:265:5: error: invalid preprocessing directive #size
    #size-cells = <0>;
     ^
prog.c:268:16: error: stray '@' in program
   sdhci0: sdhci@e0100000 {
                ^
prog.c:278:16: error: stray '@' in program
   sdhci1: sdhci@e0101000 {
                ^
prog.c:288:13: error: stray '@' in program
   slcr: slcr@f8000000 {
             ^
prog.c:289:5: error: invalid preprocessing directive #address
    #address-cells = <1>;
     ^
prog.c:290:5: error: invalid preprocessing directive #size
    #size-cells = <1>;
     ^
prog.c:294:14: error: stray '@' in program
    clkc: clkc@100 {
              ^
prog.c:295:6: error: invalid preprocessing directive #clock
     #clock-cells = <1>;
      ^
prog.c:314:15: error: stray '@' in program
   dmac_s: dmac@f8003000 {
               ^
prog.c:325:5: error: invalid preprocessing directive #dma
    #dma-cells = <1>;
     ^
prog.c:326:5: error: invalid preprocessing directive #dma
    #dma-channels = <8>;
     ^
prog.c:327:5: error: invalid preprocessing directive #dma
    #dma-requests = <4>;
     ^
prog.c:332:17: error: stray '@' in program
   devcfg: devcfg@f8007000 {
                 ^
prog.c:341:22: error: stray '@' in program
   global_timer: timer@f8f00200 {
                      ^
prog.c:349:14: error: stray '@' in program
   ttc0: timer@f8001000 {
              ^
prog.c:357:14: error: stray '@' in program
   ttc1: timer@f8002000 {
              ^
prog.c:365:18: error: stray '@' in program
   scutimer: timer@f8f00600 {
                  ^
prog.c:373:22: error: stray '@' in program
   watchdog0: watchdog@f8005000 {
                      ^
prog.c:382:12: error: stray '@' in program
   usb0: usb@e0002000 {
            ^
prog.c:391:12: error: stray '@' in program
   usb1: usb@e0003000 {
            ^
stdout
Standard output is empty