Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'ti-k3-soc-for-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/kristo/linux into arm/dt

Texas Instruments K3 SoC family changes for 5.3

- Add support for the new J721e SoC, includes basic peripherals needed for
booting up the device
- New peripheral support added for AM654x:
* TI SCI irqchip
* GPIO
* MCU SRAM
* R5Fs
* MSMC RAM
* SERDES and PCIe

* tag 'ti-k3-soc-for-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/kristo/linux: (26 commits)
arm64: dts: ti: k3-j721e: Add the MCU SRAM node
arm64: dts: ti: k3-j721e: Add interrupt controllers in wakeup domain
arm64: dts: ti: k3-j721e: Add interrupt controllers in main domain
arm64: dts: ti: k3-j721e-main: Add Main NavSS Interrupt controller node
arm64: defconfig: Enable TI's J721E SoC platform
arm64: dts: ti: Add support for J721E Common Processor Board
soc: ti: Add Support for J721E SoC config option
arm64: dts: ti: Add Support for J721E SoC
dt-bindings: serial: 8250_omap: Add compatible for J721E UART controller
dt-bindings: arm: ti: Add bindings for J721E SoC
arm64: dts: ti: am654-base-board: Disable SERDES and PCIe
arm64: dts: k3-am6: Add PCIe Endpoint DT node
arm64: dts: k3-am6: Add PCIe Root Complex DT node
arm64: dts: k3-am6: Add SERDES DT node
arm64: dts: k3-am6: Add mux-controller DT node required for muxing SERDES
arm64: dts: k3-am6: Add "socionext,synquacer-pre-its" property to gic_its
arm64: dts: ti: k3-am65: Add MSMC RAM ranges in interconnect node
arm64: dts: ti: k3-am65: Add R5F ranges in interconnect nodes
arm64: dts: ti: k3-am65-mcu: Add the MCU RAM node
arm64: dts: ti: k3-am65: Add MCU SRAM ranges in interconnect nodes
...

Signed-off-by: Olof Johansson <olof@lixom.net>

+896 -1
+3
Documentation/devicetree/bindings/arm/ti/k3.txt
··· 13 13 - AM654 14 14 compatible = "ti,am654"; 15 15 16 + - J721E 17 + compatible = "ti,j721e"; 18 + 16 19 Boards 17 20 ------ 18 21
+1
Documentation/devicetree/bindings/serial/omap_serial.txt
··· 1 1 OMAP UART controller 2 2 3 3 Required properties: 4 + - compatible : should be "ti,j721e-uart", "ti,am654-uart" for J721E controllers 4 5 - compatible : should be "ti,am654-uart" for AM654 controllers 5 6 - compatible : should be "ti,omap2-uart" for OMAP2 controllers 6 7 - compatible : should be "ti,omap3-uart" for OMAP3 controllers
+2
arch/arm64/boot/dts/ti/Makefile
··· 7 7 # 8 8 9 9 dtb-$(CONFIG_ARCH_K3_AM6_SOC) += k3-am654-base-board.dtb 10 + 11 + dtb-$(CONFIG_ARCH_K3_J721E_SOC) += k3-j721e-common-proc-board.dtb
+201
arch/arm64/boot/dts/ti/k3-am65-main.dtsi
··· 4 4 * 5 5 * Copyright (C) 2016-2018 Texas Instruments Incorporated - http://www.ti.com/ 6 6 */ 7 + #include <dt-bindings/phy/phy-am654-serdes.h> 7 8 8 9 &cbass_main { 9 10 msmc_ram: sram@70000000 { ··· 45 44 gic_its: gic-its@18200000 { 46 45 compatible = "arm,gic-v3-its"; 47 46 reg = <0x00 0x01820000 0x00 0x10000>; 47 + socionext,synquacer-pre-its = <0x1000000 0x400000>; 48 48 msi-controller; 49 49 #msi-cells = <1>; 50 50 }; ··· 60 58 <0x00 0x32800000 0x00 0x100000>; 61 59 interrupt-names = "rx_011"; 62 60 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 61 + }; 62 + 63 + serdes0: serdes@900000 { 64 + compatible = "ti,phy-am654-serdes"; 65 + reg = <0x0 0x900000 0x0 0x2000>; 66 + reg-names = "serdes"; 67 + #phy-cells = <2>; 68 + power-domains = <&k3_pds 153>; 69 + clocks = <&k3_clks 153 4>, <&k3_clks 153 1>, <&serdes1 AM654_SERDES_LO_REFCLK>; 70 + clock-output-names = "serdes0_cmu_refclk", "serdes0_lo_refclk", "serdes0_ro_refclk"; 71 + assigned-clocks = <&k3_clks 153 4>, <&serdes0 AM654_SERDES_CMU_REFCLK>; 72 + assigned-clock-parents = <&k3_clks 153 8>, <&k3_clks 153 4>; 73 + ti,serdes-clk = <&serdes0_clk>; 74 + #clock-cells = <1>; 75 + mux-controls = <&serdes_mux 0>; 76 + }; 77 + 78 + serdes1: serdes@910000 { 79 + compatible = "ti,phy-am654-serdes"; 80 + reg = <0x0 0x910000 0x0 0x2000>; 81 + reg-names = "serdes"; 82 + #phy-cells = <2>; 83 + power-domains = <&k3_pds 154>; 84 + clocks = <&serdes0 AM654_SERDES_RO_REFCLK>, <&k3_clks 154 1>, <&k3_clks 154 5>; 85 + clock-output-names = "serdes1_cmu_refclk", "serdes1_lo_refclk", "serdes1_ro_refclk"; 86 + assigned-clocks = <&k3_clks 154 5>, <&serdes1 AM654_SERDES_CMU_REFCLK>; 87 + assigned-clock-parents = <&k3_clks 154 9>, <&k3_clks 154 5>; 88 + ti,serdes-clk = <&serdes1_clk>; 89 + #clock-cells = <1>; 90 + mux-controls = <&serdes_mux 1>; 63 91 }; 64 92 65 93 main_uart0: serial@2800000 { ··· 264 232 #address-cells = <1>; 265 233 #size-cells = <1>; 266 234 ranges = <0x0 0x0 0x00100000 0x1c000>; 235 + 236 + pcie0_mode: pcie-mode@4060 { 237 + compatible = "syscon"; 238 + reg = <0x00004060 0x4>; 239 + }; 240 + 241 + pcie1_mode: pcie-mode@4070 { 242 + compatible = "syscon"; 243 + reg = <0x00004070 0x4>; 244 + }; 245 + 246 + pcie_devid: pcie-devid@210 { 247 + compatible = "syscon"; 248 + reg = <0x00000210 0x4>; 249 + }; 250 + 251 + serdes0_clk: serdes_clk@4080 { 252 + compatible = "syscon"; 253 + reg = <0x00004080 0x4>; 254 + }; 255 + 256 + serdes1_clk: serdes_clk@4090 { 257 + compatible = "syscon"; 258 + reg = <0x00004090 0x4>; 259 + }; 260 + 261 + serdes_mux: mux-controller { 262 + compatible = "mmio-mux"; 263 + #mux-control-cells = <1>; 264 + mux-reg-masks = <0x4080 0x3>, /* SERDES0 lane select */ 265 + <0x4090 0x3>; /* SERDES1 lane select */ 266 + }; 267 267 }; 268 268 269 269 dwc3_0: dwc3@4000000 { ··· 372 308 clocks = <&k3_clks 152 0>, <&k3_clks 152 1>; 373 309 clock-names = "wkupclk", "refclk"; 374 310 #phy-cells = <0>; 311 + }; 312 + 313 + intr_main_gpio: interrupt-controller0 { 314 + compatible = "ti,sci-intr"; 315 + ti,intr-trigger-type = <1>; 316 + interrupt-controller; 317 + interrupt-parent = <&gic500>; 318 + #interrupt-cells = <2>; 319 + ti,sci = <&dmsc>; 320 + ti,sci-dst-id = <56>; 321 + ti,sci-rm-range-girq = <0x1>; 322 + }; 323 + 324 + cbass_main_navss: interconnect0 { 325 + compatible = "simple-bus"; 326 + #address-cells = <2>; 327 + #size-cells = <2>; 328 + ranges; 329 + 330 + intr_main_navss: interrupt-controller1 { 331 + compatible = "ti,sci-intr"; 332 + ti,intr-trigger-type = <4>; 333 + interrupt-controller; 334 + interrupt-parent = <&gic500>; 335 + #interrupt-cells = <2>; 336 + ti,sci = <&dmsc>; 337 + ti,sci-dst-id = <56>; 338 + ti,sci-rm-range-girq = <0x0>, <0x2>; 339 + }; 340 + 341 + inta_main_udmass: interrupt-controller@33d00000 { 342 + compatible = "ti,sci-inta"; 343 + reg = <0x0 0x33d00000 0x0 0x100000>; 344 + interrupt-controller; 345 + interrupt-parent = <&intr_main_navss>; 346 + msi-controller; 347 + ti,sci = <&dmsc>; 348 + ti,sci-dev-id = <179>; 349 + ti,sci-rm-range-vint = <0x0>; 350 + ti,sci-rm-range-global-event = <0x1>; 351 + }; 352 + }; 353 + 354 + main_gpio0: main_gpio0@600000 { 355 + compatible = "ti,am654-gpio", "ti,keystone-gpio"; 356 + reg = <0x0 0x600000 0x0 0x100>; 357 + gpio-controller; 358 + #gpio-cells = <2>; 359 + interrupt-parent = <&intr_main_gpio>; 360 + interrupts = <57 256>, <57 257>, <57 258>, <57 259>, <57 260>, 361 + <57 261>; 362 + interrupt-controller; 363 + #interrupt-cells = <2>; 364 + ti,ngpio = <96>; 365 + ti,davinci-gpio-unbanked = <0>; 366 + clocks = <&k3_clks 57 0>; 367 + clock-names = "gpio"; 368 + }; 369 + 370 + main_gpio1: main_gpio1@601000 { 371 + compatible = "ti,am654-gpio", "ti,keystone-gpio"; 372 + reg = <0x0 0x601000 0x0 0x100>; 373 + gpio-controller; 374 + #gpio-cells = <2>; 375 + interrupt-parent = <&intr_main_gpio>; 376 + interrupts = <58 256>, <58 257>, <58 258>, <58 259>, <58 260>, 377 + <58 261>; 378 + interrupt-controller; 379 + #interrupt-cells = <2>; 380 + ti,ngpio = <90>; 381 + ti,davinci-gpio-unbanked = <0>; 382 + clocks = <&k3_clks 58 0>; 383 + clock-names = "gpio"; 384 + }; 385 + 386 + pcie0_rc: pcie@5500000 { 387 + compatible = "ti,am654-pcie-rc"; 388 + reg = <0x0 0x5500000 0x0 0x1000>, <0x0 0x5501000 0x0 0x1000>, <0x0 0x10000000 0x0 0x2000>, <0x0 0x5506000 0x0 0x1000>; 389 + reg-names = "app", "dbics", "config", "atu"; 390 + power-domains = <&k3_pds 120>; 391 + #address-cells = <3>; 392 + #size-cells = <2>; 393 + ranges = <0x81000000 0 0 0x0 0x10020000 0 0x00010000 394 + 0x82000000 0 0x10030000 0x0 0x10030000 0 0x07FD0000>; 395 + ti,syscon-pcie-id = <&pcie_devid>; 396 + ti,syscon-pcie-mode = <&pcie0_mode>; 397 + bus-range = <0x0 0xff>; 398 + num-viewport = <16>; 399 + max-link-speed = <3>; 400 + dma-coherent; 401 + interrupts = <GIC_SPI 340 IRQ_TYPE_EDGE_RISING>; 402 + msi-map = <0x0 &gic_its 0x0 0x10000>; 403 + }; 404 + 405 + pcie0_ep: pcie-ep@5500000 { 406 + compatible = "ti,am654-pcie-ep"; 407 + reg = <0x0 0x5500000 0x0 0x1000>, <0x0 0x5501000 0x0 0x1000>, <0x0 0x10000000 0x0 0x8000000>, <0x0 0x5506000 0x0 0x1000>; 408 + reg-names = "app", "dbics", "addr_space", "atu"; 409 + power-domains = <&k3_pds 120>; 410 + ti,syscon-pcie-mode = <&pcie0_mode>; 411 + num-ib-windows = <16>; 412 + num-ob-windows = <16>; 413 + max-link-speed = <3>; 414 + dma-coherent; 415 + interrupts = <GIC_SPI 340 IRQ_TYPE_EDGE_RISING>; 416 + }; 417 + 418 + pcie1_rc: pcie@5600000 { 419 + compatible = "ti,am654-pcie-rc"; 420 + reg = <0x0 0x5600000 0x0 0x1000>, <0x0 0x5601000 0x0 0x1000>, <0x0 0x18000000 0x0 0x2000>, <0x0 0x5606000 0x0 0x1000>; 421 + reg-names = "app", "dbics", "config", "atu"; 422 + power-domains = <&k3_pds 121>; 423 + #address-cells = <3>; 424 + #size-cells = <2>; 425 + ranges = <0x81000000 0 0 0x0 0x18020000 0 0x00010000 426 + 0x82000000 0 0x18030000 0x0 0x18030000 0 0x07FD0000>; 427 + ti,syscon-pcie-id = <&pcie_devid>; 428 + ti,syscon-pcie-mode = <&pcie1_mode>; 429 + bus-range = <0x0 0xff>; 430 + num-viewport = <16>; 431 + max-link-speed = <3>; 432 + dma-coherent; 433 + interrupts = <GIC_SPI 355 IRQ_TYPE_EDGE_RISING>; 434 + msi-map = <0x0 &gic_its 0x10000 0x10000>; 435 + }; 436 + 437 + pcie1_ep: pcie-ep@5600000 { 438 + compatible = "ti,am654-pcie-ep"; 439 + reg = <0x0 0x5600000 0x0 0x1000>, <0x0 0x5601000 0x0 0x1000>, <0x0 0x18000000 0x0 0x4000000>, <0x0 0x5606000 0x0 0x1000>; 440 + reg-names = "app", "dbics", "addr_space", "atu"; 441 + power-domains = <&k3_pds 121>; 442 + ti,syscon-pcie-mode = <&pcie1_mode>; 443 + num-ib-windows = <16>; 444 + num-ob-windows = <16>; 445 + max-link-speed = <3>; 446 + dma-coherent; 447 + interrupts = <GIC_SPI 355 IRQ_TYPE_EDGE_RISING>; 375 448 }; 376 449 };
+8
arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
··· 17 17 power-domains = <&k3_pds 149>; 18 18 }; 19 19 20 + mcu_ram: sram@41c00000 { 21 + compatible = "mmio-sram"; 22 + reg = <0x00 0x41c00000 0x00 0x80000>; 23 + ranges = <0x0 0x00 0x41c00000 0x80000>; 24 + #address-cells = <1>; 25 + #size-cells = <1>; 26 + }; 27 + 20 28 mcu_i2c0: i2c@40b00000 { 21 29 compatible = "ti,am654-i2c", "ti,omap4-i2c"; 22 30 reg = <0x0 0x40b00000 0x0 0x100>;
+27 -1
arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi
··· 7 7 8 8 &cbass_wakeup { 9 9 dmsc: dmsc { 10 - compatible = "ti,k2g-sci"; 10 + compatible = "ti,am654-sci"; 11 11 ti,host-id = <12>; 12 12 #address-cells = <1>; 13 13 #size-cells = <1>; ··· 62 62 clock-names = "fck"; 63 63 clocks = <&k3_clks 115 1>; 64 64 power-domains = <&k3_pds 115>; 65 + }; 66 + 67 + intr_wkup_gpio: interrupt-controller2 { 68 + compatible = "ti,sci-intr"; 69 + ti,intr-trigger-type = <1>; 70 + interrupt-controller; 71 + interrupt-parent = <&gic500>; 72 + #interrupt-cells = <2>; 73 + ti,sci = <&dmsc>; 74 + ti,sci-dst-id = <56>; 75 + ti,sci-rm-range-girq = <0x4>; 76 + }; 77 + 78 + wkup_gpio0: wkup_gpio0@42110000 { 79 + compatible = "ti,am654-gpio", "ti,keystone-gpio"; 80 + reg = <0x42110000 0x100>; 81 + gpio-controller; 82 + #gpio-cells = <2>; 83 + interrupt-parent = <&intr_wkup_gpio>; 84 + interrupts = <59 128>, <59 129>, <59 130>, <59 131>; 85 + interrupt-controller; 86 + #interrupt-cells = <2>; 87 + ti,ngpio = <56>; 88 + ti,davinci-gpio-unbanked = <0>; 89 + clocks = <&k3_clks 59 0>; 90 + clock-names = "gpio"; 65 91 }; 66 92 };
+8
arch/arm64/boot/dts/ti/k3-am65.dtsi
··· 68 68 <0x00 0x00900000 0x00 0x00900000 0x00 0x00012000>, /* serdes */ 69 69 <0x00 0x01000000 0x00 0x01000000 0x00 0x0af02400>, /* Most peripherals */ 70 70 <0x00 0x30800000 0x00 0x30800000 0x00 0x0bc00000>, /* MAIN NAVSS */ 71 + <0x00 0x70000000 0x00 0x70000000 0x00 0x00200000>, /* MSMC SRAM */ 72 + <0x00 0x10000000 0x00 0x10000000 0x00 0x10000000>, /* PCIe DAT */ 71 73 /* MCUSS Range */ 72 74 <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>, 73 75 <0x00 0x40200000 0x00 0x40200000 0x00 0x00900100>, 76 + <0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>, 77 + <0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>, 78 + <0x00 0x41c00000 0x00 0x41c00000 0x00 0x00080000>, 74 79 <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>, 75 80 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, 76 81 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, ··· 87 82 #size-cells = <2>; 88 83 ranges = <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>, /* MCU NAVSS*/ 89 84 <0x00 0x40200000 0x00 0x40200000 0x00 0x00900100>, /* First peripheral window */ 85 + <0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>, /* MCU R5F Core0 */ 86 + <0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>, /* MCU R5F Core1 */ 87 + <0x00 0x41c00000 0x00 0x41c00000 0x00 0x00080000>, /* MCU SRAM */ 90 88 <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>, /* WKUP */ 91 89 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, /* MMRs, remaining NAVSS */ 92 90 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, /* CPSW */
+51
arch/arm64/boot/dts/ti/k3-am654-base-board.dts
··· 6 6 /dts-v1/; 7 7 8 8 #include "k3-am654.dtsi" 9 + #include <dt-bindings/input/input.h> 9 10 10 11 / { 11 12 compatible = "ti,am654-evm", "ti,am654"; ··· 34 33 no-map; 35 34 }; 36 35 }; 36 + 37 + gpio-keys { 38 + compatible = "gpio-keys"; 39 + autorepeat; 40 + pinctrl-names = "default"; 41 + pinctrl-0 = <&push_button_pins_default>; 42 + 43 + sw5 { 44 + label = "GPIO Key USER1"; 45 + linux,code = <BTN_0>; 46 + gpios = <&wkup_gpio0 24 GPIO_ACTIVE_LOW>; 47 + }; 48 + 49 + sw6 { 50 + label = "GPIO Key USER2"; 51 + linux,code = <BTN_1>; 52 + gpios = <&wkup_gpio0 27 GPIO_ACTIVE_LOW>; 53 + }; 54 + }; 37 55 }; 38 56 39 57 &wkup_pmx0 { ··· 60 40 pinctrl-single,pins = < 61 41 AM65X_WKUP_IOPAD(0x00e0, PIN_INPUT, 0) /* (AC7) WKUP_I2C0_SCL */ 62 42 AM65X_WKUP_IOPAD(0x00e4, PIN_INPUT, 0) /* (AD6) WKUP_I2C0_SDA */ 43 + >; 44 + }; 45 + 46 + push_button_pins_default: push_button__pins_default { 47 + pinctrl-single,pins = < 48 + AM65X_WKUP_IOPAD(0x0030, PIN_INPUT, 7) /* (R5) WKUP_GPIO0_24 */ 49 + AM65X_WKUP_IOPAD(0x003c, PIN_INPUT, 7) /* (P2) WKUP_GPIO0_27 */ 63 50 >; 64 51 }; 65 52 }; ··· 254 227 adc { 255 228 ti,adc-channels = <0 1 2 3 4 5 6 7>; 256 229 }; 230 + }; 231 + 232 + &serdes0 { 233 + status = "disabled"; 234 + }; 235 + 236 + &serdes1 { 237 + status = "disabled"; 238 + }; 239 + 240 + &pcie0_rc { 241 + status = "disabled"; 242 + }; 243 + 244 + &pcie0_ep { 245 + status = "disabled"; 246 + }; 247 + 248 + &pcie1_rc { 249 + status = "disabled"; 250 + }; 251 + 252 + &pcie1_ep { 253 + status = "disabled"; 257 254 };
+50
arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /* 3 + * Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com/ 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + #include "k3-j721e-som-p0.dtsi" 9 + 10 + / { 11 + chosen { 12 + stdout-path = "serial2:115200n8"; 13 + bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000"; 14 + }; 15 + }; 16 + 17 + &wkup_uart0 { 18 + /* Wakeup UART is used by System firmware */ 19 + status = "disabled"; 20 + }; 21 + 22 + &main_uart3 { 23 + /* UART not brought out */ 24 + status = "disabled"; 25 + }; 26 + 27 + &main_uart5 { 28 + /* UART not brought out */ 29 + status = "disabled"; 30 + }; 31 + 32 + &main_uart6 { 33 + /* UART not brought out */ 34 + status = "disabled"; 35 + }; 36 + 37 + &main_uart7 { 38 + /* UART not brought out */ 39 + status = "disabled"; 40 + }; 41 + 42 + &main_uart8 { 43 + /* UART not brought out */ 44 + status = "disabled"; 45 + }; 46 + 47 + &main_uart9 { 48 + /* UART not brought out */ 49 + status = "disabled"; 50 + };
+243
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /* 3 + * Device Tree Source for J721E SoC Family Main Domain peripherals 4 + * 5 + * Copyright (C) 2016-2019 Texas Instruments Incorporated - http://www.ti.com/ 6 + */ 7 + 8 + &cbass_main { 9 + msmc_ram: sram@70000000 { 10 + compatible = "mmio-sram"; 11 + reg = <0x0 0x70000000 0x0 0x800000>; 12 + #address-cells = <1>; 13 + #size-cells = <1>; 14 + ranges = <0x0 0x0 0x70000000 0x800000>; 15 + 16 + atf-sram@0 { 17 + reg = <0x0 0x20000>; 18 + }; 19 + }; 20 + 21 + gic500: interrupt-controller@1800000 { 22 + compatible = "arm,gic-v3"; 23 + #address-cells = <2>; 24 + #size-cells = <2>; 25 + ranges; 26 + #interrupt-cells = <3>; 27 + interrupt-controller; 28 + reg = <0x00 0x01800000 0x00 0x10000>, /* GICD */ 29 + <0x00 0x01900000 0x00 0x100000>; /* GICR */ 30 + 31 + /* vcpumntirq: virtual CPU interface maintenance interrupt */ 32 + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 33 + 34 + gic_its: gic-its@18200000 { 35 + compatible = "arm,gic-v3-its"; 36 + reg = <0x00 0x01820000 0x00 0x10000>; 37 + socionext,synquacer-pre-its = <0x1000000 0x400000>; 38 + msi-controller; 39 + #msi-cells = <1>; 40 + }; 41 + }; 42 + 43 + smmu0: smmu@36600000 { 44 + compatible = "arm,smmu-v3"; 45 + reg = <0x0 0x36600000 0x0 0x100000>; 46 + interrupt-parent = <&gic500>; 47 + interrupts = <GIC_SPI 772 IRQ_TYPE_EDGE_RISING>, 48 + <GIC_SPI 768 IRQ_TYPE_EDGE_RISING>; 49 + interrupt-names = "eventq", "gerror"; 50 + #iommu-cells = <1>; 51 + }; 52 + 53 + main_gpio_intr: interrupt-controller0 { 54 + compatible = "ti,sci-intr"; 55 + ti,intr-trigger-type = <1>; 56 + interrupt-controller; 57 + interrupt-parent = <&gic500>; 58 + #interrupt-cells = <2>; 59 + ti,sci = <&dmsc>; 60 + ti,sci-dst-id = <14>; 61 + ti,sci-rm-range-girq = <0x1>; 62 + }; 63 + 64 + cbass_main_navss: interconnect0 { 65 + compatible = "simple-bus"; 66 + #address-cells = <2>; 67 + #size-cells = <2>; 68 + ranges; 69 + 70 + main_navss_intr: interrupt-controller1 { 71 + compatible = "ti,sci-intr"; 72 + ti,intr-trigger-type = <4>; 73 + interrupt-controller; 74 + interrupt-parent = <&gic500>; 75 + #interrupt-cells = <2>; 76 + ti,sci = <&dmsc>; 77 + ti,sci-dst-id = <14>; 78 + ti,sci-rm-range-girq = <0>, <2>; 79 + }; 80 + 81 + main_udmass_inta: interrupt-controller@33d00000 { 82 + compatible = "ti,sci-inta"; 83 + reg = <0x0 0x33d00000 0x0 0x100000>; 84 + interrupt-controller; 85 + interrupt-parent = <&main_navss_intr>; 86 + msi-controller; 87 + ti,sci = <&dmsc>; 88 + ti,sci-dev-id = <209>; 89 + ti,sci-rm-range-vint = <0xa>; 90 + ti,sci-rm-range-global-event = <0xd>; 91 + }; 92 + }; 93 + 94 + secure_proxy_main: mailbox@32c00000 { 95 + compatible = "ti,am654-secure-proxy"; 96 + #mbox-cells = <1>; 97 + reg-names = "target_data", "rt", "scfg"; 98 + reg = <0x00 0x32c00000 0x00 0x100000>, 99 + <0x00 0x32400000 0x00 0x100000>, 100 + <0x00 0x32800000 0x00 0x100000>; 101 + interrupt-names = "rx_011"; 102 + interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 103 + }; 104 + 105 + main_pmx0: pinmux@11c000 { 106 + compatible = "pinctrl-single"; 107 + /* Proxy 0 addressing */ 108 + reg = <0x0 0x11c000 0x0 0x2b4>; 109 + #pinctrl-cells = <1>; 110 + pinctrl-single,register-width = <32>; 111 + pinctrl-single,function-mask = <0xffffffff>; 112 + }; 113 + 114 + main_uart0: serial@2800000 { 115 + compatible = "ti,j721e-uart", "ti,am654-uart"; 116 + reg = <0x00 0x02800000 0x00 0x100>; 117 + reg-shift = <2>; 118 + reg-io-width = <4>; 119 + interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>; 120 + clock-frequency = <48000000>; 121 + current-speed = <115200>; 122 + power-domains = <&k3_pds 146>; 123 + clocks = <&k3_clks 146 0>; 124 + clock-names = "fclk"; 125 + }; 126 + 127 + main_uart1: serial@2810000 { 128 + compatible = "ti,j721e-uart", "ti,am654-uart"; 129 + reg = <0x00 0x02810000 0x00 0x100>; 130 + reg-shift = <2>; 131 + reg-io-width = <4>; 132 + interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; 133 + clock-frequency = <48000000>; 134 + current-speed = <115200>; 135 + power-domains = <&k3_pds 278>; 136 + clocks = <&k3_clks 278 0>; 137 + clock-names = "fclk"; 138 + }; 139 + 140 + main_uart2: serial@2820000 { 141 + compatible = "ti,j721e-uart", "ti,am654-uart"; 142 + reg = <0x00 0x02820000 0x00 0x100>; 143 + reg-shift = <2>; 144 + reg-io-width = <4>; 145 + interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>; 146 + clock-frequency = <48000000>; 147 + current-speed = <115200>; 148 + power-domains = <&k3_pds 279>; 149 + clocks = <&k3_clks 279 0>; 150 + clock-names = "fclk"; 151 + }; 152 + 153 + main_uart3: serial@2830000 { 154 + compatible = "ti,j721e-uart", "ti,am654-uart"; 155 + reg = <0x00 0x02830000 0x00 0x100>; 156 + reg-shift = <2>; 157 + reg-io-width = <4>; 158 + interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>; 159 + clock-frequency = <48000000>; 160 + current-speed = <115200>; 161 + power-domains = <&k3_pds 280>; 162 + clocks = <&k3_clks 280 0>; 163 + clock-names = "fclk"; 164 + }; 165 + 166 + main_uart4: serial@2840000 { 167 + compatible = "ti,j721e-uart", "ti,am654-uart"; 168 + reg = <0x00 0x02840000 0x00 0x100>; 169 + reg-shift = <2>; 170 + reg-io-width = <4>; 171 + interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>; 172 + clock-frequency = <48000000>; 173 + current-speed = <115200>; 174 + power-domains = <&k3_pds 281>; 175 + clocks = <&k3_clks 281 0>; 176 + clock-names = "fclk"; 177 + }; 178 + 179 + main_uart5: serial@2850000 { 180 + compatible = "ti,j721e-uart", "ti,am654-uart"; 181 + reg = <0x00 0x02850000 0x00 0x100>; 182 + reg-shift = <2>; 183 + reg-io-width = <4>; 184 + interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; 185 + clock-frequency = <48000000>; 186 + current-speed = <115200>; 187 + power-domains = <&k3_pds 282>; 188 + clocks = <&k3_clks 282 0>; 189 + clock-names = "fclk"; 190 + }; 191 + 192 + main_uart6: serial@2860000 { 193 + compatible = "ti,j721e-uart", "ti,am654-uart"; 194 + reg = <0x00 0x02860000 0x00 0x100>; 195 + reg-shift = <2>; 196 + reg-io-width = <4>; 197 + interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>; 198 + clock-frequency = <48000000>; 199 + current-speed = <115200>; 200 + power-domains = <&k3_pds 283>; 201 + clocks = <&k3_clks 283 0>; 202 + clock-names = "fclk"; 203 + }; 204 + 205 + main_uart7: serial@2870000 { 206 + compatible = "ti,j721e-uart", "ti,am654-uart"; 207 + reg = <0x00 0x02870000 0x00 0x100>; 208 + reg-shift = <2>; 209 + reg-io-width = <4>; 210 + interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>; 211 + clock-frequency = <48000000>; 212 + current-speed = <115200>; 213 + power-domains = <&k3_pds 284>; 214 + clocks = <&k3_clks 284 0>; 215 + clock-names = "fclk"; 216 + }; 217 + 218 + main_uart8: serial@2880000 { 219 + compatible = "ti,j721e-uart", "ti,am654-uart"; 220 + reg = <0x00 0x02880000 0x00 0x100>; 221 + reg-shift = <2>; 222 + reg-io-width = <4>; 223 + interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>; 224 + clock-frequency = <48000000>; 225 + current-speed = <115200>; 226 + power-domains = <&k3_pds 285>; 227 + clocks = <&k3_clks 285 0>; 228 + clock-names = "fclk"; 229 + }; 230 + 231 + main_uart9: serial@2890000 { 232 + compatible = "ti,j721e-uart", "ti,am654-uart"; 233 + reg = <0x00 0x02890000 0x00 0x100>; 234 + reg-shift = <2>; 235 + reg-io-width = <4>; 236 + interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>; 237 + clock-frequency = <48000000>; 238 + current-speed = <115200>; 239 + power-domains = <&k3_pds 286>; 240 + clocks = <&k3_clks 286 0>; 241 + clock-names = "fclk"; 242 + }; 243 + };
+90
arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /* 3 + * Device Tree Source for J721E SoC Family MCU/WAKEUP Domain peripherals 4 + * 5 + * Copyright (C) 2016-2019 Texas Instruments Incorporated - http://www.ti.com/ 6 + */ 7 + 8 + &cbass_mcu_wakeup { 9 + dmsc: dmsc@44083000 { 10 + compatible = "ti,k2g-sci"; 11 + ti,host-id = <12>; 12 + 13 + mbox-names = "rx", "tx"; 14 + 15 + mboxes= <&secure_proxy_main 11>, 16 + <&secure_proxy_main 13>; 17 + 18 + reg-names = "debug_messages"; 19 + reg = <0x00 0x44083000 0x0 0x1000>; 20 + 21 + k3_pds: power-controller { 22 + compatible = "ti,sci-pm-domain"; 23 + #power-domain-cells = <1>; 24 + }; 25 + 26 + k3_clks: clocks { 27 + compatible = "ti,k2g-sci-clk"; 28 + #clock-cells = <2>; 29 + }; 30 + 31 + k3_reset: reset-controller { 32 + compatible = "ti,sci-reset"; 33 + #reset-cells = <2>; 34 + }; 35 + }; 36 + 37 + wkup_pmx0: pinmux@4301c000 { 38 + compatible = "pinctrl-single"; 39 + /* Proxy 0 addressing */ 40 + reg = <0x00 0x4301c000 0x00 0x178>; 41 + #pinctrl-cells = <1>; 42 + pinctrl-single,register-width = <32>; 43 + pinctrl-single,function-mask = <0xffffffff>; 44 + }; 45 + 46 + mcu_ram: sram@41c00000 { 47 + compatible = "mmio-sram"; 48 + reg = <0x00 0x41c00000 0x00 0x100000>; 49 + ranges = <0x0 0x00 0x41c00000 0x100000>; 50 + #address-cells = <1>; 51 + #size-cells = <1>; 52 + }; 53 + 54 + wkup_uart0: serial@42300000 { 55 + compatible = "ti,j721e-uart", "ti,am654-uart"; 56 + reg = <0x00 0x42300000 0x00 0x100>; 57 + reg-shift = <2>; 58 + reg-io-width = <4>; 59 + interrupts = <GIC_SPI 897 IRQ_TYPE_LEVEL_HIGH>; 60 + clock-frequency = <48000000>; 61 + current-speed = <115200>; 62 + power-domains = <&k3_pds 287>; 63 + clocks = <&k3_clks 287 0>; 64 + clock-names = "fclk"; 65 + }; 66 + 67 + mcu_uart0: serial@40a00000 { 68 + compatible = "ti,j721e-uart", "ti,am654-uart"; 69 + reg = <0x00 0x40a00000 0x00 0x100>; 70 + reg-shift = <2>; 71 + reg-io-width = <4>; 72 + interrupts = <GIC_SPI 846 IRQ_TYPE_LEVEL_HIGH>; 73 + clock-frequency = <96000000>; 74 + current-speed = <115200>; 75 + power-domains = <&k3_pds 149>; 76 + clocks = <&k3_clks 149 0>; 77 + clock-names = "fclk"; 78 + }; 79 + 80 + wkup_gpio_intr: interrupt-controller2 { 81 + compatible = "ti,sci-intr"; 82 + ti,intr-trigger-type = <1>; 83 + interrupt-controller; 84 + interrupt-parent = <&gic500>; 85 + #interrupt-cells = <2>; 86 + ti,sci = <&dmsc>; 87 + ti,sci-dst-id = <14>; 88 + ti,sci-rm-range-girq = <0x5>; 89 + }; 90 + };
+29
arch/arm64/boot/dts/ti/k3-j721e-som-p0.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /* 3 + * Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com/ 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + #include "k3-j721e.dtsi" 9 + 10 + / { 11 + memory@80000000 { 12 + device_type = "memory"; 13 + /* 4G RAM */ 14 + reg = <0x00000000 0x80000000 0x00000000 0x80000000>, 15 + <0x00000008 0x80000000 0x00000000 0x80000000>; 16 + }; 17 + 18 + reserved_memory: reserved-memory { 19 + #address-cells = <2>; 20 + #size-cells = <2>; 21 + ranges; 22 + 23 + secure_ddr: optee@9e800000 { 24 + reg = <0x00 0x9e800000 0x00 0x01800000>; 25 + alignment = <0x1000>; 26 + no-map; 27 + }; 28 + }; 29 + };
+177
arch/arm64/boot/dts/ti/k3-j721e.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /* 3 + * Device Tree Source for J721E SoC Family 4 + * 5 + * Copyright (C) 2016-2019 Texas Instruments Incorporated - http://www.ti.com/ 6 + */ 7 + 8 + #include <dt-bindings/interrupt-controller/irq.h> 9 + #include <dt-bindings/interrupt-controller/arm-gic.h> 10 + #include <dt-bindings/pinctrl/k3.h> 11 + 12 + / { 13 + model = "Texas Instruments K3 J721E SoC"; 14 + compatible = "ti,j721e"; 15 + interrupt-parent = <&gic500>; 16 + #address-cells = <2>; 17 + #size-cells = <2>; 18 + 19 + aliases { 20 + serial0 = &wkup_uart0; 21 + serial1 = &mcu_uart0; 22 + serial2 = &main_uart0; 23 + serial3 = &main_uart1; 24 + serial4 = &main_uart2; 25 + serial5 = &main_uart3; 26 + serial6 = &main_uart4; 27 + serial7 = &main_uart5; 28 + serial8 = &main_uart6; 29 + serial9 = &main_uart7; 30 + serial10 = &main_uart8; 31 + serial11 = &main_uart9; 32 + }; 33 + 34 + chosen { }; 35 + 36 + cpus { 37 + #address-cells = <1>; 38 + #size-cells = <0>; 39 + cpu-map { 40 + cluster0: cluster0 { 41 + core0 { 42 + cpu = <&cpu0>; 43 + }; 44 + 45 + core1 { 46 + cpu = <&cpu1>; 47 + }; 48 + }; 49 + 50 + }; 51 + 52 + cpu0: cpu@0 { 53 + compatible = "arm,cortex-a72"; 54 + reg = <0x000>; 55 + device_type = "cpu"; 56 + enable-method = "psci"; 57 + i-cache-size = <0xC000>; 58 + i-cache-line-size = <64>; 59 + i-cache-sets = <256>; 60 + d-cache-size = <0x8000>; 61 + d-cache-line-size = <64>; 62 + d-cache-sets = <128>; 63 + next-level-cache = <&L2_0>; 64 + }; 65 + 66 + cpu1: cpu@1 { 67 + compatible = "arm,cortex-a72"; 68 + reg = <0x001>; 69 + device_type = "cpu"; 70 + enable-method = "psci"; 71 + i-cache-size = <0xC000>; 72 + i-cache-line-size = <64>; 73 + i-cache-sets = <256>; 74 + d-cache-size = <0x8000>; 75 + d-cache-line-size = <64>; 76 + d-cache-sets = <128>; 77 + next-level-cache = <&L2_0>; 78 + }; 79 + }; 80 + 81 + L2_0: l2-cache0 { 82 + compatible = "cache"; 83 + cache-level = <2>; 84 + cache-size = <0x100000>; 85 + cache-line-size = <64>; 86 + cache-sets = <2048>; 87 + next-level-cache = <&msmc_l3>; 88 + }; 89 + 90 + msmc_l3: l3-cache0 { 91 + compatible = "cache"; 92 + cache-level = <3>; 93 + }; 94 + 95 + firmware { 96 + optee { 97 + compatible = "linaro,optee-tz"; 98 + method = "smc"; 99 + }; 100 + 101 + psci: psci { 102 + compatible = "arm,psci-1.0"; 103 + method = "smc"; 104 + }; 105 + }; 106 + 107 + a72_timer0: timer-cl0-cpu0 { 108 + compatible = "arm,armv8-timer"; 109 + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* cntpsirq */ 110 + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* cntpnsirq */ 111 + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* cntvirq */ 112 + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* cnthpirq */ 113 + }; 114 + 115 + pmu: pmu { 116 + compatible = "arm,armv8-pmuv3"; 117 + /* Recommendation from GIC500 TRM Table A.3 */ 118 + interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; 119 + }; 120 + 121 + cbass_main: interconnect@100000 { 122 + compatible = "simple-bus"; 123 + #address-cells = <2>; 124 + #size-cells = <2>; 125 + ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */ 126 + <0x00 0x00600000 0x00 0x00600000 0x00 0x00031100>, /* GPIO */ 127 + <0x00 0x00900000 0x00 0x00900000 0x00 0x00012000>, /* serdes */ 128 + <0x00 0x00A40000 0x00 0x00A40000 0x00 0x00000800>, /* timesync router */ 129 + <0x00 0x01000000 0x00 0x01000000 0x00 0x0af02400>, /* Most peripherals */ 130 + <0x00 0x30800000 0x00 0x30800000 0x00 0x0bc00000>, /* MAIN NAVSS */ 131 + <0x00 0x0d000000 0x00 0x0d000000 0x00 0x01000000>, /* PCIe Core*/ 132 + <0x00 0x10000000 0x00 0x10000000 0x00 0x10000000>, /* PCIe DAT */ 133 + <0x00 0x64800000 0x00 0x64800000 0x00 0x00800000>, /* C71 */ 134 + <0x4d 0x80800000 0x4d 0x80800000 0x00 0x00800000>, /* C66_0 */ 135 + <0x4d 0x81800000 0x4d 0x81800000 0x00 0x00800000>, /* C66_1 */ 136 + <0x4e 0x20000000 0x4e 0x20000000 0x00 0x00080000>, /* GPU */ 137 + <0x00 0x70000000 0x00 0x70000000 0x00 0x00800000>, /* MSMC RAM */ 138 + 139 + /* MCUSS_WKUP Range */ 140 + <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>, 141 + <0x00 0x40200000 0x00 0x40200000 0x00 0x00998400>, 142 + <0x00 0x40f00000 0x00 0x40f00000 0x00 0x00020000>, 143 + <0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>, 144 + <0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>, 145 + <0x00 0x41c00000 0x00 0x41c00000 0x00 0x00100000>, 146 + <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>, 147 + <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, 148 + <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, 149 + <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>, 150 + <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>, 151 + <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>, 152 + <0x07 0x00000000 0x07 0x00000000 0x01 0x00000000>; 153 + 154 + cbass_mcu_wakeup: interconnect@28380000 { 155 + compatible = "simple-bus"; 156 + #address-cells = <2>; 157 + #size-cells = <2>; 158 + ranges = <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>, /* MCU NAVSS*/ 159 + <0x00 0x40200000 0x00 0x40200000 0x00 0x00998400>, /* First peripheral window */ 160 + <0x00 0x40f00000 0x00 0x40f00000 0x00 0x00020000>, /* CTRL_MMR0 */ 161 + <0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>, /* MCU R5F Core0 */ 162 + <0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>, /* MCU R5F Core1 */ 163 + <0x00 0x41c00000 0x00 0x41c00000 0x00 0x00100000>, /* MCU SRAM */ 164 + <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>, /* WKUP peripheral window */ 165 + <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, /* MMRs, remaining NAVSS */ 166 + <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, /* CPSW */ 167 + <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>, /* OSPI register space */ 168 + <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>, /* FSS OSPI0/1 data region 0 */ 169 + <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>, /* FSS OSPI0 data region 3 */ 170 + <0x07 0x00000000 0x07 0x00000000 0x01 0x00000000>; /* FSS OSPI1 data region 3*/ 171 + }; 172 + }; 173 + }; 174 + 175 + /* Now include the peripherals for each bus segments */ 176 + #include "k3-j721e-main.dtsi" 177 + #include "k3-j721e-mcu-wakeup.dtsi"
+1
arch/arm64/configs/defconfig
··· 696 696 CONFIG_ARCH_TEGRA_186_SOC=y 697 697 CONFIG_ARCH_TEGRA_194_SOC=y 698 698 CONFIG_ARCH_K3_AM6_SOC=y 699 + CONFIG_ARCH_K3_J721E_SOC=y 699 700 CONFIG_SOC_TI=y 700 701 CONFIG_TI_SCI_PM_DOMAINS=y 701 702 CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+5
drivers/soc/ti/Kconfig
··· 9 9 help 10 10 Enable support for TI's AM6 SoC Family support 11 11 12 + config ARCH_K3_J721E_SOC 13 + bool "K3 J721E SoC" 14 + help 15 + Enable support for TI's J721E SoC Family support 16 + 12 17 endif 13 18 14 19 endif