3071-arm64-dts-add-device-tree-for-ls1012a-SoC-and-boards.patch 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880
  1. From 70e0080366e76dabf90b713f57fb9fc47aa35557 Mon Sep 17 00:00:00 2001
  2. From: Yangbo Lu <yangbo.lu@nxp.com>
  3. Date: Thu, 11 Aug 2016 10:36:05 +0800
  4. Subject: [PATCH 071/113] arm64: dts: add device tree for ls1012a SoC and
  5. boards
  6. MIME-Version: 1.0
  7. Content-Type: text/plain; charset=UTF-8
  8. Content-Transfer-Encoding: 8bit
  9. This patch is to add device tree for ls1012a SoC and RDB/FREEDOM boards.
  10. Signed-off-by: Pratiyush Mohan Srivastava <pratiyush.srivastava@nxp.com>
  11. Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
  12. Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
  13. Signed-off-by: Rajesh Bhagat <rajesh.bhagat@nxp.com>
  14. Signed-off-by: Alison Wang <alison.wang@nxp.com>
  15. Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
  16. Signed-off-by: Bhaskar Upadhaya <Bhaskar.Upadhaya@freescale.com>
  17. Signed-off-by: Tang Yuantian <yuantian.tang@nxp.com>
  18. Signed-off-by: Chenhui Zhao <chenhui.zhao@nxp.com>
  19. Signed-off-by: Jia Hongtao <hongtao.jia@nxp.com>
  20. Signed-off-by: Calvin Johnson <calvin.johnson@nxp.com>
  21. [yangbolu: integrate]
  22. Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  23. ---
  24. arch/arm64/boot/dts/freescale/Makefile | 2 +
  25. arch/arm64/boot/dts/freescale/fsl-ls1012a-frdm.dts | 186 +++++++
  26. arch/arm64/boot/dts/freescale/fsl-ls1012a-rdb.dts | 114 +++++
  27. arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi | 526 ++++++++++++++++++++
  28. 4 files changed, 828 insertions(+)
  29. create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1012a-frdm.dts
  30. create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1012a-rdb.dts
  31. create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
  32. --- a/arch/arm64/boot/dts/freescale/Makefile
  33. +++ b/arch/arm64/boot/dts/freescale/Makefile
  34. @@ -2,6 +2,8 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2
  35. dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb
  36. dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb
  37. dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-rdb.dtb
  38. +dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1012a-rdb.dtb
  39. +dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1012a-frdm.dtb
  40. always := $(dtb-y)
  41. subdir-y := $(dts-dirs)
  42. --- /dev/null
  43. +++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a-frdm.dts
  44. @@ -0,0 +1,186 @@
  45. +/*
  46. + * Device Tree Include file for Freescale Layerscape-1012A family SoC.
  47. + *
  48. + * Copyright 2016, Freescale Semiconductor Inc.
  49. +
  50. + * Redistribution and use in source and binary forms, with or without
  51. + * modification, are permitted provided that the following conditions are met:
  52. + * * Redistributions of source code must retain the above copyright
  53. + * notice, this list of conditions and the following disclaimer.
  54. + * * Redistributions in binary form must reproduce the above copyright
  55. + * notice, this list of conditions and the following disclaimer in the
  56. + * documentation and/or other materials provided with the distribution.
  57. + * * Neither the name of Freescale Semiconductor nor the
  58. + * names of its contributors may be used to endorse or promote products
  59. + * derived from this software without specific prior written permission.
  60. + *
  61. + *
  62. + * ALTERNATIVELY, this software may be distributed under the terms of the
  63. + * GNU General Public License ("GPL") as published by the Free Software
  64. + * Foundation, either version 2 of that License or (at your option) any
  65. + * later version.
  66. + *
  67. + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
  68. + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  69. + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  70. + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
  71. + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  72. + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  73. + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  74. + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  75. + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  76. + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  77. + */
  78. +/dts-v1/;
  79. +
  80. +#include "fsl-ls1012a.dtsi"
  81. +
  82. +/ {
  83. + model = "LS1012A FREEDOM Board";
  84. + compatible = "fsl,ls1012a-frdm", "fsl,ls1012a";
  85. +
  86. + aliases {
  87. + crypto = &crypto;
  88. + };
  89. +
  90. + sys_mclk: clock-mclk {
  91. + compatible = "fixed-clock";
  92. + #clock-cells = <0>;
  93. + clock-frequency = <25000000>;
  94. + };
  95. +
  96. + regulators {
  97. + compatible = "simple-bus";
  98. + #address-cells = <1>;
  99. + #size-cells = <0>;
  100. +
  101. + reg_1p8v: regulator@0 {
  102. + compatible = "regulator-fixed";
  103. + reg = <0>;
  104. + regulator-name = "1P8V";
  105. + regulator-min-microvolt = <1800000>;
  106. + regulator-max-microvolt = <1800000>;
  107. + regulator-always-on;
  108. + };
  109. + };
  110. +
  111. + sound {
  112. + compatible = "simple-audio-card";
  113. + simple-audio-card,format = "i2s";
  114. + simple-audio-card,widgets =
  115. + "Microphone", "Microphone Jack",
  116. + "Headphone", "Headphone Jack",
  117. + "Speaker", "Speaker Ext",
  118. + "Line", "Line In Jack";
  119. + simple-audio-card,routing =
  120. + "MIC_IN", "Microphone Jack",
  121. + "Microphone Jack", "Mic Bias",
  122. + "LINE_IN", "Line In Jack",
  123. + "Headphone Jack", "HP_OUT",
  124. + "Speaker Ext", "LINE_OUT";
  125. +
  126. + simple-audio-card,cpu {
  127. + sound-dai = <&sai2>;
  128. + frame-master;
  129. + bitclock-master;
  130. + };
  131. +
  132. + simple-audio-card,codec {
  133. + sound-dai = <&codec>;
  134. + frame-master;
  135. + bitclock-master;
  136. + system-clock-frequency = <25000000>;
  137. + };
  138. + };
  139. +};
  140. +
  141. +&qspi {
  142. + num-cs = <2>;
  143. + bus-num = <0>;
  144. + status = "okay";
  145. + fsl,ddr-sampling-point = <4>;
  146. +
  147. + qflash0: s25fs512s@0 {
  148. + compatible = "spansion,m25p80";
  149. + #address-cells = <1>;
  150. + #size-cells = <1>;
  151. + spi-max-frequency = <20000000>;
  152. + m25p,fast-read;
  153. + reg = <0>;
  154. + };
  155. +};
  156. +&ftm0 {
  157. + status = "okay";
  158. +};
  159. +
  160. +&i2c0 {
  161. + status = "okay";
  162. +
  163. + codec: sgtl5000@a {
  164. + #sound-dai-cells = <0>;
  165. + compatible = "fsl,sgtl5000";
  166. + reg = <0xa>;
  167. + VDDA-supply = <&reg_1p8v>;
  168. + VDDIO-supply = <&reg_1p8v>;
  169. + clocks = <&sys_mclk 1>;
  170. + };
  171. +};
  172. +
  173. +&duart0 {
  174. + status = "okay";
  175. +};
  176. +&pfe {
  177. + status = "okay";
  178. + ethernet@0 {
  179. + compatible = "fsl,pfe-gemac-port";
  180. + #address-cells = <1>;
  181. + #size-cells = <0>;
  182. + reg = < 0x0 >; /* GEM_ID */
  183. + fsl,gemac-bus-id = <0x0>; /* BUS_ID */
  184. + fsl,gemac-phy-id = <0x2>; /* PHY_ID */
  185. + fsl,mdio-mux-val = <0x0>;
  186. + local-mac-address = [ 00 1A 2B 3C 4D 5E ];
  187. + phy-mode = "sgmii";
  188. + fsl,pfe-gemac-if-name = "eth0";
  189. + fsl,pfe-phy-if-flags = <0x0>;
  190. + fsl,pfe-gemac-mode = <0x1B00>; /* GEMAC_SW_CONF | GEMAC_SW_FULL_DUPLEX | GEMAC_SW_SPEED_1G */
  191. +
  192. + mdio@0 {
  193. + reg = <0x1>; /* enabled/disabled */
  194. + fsl,mdio-phy-mask = <0xFFFFFFF9>;
  195. + };
  196. + };
  197. + ethernet@1 {
  198. + compatible = "fsl,pfe-gemac-port";
  199. + #address-cells = <1>;
  200. + #size-cells = <0>;
  201. + reg = < 0x1 >; /* GEM_ID */
  202. + fsl,gemac-bus-id = < 0x1 >; /* BUS_ID */
  203. + fsl,gemac-phy-id = < 0x1 >; /* PHY_ID */
  204. + fsl,mdio-mux-val = <0x0>;
  205. + local-mac-address = [ 00 AA BB CC DD EE ];
  206. + phy-mode = "sgmii";
  207. + fsl,pfe-gemac-if-name = "eth1";
  208. + fsl,pfe-phy-if-flags = <0x0>;
  209. + fsl,pfe-gemac-mode = <0x1B00>; /* GEMAC_SW_CONF | GEMAC_SW_FULL_DUPLEX | GEMAC_SW_SPEED_1G */
  210. + mdio@0 {
  211. + reg = <0x0>; /* enabled/disabled */
  212. + fsl,mdio-phy-mask = <0xFFFFFFF9>;
  213. + };
  214. +
  215. + };
  216. +
  217. +};
  218. +
  219. +
  220. +&esdhc0 {
  221. + status = "disabled";
  222. +};
  223. +
  224. +&esdhc1 {
  225. + status = "disabled";
  226. +};
  227. +
  228. +&sai2 {
  229. + status = "okay";
  230. +};
  231. --- /dev/null
  232. +++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a-rdb.dts
  233. @@ -0,0 +1,114 @@
  234. +/*
  235. + * Device Tree Include file for Freescale Layerscape-1012A family SoC.
  236. + *
  237. + * Copyright 2016, Freescale Semiconductor Inc.
  238. +
  239. + * Redistribution and use in source and binary forms, with or without
  240. + * modification, are permitted provided that the following conditions are met:
  241. + * * Redistributions of source code must retain the above copyright
  242. + * notice, this list of conditions and the following disclaimer.
  243. + * * Redistributions in binary form must reproduce the above copyright
  244. + * notice, this list of conditions and the following disclaimer in the
  245. + * documentation and/or other materials provided with the distribution.
  246. + * * Neither the name of Freescale Semiconductor nor the
  247. + * names of its contributors may be used to endorse or promote products
  248. + * derived from this software without specific prior written permission.
  249. + *
  250. + *
  251. + * ALTERNATIVELY, this software may be distributed under the terms of the
  252. + * GNU General Public License ("GPL") as published by the Free Software
  253. + * Foundation, either version 2 of that License or (at your option) any
  254. + * later version.
  255. + *
  256. + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
  257. + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  258. + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  259. + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
  260. + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  261. + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  262. + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  263. + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  264. + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  265. + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  266. + */
  267. +/dts-v1/;
  268. +
  269. +#include "fsl-ls1012a.dtsi"
  270. +
  271. +/ {
  272. + model = "LS1012A RDB Board";
  273. + compatible = "fsl,ls1012a-rdb", "fsl,ls1012a";
  274. +
  275. + aliases {
  276. + crypto = &crypto;
  277. + };
  278. +};
  279. +
  280. +&qspi {
  281. + num-cs = <2>;
  282. + bus-num = <0>;
  283. + status = "okay";
  284. + fsl,ddr-sampling-point = <4>;
  285. +
  286. + qflash0: s25fs512s@0 {
  287. + compatible = "spansion,m25p80";
  288. + #address-cells = <1>;
  289. + #size-cells = <1>;
  290. + spi-max-frequency = <20000000>;
  291. + m25p,fast-read;
  292. + reg = <0>;
  293. + };
  294. +};
  295. +&ftm0 {
  296. + status = "okay";
  297. +};
  298. +
  299. +&i2c0 {
  300. + status = "okay";
  301. +};
  302. +
  303. +&duart0 {
  304. + status = "okay";
  305. +};
  306. +&pfe {
  307. + status = "okay";
  308. + ethernet@0 {
  309. + compatible = "fsl,pfe-gemac-port";
  310. + #address-cells = <1>;
  311. + #size-cells = <0>;
  312. + reg = < 0x0 >; /* GEM_ID */
  313. + fsl,gemac-bus-id = <0x0>; /* BUS_ID */
  314. + fsl,gemac-phy-id = <0x2>; /* PHY_ID */
  315. + fsl,mdio-mux-val = <0x0>;
  316. + local-mac-address = [ 00 1A 2B 3C 4D 5E ];
  317. + phy-mode = "sgmii";
  318. + fsl,pfe-gemac-if-name = "eth0";
  319. + fsl,pfe-phy-if-flags = <0x0>;
  320. + fsl,pfe-gemac-mode = <0x1B00>; /* GEMAC_SW_CONF | GEMAC_SW_FULL_DUPLEX | GEMAC_SW_SPEED_1G */
  321. +
  322. + mdio@0 {
  323. + reg = <0x1>; /* enabled/disabled */
  324. + fsl,mdio-phy-mask = <0xFFFFFFF9>;
  325. + };
  326. + };
  327. + ethernet@1 {
  328. + compatible = "fsl,pfe-gemac-port";
  329. + #address-cells = <1>;
  330. + #size-cells = <0>;
  331. + reg = < 0x1 >; /* GEM_ID */
  332. + fsl,gemac-bus-id = < 0x1 >; /* BUS_ID */
  333. + fsl,gemac-phy-id = < 0x1 >; /* PHY_ID */
  334. + fsl,mdio-mux-val = <0x0>;
  335. + local-mac-address = [ 00 AA BB CC DD EE ];
  336. + phy-mode = "rgmii";
  337. + fsl,pfe-gemac-if-name = "eth2";
  338. + fsl,pfe-phy-if-flags = <0x0>;
  339. + fsl,pfe-gemac-mode = <0x1B00>; /* GEMAC_SW_CONF | GEMAC_SW_FULL_DUPLEX | GEMAC_SW_SPEED_1G */
  340. + mdio@0 {
  341. + reg = <0x0>; /* enabled/disabled */
  342. + fsl,mdio-phy-mask = <0xFFFFFFF9>;
  343. + };
  344. +
  345. + };
  346. +
  347. +};
  348. --- /dev/null
  349. +++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
  350. @@ -0,0 +1,526 @@
  351. +/*
  352. + * Device Tree Include file for Freescale Layerscape-1043A family SoC.
  353. + *
  354. + * Copyright 2016, Freescale Semiconductor
  355. + *
  356. + * This file is dual-licensed: you can use it either under the terms
  357. + * of the GPLv2 or the X11 license, at your option. Note that this dual
  358. + * licensing only applies to this file, and not this project as a
  359. + * whole.
  360. + *
  361. + * a) This library is free software; you can redistribute it and/or
  362. + * modify it under the terms of the GNU General Public License as
  363. + * published by the Free Software Foundation; either version 2 of the
  364. + * License, or (at your option) any later version.
  365. + *
  366. + * This library is distributed in the hope that it will be useful,
  367. + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  368. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  369. + * GNU General Public License for more details.
  370. + *
  371. + * Or, alternatively,
  372. + *
  373. + * b) Permission is hereby granted, free of charge, to any person
  374. + * obtaining a copy of this software and associated documentation
  375. + * files (the "Software"), to deal in the Software without
  376. + * restriction, including without limitation the rights to use,
  377. + * copy, modify, merge, publish, distribute, sublicense, and/or
  378. + * sell copies of the Software, and to permit persons to whom the
  379. + * Software is furnished to do so, subject to the following
  380. + * conditions:
  381. + *
  382. + * The above copyright notice and this permission notice shall be
  383. + * included in all copies or substantial portions of the Software.
  384. + *
  385. + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  386. + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  387. + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  388. + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  389. + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  390. + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  391. + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  392. + * OTHER DEALINGS IN THE SOFTWARE.
  393. + */
  394. +
  395. +#include <dt-bindings/thermal/thermal.h>
  396. +
  397. +/ {
  398. + compatible = "fsl,ls1012a";
  399. + interrupt-parent = <&gic>;
  400. + #address-cells = <2>;
  401. + #size-cells = <2>;
  402. +
  403. + cpus {
  404. + #address-cells = <1>;
  405. + #size-cells = <0>;
  406. +
  407. + /*
  408. + * We expect the enable-method for cpu's to be "psci", but this
  409. + * is dependent on the SoC FW, which will fill this in.
  410. + *
  411. + * Currently supported enable-method is psci v0.2
  412. + */
  413. + cpu0: cpu@0 {
  414. + device_type = "cpu";
  415. + compatible = "arm,cortex-a53";
  416. + reg = <0x0>;
  417. + clocks = <&clockgen 1 0>;
  418. + #cooling-cells = <2>;
  419. + };
  420. +
  421. + };
  422. +
  423. +
  424. + sysclk: sysclk {
  425. + compatible = "fixed-clock";
  426. + #clock-cells = <0>;
  427. + clock-frequency = <100000000>;
  428. + clock-output-names = "sysclk";
  429. + };
  430. +
  431. + timer {
  432. + compatible = "arm,armv8-timer";
  433. + interrupts = <1 13 0x1>, /* Physical Secure PPI */
  434. + <1 14 0x1>, /* Physical Non-Secure PPI */
  435. + <1 11 0x1>, /* Virtual PPI */
  436. + <1 10 0x1>; /* Hypervisor PPI */
  437. + arm,reread-timer;
  438. + };
  439. +
  440. + pmu {
  441. + compatible = "arm,armv8-pmuv3";
  442. + interrupts = <0 106 0x4>;
  443. + };
  444. +
  445. + gic: interrupt-controller@1400000 {
  446. + compatible = "arm,gic-400";
  447. + #interrupt-cells = <3>;
  448. + interrupt-controller;
  449. + reg = <0x0 0x1401000 0 0x1000>, /* GICD */
  450. + <0x0 0x1402000 0 0x2000>, /* GICC */
  451. + <0x0 0x1404000 0 0x2000>, /* GICH */
  452. + <0x0 0x1406000 0 0x2000>; /* GICV */
  453. + interrupts = <1 9 0xf08>;
  454. + };
  455. +
  456. + soc {
  457. + compatible = "simple-bus";
  458. + #address-cells = <2>;
  459. + #size-cells = <2>;
  460. + ranges;
  461. +
  462. + clockgen: clocking@1ee1000 {
  463. + compatible = "fsl,ls1012a-clockgen";
  464. + reg = <0x0 0x1ee1000 0x0 0x1000>;
  465. + #clock-cells = <2>;
  466. + clocks = <&sysclk>;
  467. + };
  468. +
  469. + scfg: scfg@1570000 {
  470. + compatible = "fsl,ls1012a-scfg",
  471. + "fsl,ls1043a-scfg",
  472. + "syscon";
  473. + reg = <0x0 0x1570000 0x0 0x10000>;
  474. + big-endian;
  475. + };
  476. +
  477. + crypto: crypto@1700000 {
  478. + compatible = "fsl,sec-v5.4", "fsl,sec-v5.0",
  479. + "fsl,sec-v4.0";
  480. + fsl,sec-era = <8>;
  481. + #address-cells = <1>;
  482. + #size-cells = <1>;
  483. + ranges = <0x0 0x00 0x1700000 0x100000>;
  484. + reg = <0x00 0x1700000 0x0 0x100000>;
  485. + interrupts = <0 75 0x4>;
  486. +
  487. + sec_jr0: jr@10000 {
  488. + compatible = "fsl,sec-v5.4-job-ring",
  489. + "fsl,sec-v5.0-job-ring",
  490. + "fsl,sec-v4.0-job-ring";
  491. + reg = <0x10000 0x10000>;
  492. + interrupts = <0 71 0x4>;
  493. + };
  494. +
  495. + sec_jr1: jr@20000 {
  496. + compatible = "fsl,sec-v5.4-job-ring",
  497. + "fsl,sec-v5.0-job-ring",
  498. + "fsl,sec-v4.0-job-ring";
  499. + reg = <0x20000 0x10000>;
  500. + interrupts = <0 72 0x4>;
  501. + };
  502. +
  503. + sec_jr2: jr@30000 {
  504. + compatible = "fsl,sec-v5.4-job-ring",
  505. + "fsl,sec-v5.0-job-ring",
  506. + "fsl,sec-v4.0-job-ring";
  507. + reg = <0x30000 0x10000>;
  508. + interrupts = <0 73 0x4>;
  509. + };
  510. +
  511. + sec_jr3: jr@40000 {
  512. + compatible = "fsl,sec-v5.4-job-ring",
  513. + "fsl,sec-v5.0-job-ring",
  514. + "fsl,sec-v4.0-job-ring";
  515. + reg = <0x40000 0x10000>;
  516. + interrupts = <0 74 0x4>;
  517. + };
  518. + };
  519. +
  520. +
  521. + dcfg: dcfg@1ee0000 {
  522. + compatible = "fsl,ls1012a-dcfg",
  523. + "fsl,ls1043a-dcfg",
  524. + "syscon";
  525. + reg = <0x0 0x1ee0000 0x0 0x10000>;
  526. + };
  527. +
  528. + reset: reset@1EE00B0 {
  529. + compatible = "fsl,ls-reset";
  530. + reg = <0x0 0x1EE00B0 0x0 0x4>;
  531. + big-endian;
  532. + };
  533. +
  534. + rcpm: rcpm@1ee2000 {
  535. + compatible = "fsl,ls1012a-rcpm",
  536. + "fsl,ls1043a-rcpm",
  537. + "fsl,qoriq-rcpm-2.1";
  538. + reg = <0x0 0x1ee2000 0x0 0x10000>;
  539. + };
  540. +
  541. + ftm0: ftm0@29d0000 {
  542. + compatible = "fsl,ftm-alarm";
  543. + reg = <0x0 0x29d0000 0x0 0x10000>;
  544. + interrupts = <0 86 0x4>;
  545. + big-endian;
  546. + rcpm-wakeup = <&rcpm 0x00020000 0x0>;
  547. + status = "okay";
  548. + };
  549. +
  550. + esdhc0: esdhc@1560000 {
  551. + compatible = "fsl,ls1012a-esdhc0", "fsl,esdhc";
  552. + reg = <0x0 0x1560000 0x0 0x10000>;
  553. + interrupts = <0 62 0x4>;
  554. + clock-frequency = <0>;
  555. + voltage-ranges = <1800 1800 3300 3300>;
  556. + sdhci,auto-cmd12;
  557. + big-endian;
  558. + bus-width = <4>;
  559. + };
  560. +
  561. + esdhc1: esdhc@1580000 {
  562. + compatible = "fsl,ls1012a-esdhc1", "fsl,esdhc";
  563. + reg = <0x0 0x1580000 0x0 0x10000>;
  564. + interrupts = <0 65 0x4>;
  565. + clock-frequency = <0>;
  566. + voltage-ranges = <1800 1800 3300 3300>;
  567. + sdhci,auto-cmd12;
  568. + big-endian;
  569. + bus-width = <4>;
  570. + };
  571. +
  572. + dspi0: dspi@2100000 {
  573. + compatible = "fsl,ls1012a-dspi",
  574. + "fsl,ls1043a-dspi",
  575. + "fsl,ls1021a-v1.0-dspi";
  576. + #address-cells = <1>;
  577. + #size-cells = <0>;
  578. + reg = <0x0 0x2100000 0x0 0x10000>;
  579. + interrupts = <0 64 0x4>;
  580. + clock-names = "dspi";
  581. + clocks = <&clockgen 4 0>;
  582. + spi-num-chipselects = <5>;
  583. + big-endian;
  584. + status = "enabled";
  585. + };
  586. +
  587. + qspi: quadspi@1550000 {
  588. + compatible = "fsl,ls1012a-qspi",
  589. + "fsl,ls1043a-qspi",
  590. + "fsl,ls1021a-qspi";
  591. + #address-cells = <1>;
  592. + #size-cells = <0>;
  593. + reg = <0x0 0x1550000 0x0 0x10000>,
  594. + <0x0 0x40000000 0x0 0x4000000>;
  595. + reg-names = "QuadSPI", "QuadSPI-memory";
  596. + interrupts = <0 99 0x4>;
  597. + clock-names = "qspi_en", "qspi";
  598. + clocks = <&clockgen 4 0>, <&clockgen 4 0>;
  599. + big-endian;
  600. + amba-base = <0x42000000>;
  601. + };
  602. +
  603. + tmu: tmu@1f00000 {
  604. + compatible = "fsl,qoriq-tmu", "fsl,ls1012a-tmu";
  605. + reg = <0x0 0x1f00000 0x0 0x10000>;
  606. + interrupts = <0 33 0x4>;
  607. + fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x30062>;
  608. + fsl,tmu-calibration = <0x00000000 0x00000026
  609. + 0x00000001 0x0000002d
  610. + 0x00000002 0x00000032
  611. + 0x00000003 0x00000039
  612. + 0x00000004 0x0000003f
  613. + 0x00000005 0x00000046
  614. + 0x00000006 0x0000004d
  615. + 0x00000007 0x00000054
  616. + 0x00000008 0x0000005a
  617. + 0x00000009 0x00000061
  618. + 0x0000000a 0x0000006a
  619. + 0x0000000b 0x00000071
  620. +
  621. + 0x00010000 0x00000025
  622. + 0x00010001 0x0000002c
  623. + 0x00010002 0x00000035
  624. + 0x00010003 0x0000003d
  625. + 0x00010004 0x00000045
  626. + 0x00010005 0x0000004e
  627. + 0x00010006 0x00000057
  628. + 0x00010007 0x00000061
  629. + 0x00010008 0x0000006b
  630. + 0x00010009 0x00000076
  631. +
  632. + 0x00020000 0x00000029
  633. + 0x00020001 0x00000033
  634. + 0x00020002 0x0000003d
  635. + 0x00020003 0x00000049
  636. + 0x00020004 0x00000056
  637. + 0x00020005 0x00000061
  638. + 0x00020006 0x0000006d
  639. +
  640. + 0x00030000 0x00000021
  641. + 0x00030001 0x0000002a
  642. + 0x00030002 0x0000003c
  643. + 0x00030003 0x0000004e>;
  644. + big-endian;
  645. + #thermal-sensor-cells = <1>;
  646. + };
  647. +
  648. + thermal-zones {
  649. + cpu_thermal: cpu-thermal {
  650. + polling-delay-passive = <1000>;
  651. + polling-delay = <5000>;
  652. +
  653. + thermal-sensors = <&tmu 0>;
  654. +
  655. + trips {
  656. + cpu_alert: cpu-alert {
  657. + temperature = <85000>;
  658. + hysteresis = <2000>;
  659. + type = "passive";
  660. + };
  661. + cpu_crit: cpu-crit {
  662. + temperature = <95000>;
  663. + hysteresis = <2000>;
  664. + type = "critical";
  665. + };
  666. + };
  667. +
  668. + cooling-maps {
  669. + map0 {
  670. + trip = <&cpu_alert>;
  671. + cooling-device =
  672. + <&cpu0 THERMAL_NO_LIMIT
  673. + THERMAL_NO_LIMIT>;
  674. + };
  675. + };
  676. + };
  677. + };
  678. +
  679. + i2c0: i2c@2180000 {
  680. + compatible = "fsl,vf610-i2c";
  681. + #address-cells = <1>;
  682. + #size-cells = <0>;
  683. + reg = <0x0 0x2180000 0x0 0x10000>;
  684. + interrupts = <0 56 0x4>;
  685. + clock-names = "i2c";
  686. + clocks = <&clockgen 4 0>;
  687. + status = "disabled";
  688. + };
  689. +
  690. + i2c1: i2c@2190000 {
  691. + compatible = "fsl,vf610-i2c";
  692. + #address-cells = <1>;
  693. + #size-cells = <0>;
  694. + reg = <0x0 0x2190000 0x0 0x10000>;
  695. + interrupts = <0 57 0x4>;
  696. + clock-names = "i2c";
  697. + clocks = <&clockgen 4 0>;
  698. + status = "disabled";
  699. + };
  700. +
  701. +
  702. + duart0: serial@21c0500 {
  703. + compatible = "fsl,ns16550", "ns16550a";
  704. + reg = <0x00 0x21c0500 0x0 0x100>;
  705. + interrupts = <0 54 0x4>;
  706. + clocks = <&clockgen 4 0>;
  707. + };
  708. +
  709. + duart1: serial@21c0600 {
  710. + compatible = "fsl,ns16550", "ns16550a";
  711. + reg = <0x00 0x21c0600 0x0 0x100>;
  712. + interrupts = <0 54 0x4>;
  713. + clocks = <&clockgen 4 0>;
  714. + };
  715. +
  716. + gpio0: gpio@2300000 {
  717. + compatible = "fsl,qoriq-gpio";
  718. + reg = <0x0 0x2300000 0x0 0x10000>;
  719. + interrupts = <0 66 0x4>;
  720. + gpio-controller;
  721. + #gpio-cells = <2>;
  722. + interrupt-controller;
  723. + #interrupt-cells = <2>;
  724. + };
  725. +
  726. + gpio1: gpio@2310000 {
  727. + compatible = "fsl,qoriq-gpio";
  728. + reg = <0x0 0x2310000 0x0 0x10000>;
  729. + interrupts = <0 67 0x4>;
  730. + gpio-controller;
  731. + #gpio-cells = <2>;
  732. + interrupt-controller;
  733. + #interrupt-cells = <2>;
  734. + };
  735. +
  736. + wdog0: wdog@2ad0000 {
  737. + compatible = "fsl,ls1012a-wdt",
  738. + "fsl,ls1043a-wdt",
  739. + "fsl,imx21-wdt";
  740. + reg = <0x0 0x2ad0000 0x0 0x10000>;
  741. + interrupts = <0 83 0x4>;
  742. + clocks = <&clockgen 4 0>;
  743. + clock-names = "wdog";
  744. + big-endian;
  745. + };
  746. +
  747. + sai1: sai@2b50000 {
  748. + #sound-dai-cells = <0>;
  749. + compatible = "fsl,vf610-sai";
  750. + reg = <0x0 0x2b50000 0x0 0x10000>;
  751. + interrupts = <0 148 0x4>;
  752. + clocks = <&clockgen 4 3>, <&clockgen 4 3>,
  753. + <&clockgen 4 3>, <&clockgen 4 3>;
  754. + clock-names = "bus", "mclk1", "mclk2", "mclk3";
  755. + dma-names = "tx", "rx";
  756. + dmas = <&edma0 1 47>,
  757. + <&edma0 1 46>;
  758. + status = "disabled";
  759. + };
  760. +
  761. + sai2: sai@2b60000 {
  762. + #sound-dai-cells = <0>;
  763. + compatible = "fsl,vf610-sai";
  764. + reg = <0x0 0x2b60000 0x0 0x10000>;
  765. + interrupts = <0 149 0x4>;
  766. + clocks = <&clockgen 4 3>, <&clockgen 4 3>,
  767. + <&clockgen 4 3>, <&clockgen 4 3>;
  768. + clock-names = "bus", "mclk1", "mclk2", "mclk3";
  769. + dma-names = "tx", "rx";
  770. + dmas = <&edma0 1 45>,
  771. + <&edma0 1 44>;
  772. + status = "disabled";
  773. + };
  774. +
  775. + edma0: edma@2c00000 {
  776. + #dma-cells = <2>;
  777. + compatible = "fsl,vf610-edma";
  778. + reg = <0x0 0x2c00000 0x0 0x10000>,
  779. + <0x0 0x2c10000 0x0 0x10000>,
  780. + <0x0 0x2c20000 0x0 0x10000>;
  781. + interrupts = <0 103 0x4>,
  782. + <0 103 0x4>;
  783. + interrupt-names = "edma-tx", "edma-err";
  784. + dma-channels = <32>;
  785. + big-endian;
  786. + clock-names = "dmamux0", "dmamux1";
  787. + clocks = <&clockgen 4 3>,
  788. + <&clockgen 4 3>;
  789. + };
  790. +
  791. + sata: sata@3200000 {
  792. + compatible = "fsl,ls1012a-ahci";
  793. + reg = <0x0 0x3200000 0x0 0x10000>;
  794. + interrupts = <0 69 0x4>;
  795. + clocks = <&clockgen 4 0>;
  796. + };
  797. +
  798. + msi2: msi-controller2@1572000 {
  799. + compatible ="fsl,1s1012a-msi", "fsl,1s1021a-msi";
  800. + reg = <0x0 0x1572000 0x0 0x4>,
  801. + <0x0 0x1572004 0x0 0x4>;
  802. + reg-names = "msiir", "msir";
  803. + msi-controller;
  804. + interrupts = <0 126 0x4>;
  805. + };
  806. +
  807. + usb@8600000 {
  808. + compatible = "fsl-usb2-dr-v2.5", "fsl-usb2-dr";
  809. + reg = <0x0 0x8600000 0x0 0x1000>;
  810. + interrupts = <0 139 0x4>;
  811. + dr_mode = "host";
  812. + phy_type = "ulpi";
  813. + fsl,usb-erratum-a005697;
  814. + };
  815. +
  816. + usb0: usb3@2f00000 {
  817. + compatible = "snps,dwc3";
  818. + reg = <0x0 0x2f00000 0x0 0x10000>;
  819. + interrupts = <0 60 0x4>;
  820. + dr_mode = "host";
  821. + configure-gfladj;
  822. + snps,dis_rxdet_inp3_quirk;
  823. + };
  824. +
  825. + pcie@3400000 {
  826. + compatible = "fsl,ls1012a-pcie",
  827. + "fsl,ls1043a-pcie",
  828. + "snps,dw-pcie";
  829. + reg = <0x00 0x03400000 0x0 0x00100000 /* controller registers */
  830. + 0x40 0x00000000 0x0 0x00002000>; /* configuration space */
  831. + reg-names = "regs", "config";
  832. + interrupts = <0 118 0x4>, /* controller interrupt */
  833. + <0 117 0x4>; /* PME interrupt */
  834. + interrupt-names = "intr", "pme";
  835. + #address-cells = <3>;
  836. + #size-cells = <2>;
  837. + device_type = "pci";
  838. + num-lanes = <4>;
  839. + bus-range = <0x0 0xff>;
  840. + ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000 /* downstream I/O */
  841. + 0x82000000 0x0 0x40000000 0x40 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
  842. + msi-parent = <&msi2>;
  843. + #interrupt-cells = <1>;
  844. + interrupt-map-mask = <0 0 0 7>;
  845. + interrupt-map = <0000 0 0 1 &gic 0 110 0x4>,
  846. + <0000 0 0 2 &gic 0 111 0x4>,
  847. + <0000 0 0 3 &gic 0 112 0x4>,
  848. + <0000 0 0 4 &gic 0 113 0x4>;
  849. + };
  850. + };
  851. + reserved-memory {
  852. + #address-cells = <2>;
  853. + #size-cells = <2>;
  854. + ranges;
  855. +
  856. + pfe_reserved: packetbuffer@83400000 {
  857. + reg = <0 0x83400000 0 0xc00000>;
  858. + };
  859. + };
  860. +
  861. + pfe: pfe@04000000 {
  862. + compatible = "fsl,pfe";
  863. + ranges = <0x0 0x00 0x04000000 0xc00000
  864. + 0x1 0x00 0x83400000 0xc00000>;
  865. + reg = <0x0 0x90500000 0x0 0x10000>, /* APB 64K */
  866. + <0x0 0x04000000 0x0 0xc00000>, /* AXI 16M */
  867. + <0x0 0x83400000 0x0 0xc00000>, /* PFE DDR 12M */
  868. + <0x0 0x10000000 0x0 0x2000>; /* OCRAM 8K */
  869. + fsl,pfe-num-interfaces = < 0x2 >;
  870. + interrupts = <0 172 0x4>;
  871. + #interrupt-names = "hifirq";
  872. + memory-region = <&pfe_reserved>;
  873. + fsl,pfe-scfg = <&scfg 0>;
  874. + };
  875. +
  876. +};