| b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | From eab6bb0994b806525fc5e362e8b865f61c4a9e20 Mon Sep 17 00:00:00 2001 | 
 | 2 | From: William Zhang <william.zhang@broadcom.com> | 
 | 3 | Date: Thu, 9 Jun 2022 17:15:33 -0700 | 
 | 4 | Subject: [PATCH] arm64: dts: Add DTS files for bcmbca SoC BCM6813 | 
 | 5 |  | 
 | 6 | Add DTS for ARMv8 based broadband SoC BCM6813. bcm6813.dtsi is the | 
 | 7 | SoC description DTS header and bcm96813.dts is a simple DTS file for | 
 | 8 | Broadcom BCM96813 Reference board that only enable the UART port. | 
 | 9 |  | 
 | 10 | Signed-off-by: William Zhang <william.zhang@broadcom.com> | 
 | 11 | Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> | 
 | 12 | --- | 
 | 13 |  arch/arm64/boot/dts/broadcom/bcmbca/Makefile  |   3 +- | 
 | 14 |  .../boot/dts/broadcom/bcmbca/bcm6813.dtsi     | 128 ++++++++++++++++++ | 
 | 15 |  .../boot/dts/broadcom/bcmbca/bcm96813.dts     |  30 ++++ | 
 | 16 |  3 files changed, 160 insertions(+), 1 deletion(-) | 
 | 17 |  create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi | 
 | 18 |  create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm96813.dts | 
 | 19 |  | 
 | 20 | --- a/arch/arm64/boot/dts/broadcom/bcmbca/Makefile | 
 | 21 | +++ b/arch/arm64/boot/dts/broadcom/bcmbca/Makefile | 
 | 22 | @@ -3,4 +3,5 @@ dtb-$(CONFIG_ARCH_BCMBCA) += bcm94912.dt | 
 | 23 |  				bcm963158.dtb \ | 
 | 24 |  				bcm96858.dtb \ | 
 | 25 |  				bcm963146.dtb \ | 
 | 26 | -				bcm96856.dtb | 
 | 27 | +				bcm96856.dtb \ | 
 | 28 | +				bcm96813.dtb | 
 | 29 | --- /dev/null | 
 | 30 | +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi | 
 | 31 | @@ -0,0 +1,128 @@ | 
 | 32 | +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) | 
 | 33 | +/* | 
 | 34 | + * Copyright 2022 Broadcom Ltd. | 
 | 35 | + */ | 
 | 36 | + | 
 | 37 | +#include <dt-bindings/interrupt-controller/irq.h> | 
 | 38 | +#include <dt-bindings/interrupt-controller/arm-gic.h> | 
 | 39 | + | 
 | 40 | +/ { | 
 | 41 | +	compatible = "brcm,bcm6813", "brcm,bcmbca"; | 
 | 42 | +	#address-cells = <2>; | 
 | 43 | +	#size-cells = <2>; | 
 | 44 | + | 
 | 45 | +	interrupt-parent = <&gic>; | 
 | 46 | + | 
 | 47 | +	cpus { | 
 | 48 | +		#address-cells = <2>; | 
 | 49 | +		#size-cells = <0>; | 
 | 50 | + | 
 | 51 | +		B53_0: cpu@0 { | 
 | 52 | +			compatible = "brcm,brahma-b53"; | 
 | 53 | +			device_type = "cpu"; | 
 | 54 | +			reg = <0x0 0x0>; | 
 | 55 | +			next-level-cache = <&L2_0>; | 
 | 56 | +			enable-method = "psci"; | 
 | 57 | +		}; | 
 | 58 | + | 
 | 59 | +		B53_1: cpu@1 { | 
 | 60 | +			compatible = "brcm,brahma-b53"; | 
 | 61 | +			device_type = "cpu"; | 
 | 62 | +			reg = <0x0 0x1>; | 
 | 63 | +			next-level-cache = <&L2_0>; | 
 | 64 | +			enable-method = "psci"; | 
 | 65 | +		}; | 
 | 66 | + | 
 | 67 | +		B53_2: cpu@2 { | 
 | 68 | +			compatible = "brcm,brahma-b53"; | 
 | 69 | +			device_type = "cpu"; | 
 | 70 | +			reg = <0x0 0x2>; | 
 | 71 | +			next-level-cache = <&L2_0>; | 
 | 72 | +			enable-method = "psci"; | 
 | 73 | +		}; | 
 | 74 | + | 
 | 75 | +		B53_3: cpu@3 { | 
 | 76 | +			compatible = "brcm,brahma-b53"; | 
 | 77 | +			device_type = "cpu"; | 
 | 78 | +			reg = <0x0 0x3>; | 
 | 79 | +			next-level-cache = <&L2_0>; | 
 | 80 | +			enable-method = "psci"; | 
 | 81 | +		}; | 
 | 82 | + | 
 | 83 | +		L2_0: l2-cache0 { | 
 | 84 | +			compatible = "cache"; | 
 | 85 | +		}; | 
 | 86 | +	}; | 
 | 87 | + | 
 | 88 | +	timer { | 
 | 89 | +		compatible = "arm,armv8-timer"; | 
 | 90 | +		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | 
 | 91 | +			<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | 
 | 92 | +			<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | 
 | 93 | +			<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; | 
 | 94 | +	}; | 
 | 95 | + | 
 | 96 | +	pmu: pmu { | 
 | 97 | +		compatible = "arm,cortex-a53-pmu"; | 
 | 98 | +		interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, | 
 | 99 | +			<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, | 
 | 100 | +			<GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, | 
 | 101 | +			<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; | 
 | 102 | +		interrupt-affinity = <&B53_0>, <&B53_1>, | 
 | 103 | +			<&B53_2>, <&B53_3>; | 
 | 104 | +	}; | 
 | 105 | + | 
 | 106 | +	clocks: clocks { | 
 | 107 | +		periph_clk: periph-clk { | 
 | 108 | +			compatible = "fixed-clock"; | 
 | 109 | +			#clock-cells = <0>; | 
 | 110 | +			clock-frequency = <200000000>; | 
 | 111 | +		}; | 
 | 112 | +		uart_clk: uart-clk { | 
 | 113 | +			compatible = "fixed-factor-clock"; | 
 | 114 | +			#clock-cells = <0>; | 
 | 115 | +			clocks = <&periph_clk>; | 
 | 116 | +			clock-div = <4>; | 
 | 117 | +			clock-mult = <1>; | 
 | 118 | +		}; | 
 | 119 | +	}; | 
 | 120 | + | 
 | 121 | +	psci { | 
 | 122 | +		compatible = "arm,psci-0.2"; | 
 | 123 | +		method = "smc"; | 
 | 124 | +	}; | 
 | 125 | + | 
 | 126 | +	axi@81000000 { | 
 | 127 | +		compatible = "simple-bus"; | 
 | 128 | +		#address-cells = <1>; | 
 | 129 | +		#size-cells = <1>; | 
 | 130 | +		ranges = <0x0 0x0 0x81000000 0x8000>; | 
 | 131 | + | 
 | 132 | +		gic: interrupt-controller@1000 { | 
 | 133 | +			compatible = "arm,gic-400"; | 
 | 134 | +			#interrupt-cells = <3>; | 
 | 135 | +			interrupt-controller; | 
 | 136 | +			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; | 
 | 137 | +			reg = <0x1000 0x1000>, | 
 | 138 | +				<0x2000 0x2000>, | 
 | 139 | +				<0x4000 0x2000>, | 
 | 140 | +				<0x6000 0x2000>; | 
 | 141 | +		}; | 
 | 142 | +	}; | 
 | 143 | + | 
 | 144 | +	bus@ff800000 { | 
 | 145 | +		compatible = "simple-bus"; | 
 | 146 | +		#address-cells = <1>; | 
 | 147 | +		#size-cells = <1>; | 
 | 148 | +		ranges = <0x0 0x0 0xff800000 0x800000>; | 
 | 149 | + | 
 | 150 | +		uart0: serial@12000 { | 
 | 151 | +			compatible = "arm,pl011", "arm,primecell"; | 
 | 152 | +			reg = <0x12000 0x1000>; | 
 | 153 | +			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; | 
 | 154 | +			clocks = <&uart_clk>, <&uart_clk>; | 
 | 155 | +			clock-names = "uartclk", "apb_pclk"; | 
 | 156 | +			status = "disabled"; | 
 | 157 | +		}; | 
 | 158 | +	}; | 
 | 159 | +}; | 
 | 160 | --- /dev/null | 
 | 161 | +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm96813.dts | 
 | 162 | @@ -0,0 +1,30 @@ | 
 | 163 | +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) | 
 | 164 | +/* | 
 | 165 | + * Copyright 2022 Broadcom Ltd. | 
 | 166 | + */ | 
 | 167 | + | 
 | 168 | +/dts-v1/; | 
 | 169 | + | 
 | 170 | +#include "bcm6813.dtsi" | 
 | 171 | + | 
 | 172 | +/ { | 
 | 173 | +	model = "Broadcom BCM96813 Reference Board"; | 
 | 174 | +	compatible = "brcm,bcm96813", "brcm,bcm6813", "brcm,bcmbca"; | 
 | 175 | + | 
 | 176 | +	aliases { | 
 | 177 | +		serial0 = &uart0; | 
 | 178 | +	}; | 
 | 179 | + | 
 | 180 | +	chosen { | 
 | 181 | +		stdout-path = "serial0:115200n8"; | 
 | 182 | +	}; | 
 | 183 | + | 
 | 184 | +	memory@0 { | 
 | 185 | +		device_type = "memory"; | 
 | 186 | +		reg = <0x0 0x0 0x0 0x08000000>; | 
 | 187 | +	}; | 
 | 188 | +}; | 
 | 189 | + | 
 | 190 | +&uart0 { | 
 | 191 | +	status = "okay"; | 
 | 192 | +}; |