diff options
| author | Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com> | 2014-11-25 23:51:09 -0500 |
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2014-11-28 10:09:05 -0500 |
| commit | 419043609689d0aba9f727a6faf1ff406e269ecf (patch) | |
| tree | 36e56fa463d1e9837783517be8fd509e9eee2da5 | |
| parent | 71f867ec130e3cc8e692366fdf8941ded27c727e (diff) | |
arm64: amd-seattle: Adding device tree for AMD Seattle platform
Initial revision of device tree for AMD Seattle Development platform.
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
Signed-off-by: Thomas Lendacky <Thomas.Lendacky@amd.com>
Signed-off-by: Joel Schopp <Joel.Schopp@amd.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
| -rw-r--r-- | arch/arm64/Kconfig | 5 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/Makefile | 1 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/amd/Makefile | 5 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/amd/amd-overdrive.dts | 66 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/amd/amd-seattle-clks.dtsi | 54 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi | 172 |
6 files changed, 303 insertions, 0 deletions
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 9532f8d5857e..ddc01961a0da 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig | |||
| @@ -142,6 +142,11 @@ source "kernel/Kconfig.freezer" | |||
| 142 | 142 | ||
| 143 | menu "Platform selection" | 143 | menu "Platform selection" |
| 144 | 144 | ||
| 145 | config ARCH_SEATTLE | ||
| 146 | bool "AMD Seattle SoC Family" | ||
| 147 | help | ||
| 148 | This enables support for AMD Seattle SOC Family | ||
| 149 | |||
| 145 | config ARCH_THUNDER | 150 | config ARCH_THUNDER |
| 146 | bool "Cavium Inc. Thunder SoC Family" | 151 | bool "Cavium Inc. Thunder SoC Family" |
| 147 | help | 152 | help |
diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile index e8efc8ff3d58..3b8d427c3985 100644 --- a/arch/arm64/boot/dts/Makefile +++ b/arch/arm64/boot/dts/Makefile | |||
| @@ -1,3 +1,4 @@ | |||
| 1 | dts-dirs += amd | ||
| 1 | dts-dirs += apm | 2 | dts-dirs += apm |
| 2 | dts-dirs += arm | 3 | dts-dirs += arm |
| 3 | dts-dirs += cavium | 4 | dts-dirs += cavium |
diff --git a/arch/arm64/boot/dts/amd/Makefile b/arch/arm64/boot/dts/amd/Makefile new file mode 100644 index 000000000000..cfdf701e05df --- /dev/null +++ b/arch/arm64/boot/dts/amd/Makefile | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | dtb-$(CONFIG_ARCH_SEATTLE) += amd-overdrive.dtb | ||
| 2 | |||
| 3 | always := $(dtb-y) | ||
| 4 | subdir-y := $(dts-dirs) | ||
| 5 | clean-files := *.dtb | ||
diff --git a/arch/arm64/boot/dts/amd/amd-overdrive.dts b/arch/arm64/boot/dts/amd/amd-overdrive.dts new file mode 100644 index 000000000000..564a3f7df71d --- /dev/null +++ b/arch/arm64/boot/dts/amd/amd-overdrive.dts | |||
| @@ -0,0 +1,66 @@ | |||
| 1 | /* | ||
| 2 | * DTS file for AMD Seattle Overdrive Development Board | ||
| 3 | * | ||
| 4 | * Copyright (C) 2014 Advanced Micro Devices, Inc. | ||
| 5 | */ | ||
| 6 | |||
| 7 | /dts-v1/; | ||
| 8 | |||
| 9 | /include/ "amd-seattle-soc.dtsi" | ||
| 10 | |||
| 11 | / { | ||
| 12 | model = "AMD Seattle Development Board (Overdrive)"; | ||
| 13 | compatible = "amd,seattle-overdrive", "amd,seattle"; | ||
| 14 | |||
| 15 | chosen { | ||
| 16 | stdout-path = &serial0; | ||
| 17 | linux,pci-probe-only; | ||
| 18 | }; | ||
| 19 | }; | ||
| 20 | |||
| 21 | &ccp0 { | ||
| 22 | status = "ok"; | ||
| 23 | }; | ||
| 24 | |||
| 25 | &gpio0 { | ||
| 26 | status = "ok"; | ||
| 27 | }; | ||
| 28 | |||
| 29 | &gpio1 { | ||
| 30 | status = "ok"; | ||
| 31 | }; | ||
| 32 | |||
| 33 | &i2c0 { | ||
| 34 | status = "ok"; | ||
| 35 | }; | ||
| 36 | |||
| 37 | &pcie0 { | ||
| 38 | status = "ok"; | ||
| 39 | }; | ||
| 40 | |||
| 41 | &spi0 { | ||
| 42 | status = "ok"; | ||
| 43 | }; | ||
| 44 | |||
| 45 | &spi1 { | ||
| 46 | status = "ok"; | ||
| 47 | sdcard0: sdcard@0 { | ||
| 48 | compatible = "mmc-spi-slot"; | ||
| 49 | reg = <0>; | ||
| 50 | spi-max-frequency = <20000000>; | ||
| 51 | voltage-ranges = <3200 3400>; | ||
| 52 | gpios = <&gpio0 7 0>; | ||
| 53 | interrupt-parent = <&gpio0>; | ||
| 54 | interrupts = <7 3>; | ||
| 55 | pl022,hierarchy = <0>; | ||
| 56 | pl022,interface = <0>; | ||
| 57 | pl022,com-mode = <0x0>; | ||
| 58 | pl022,rx-level-trig = <0>; | ||
| 59 | pl022,tx-level-trig = <0>; | ||
| 60 | }; | ||
| 61 | }; | ||
| 62 | |||
| 63 | &v2m0 { | ||
| 64 | arm,msi-base-spi = <64>; | ||
| 65 | arm,msi-num-spis = <256>; | ||
| 66 | }; | ||
diff --git a/arch/arm64/boot/dts/amd/amd-seattle-clks.dtsi b/arch/arm64/boot/dts/amd/amd-seattle-clks.dtsi new file mode 100644 index 000000000000..f623c46525a6 --- /dev/null +++ b/arch/arm64/boot/dts/amd/amd-seattle-clks.dtsi | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | /* | ||
| 2 | * DTS file for AMD Seattle Clocks | ||
| 3 | * | ||
| 4 | * Copyright (C) 2014 Advanced Micro Devices, Inc. | ||
| 5 | */ | ||
| 6 | |||
| 7 | adl3clk_100mhz: clk100mhz_0 { | ||
| 8 | compatible = "fixed-clock"; | ||
| 9 | #clock-cells = <0>; | ||
| 10 | clock-frequency = <100000000>; | ||
| 11 | clock-output-names = "adl3clk_100mhz"; | ||
| 12 | }; | ||
| 13 | |||
| 14 | ccpclk_375mhz: clk375mhz { | ||
| 15 | compatible = "fixed-clock"; | ||
| 16 | #clock-cells = <0>; | ||
| 17 | clock-frequency = <375000000>; | ||
| 18 | clock-output-names = "ccpclk_375mhz"; | ||
| 19 | }; | ||
| 20 | |||
| 21 | sataclk_333mhz: clk333mhz { | ||
| 22 | compatible = "fixed-clock"; | ||
| 23 | #clock-cells = <0>; | ||
| 24 | clock-frequency = <333000000>; | ||
| 25 | clock-output-names = "sataclk_333mhz"; | ||
| 26 | }; | ||
| 27 | |||
| 28 | pcieclk_500mhz: clk500mhz_0 { | ||
| 29 | compatible = "fixed-clock"; | ||
| 30 | #clock-cells = <0>; | ||
| 31 | clock-frequency = <500000000>; | ||
| 32 | clock-output-names = "pcieclk_500mhz"; | ||
| 33 | }; | ||
| 34 | |||
| 35 | dmaclk_500mhz: clk500mhz_1 { | ||
| 36 | compatible = "fixed-clock"; | ||
| 37 | #clock-cells = <0>; | ||
| 38 | clock-frequency = <500000000>; | ||
| 39 | clock-output-names = "dmaclk_500mhz"; | ||
| 40 | }; | ||
| 41 | |||
| 42 | miscclk_250mhz: clk250mhz_4 { | ||
| 43 | compatible = "fixed-clock"; | ||
| 44 | #clock-cells = <0>; | ||
| 45 | clock-frequency = <250000000>; | ||
| 46 | clock-output-names = "miscclk_250mhz"; | ||
| 47 | }; | ||
| 48 | |||
| 49 | uartspiclk_100mhz: clk100mhz_1 { | ||
| 50 | compatible = "fixed-clock"; | ||
| 51 | #clock-cells = <0>; | ||
| 52 | clock-frequency = <100000000>; | ||
| 53 | clock-output-names = "uartspiclk_100mhz"; | ||
| 54 | }; | ||
diff --git a/arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi b/arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi new file mode 100644 index 000000000000..0c8e7ae96fed --- /dev/null +++ b/arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi | |||
| @@ -0,0 +1,172 @@ | |||
| 1 | /* | ||
| 2 | * DTS file for AMD Seattle SoC | ||
| 3 | * | ||
| 4 | * Copyright (C) 2014 Advanced Micro Devices, Inc. | ||
| 5 | */ | ||
| 6 | |||
| 7 | / { | ||
| 8 | compatible = "amd,seattle"; | ||
| 9 | interrupt-parent = <&gic0>; | ||
| 10 | #address-cells = <2>; | ||
| 11 | #size-cells = <2>; | ||
| 12 | |||
| 13 | gic0: interrupt-controller@e1101000 { | ||
| 14 | compatible = "arm,gic-400", "arm,cortex-a15-gic"; | ||
| 15 | interrupt-controller; | ||
| 16 | #interrupt-cells = <3>; | ||
| 17 | #address-cells = <2>; | ||
| 18 | #size-cells = <2>; | ||
| 19 | reg = <0x0 0xe1110000 0 0x1000>, | ||
| 20 | <0x0 0xe112f000 0 0x2000>, | ||
| 21 | <0x0 0xe1140000 0 0x10000>, | ||
| 22 | <0x0 0xe1160000 0 0x10000>; | ||
| 23 | interrupts = <1 9 0xf04>; | ||
| 24 | ranges = <0 0 0 0xe1100000 0 0x100000>; | ||
| 25 | v2m0: v2m@e0080000 { | ||
| 26 | compatible = "arm,gic-v2m-frame"; | ||
| 27 | msi-controller; | ||
| 28 | reg = <0x0 0x00080000 0 0x1000>; | ||
| 29 | }; | ||
| 30 | }; | ||
| 31 | |||
| 32 | timer { | ||
| 33 | compatible = "arm,armv8-timer"; | ||
| 34 | interrupts = <1 13 0xff04>, | ||
| 35 | <1 14 0xff04>, | ||
| 36 | <1 11 0xff04>, | ||
| 37 | <1 10 0xff04>; | ||
| 38 | }; | ||
| 39 | |||
| 40 | pmu { | ||
| 41 | compatible = "arm,armv8-pmuv3"; | ||
| 42 | interrupts = <0 7 4>, | ||
| 43 | <0 8 4>, | ||
| 44 | <0 9 4>, | ||
| 45 | <0 10 4>, | ||
| 46 | <0 11 4>, | ||
| 47 | <0 12 4>, | ||
| 48 | <0 13 4>, | ||
| 49 | <0 14 4>; | ||
| 50 | }; | ||
| 51 | |||
| 52 | smb0: smb { | ||
| 53 | compatible = "simple-bus"; | ||
| 54 | #address-cells = <2>; | ||
| 55 | #size-cells = <2>; | ||
| 56 | ranges; | ||
| 57 | |||
| 58 | /* DDR range is 40-bit addressing */ | ||
| 59 | dma-ranges = <0x80 0x0 0x80 0x0 0x7f 0xffffffff>; | ||
| 60 | |||
| 61 | /include/ "amd-seattle-clks.dtsi" | ||
| 62 | |||
| 63 | sata0: sata@e0300000 { | ||
| 64 | compatible = "snps,dwc-ahci"; | ||
| 65 | reg = <0 0xe0300000 0 0x800>; | ||
| 66 | interrupts = <0 355 4>; | ||
| 67 | clocks = <&sataclk_333mhz>; | ||
| 68 | dma-coherent; | ||
| 69 | }; | ||
| 70 | |||
| 71 | i2c0: i2c@e1000000 { | ||
| 72 | status = "disabled"; | ||
| 73 | compatible = "snps,designware-i2c"; | ||
| 74 | reg = <0 0xe1000000 0 0x1000>; | ||
| 75 | interrupts = <0 357 4>; | ||
| 76 | clocks = <&uartspiclk_100mhz>; | ||
| 77 | }; | ||
| 78 | |||
| 79 | serial0: serial@e1010000 { | ||
| 80 | compatible = "arm,pl011", "arm,primecell"; | ||
| 81 | reg = <0 0xe1010000 0 0x1000>; | ||
| 82 | interrupts = <0 328 4>; | ||
| 83 | clocks = <&uartspiclk_100mhz>, <&uartspiclk_100mhz>; | ||
| 84 | clock-names = "uartclk", "apb_pclk"; | ||
| 85 | }; | ||
| 86 | |||
| 87 | spi0: ssp@e1020000 { | ||
| 88 | status = "disabled"; | ||
| 89 | compatible = "arm,pl022", "arm,primecell"; | ||
| 90 | #gpio-cells = <2>; | ||
| 91 | reg = <0 0xe1020000 0 0x1000>; | ||
| 92 | spi-controller; | ||
| 93 | interrupts = <0 330 4>; | ||
| 94 | clocks = <&uartspiclk_100mhz>; | ||
| 95 | clock-names = "apb_pclk"; | ||
| 96 | }; | ||
| 97 | |||
| 98 | spi1: ssp@e1030000 { | ||
| 99 | status = "disabled"; | ||
| 100 | compatible = "arm,pl022", "arm,primecell"; | ||
| 101 | #gpio-cells = <2>; | ||
| 102 | reg = <0 0xe1030000 0 0x1000>; | ||
| 103 | spi-controller; | ||
| 104 | interrupts = <0 329 4>; | ||
| 105 | clocks = <&uartspiclk_100mhz>; | ||
| 106 | clock-names = "apb_pclk"; | ||
| 107 | num-cs = <1>; | ||
| 108 | #address-cells = <1>; | ||
| 109 | #size-cells = <0>; | ||
| 110 | }; | ||
| 111 | |||
| 112 | gpio0: gpio@e1040000 { | ||
| 113 | status = "disabled"; | ||
| 114 | compatible = "arm,pl061", "arm,primecell"; | ||
| 115 | #gpio-cells = <2>; | ||
| 116 | reg = <0 0xe1040000 0 0x1000>; | ||
| 117 | gpio-controller; | ||
| 118 | interrupts = <0 359 4>; | ||
| 119 | interrupt-controller; | ||
| 120 | #interrupt-cells = <2>; | ||
| 121 | clocks = <&uartspiclk_100mhz>; | ||
| 122 | clock-names = "apb_pclk"; | ||
| 123 | }; | ||
| 124 | |||
| 125 | gpio1: gpio@e1050000 { | ||
| 126 | status = "disabled"; | ||
| 127 | compatible = "arm,pl061", "arm,primecell"; | ||
| 128 | #gpio-cells = <2>; | ||
| 129 | reg = <0 0xe1050000 0 0x1000>; | ||
| 130 | gpio-controller; | ||
| 131 | interrupts = <0 358 4>; | ||
| 132 | clocks = <&uartspiclk_100mhz>; | ||
| 133 | clock-names = "apb_pclk"; | ||
| 134 | }; | ||
| 135 | |||
| 136 | ccp0: ccp@e0100000 { | ||
| 137 | status = "disabled"; | ||
| 138 | compatible = "amd,ccp-seattle-v1a"; | ||
| 139 | reg = <0 0xe0100000 0 0x10000>; | ||
| 140 | interrupts = <0 3 4>; | ||
| 141 | dma-coherent; | ||
| 142 | }; | ||
| 143 | |||
| 144 | pcie0: pcie@f0000000 { | ||
| 145 | compatible = "pci-host-ecam-generic"; | ||
| 146 | #address-cells = <3>; | ||
| 147 | #size-cells = <2>; | ||
| 148 | #interrupt-cells = <1>; | ||
| 149 | device_type = "pci"; | ||
| 150 | bus-range = <0 0xff>; | ||
| 151 | msi-parent = <&v2m0>; | ||
| 152 | reg = <0 0xf0000000 0 0x10000000>; | ||
| 153 | |||
| 154 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||
| 155 | interrupt-map = | ||
| 156 | <0x1000 0x0 0x0 0x1 &gic0 0x0 0x0 0x0 0x120 0x1>, | ||
| 157 | <0x1000 0x0 0x0 0x2 &gic0 0x0 0x0 0x0 0x121 0x1>, | ||
| 158 | <0x1000 0x0 0x0 0x3 &gic0 0x0 0x0 0x0 0x122 0x1>, | ||
| 159 | <0x1000 0x0 0x0 0x4 &gic0 0x0 0x0 0x0 0x123 0x1>; | ||
| 160 | |||
| 161 | dma-coherent; | ||
| 162 | dma-ranges = <0x43000000 0x80 0x0 0x80 0x0 0x7f 0xffffffff>; | ||
| 163 | ranges = | ||
| 164 | /* I/O Memory (size=64K) */ | ||
| 165 | <0x01000000 0x00 0x00000000 0x00 0xefff0000 0x00 0x00010000>, | ||
| 166 | /* 32-bit MMIO (size=2G) */ | ||
| 167 | <0x02000000 0x00 0x40000000 0x00 0x40000000 0x00 0x80000000>, | ||
| 168 | /* 64-bit MMIO (size= 124G) */ | ||
| 169 | <0x03000000 0x01 0x00000000 0x01 0x00000000 0x7f 0x00000000>; | ||
| 170 | }; | ||
| 171 | }; | ||
| 172 | }; | ||
