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