1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0 2c66ec88fSEmmanuel Vadot/* 3c66ec88fSEmmanuel Vadot * DTS file for AMD Seattle SoC 4c66ec88fSEmmanuel Vadot * 5c66ec88fSEmmanuel Vadot * Copyright (C) 2014 Advanced Micro Devices, Inc. 6c66ec88fSEmmanuel Vadot */ 7c66ec88fSEmmanuel Vadot 8c66ec88fSEmmanuel Vadot/ { 9c66ec88fSEmmanuel Vadot compatible = "amd,seattle"; 10c66ec88fSEmmanuel Vadot interrupt-parent = <&gic0>; 11c66ec88fSEmmanuel Vadot #address-cells = <2>; 12c66ec88fSEmmanuel Vadot #size-cells = <2>; 13c66ec88fSEmmanuel Vadot 14c66ec88fSEmmanuel Vadot gic0: interrupt-controller@e1101000 { 15c66ec88fSEmmanuel Vadot compatible = "arm,gic-400", "arm,cortex-a15-gic"; 16c66ec88fSEmmanuel Vadot interrupt-controller; 17c66ec88fSEmmanuel Vadot #interrupt-cells = <3>; 18c66ec88fSEmmanuel Vadot #address-cells = <2>; 19c66ec88fSEmmanuel Vadot #size-cells = <2>; 20c66ec88fSEmmanuel Vadot reg = <0x0 0xe1110000 0 0x1000>, 21c66ec88fSEmmanuel Vadot <0x0 0xe112f000 0 0x2000>, 22c66ec88fSEmmanuel Vadot <0x0 0xe1140000 0 0x2000>, 23c66ec88fSEmmanuel Vadot <0x0 0xe1160000 0 0x2000>; 24c66ec88fSEmmanuel Vadot interrupts = <1 9 0xf04>; 25c66ec88fSEmmanuel Vadot ranges = <0 0 0 0xe1100000 0 0x100000>; 26c66ec88fSEmmanuel Vadot v2m0: v2m@e0080000 { 27c66ec88fSEmmanuel Vadot compatible = "arm,gic-v2m-frame"; 28c66ec88fSEmmanuel Vadot msi-controller; 29c66ec88fSEmmanuel Vadot reg = <0x0 0x00080000 0 0x1000>; 30c66ec88fSEmmanuel Vadot }; 31c66ec88fSEmmanuel Vadot }; 32c66ec88fSEmmanuel Vadot 33c66ec88fSEmmanuel Vadot timer { 34c66ec88fSEmmanuel Vadot compatible = "arm,armv8-timer"; 35c66ec88fSEmmanuel Vadot interrupts = <1 13 0xff04>, 36c66ec88fSEmmanuel Vadot <1 14 0xff04>, 37c66ec88fSEmmanuel Vadot <1 11 0xff04>, 38c66ec88fSEmmanuel Vadot <1 10 0xff04>; 39c66ec88fSEmmanuel Vadot }; 40c66ec88fSEmmanuel Vadot 41c66ec88fSEmmanuel Vadot smb0: smb { 42c66ec88fSEmmanuel Vadot compatible = "simple-bus"; 43c66ec88fSEmmanuel Vadot #address-cells = <2>; 44c66ec88fSEmmanuel Vadot #size-cells = <2>; 45c66ec88fSEmmanuel Vadot ranges; 46c66ec88fSEmmanuel Vadot 47c66ec88fSEmmanuel Vadot /* 48c66ec88fSEmmanuel Vadot * dma-ranges is 40-bit address space containing: 49c66ec88fSEmmanuel Vadot * - GICv2m MSI register is at 0xe0080000 50c66ec88fSEmmanuel Vadot * - DRAM range [0x8000000000 to 0xffffffffff] 51c66ec88fSEmmanuel Vadot */ 52c66ec88fSEmmanuel Vadot dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x0>; 53c66ec88fSEmmanuel Vadot 54c66ec88fSEmmanuel Vadot /include/ "amd-seattle-clks.dtsi" 55c66ec88fSEmmanuel Vadot 56c66ec88fSEmmanuel Vadot sata0: sata@e0300000 { 57c66ec88fSEmmanuel Vadot compatible = "snps,dwc-ahci"; 58c66ec88fSEmmanuel Vadot reg = <0 0xe0300000 0 0xf0000>; 59c66ec88fSEmmanuel Vadot interrupts = <0 355 4>; 60c66ec88fSEmmanuel Vadot clocks = <&sataclk_333mhz>; 61*c9ccf3a3SEmmanuel Vadot iommus = <&sata0_smmu 0x0 0x1f>; 62c66ec88fSEmmanuel Vadot dma-coherent; 63c66ec88fSEmmanuel Vadot }; 64c66ec88fSEmmanuel Vadot 65c66ec88fSEmmanuel Vadot /* This is for Rev B only */ 66c66ec88fSEmmanuel Vadot sata1: sata@e0d00000 { 67c66ec88fSEmmanuel Vadot status = "disabled"; 68c66ec88fSEmmanuel Vadot compatible = "snps,dwc-ahci"; 69c66ec88fSEmmanuel Vadot reg = <0 0xe0d00000 0 0xf0000>; 70c66ec88fSEmmanuel Vadot interrupts = <0 354 4>; 71c66ec88fSEmmanuel Vadot clocks = <&sataclk_333mhz>; 72*c9ccf3a3SEmmanuel Vadot iommus = <&sata1_smmu 0x0e>, 73*c9ccf3a3SEmmanuel Vadot <&sata1_smmu 0x0f>, 74*c9ccf3a3SEmmanuel Vadot <&sata1_smmu 0x1e>; 75*c9ccf3a3SEmmanuel Vadot dma-coherent; 76*c9ccf3a3SEmmanuel Vadot }; 77*c9ccf3a3SEmmanuel Vadot 78*c9ccf3a3SEmmanuel Vadot sata0_smmu: iommu@e0200000 { 79*c9ccf3a3SEmmanuel Vadot compatible = "arm,mmu-401"; 80*c9ccf3a3SEmmanuel Vadot reg = <0 0xe0200000 0 0x10000>; 81*c9ccf3a3SEmmanuel Vadot #global-interrupts = <1>; 82*c9ccf3a3SEmmanuel Vadot interrupts = <0 332 4>, <0 332 4>; 83*c9ccf3a3SEmmanuel Vadot #iommu-cells = <2>; 84*c9ccf3a3SEmmanuel Vadot dma-coherent; 85*c9ccf3a3SEmmanuel Vadot }; 86*c9ccf3a3SEmmanuel Vadot 87*c9ccf3a3SEmmanuel Vadot sata1_smmu: iommu@e0c00000 { 88*c9ccf3a3SEmmanuel Vadot compatible = "arm,mmu-401"; 89*c9ccf3a3SEmmanuel Vadot reg = <0 0xe0c00000 0 0x10000>; 90*c9ccf3a3SEmmanuel Vadot #global-interrupts = <1>; 91*c9ccf3a3SEmmanuel Vadot interrupts = <0 331 4>, <0 331 4>; 92*c9ccf3a3SEmmanuel Vadot #iommu-cells = <1>; 93c66ec88fSEmmanuel Vadot dma-coherent; 94c66ec88fSEmmanuel Vadot }; 95c66ec88fSEmmanuel Vadot 96c66ec88fSEmmanuel Vadot i2c0: i2c@e1000000 { 97c66ec88fSEmmanuel Vadot status = "disabled"; 98c66ec88fSEmmanuel Vadot compatible = "snps,designware-i2c"; 99c66ec88fSEmmanuel Vadot reg = <0 0xe1000000 0 0x1000>; 100c66ec88fSEmmanuel Vadot interrupts = <0 357 4>; 101c66ec88fSEmmanuel Vadot clocks = <&miscclk_250mhz>; 102c66ec88fSEmmanuel Vadot }; 103c66ec88fSEmmanuel Vadot 104c66ec88fSEmmanuel Vadot i2c1: i2c@e0050000 { 105c66ec88fSEmmanuel Vadot status = "disabled"; 106c66ec88fSEmmanuel Vadot compatible = "snps,designware-i2c"; 107c66ec88fSEmmanuel Vadot reg = <0 0xe0050000 0 0x1000>; 108c66ec88fSEmmanuel Vadot interrupts = <0 340 4>; 109c66ec88fSEmmanuel Vadot clocks = <&miscclk_250mhz>; 110c66ec88fSEmmanuel Vadot }; 111c66ec88fSEmmanuel Vadot 112c66ec88fSEmmanuel Vadot serial0: serial@e1010000 { 113c66ec88fSEmmanuel Vadot compatible = "arm,pl011", "arm,primecell"; 114c66ec88fSEmmanuel Vadot reg = <0 0xe1010000 0 0x1000>; 115c66ec88fSEmmanuel Vadot interrupts = <0 328 4>; 116c66ec88fSEmmanuel Vadot clocks = <&uartspiclk_100mhz>, <&uartspiclk_100mhz>; 117c66ec88fSEmmanuel Vadot clock-names = "uartclk", "apb_pclk"; 118c66ec88fSEmmanuel Vadot }; 119c66ec88fSEmmanuel Vadot 120c66ec88fSEmmanuel Vadot spi0: spi@e1020000 { 121c66ec88fSEmmanuel Vadot status = "disabled"; 122c66ec88fSEmmanuel Vadot compatible = "arm,pl022", "arm,primecell"; 123c66ec88fSEmmanuel Vadot reg = <0 0xe1020000 0 0x1000>; 124c66ec88fSEmmanuel Vadot spi-controller; 125c66ec88fSEmmanuel Vadot interrupts = <0 330 4>; 126c66ec88fSEmmanuel Vadot clocks = <&uartspiclk_100mhz>; 127c66ec88fSEmmanuel Vadot clock-names = "apb_pclk"; 128c66ec88fSEmmanuel Vadot }; 129c66ec88fSEmmanuel Vadot 130c66ec88fSEmmanuel Vadot spi1: spi@e1030000 { 131c66ec88fSEmmanuel Vadot status = "disabled"; 132c66ec88fSEmmanuel Vadot compatible = "arm,pl022", "arm,primecell"; 133c66ec88fSEmmanuel Vadot reg = <0 0xe1030000 0 0x1000>; 134c66ec88fSEmmanuel Vadot spi-controller; 135c66ec88fSEmmanuel Vadot interrupts = <0 329 4>; 136c66ec88fSEmmanuel Vadot clocks = <&uartspiclk_100mhz>; 137c66ec88fSEmmanuel Vadot clock-names = "apb_pclk"; 138c66ec88fSEmmanuel Vadot num-cs = <1>; 139c66ec88fSEmmanuel Vadot #address-cells = <1>; 140c66ec88fSEmmanuel Vadot #size-cells = <0>; 141c66ec88fSEmmanuel Vadot }; 142c66ec88fSEmmanuel Vadot 143c66ec88fSEmmanuel Vadot gpio0: gpio@e1040000 { /* Not available to OS for B0 */ 144c66ec88fSEmmanuel Vadot status = "disabled"; 145c66ec88fSEmmanuel Vadot compatible = "arm,pl061", "arm,primecell"; 146c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 147c66ec88fSEmmanuel Vadot reg = <0 0xe1040000 0 0x1000>; 148c66ec88fSEmmanuel Vadot gpio-controller; 149c66ec88fSEmmanuel Vadot interrupts = <0 359 4>; 150c66ec88fSEmmanuel Vadot interrupt-controller; 151c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 152c66ec88fSEmmanuel Vadot clocks = <&miscclk_250mhz>; 153c66ec88fSEmmanuel Vadot clock-names = "apb_pclk"; 154c66ec88fSEmmanuel Vadot }; 155c66ec88fSEmmanuel Vadot 156c66ec88fSEmmanuel Vadot gpio1: gpio@e1050000 { /* [0:7] */ 157c66ec88fSEmmanuel Vadot status = "disabled"; 158c66ec88fSEmmanuel Vadot compatible = "arm,pl061", "arm,primecell"; 159c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 160c66ec88fSEmmanuel Vadot reg = <0 0xe1050000 0 0x1000>; 161c66ec88fSEmmanuel Vadot gpio-controller; 162c66ec88fSEmmanuel Vadot interrupt-controller; 163c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 164c66ec88fSEmmanuel Vadot interrupts = <0 358 4>; 165c66ec88fSEmmanuel Vadot clocks = <&miscclk_250mhz>; 166c66ec88fSEmmanuel Vadot clock-names = "apb_pclk"; 167c66ec88fSEmmanuel Vadot }; 168c66ec88fSEmmanuel Vadot 169c66ec88fSEmmanuel Vadot gpio2: gpio@e0020000 { /* [8:15] */ 170c66ec88fSEmmanuel Vadot status = "disabled"; 171c66ec88fSEmmanuel Vadot compatible = "arm,pl061", "arm,primecell"; 172c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 173c66ec88fSEmmanuel Vadot reg = <0 0xe0020000 0 0x1000>; 174c66ec88fSEmmanuel Vadot gpio-controller; 175c66ec88fSEmmanuel Vadot interrupt-controller; 176c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 177c66ec88fSEmmanuel Vadot interrupts = <0 366 4>; 178c66ec88fSEmmanuel Vadot clocks = <&miscclk_250mhz>; 179c66ec88fSEmmanuel Vadot clock-names = "apb_pclk"; 180c66ec88fSEmmanuel Vadot }; 181c66ec88fSEmmanuel Vadot 182c66ec88fSEmmanuel Vadot gpio3: gpio@e0030000 { /* [16:23] */ 183c66ec88fSEmmanuel Vadot status = "disabled"; 184c66ec88fSEmmanuel Vadot compatible = "arm,pl061", "arm,primecell"; 185c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 186c66ec88fSEmmanuel Vadot reg = <0 0xe0030000 0 0x1000>; 187c66ec88fSEmmanuel Vadot gpio-controller; 188c66ec88fSEmmanuel Vadot interrupt-controller; 189c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 190c66ec88fSEmmanuel Vadot interrupts = <0 365 4>; 191c66ec88fSEmmanuel Vadot clocks = <&miscclk_250mhz>; 192c66ec88fSEmmanuel Vadot clock-names = "apb_pclk"; 193c66ec88fSEmmanuel Vadot }; 194c66ec88fSEmmanuel Vadot 195c66ec88fSEmmanuel Vadot gpio4: gpio@e0080000 { /* [24] */ 196c66ec88fSEmmanuel Vadot status = "disabled"; 197c66ec88fSEmmanuel Vadot compatible = "arm,pl061", "arm,primecell"; 198c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 199c66ec88fSEmmanuel Vadot reg = <0 0xe0080000 0 0x1000>; 200c66ec88fSEmmanuel Vadot gpio-controller; 201c66ec88fSEmmanuel Vadot interrupt-controller; 202c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 203c66ec88fSEmmanuel Vadot interrupts = <0 361 4>; 204c66ec88fSEmmanuel Vadot clocks = <&miscclk_250mhz>; 205c66ec88fSEmmanuel Vadot clock-names = "apb_pclk"; 206c66ec88fSEmmanuel Vadot }; 207c66ec88fSEmmanuel Vadot 208c66ec88fSEmmanuel Vadot ccp0: ccp@e0100000 { 209c66ec88fSEmmanuel Vadot status = "disabled"; 210c66ec88fSEmmanuel Vadot compatible = "amd,ccp-seattle-v1a"; 211c66ec88fSEmmanuel Vadot reg = <0 0xe0100000 0 0x10000>; 212c66ec88fSEmmanuel Vadot interrupts = <0 3 4>; 213c66ec88fSEmmanuel Vadot dma-coherent; 214*c9ccf3a3SEmmanuel Vadot iommus = <&sata1_smmu 0x00>, 215*c9ccf3a3SEmmanuel Vadot <&sata1_smmu 0x02>, 216*c9ccf3a3SEmmanuel Vadot <&sata1_smmu 0x40>, 217*c9ccf3a3SEmmanuel Vadot <&sata1_smmu 0x42>; 218c66ec88fSEmmanuel Vadot }; 219c66ec88fSEmmanuel Vadot 220c66ec88fSEmmanuel Vadot pcie0: pcie@f0000000 { 221c66ec88fSEmmanuel Vadot compatible = "pci-host-ecam-generic"; 222c66ec88fSEmmanuel Vadot #address-cells = <3>; 223c66ec88fSEmmanuel Vadot #size-cells = <2>; 224c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 225c66ec88fSEmmanuel Vadot device_type = "pci"; 226c66ec88fSEmmanuel Vadot bus-range = <0 0x7f>; 227c66ec88fSEmmanuel Vadot msi-parent = <&v2m0>; 228c66ec88fSEmmanuel Vadot reg = <0 0xf0000000 0 0x10000000>; 229c66ec88fSEmmanuel Vadot 230*c9ccf3a3SEmmanuel Vadot interrupt-map-mask = <0xff00 0x0 0x0 0x7>; 231c66ec88fSEmmanuel Vadot interrupt-map = 232*c9ccf3a3SEmmanuel Vadot <0x1100 0x0 0x0 0x1 &gic0 0x0 0x0 0x0 0x120 0x1>, 233*c9ccf3a3SEmmanuel Vadot <0x1100 0x0 0x0 0x2 &gic0 0x0 0x0 0x0 0x121 0x1>, 234*c9ccf3a3SEmmanuel Vadot <0x1100 0x0 0x0 0x3 &gic0 0x0 0x0 0x0 0x122 0x1>, 235*c9ccf3a3SEmmanuel Vadot <0x1100 0x0 0x0 0x4 &gic0 0x0 0x0 0x0 0x123 0x1>, 236*c9ccf3a3SEmmanuel Vadot 237*c9ccf3a3SEmmanuel Vadot <0x1200 0x0 0x0 0x1 &gic0 0x0 0x0 0x0 0x124 0x1>, 238*c9ccf3a3SEmmanuel Vadot <0x1200 0x0 0x0 0x2 &gic0 0x0 0x0 0x0 0x125 0x1>, 239*c9ccf3a3SEmmanuel Vadot <0x1200 0x0 0x0 0x3 &gic0 0x0 0x0 0x0 0x126 0x1>, 240*c9ccf3a3SEmmanuel Vadot <0x1200 0x0 0x0 0x4 &gic0 0x0 0x0 0x0 0x127 0x1>, 241*c9ccf3a3SEmmanuel Vadot 242*c9ccf3a3SEmmanuel Vadot <0x1300 0x0 0x0 0x1 &gic0 0x0 0x0 0x0 0x128 0x1>, 243*c9ccf3a3SEmmanuel Vadot <0x1300 0x0 0x0 0x2 &gic0 0x0 0x0 0x0 0x129 0x1>, 244*c9ccf3a3SEmmanuel Vadot <0x1300 0x0 0x0 0x3 &gic0 0x0 0x0 0x0 0x12a 0x1>, 245*c9ccf3a3SEmmanuel Vadot <0x1300 0x0 0x0 0x4 &gic0 0x0 0x0 0x0 0x12b 0x1>; 246c66ec88fSEmmanuel Vadot 247c66ec88fSEmmanuel Vadot dma-coherent; 248c66ec88fSEmmanuel Vadot dma-ranges = <0x43000000 0x0 0x0 0x0 0x0 0x100 0x0>; 249c66ec88fSEmmanuel Vadot ranges = 250c66ec88fSEmmanuel Vadot /* I/O Memory (size=64K) */ 251c66ec88fSEmmanuel Vadot <0x01000000 0x00 0x00000000 0x00 0xefff0000 0x00 0x00010000>, 252c66ec88fSEmmanuel Vadot /* 32-bit MMIO (size=2G) */ 253c66ec88fSEmmanuel Vadot <0x02000000 0x00 0x40000000 0x00 0x40000000 0x00 0x80000000>, 254*c9ccf3a3SEmmanuel Vadot /* 64-bit MMIO (size= 508G) */ 255c66ec88fSEmmanuel Vadot <0x03000000 0x01 0x00000000 0x01 0x00000000 0x7f 0x00000000>; 256*c9ccf3a3SEmmanuel Vadot iommu-map = <0x0 &pcie_smmu 0x0 0x10000>; 257*c9ccf3a3SEmmanuel Vadot }; 258*c9ccf3a3SEmmanuel Vadot 259*c9ccf3a3SEmmanuel Vadot pcie_smmu: iommu@e0a00000 { 260*c9ccf3a3SEmmanuel Vadot compatible = "arm,mmu-401"; 261*c9ccf3a3SEmmanuel Vadot reg = <0 0xe0a00000 0 0x10000>; 262*c9ccf3a3SEmmanuel Vadot #global-interrupts = <1>; 263*c9ccf3a3SEmmanuel Vadot interrupts = <0 333 4>, <0 333 4>; 264*c9ccf3a3SEmmanuel Vadot #iommu-cells = <1>; 265*c9ccf3a3SEmmanuel Vadot dma-coherent; 266c66ec88fSEmmanuel Vadot }; 267c66ec88fSEmmanuel Vadot 268c66ec88fSEmmanuel Vadot /* Perf CCN504 PMU */ 269c66ec88fSEmmanuel Vadot ccn: ccn@e8000000 { 270c66ec88fSEmmanuel Vadot compatible = "arm,ccn-504"; 271c66ec88fSEmmanuel Vadot reg = <0x0 0xe8000000 0 0x1000000>; 272c66ec88fSEmmanuel Vadot interrupts = <0 380 4>; 273c66ec88fSEmmanuel Vadot }; 274c66ec88fSEmmanuel Vadot 275c66ec88fSEmmanuel Vadot ipmi_kcs: kcs@e0010000 { 276c66ec88fSEmmanuel Vadot status = "disabled"; 277c66ec88fSEmmanuel Vadot compatible = "ipmi-kcs"; 278c66ec88fSEmmanuel Vadot device_type = "ipmi"; 279c66ec88fSEmmanuel Vadot reg = <0x0 0xe0010000 0 0x8>; 280c66ec88fSEmmanuel Vadot interrupts = <0 389 4>; 281c66ec88fSEmmanuel Vadot reg-size = <1>; 282c66ec88fSEmmanuel Vadot reg-spacing = <4>; 283c66ec88fSEmmanuel Vadot }; 284c66ec88fSEmmanuel Vadot }; 285c66ec88fSEmmanuel Vadot}; 286