1// SPDX-License-Identifier: GPL-2.0
2#include "bcm283x.dtsi"
3#include "bcm2835-common.dtsi"
4#include "bcm2835-rpi-common.dtsi"
5
6/ {
7	compatible = "brcm,bcm2835";
8
9	cpus {
10		#address-cells = <1>;
11		#size-cells = <0>;
12
13		cpu@0 {
14			device_type = "cpu";
15			compatible = "arm,arm1176jzf-s";
16			reg = <0x0>;
17			/* Source for d/i-cache-line-size and d/i-cache-sets
18			 * https://developer.arm.com/documentation/ddi0301
19			 * /h/level-one-memory-system/cache-organization?lang=en
20			 *
21			 * Source for d/i-cache-size
22			 * https://forums.raspberrypi.com/viewtopic.php?t=98428
23			 *
24			 * NOTE: The BCM2835 has a L2 cache but it is dedicated to the GPU
25			 * It can be shared with the CPU through fw settings,
26			 * but this is not recommended.
27			 */
28			d-cache-size = <0x4000>;
29			d-cache-line-size = <16>;
30			d-cache-sets = <256>; // 16KiB(size)/16(line-size)=1024ways/4-way set
31			i-cache-size = <0x4000>;
32			i-cache-line-size = <16>;
33			i-cache-sets = <256>; // 16KiB(size)/16(line-size)=1024ways/4-way set
34		};
35	};
36
37	soc {
38		ranges = <0x7e000000 0x20000000 0x02000000>;
39		dma-ranges = <0x40000000 0x00000000 0x20000000>;
40	};
41
42	arm-pmu {
43		compatible = "arm,arm1176-pmu";
44	};
45};
46
47&cpu_thermal {
48	coefficients = <(-538)	407000>;
49};
50
51/* enable thermal sensor with the correct compatible property set */
52&thermal {
53	compatible = "brcm,bcm2835-thermal";
54	status = "okay";
55};
56