Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 /*
0003  * dtsi file for Cavium ThunderX2 CN99XX processor
0004  *
0005  * Copyright (c) 2017 Cavium Inc.
0006  * Copyright (c) 2013-2016 Broadcom
0007  * Author: Zi Shen Lim <zlim@broadcom.com>
0008  */
0009 
0010 #include <dt-bindings/interrupt-controller/arm-gic.h>
0011 
0012 / {
0013         model = "Cavium ThunderX2 CN99XX";
0014         compatible = "cavium,thunderx2-cn9900", "brcm,vulcan-soc";
0015         interrupt-parent = <&gic>;
0016         #address-cells = <2>;
0017         #size-cells = <2>;
0018 
0019         /* just 4 cpus now, 128 needed in full config */
0020         cpus {
0021                 #address-cells = <0x2>;
0022                 #size-cells = <0x0>;
0023 
0024                 cpu@0 {
0025                         device_type = "cpu";
0026                         compatible = "cavium,thunder2", "brcm,vulcan";
0027                         reg = <0x0 0x0>;
0028                         enable-method = "psci";
0029                 };
0030 
0031                 cpu@1 {
0032                         device_type = "cpu";
0033                         compatible = "cavium,thunder2", "brcm,vulcan";
0034                         reg = <0x0 0x1>;
0035                         enable-method = "psci";
0036                 };
0037 
0038                 cpu@2 {
0039                         device_type = "cpu";
0040                         compatible = "cavium,thunder2", "brcm,vulcan";
0041                         reg = <0x0 0x2>;
0042                         enable-method = "psci";
0043                 };
0044 
0045                 cpu@3 {
0046                         device_type = "cpu";
0047                         compatible = "cavium,thunder2", "brcm,vulcan";
0048                         reg = <0x0 0x3>;
0049                         enable-method = "psci";
0050                 };
0051         };
0052 
0053         psci {
0054                 compatible = "arm,psci-0.2";
0055                 method = "smc";
0056         };
0057 
0058         gic: interrupt-controller@400080000 {
0059                 compatible = "arm,gic-v3";
0060                 #interrupt-cells = <3>;
0061                 #address-cells = <2>;
0062                 #size-cells = <2>;
0063                 ranges;
0064                 interrupt-controller;
0065                 #redistributor-regions = <1>;
0066                 reg = <0x04 0x00080000 0x0 0x20000>,    /* GICD */
0067                       <0x04 0x01000000 0x0 0x1000000>;  /* GICR */
0068                 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
0069 
0070                 gicits: gic-its@40010000 {
0071                         compatible = "arm,gic-v3-its";
0072                         msi-controller;
0073                         reg = <0x04 0x00100000 0x0 0x20000>;    /* GIC ITS */
0074                 };
0075         };
0076 
0077         timer {
0078                 compatible = "arm,armv8-timer";
0079                 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
0080                              <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
0081                              <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
0082                              <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
0083         };
0084 
0085         pmu {
0086                 compatible = "brcm,vulcan-pmu", "arm,armv8-pmuv3";
0087                 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; /* PMU overflow */
0088         };
0089 
0090         clk125mhz: uart_clk125mhz {
0091                 compatible = "fixed-clock";
0092                 #clock-cells = <0>;
0093                 clock-frequency = <125000000>;
0094                 clock-output-names = "clk125mhz";
0095         };
0096 
0097         pcie@30000000 {
0098                 compatible = "pci-host-ecam-generic";
0099                 device_type = "pci";
0100                 #interrupt-cells = <1>;
0101                 #address-cells = <3>;
0102                 #size-cells = <2>;
0103 
0104                 /* ECAM at 0x3000_0000 - 0x4000_0000 */
0105                 reg = <0x0 0x30000000  0x0 0x10000000>;
0106                 reg-names = "PCI ECAM";
0107 
0108                 /*
0109                  * PCI ranges:
0110                  *   IO         no supported
0111                  *   MEM        0x4000_0000 - 0x6000_0000
0112                  *   MEM64 pref 0x40_0000_0000 - 0x60_0000_0000
0113                  */
0114                 ranges =
0115                   <0x02000000    0 0x40000000    0 0x40000000    0 0x20000000
0116                    0x43000000 0x40 0x00000000 0x40 0x00000000 0x20 0x00000000>;
0117                 bus-range = <0 0xff>;
0118                 interrupt-map-mask = <0 0 0 7>;
0119                 interrupt-map =
0120                       /* addr  pin  ic   icaddr  icintr */
0121                         <0 0 0  1  &gic   0 0    GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH
0122                          0 0 0  2  &gic   0 0    GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH
0123                          0 0 0  3  &gic   0 0    GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH
0124                          0 0 0  4  &gic   0 0    GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
0125                 msi-parent = <&gicits>;
0126                 dma-coherent;
0127         };
0128 
0129         soc {
0130                 compatible = "simple-bus";
0131                 #address-cells = <2>;
0132                 #size-cells = <2>;
0133                 ranges;
0134 
0135                 uart0: serial@402020000 {
0136                         compatible = "arm,pl011", "arm,primecell";
0137                         reg = <0x04 0x02020000 0x0 0x1000>;
0138                         interrupt-parent = <&gic>;
0139                         interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
0140                         clocks = <&clk125mhz>;
0141                         clock-names = "apb_pclk";
0142                 };
0143         };
0144 
0145 };