078-ARM-dts-ipq4019-Add-a-few-peripheral-nodes.patch 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. From 187519403273f0599c848d20eca9acce8b1807a5 Mon Sep 17 00:00:00 2001
  2. From: Sricharan R <[email protected]>
  3. Date: Fri, 25 May 2018 11:41:12 +0530
  4. Subject: [PATCH] ARM: dts: ipq4019: Add a few peripheral nodes
  5. Now with the driver updates for some peripherals being there,
  6. add i2c, spi, pcie, bam, qpic-nand, scm nodes to enhance the available
  7. peripheral support.
  8. Reviewed-by: Abhishek Sahu <[email protected]>
  9. Signed-off-by: Sricharan R <[email protected]>
  10. Signed-off-by: Andy Gross <[email protected]>
  11. ---
  12. arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1.dtsi | 2 +-
  13. arch/arm/boot/dts/qcom-ipq4019.dtsi | 156 ++++++++++++++++++++++++--
  14. 2 files changed, 146 insertions(+), 12 deletions(-)
  15. --- a/arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1.dtsi
  16. +++ b/arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1.dtsi
  17. @@ -61,7 +61,7 @@
  18. status = "ok";
  19. };
  20. - spi_0: spi@78b5000 {
  21. + spi@78b5000 {
  22. pinctrl-0 = <&spi_0_pins>;
  23. pinctrl-names = "default";
  24. status = "ok";
  25. --- a/arch/arm/boot/dts/qcom-ipq4019.dtsi
  26. +++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi
  27. @@ -24,8 +24,10 @@
  28. interrupt-parent = <&intc>;
  29. aliases {
  30. - spi0 = &spi_0;
  31. - i2c0 = &i2c_0;
  32. + spi0 = &blsp1_spi1;
  33. + spi1 = &blsp1_spi2;
  34. + i2c0 = &blsp1_i2c3;
  35. + i2c1 = &blsp1_i2c4;
  36. };
  37. cpus {
  38. @@ -132,6 +134,12 @@
  39. };
  40. };
  41. + firmware {
  42. + scm {
  43. + compatible = "qcom,scm-ipq4019";
  44. + };
  45. + };
  46. +
  47. timer {
  48. compatible = "arm,armv7-timer";
  49. interrupts = <1 2 0xf08>,
  50. @@ -177,13 +185,13 @@
  51. #gpio-cells = <2>;
  52. interrupt-controller;
  53. #interrupt-cells = <2>;
  54. - interrupts = <0 208 0>;
  55. + interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
  56. };
  57. blsp_dma: dma@7884000 {
  58. compatible = "qcom,bam-v1.7.0";
  59. reg = <0x07884000 0x23000>;
  60. - interrupts = <GIC_SPI 238 IRQ_TYPE_NONE>;
  61. + interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
  62. clocks = <&gcc GCC_BLSP1_AHB_CLK>;
  63. clock-names = "bam_clk";
  64. #dma-cells = <1>;
  65. @@ -191,7 +199,7 @@
  66. status = "disabled";
  67. };
  68. - spi_0: spi@78b5000 {
  69. + blsp1_spi1: spi@78b5000 { /* BLSP1 QUP1 */
  70. compatible = "qcom,spi-qup-v2.2.1";
  71. reg = <0x78b5000 0x600>;
  72. interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
  73. @@ -200,10 +208,26 @@
  74. clock-names = "core", "iface";
  75. #address-cells = <1>;
  76. #size-cells = <0>;
  77. + dmas = <&blsp_dma 5>, <&blsp_dma 4>;
  78. + dma-names = "rx", "tx";
  79. + status = "disabled";
  80. + };
  81. +
  82. + blsp1_spi2: spi@78b6000 { /* BLSP1 QUP2 */
  83. + compatible = "qcom,spi-qup-v2.2.1";
  84. + reg = <0x78b6000 0x600>;
  85. + interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  86. + clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
  87. + <&gcc GCC_BLSP1_AHB_CLK>;
  88. + clock-names = "core", "iface";
  89. + #address-cells = <1>;
  90. + #size-cells = <0>;
  91. + dmas = <&blsp_dma 7>, <&blsp_dma 6>;
  92. + dma-names = "rx", "tx";
  93. status = "disabled";
  94. };
  95. - i2c_0: i2c@78b7000 {
  96. + blsp1_i2c3: i2c@78b7000 { /* BLSP1 QUP3 */
  97. compatible = "qcom,i2c-qup-v2.2.1";
  98. reg = <0x78b7000 0x600>;
  99. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  100. @@ -212,14 +236,29 @@
  101. clock-names = "iface", "core";
  102. #address-cells = <1>;
  103. #size-cells = <0>;
  104. + dmas = <&blsp_dma 9>, <&blsp_dma 8>;
  105. + dma-names = "rx", "tx";
  106. status = "disabled";
  107. };
  108. + blsp1_i2c4: i2c@78b8000 { /* BLSP1 QUP4 */
  109. + compatible = "qcom,i2c-qup-v2.2.1";
  110. + reg = <0x78b8000 0x600>;
  111. + interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  112. + clocks = <&gcc GCC_BLSP1_AHB_CLK>,
  113. + <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
  114. + clock-names = "iface", "core";
  115. + #address-cells = <1>;
  116. + #size-cells = <0>;
  117. + dmas = <&blsp_dma 11>, <&blsp_dma 10>;
  118. + dma-names = "rx", "tx";
  119. + status = "disabled";
  120. + };
  121. cryptobam: dma@8e04000 {
  122. compatible = "qcom,bam-v1.7.0";
  123. reg = <0x08e04000 0x20000>;
  124. - interrupts = <GIC_SPI 207 0>;
  125. + interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
  126. clocks = <&gcc GCC_CRYPTO_AHB_CLK>;
  127. clock-names = "bam_clk";
  128. #dma-cells = <1>;
  129. @@ -293,7 +332,7 @@
  130. serial@78af000 {
  131. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  132. reg = <0x78af000 0x200>;
  133. - interrupts = <0 107 0>;
  134. + interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
  135. status = "disabled";
  136. clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
  137. <&gcc GCC_BLSP1_AHB_CLK>;
  138. @@ -305,7 +344,7 @@
  139. serial@78b0000 {
  140. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  141. reg = <0x78b0000 0x200>;
  142. - interrupts = <0 108 0>;
  143. + interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
  144. status = "disabled";
  145. clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
  146. <&gcc GCC_BLSP1_AHB_CLK>;
  147. @@ -327,6 +366,101 @@
  148. reg = <0x4ab000 0x4>;
  149. };
  150. + pcie0: pci@40000000 {
  151. + compatible = "qcom,pcie-ipq4019", "snps,dw-pcie";
  152. + reg = <0x40000000 0xf1d
  153. + 0x40000f20 0xa8
  154. + 0x80000 0x2000
  155. + 0x40100000 0x1000>;
  156. + reg-names = "dbi", "elbi", "parf", "config";
  157. + device_type = "pci";
  158. + linux,pci-domain = <0>;
  159. + bus-range = <0x00 0xff>;
  160. + num-lanes = <1>;
  161. + #address-cells = <3>;
  162. + #size-cells = <2>;
  163. +
  164. + ranges = <0x81000000 0 0x40200000 0x40200000 0 0x00100000
  165. + 0x82000000 0 0x48000000 0x48000000 0 0x10000000>;
  166. +
  167. + interrupts = <GIC_SPI 141 IRQ_TYPE_EDGE_RISING>;
  168. + interrupt-names = "msi";
  169. + #interrupt-cells = <1>;
  170. + interrupt-map-mask = <0 0 0 0x7>;
  171. + interrupt-map = <0 0 0 1 &intc 0 142 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
  172. + <0 0 0 2 &intc 0 143 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
  173. + <0 0 0 3 &intc 0 144 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
  174. + <0 0 0 4 &intc 0 145 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
  175. + clocks = <&gcc GCC_PCIE_AHB_CLK>,
  176. + <&gcc GCC_PCIE_AXI_M_CLK>,
  177. + <&gcc GCC_PCIE_AXI_S_CLK>;
  178. + clock-names = "aux",
  179. + "master_bus",
  180. + "slave_bus";
  181. +
  182. + resets = <&gcc PCIE_AXI_M_ARES>,
  183. + <&gcc PCIE_AXI_S_ARES>,
  184. + <&gcc PCIE_PIPE_ARES>,
  185. + <&gcc PCIE_AXI_M_VMIDMT_ARES>,
  186. + <&gcc PCIE_AXI_S_XPU_ARES>,
  187. + <&gcc PCIE_PARF_XPU_ARES>,
  188. + <&gcc PCIE_PHY_ARES>,
  189. + <&gcc PCIE_AXI_M_STICKY_ARES>,
  190. + <&gcc PCIE_PIPE_STICKY_ARES>,
  191. + <&gcc PCIE_PWR_ARES>,
  192. + <&gcc PCIE_AHB_ARES>,
  193. + <&gcc PCIE_PHY_AHB_ARES>;
  194. + reset-names = "axi_m",
  195. + "axi_s",
  196. + "pipe",
  197. + "axi_m_vmid",
  198. + "axi_s_xpu",
  199. + "parf",
  200. + "phy",
  201. + "axi_m_sticky",
  202. + "pipe_sticky",
  203. + "pwr",
  204. + "ahb",
  205. + "phy_ahb";
  206. +
  207. + status = "disabled";
  208. + };
  209. +
  210. + qpic_bam: dma@7984000 {
  211. + compatible = "qcom,bam-v1.7.0";
  212. + reg = <0x7984000 0x1a000>;
  213. + interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
  214. + clocks = <&gcc GCC_QPIC_CLK>;
  215. + clock-names = "bam_clk";
  216. + #dma-cells = <1>;
  217. + qcom,ee = <0>;
  218. + status = "disabled";
  219. + };
  220. +
  221. + nand: qpic-nand@79b0000 {
  222. + compatible = "qcom,ipq4019-nand";
  223. + reg = <0x79b0000 0x1000>;
  224. + #address-cells = <1>;
  225. + #size-cells = <0>;
  226. + clocks = <&gcc GCC_QPIC_CLK>,
  227. + <&gcc GCC_QPIC_AHB_CLK>;
  228. + clock-names = "core", "aon";
  229. +
  230. + dmas = <&qpic_bam 0>,
  231. + <&qpic_bam 1>,
  232. + <&qpic_bam 2>;
  233. + dma-names = "tx", "rx", "cmd";
  234. + status = "disabled";
  235. +
  236. + nand@0 {
  237. + reg = <0>;
  238. +
  239. + nand-ecc-strength = <4>;
  240. + nand-ecc-step-size = <512>;
  241. + nand-bus-width = <8>;
  242. + };
  243. + };
  244. +
  245. wifi0: wifi@a000000 {
  246. compatible = "qcom,ipq4019-wifi";
  247. reg = <0xa000000 0x200000>;
  248. @@ -360,7 +494,7 @@
  249. <GIC_SPI 45 IRQ_TYPE_EDGE_RISING>,
  250. <GIC_SPI 46 IRQ_TYPE_EDGE_RISING>,
  251. <GIC_SPI 47 IRQ_TYPE_EDGE_RISING>,
  252. - <GIC_SPI 168 IRQ_TYPE_NONE>;
  253. + <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
  254. interrupt-names = "msi0", "msi1", "msi2", "msi3",
  255. "msi4", "msi5", "msi6", "msi7",
  256. "msi8", "msi9", "msi10", "msi11",
  257. @@ -402,7 +536,7 @@
  258. <GIC_SPI 61 IRQ_TYPE_EDGE_RISING>,
  259. <GIC_SPI 62 IRQ_TYPE_EDGE_RISING>,
  260. <GIC_SPI 63 IRQ_TYPE_EDGE_RISING>,
  261. - <GIC_SPI 169 IRQ_TYPE_NONE>;
  262. + <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
  263. interrupt-names = "msi0", "msi1", "msi2", "msi3",
  264. "msi4", "msi5", "msi6", "msi7",
  265. "msi8", "msi9", "msi10", "msi11",