0048-arm64-dts-ti-iot2050-Prepare-for-adding-2nd-generati.patch 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360
  1. From 5a787ba2a83e7c3f97b17a3e85feba1194bff3b1 Mon Sep 17 00:00:00 2001
  2. From: Jan Kiszka <jan.kiszka@siemens.com>
  3. Date: Sun, 26 Sep 2021 14:05:16 +0200
  4. Subject: [PATCH] arm64: dts: ti: iot2050: Prepare for adding 2nd-generation
  5. boards
  6. The current IOT2050 devices are Product Generation 1 (PG1), using SR1.0
  7. AM65x silicon. Upcoming PG2 devices will use SR2.x SoCs and will
  8. therefore need separate device trees. Prepare for that by factoring out
  9. common bits that will be shared across both generations.
  10. At this chance, drop a link to the product homepage to in the top-level
  11. dts files. Also fix a typo in my email address in some headers.
  12. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
  13. Signed-off-by: Nishanth Menon <nm@ti.com>
  14. Link: https://lore.kernel.org/r/31fece05f9728a852c0632985c4fa537cced4ece.1632657917.git.jan.kiszka@web.de
  15. ---
  16. .../dts/ti/k3-am65-iot2050-common-pg1.dtsi | 46 +++++++++++++++
  17. .../boot/dts/ti/k3-am65-iot2050-common.dtsi | 35 +-----------
  18. ...ts => k3-am6528-iot2050-basic-common.dtsi} | 12 +---
  19. .../boot/dts/ti/k3-am6528-iot2050-basic.dts | 56 +++----------------
  20. ...=> k3-am6548-iot2050-advanced-common.dtsi} | 8 +--
  21. .../dts/ti/k3-am6548-iot2050-advanced.dts | 50 +++--------------
  22. 6 files changed, 67 insertions(+), 140 deletions(-)
  23. create mode 100644 arch/arm64/boot/dts/ti/k3-am65-iot2050-common-pg1.dtsi
  24. copy arch/arm64/boot/dts/ti/{k3-am6528-iot2050-basic.dts => k3-am6528-iot2050-basic-common.dtsi} (80%)
  25. copy arch/arm64/boot/dts/ti/{k3-am6548-iot2050-advanced.dts => k3-am6548-iot2050-advanced-common.dtsi} (85%)
  26. diff --git a/arch/arm64/boot/dts/ti/k3-am65-iot2050-common-pg1.dtsi b/arch/arm64/boot/dts/ti/k3-am65-iot2050-common-pg1.dtsi
  27. new file mode 100644
  28. index 000000000000..51f902fa35a7
  29. --- /dev/null
  30. +++ b/arch/arm64/boot/dts/ti/k3-am65-iot2050-common-pg1.dtsi
  31. @@ -0,0 +1,46 @@
  32. +// SPDX-License-Identifier: GPL-2.0
  33. +/*
  34. + * Copyright (c) Siemens AG, 2021
  35. + *
  36. + * Authors:
  37. + * Jan Kiszka <jan.kiszka@siemens.com>
  38. + *
  39. + * Common bits of the IOT2050 Basic and Advanced variants, PG1
  40. + */
  41. +
  42. +&dss {
  43. + assigned-clocks = <&k3_clks 67 2>;
  44. + assigned-clock-parents = <&k3_clks 67 5>;
  45. +};
  46. +
  47. +&serdes0 {
  48. + status = "disabled";
  49. +};
  50. +
  51. +&sdhci1 {
  52. + no-1-8-v;
  53. +};
  54. +
  55. +&tx_pru0_0 {
  56. + status = "disabled";
  57. +};
  58. +
  59. +&tx_pru0_1 {
  60. + status = "disabled";
  61. +};
  62. +
  63. +&tx_pru1_0 {
  64. + status = "disabled";
  65. +};
  66. +
  67. +&tx_pru1_1 {
  68. + status = "disabled";
  69. +};
  70. +
  71. +&tx_pru2_0 {
  72. + status = "disabled";
  73. +};
  74. +
  75. +&tx_pru2_1 {
  76. + status = "disabled";
  77. +};
  78. diff --git a/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi b/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi
  79. index b29537088289..65da226847f4 100644
  80. --- a/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi
  81. +++ b/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi
  82. @@ -4,13 +4,11 @@
  83. *
  84. * Authors:
  85. * Le Jin <le.jin@siemens.com>
  86. - * Jan Kiszka <jan.kiszk@siemens.com>
  87. + * Jan Kiszka <jan.kiszka@siemens.com>
  88. *
  89. - * Common bits of the IOT2050 Basic and Advanced variants
  90. + * Common bits of the IOT2050 Basic and Advanced variants, PG1 and PG2
  91. */
  92. -/dts-v1/;
  93. -
  94. #include "k3-am654.dtsi"
  95. #include <dt-bindings/phy/phy.h>
  96. @@ -557,7 +555,6 @@ &sdhci1 {
  97. pinctrl-0 = <&main_mmc1_pins_default>;
  98. ti,driver-strength-ohm = <50>;
  99. disable-wp;
  100. - no-1-8-v;
  101. };
  102. &usb0 {
  103. @@ -631,10 +628,6 @@ dpi_out: endpoint {
  104. };
  105. };
  106. -&serdes0 {
  107. - status = "disabled";
  108. -};
  109. -
  110. &pcie0_rc {
  111. status = "disabled";
  112. };
  113. @@ -738,27 +731,3 @@ &icssg1_mdio {
  114. &icssg2_mdio {
  115. status = "disabled";
  116. };
  117. -
  118. -&tx_pru0_0 {
  119. - status = "disabled";
  120. -};
  121. -
  122. -&tx_pru0_1 {
  123. - status = "disabled";
  124. -};
  125. -
  126. -&tx_pru1_0 {
  127. - status = "disabled";
  128. -};
  129. -
  130. -&tx_pru1_1 {
  131. - status = "disabled";
  132. -};
  133. -
  134. -&tx_pru2_0 {
  135. - status = "disabled";
  136. -};
  137. -
  138. -&tx_pru2_1 {
  139. - status = "disabled";
  140. -};
  141. diff --git a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic-common.dtsi
  142. similarity index 80%
  143. copy from arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts
  144. copy to arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic-common.dtsi
  145. index 94bb5dd39122..4a9bf7d7c07d 100644
  146. --- a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts
  147. +++ b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic-common.dtsi
  148. @@ -4,20 +4,14 @@
  149. *
  150. * Authors:
  151. * Le Jin <le.jin@siemens.com>
  152. - * Jan Kiszka <jan.kiszk@siemens.com>
  153. + * Jan Kiszka <jan.kiszka@siemens.com>
  154. *
  155. - * AM6528-based (dual-core) IOT2050 Basic variant
  156. - * 1 GB RAM, no eMMC, main_uart0 on connector X30
  157. + * Common bits of the IOT2050 Basic variant, PG1 and PG2
  158. */
  159. -/dts-v1/;
  160. -
  161. #include "k3-am65-iot2050-common.dtsi"
  162. / {
  163. - compatible = "siemens,iot2050-basic", "ti,am654";
  164. - model = "SIMATIC IOT2050 Basic";
  165. -
  166. memory@80000000 {
  167. device_type = "memory";
  168. /* 1G RAM */
  169. @@ -61,6 +55,6 @@ &main_uart0 {
  170. };
  171. &mcu_r5fss0 {
  172. - /* lock-step mode not supported on this board */
  173. + /* lock-step mode not supported on Basic boards */
  174. ti,cluster-mode = <0>;
  175. };
  176. diff --git a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts
  177. index 94bb5dd39122..87928ff28214 100644
  178. --- a/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts
  179. +++ b/arch/arm64/boot/dts/ti/k3-am6528-iot2050-basic.dts
  180. @@ -4,63 +4,21 @@
  181. *
  182. * Authors:
  183. * Le Jin <le.jin@siemens.com>
  184. - * Jan Kiszka <jan.kiszk@siemens.com>
  185. + * Jan Kiszka <jan.kiszka@siemens.com>
  186. *
  187. - * AM6528-based (dual-core) IOT2050 Basic variant
  188. + * AM6528-based (dual-core) IOT2050 Basic variant, Product Generation 1
  189. * 1 GB RAM, no eMMC, main_uart0 on connector X30
  190. + *
  191. + * Product homepage:
  192. + * https://new.siemens.com/global/en/products/automation/pc-based/iot-gateways/simatic-iot2050.html
  193. */
  194. /dts-v1/;
  195. -#include "k3-am65-iot2050-common.dtsi"
  196. +#include "k3-am6528-iot2050-basic-common.dtsi"
  197. +#include "k3-am65-iot2050-common-pg1.dtsi"
  198. / {
  199. compatible = "siemens,iot2050-basic", "ti,am654";
  200. model = "SIMATIC IOT2050 Basic";
  201. -
  202. - memory@80000000 {
  203. - device_type = "memory";
  204. - /* 1G RAM */
  205. - reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
  206. - };
  207. -
  208. - cpus {
  209. - cpu-map {
  210. - /delete-node/ cluster1;
  211. - };
  212. - /delete-node/ cpu@100;
  213. - /delete-node/ cpu@101;
  214. - };
  215. -
  216. - /delete-node/ l2-cache1;
  217. -};
  218. -
  219. -/* eMMC */
  220. -&sdhci0 {
  221. - status = "disabled";
  222. -};
  223. -
  224. -&main_pmx0 {
  225. - main_uart0_pins_default: main-uart0-pins-default {
  226. - pinctrl-single,pins = <
  227. - AM65X_IOPAD(0x01e4, PIN_INPUT, 0) /* (AF11) UART0_RXD */
  228. - AM65X_IOPAD(0x01e8, PIN_OUTPUT, 0) /* (AE11) UART0_TXD */
  229. - AM65X_IOPAD(0x01ec, PIN_INPUT, 0) /* (AG11) UART0_CTSn */
  230. - AM65X_IOPAD(0x01f0, PIN_OUTPUT, 0) /* (AD11) UART0_RTSn */
  231. - AM65X_IOPAD(0x0188, PIN_INPUT, 1) /* (D25) UART0_DCDn */
  232. - AM65X_IOPAD(0x018c, PIN_INPUT, 1) /* (B26) UART0_DSRn */
  233. - AM65X_IOPAD(0x0190, PIN_OUTPUT, 1) /* (A24) UART0_DTRn */
  234. - AM65X_IOPAD(0x0194, PIN_INPUT, 1) /* (E24) UART0_RIN */
  235. - >;
  236. - };
  237. -};
  238. -
  239. -&main_uart0 {
  240. - pinctrl-names = "default";
  241. - pinctrl-0 = <&main_uart0_pins_default>;
  242. -};
  243. -
  244. -&mcu_r5fss0 {
  245. - /* lock-step mode not supported on this board */
  246. - ti,cluster-mode = <0>;
  247. };
  248. diff --git a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-common.dtsi
  249. similarity index 85%
  250. copy from arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts
  251. copy to arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-common.dtsi
  252. index ec9617c13cdb..d25e8b26187f 100644
  253. --- a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts
  254. +++ b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-common.dtsi
  255. @@ -4,10 +4,9 @@
  256. *
  257. * Authors:
  258. * Le Jin <le.jin@siemens.com>
  259. - * Jan Kiszka <jan.kiszk@siemens.com>
  260. + * Jan Kiszka <jan.kiszka@siemens.com>
  261. *
  262. - * AM6548-based (quad-core) IOT2050 Advanced variant
  263. - * 2 GB RAM, 16 GB eMMC, USB-serial converter on connector X30
  264. + * Common bits of the IOT2050 Advanced variant, PG1 and PG2
  265. */
  266. /dts-v1/;
  267. @@ -15,9 +14,6 @@
  268. #include "k3-am65-iot2050-common.dtsi"
  269. / {
  270. - compatible = "siemens,iot2050-advanced", "ti,am654";
  271. - model = "SIMATIC IOT2050 Advanced";
  272. -
  273. memory@80000000 {
  274. device_type = "memory";
  275. /* 2G RAM */
  276. diff --git a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts
  277. index ec9617c13cdb..077f165bdc68 100644
  278. --- a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts
  279. +++ b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts
  280. @@ -4,57 +4,21 @@
  281. *
  282. * Authors:
  283. * Le Jin <le.jin@siemens.com>
  284. - * Jan Kiszka <jan.kiszk@siemens.com>
  285. + * Jan Kiszka <jan.kiszka@siemens.com>
  286. *
  287. - * AM6548-based (quad-core) IOT2050 Advanced variant
  288. + * AM6548-based (quad-core) IOT2050 Advanced variant, Product Generation 1
  289. * 2 GB RAM, 16 GB eMMC, USB-serial converter on connector X30
  290. + *
  291. + * Product homepage:
  292. + * https://new.siemens.com/global/en/products/automation/pc-based/iot-gateways/simatic-iot2050.html
  293. */
  294. /dts-v1/;
  295. -#include "k3-am65-iot2050-common.dtsi"
  296. +#include "k3-am6548-iot2050-advanced-common.dtsi"
  297. +#include "k3-am65-iot2050-common-pg1.dtsi"
  298. / {
  299. compatible = "siemens,iot2050-advanced", "ti,am654";
  300. model = "SIMATIC IOT2050 Advanced";
  301. -
  302. - memory@80000000 {
  303. - device_type = "memory";
  304. - /* 2G RAM */
  305. - reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
  306. - };
  307. -};
  308. -
  309. -&main_pmx0 {
  310. - main_mmc0_pins_default: main-mmc0-pins-default {
  311. - pinctrl-single,pins = <
  312. - AM65X_IOPAD(0x01a8, PIN_INPUT_PULLDOWN, 0) /* (B25) MMC0_CLK */
  313. - AM65X_IOPAD(0x01ac, PIN_INPUT_PULLUP, 0) /* (B27) MMC0_CMD */
  314. - AM65X_IOPAD(0x01a4, PIN_INPUT_PULLUP, 0) /* (A26) MMC0_DAT0 */
  315. - AM65X_IOPAD(0x01a0, PIN_INPUT_PULLUP, 0) /* (E25) MMC0_DAT1 */
  316. - AM65X_IOPAD(0x019c, PIN_INPUT_PULLUP, 0) /* (C26) MMC0_DAT2 */
  317. - AM65X_IOPAD(0x0198, PIN_INPUT_PULLUP, 0) /* (A25) MMC0_DAT3 */
  318. - AM65X_IOPAD(0x0194, PIN_INPUT_PULLUP, 0) /* (E24) MMC0_DAT4 */
  319. - AM65X_IOPAD(0x0190, PIN_INPUT_PULLUP, 0) /* (A24) MMC0_DAT5 */
  320. - AM65X_IOPAD(0x018c, PIN_INPUT_PULLUP, 0) /* (B26) MMC0_DAT6 */
  321. - AM65X_IOPAD(0x0188, PIN_INPUT_PULLUP, 0) /* (D25) MMC0_DAT7 */
  322. - AM65X_IOPAD(0x01b8, PIN_OUTPUT_PULLUP, 7) /* (B23) MMC0_SDWP */
  323. - AM65X_IOPAD(0x01b4, PIN_INPUT_PULLUP, 0) /* (A23) MMC0_SDCD */
  324. - AM65X_IOPAD(0x01b0, PIN_INPUT, 0) /* (C25) MMC0_DS */
  325. - >;
  326. - };
  327. -};
  328. -
  329. -/* eMMC */
  330. -&sdhci0 {
  331. - pinctrl-names = "default";
  332. - pinctrl-0 = <&main_mmc0_pins_default>;
  333. - bus-width = <8>;
  334. - non-removable;
  335. - ti,driver-strength-ohm = <50>;
  336. - disable-wp;
  337. -};
  338. -
  339. -&main_uart0 {
  340. - status = "disabled";
  341. };