diff options
| author | Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> | 2019-01-25 11:37:02 -0500 |
|---|---|---|
| committer | Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> | 2019-02-09 05:40:07 -0500 |
| commit | c8ec3743385213375232239b524fb6cde595fedd (patch) | |
| tree | 815df8e779a246efec11a39d41e90b0fa5519900 | |
| parent | ea367d3846d8c3d7bf7377a896bbc2809fc8d0ca (diff) | |
arm64: dts: bitmain: Add BM1880 SoC support
Add devicetree support for Bitmain BM1880 SoC, consisting of a Dual
core ARM Cortex A53 subsystem, a Single core RISC-V subsystem and a Tensor
Processor subsystem. Only ARM Cortex A53 Application processor subsystem
support is enabled for now.
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
| -rw-r--r-- | arch/arm64/boot/dts/Makefile | 1 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/bitmain/bm1880.dtsi | 119 |
2 files changed, 120 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile index 4690364d584b..5bc7533a12c7 100644 --- a/arch/arm64/boot/dts/Makefile +++ b/arch/arm64/boot/dts/Makefile | |||
| @@ -7,6 +7,7 @@ subdir-y += amd | |||
| 7 | subdir-y += amlogic | 7 | subdir-y += amlogic |
| 8 | subdir-y += apm | 8 | subdir-y += apm |
| 9 | subdir-y += arm | 9 | subdir-y += arm |
| 10 | subdir-y += bitmain | ||
| 10 | subdir-y += broadcom | 11 | subdir-y += broadcom |
| 11 | subdir-y += cavium | 12 | subdir-y += cavium |
| 12 | subdir-y += exynos | 13 | subdir-y += exynos |
diff --git a/arch/arm64/boot/dts/bitmain/bm1880.dtsi b/arch/arm64/boot/dts/bitmain/bm1880.dtsi new file mode 100644 index 000000000000..55a4769e0de2 --- /dev/null +++ b/arch/arm64/boot/dts/bitmain/bm1880.dtsi | |||
| @@ -0,0 +1,119 @@ | |||
| 1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||
| 2 | /* | ||
| 3 | * Copyright (c) 2019 Linaro Ltd. | ||
| 4 | * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> | ||
| 5 | */ | ||
| 6 | |||
| 7 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
| 8 | |||
| 9 | / { | ||
| 10 | compatible = "bitmain,bm1880"; | ||
| 11 | interrupt-parent = <&gic>; | ||
| 12 | #address-cells = <2>; | ||
| 13 | #size-cells = <2>; | ||
| 14 | |||
| 15 | cpus { | ||
| 16 | #address-cells = <1>; | ||
| 17 | #size-cells = <0>; | ||
| 18 | |||
| 19 | cpu0: cpu@0 { | ||
| 20 | device_type = "cpu"; | ||
| 21 | compatible = "arm,cortex-a53"; | ||
| 22 | reg = <0x0>; | ||
| 23 | enable-method = "psci"; | ||
| 24 | }; | ||
| 25 | |||
| 26 | cpu1: cpu@1 { | ||
| 27 | device_type = "cpu"; | ||
| 28 | compatible = "arm,cortex-a53"; | ||
| 29 | reg = <0x1>; | ||
| 30 | enable-method = "psci"; | ||
| 31 | }; | ||
| 32 | }; | ||
| 33 | |||
| 34 | reserved-memory { | ||
| 35 | #address-cells = <2>; | ||
| 36 | #size-cells = <2>; | ||
| 37 | ranges; | ||
| 38 | |||
| 39 | secmon@100000000 { | ||
| 40 | reg = <0x1 0x00000000 0x0 0x20000>; | ||
| 41 | no-map; | ||
| 42 | }; | ||
| 43 | |||
| 44 | jpu@130000000 { | ||
| 45 | reg = <0x1 0x30000000 0x0 0x08000000>; // 128M | ||
| 46 | no-map; | ||
| 47 | }; | ||
| 48 | |||
| 49 | vpu@138000000 { | ||
| 50 | reg = <0x1 0x38000000 0x0 0x08000000>; // 128M | ||
| 51 | no-map; | ||
| 52 | }; | ||
| 53 | }; | ||
| 54 | |||
| 55 | psci { | ||
| 56 | compatible = "arm,psci-0.2"; | ||
| 57 | method = "smc"; | ||
| 58 | }; | ||
| 59 | |||
| 60 | timer { | ||
| 61 | compatible = "arm,armv8-timer"; | ||
| 62 | interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, | ||
| 63 | <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, | ||
| 64 | <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, | ||
| 65 | <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; | ||
| 66 | }; | ||
| 67 | |||
| 68 | soc { | ||
| 69 | compatible = "simple-bus"; | ||
| 70 | #address-cells = <2>; | ||
| 71 | #size-cells = <2>; | ||
| 72 | ranges; | ||
| 73 | |||
| 74 | gic: interrupt-controller@50001000 { | ||
| 75 | compatible = "arm,gic-400"; | ||
| 76 | reg = <0x0 0x50001000 0x0 0x1000>, | ||
| 77 | <0x0 0x50002000 0x0 0x2000>; | ||
| 78 | interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>; | ||
| 79 | interrupt-controller; | ||
| 80 | #interrupt-cells = <3>; | ||
| 81 | }; | ||
| 82 | |||
| 83 | uart0: serial@58018000 { | ||
| 84 | compatible = "snps,dw-apb-uart"; | ||
| 85 | reg = <0x0 0x58018000 0x0 0x2000>; | ||
| 86 | interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; | ||
| 87 | reg-shift = <2>; | ||
| 88 | reg-io-width = <4>; | ||
| 89 | status = "disabled"; | ||
| 90 | }; | ||
| 91 | |||
| 92 | uart1: serial@5801A000 { | ||
| 93 | compatible = "snps,dw-apb-uart"; | ||
| 94 | reg = <0x0 0x5801a000 0x0 0x2000>; | ||
| 95 | interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; | ||
| 96 | reg-shift = <2>; | ||
| 97 | reg-io-width = <4>; | ||
| 98 | status = "disabled"; | ||
| 99 | }; | ||
| 100 | |||
| 101 | uart2: serial@5801C000 { | ||
| 102 | compatible = "snps,dw-apb-uart"; | ||
| 103 | reg = <0x0 0x5801c000 0x0 0x2000>; | ||
| 104 | interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; | ||
| 105 | reg-shift = <2>; | ||
| 106 | reg-io-width = <4>; | ||
| 107 | status = "disabled"; | ||
| 108 | }; | ||
| 109 | |||
| 110 | uart3: serial@5801E000 { | ||
| 111 | compatible = "snps,dw-apb-uart"; | ||
| 112 | reg = <0x0 0x5801e000 0x0 0x2000>; | ||
| 113 | interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; | ||
| 114 | reg-shift = <2>; | ||
| 115 | reg-io-width = <4>; | ||
| 116 | status = "disabled"; | ||
| 117 | }; | ||
| 118 | }; | ||
| 119 | }; | ||
