| // SPDX-License-Identifier: GPL-2.0 | 
 | #include "bcm283x.dtsi" | 
 |  | 
 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 
 | #include <dt-bindings/soc/bcm2835-pm.h> | 
 |  | 
 | / { | 
 | 	compatible = "brcm,bcm2711"; | 
 |  | 
 | 	#address-cells = <2>; | 
 | 	#size-cells = <1>; | 
 |  | 
 | 	interrupt-parent = <&gicv2>; | 
 |  | 
 | 	vc4: gpu { | 
 | 		compatible = "brcm,bcm2711-vc5"; | 
 | 		status = "disabled"; | 
 | 	}; | 
 |  | 
 | 	clk_27MHz: clk-27M { | 
 | 		#clock-cells = <0>; | 
 | 		compatible = "fixed-clock"; | 
 | 		clock-frequency = <27000000>; | 
 | 		clock-output-names = "27MHz-clock"; | 
 | 	}; | 
 |  | 
 | 	clk_108MHz: clk-108M { | 
 | 		#clock-cells = <0>; | 
 | 		compatible = "fixed-clock"; | 
 | 		clock-frequency = <108000000>; | 
 | 		clock-output-names = "108MHz-clock"; | 
 | 	}; | 
 |  | 
 | 	soc { | 
 | 		/* | 
 | 		 * Defined ranges: | 
 | 		 *   Common BCM283x peripherals | 
 | 		 *   BCM2711-specific peripherals | 
 | 		 *   ARM-local peripherals | 
 | 		 */ | 
 | 		ranges = <0x7e000000  0x0 0xfe000000  0x01800000>, | 
 | 			 <0x7c000000  0x0 0xfc000000  0x02000000>, | 
 | 			 <0x40000000  0x0 0xff800000  0x00800000>; | 
 | 		/* Emulate a contiguous 30-bit address range for DMA */ | 
 | 		dma-ranges = <0xc0000000  0x0 0x00000000  0x40000000>; | 
 |  | 
 | 		/* | 
 | 		 * This node is the provider for the enable-method for | 
 | 		 * bringing up secondary cores. | 
 | 		 */ | 
 | 		local_intc: interrupt-controller@40000000 { | 
 | 			compatible = "brcm,bcm2836-l1-intc"; | 
 | 			reg = <0x40000000 0x100>; | 
 | 		}; | 
 |  | 
 | 		gicv2: interrupt-controller@40041000 { | 
 | 			interrupt-controller; | 
 | 			#interrupt-cells = <3>; | 
 | 			compatible = "arm,gic-400"; | 
 | 			reg =	<0x40041000 0x1000>, | 
 | 				<0x40042000 0x2000>, | 
 | 				<0x40044000 0x2000>, | 
 | 				<0x40046000 0x2000>; | 
 | 			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | | 
 | 						 IRQ_TYPE_LEVEL_HIGH)>; | 
 | 		}; | 
 |  | 
 | 		avs_monitor: avs-monitor@7d5d2000 { | 
 | 			compatible = "brcm,bcm2711-avs-monitor", | 
 | 				     "syscon", "simple-mfd"; | 
 | 			reg = <0x7d5d2000 0xf00>; | 
 |  | 
 | 			thermal: thermal { | 
 | 				compatible = "brcm,bcm2711-thermal"; | 
 | 				#thermal-sensor-cells = <0>; | 
 | 			}; | 
 | 		}; | 
 |  | 
 | 		dma: dma-controller@7e007000 { | 
 | 			compatible = "brcm,bcm2835-dma"; | 
 | 			reg = <0x7e007000 0xb00>; | 
 | 			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>, | 
 | 				     <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>, | 
 | 				     <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>, | 
 | 				     <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>, | 
 | 				     <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, | 
 | 				     <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>, | 
 | 				     <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>, | 
 | 				     /* DMA lite 7 - 10 */ | 
 | 				     <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, | 
 | 				     <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, | 
 | 				     <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>, | 
 | 				     <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			interrupt-names = "dma0", | 
 | 					  "dma1", | 
 | 					  "dma2", | 
 | 					  "dma3", | 
 | 					  "dma4", | 
 | 					  "dma5", | 
 | 					  "dma6", | 
 | 					  "dma7", | 
 | 					  "dma8", | 
 | 					  "dma9", | 
 | 					  "dma10"; | 
 | 			#dma-cells = <1>; | 
 | 			brcm,dma-channel-mask = <0x07f5>; | 
 | 		}; | 
 |  | 
 | 		pm: watchdog@7e100000 { | 
 | 			compatible = "brcm,bcm2711-pm", "brcm,bcm2835-pm-wdt"; | 
 | 			#power-domain-cells = <1>; | 
 | 			#reset-cells = <1>; | 
 | 			reg = <0x7e100000 0x114>, | 
 | 			      <0x7e00a000 0x24>, | 
 | 			      <0x7ec11000 0x20>; | 
 | 			reg-names = "pm", "asb", "rpivid_asb"; | 
 | 			clocks = <&clocks BCM2835_CLOCK_V3D>, | 
 | 				 <&clocks BCM2835_CLOCK_PERI_IMAGE>, | 
 | 				 <&clocks BCM2835_CLOCK_H264>, | 
 | 				 <&clocks BCM2835_CLOCK_ISP>; | 
 | 			clock-names = "v3d", "peri_image", "h264", "isp"; | 
 | 			system-power-controller; | 
 | 		}; | 
 |  | 
 | 		rng@7e104000 { | 
 | 			compatible = "brcm,bcm2711-rng200"; | 
 | 			reg = <0x7e104000 0x28>; | 
 | 		}; | 
 |  | 
 | 		uart2: serial@7e201400 { | 
 | 			compatible = "arm,pl011", "arm,primecell"; | 
 | 			reg = <0x7e201400 0x200>; | 
 | 			interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			clocks = <&clocks BCM2835_CLOCK_UART>, | 
 | 				 <&clocks BCM2835_CLOCK_VPU>; | 
 | 			clock-names = "uartclk", "apb_pclk"; | 
 | 			arm,primecell-periphid = <0x00241011>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		uart3: serial@7e201600 { | 
 | 			compatible = "arm,pl011", "arm,primecell"; | 
 | 			reg = <0x7e201600 0x200>; | 
 | 			interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			clocks = <&clocks BCM2835_CLOCK_UART>, | 
 | 				 <&clocks BCM2835_CLOCK_VPU>; | 
 | 			clock-names = "uartclk", "apb_pclk"; | 
 | 			arm,primecell-periphid = <0x00241011>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		uart4: serial@7e201800 { | 
 | 			compatible = "arm,pl011", "arm,primecell"; | 
 | 			reg = <0x7e201800 0x200>; | 
 | 			interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			clocks = <&clocks BCM2835_CLOCK_UART>, | 
 | 				 <&clocks BCM2835_CLOCK_VPU>; | 
 | 			clock-names = "uartclk", "apb_pclk"; | 
 | 			arm,primecell-periphid = <0x00241011>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		uart5: serial@7e201a00 { | 
 | 			compatible = "arm,pl011", "arm,primecell"; | 
 | 			reg = <0x7e201a00 0x200>; | 
 | 			interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			clocks = <&clocks BCM2835_CLOCK_UART>, | 
 | 				 <&clocks BCM2835_CLOCK_VPU>; | 
 | 			clock-names = "uartclk", "apb_pclk"; | 
 | 			arm,primecell-periphid = <0x00241011>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		spi3: spi@7e204600 { | 
 | 			compatible = "brcm,bcm2835-spi"; | 
 | 			reg = <0x7e204600 0x0200>; | 
 | 			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			clocks = <&clocks BCM2835_CLOCK_VPU>; | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		spi4: spi@7e204800 { | 
 | 			compatible = "brcm,bcm2835-spi"; | 
 | 			reg = <0x7e204800 0x0200>; | 
 | 			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			clocks = <&clocks BCM2835_CLOCK_VPU>; | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		spi5: spi@7e204a00 { | 
 | 			compatible = "brcm,bcm2835-spi"; | 
 | 			reg = <0x7e204a00 0x0200>; | 
 | 			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			clocks = <&clocks BCM2835_CLOCK_VPU>; | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		spi6: spi@7e204c00 { | 
 | 			compatible = "brcm,bcm2835-spi"; | 
 | 			reg = <0x7e204c00 0x0200>; | 
 | 			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			clocks = <&clocks BCM2835_CLOCK_VPU>; | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		i2c3: i2c@7e205600 { | 
 | 			compatible = "brcm,bcm2711-i2c", "brcm,bcm2835-i2c"; | 
 | 			reg = <0x7e205600 0x200>; | 
 | 			interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			clocks = <&clocks BCM2835_CLOCK_VPU>; | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		i2c4: i2c@7e205800 { | 
 | 			compatible = "brcm,bcm2711-i2c", "brcm,bcm2835-i2c"; | 
 | 			reg = <0x7e205800 0x200>; | 
 | 			interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			clocks = <&clocks BCM2835_CLOCK_VPU>; | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		i2c5: i2c@7e205a00 { | 
 | 			compatible = "brcm,bcm2711-i2c", "brcm,bcm2835-i2c"; | 
 | 			reg = <0x7e205a00 0x200>; | 
 | 			interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			clocks = <&clocks BCM2835_CLOCK_VPU>; | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		i2c6: i2c@7e205c00 { | 
 | 			compatible = "brcm,bcm2711-i2c", "brcm,bcm2835-i2c"; | 
 | 			reg = <0x7e205c00 0x200>; | 
 | 			interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			clocks = <&clocks BCM2835_CLOCK_VPU>; | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		pixelvalve0: pixelvalve@7e206000 { | 
 | 			compatible = "brcm,bcm2711-pixelvalve0"; | 
 | 			reg = <0x7e206000 0x100>; | 
 | 			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		pixelvalve1: pixelvalve@7e207000 { | 
 | 			compatible = "brcm,bcm2711-pixelvalve1"; | 
 | 			reg = <0x7e207000 0x100>; | 
 | 			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		pixelvalve2: pixelvalve@7e20a000 { | 
 | 			compatible = "brcm,bcm2711-pixelvalve2"; | 
 | 			reg = <0x7e20a000 0x100>; | 
 | 			interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		pwm1: pwm@7e20c800 { | 
 | 			compatible = "brcm,bcm2835-pwm"; | 
 | 			reg = <0x7e20c800 0x28>; | 
 | 			clocks = <&clocks BCM2835_CLOCK_PWM>; | 
 | 			assigned-clocks = <&clocks BCM2835_CLOCK_PWM>; | 
 | 			assigned-clock-rates = <10000000>; | 
 | 			#pwm-cells = <3>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		pixelvalve4: pixelvalve@7e216000 { | 
 | 			compatible = "brcm,bcm2711-pixelvalve4"; | 
 | 			reg = <0x7e216000 0x100>; | 
 | 			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		hvs: hvs@7e400000 { | 
 | 			compatible = "brcm,bcm2711-hvs"; | 
 | 			reg = <0x7e400000 0x8000>; | 
 | 			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; | 
 | 		}; | 
 |  | 
 | 		pixelvalve3: pixelvalve@7ec12000 { | 
 | 			compatible = "brcm,bcm2711-pixelvalve3"; | 
 | 			reg = <0x7ec12000 0x100>; | 
 | 			interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		vec: vec@7ec13000 { | 
 | 			compatible = "brcm,bcm2711-vec"; | 
 | 			reg = <0x7ec13000 0x1000>; | 
 | 			clocks = <&clocks BCM2835_CLOCK_VEC>; | 
 | 			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		dvp: clock@7ef00000 { | 
 | 			compatible = "brcm,brcm2711-dvp"; | 
 | 			reg = <0x7ef00000 0x10>; | 
 | 			clocks = <&clk_108MHz>; | 
 | 			#clock-cells = <1>; | 
 | 			#reset-cells = <1>; | 
 | 		}; | 
 |  | 
 | 		aon_intr: interrupt-controller@7ef00100 { | 
 | 			compatible = "brcm,bcm2711-l2-intc", "brcm,l2-intc"; | 
 | 			reg = <0x7ef00100 0x30>; | 
 | 			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			interrupt-controller; | 
 | 			#interrupt-cells = <1>; | 
 | 		}; | 
 |  | 
 | 		hdmi0: hdmi@7ef00700 { | 
 | 			compatible = "brcm,bcm2711-hdmi0"; | 
 | 			reg = <0x7ef00700 0x300>, | 
 | 			      <0x7ef00300 0x200>, | 
 | 			      <0x7ef00f00 0x80>, | 
 | 			      <0x7ef00f80 0x80>, | 
 | 			      <0x7ef01b00 0x200>, | 
 | 			      <0x7ef01f00 0x400>, | 
 | 			      <0x7ef00200 0x80>, | 
 | 			      <0x7ef04300 0x100>, | 
 | 			      <0x7ef20000 0x100>; | 
 | 			reg-names = "hdmi", | 
 | 				    "dvp", | 
 | 				    "phy", | 
 | 				    "rm", | 
 | 				    "packet", | 
 | 				    "metadata", | 
 | 				    "csc", | 
 | 				    "cec", | 
 | 				    "hd"; | 
 | 			clock-names = "hdmi", "bvb", "audio", "cec"; | 
 | 			resets = <&dvp 0>; | 
 | 			interrupt-parent = <&aon_intr>; | 
 | 			interrupts = <0>, <1>, <2>, | 
 | 				     <3>, <4>, <5>; | 
 | 			interrupt-names = "cec-tx", "cec-rx", "cec-low", | 
 | 					  "wakeup", "hpd-connected", "hpd-removed"; | 
 | 			ddc = <&ddc0>; | 
 | 			dmas = <&dma 10>; | 
 | 			dma-names = "audio-rx"; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		ddc0: i2c@7ef04500 { | 
 | 			compatible = "brcm,bcm2711-hdmi-i2c"; | 
 | 			reg = <0x7ef04500 0x100>, <0x7ef00b00 0x300>; | 
 | 			reg-names = "bsc", "auto-i2c"; | 
 | 			clock-frequency = <97500>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		hdmi1: hdmi@7ef05700 { | 
 | 			compatible = "brcm,bcm2711-hdmi1"; | 
 | 			reg = <0x7ef05700 0x300>, | 
 | 			      <0x7ef05300 0x200>, | 
 | 			      <0x7ef05f00 0x80>, | 
 | 			      <0x7ef05f80 0x80>, | 
 | 			      <0x7ef06b00 0x200>, | 
 | 			      <0x7ef06f00 0x400>, | 
 | 			      <0x7ef00280 0x80>, | 
 | 			      <0x7ef09300 0x100>, | 
 | 			      <0x7ef20000 0x100>; | 
 | 			reg-names = "hdmi", | 
 | 				    "dvp", | 
 | 				    "phy", | 
 | 				    "rm", | 
 | 				    "packet", | 
 | 				    "metadata", | 
 | 				    "csc", | 
 | 				    "cec", | 
 | 				    "hd"; | 
 | 			ddc = <&ddc1>; | 
 | 			clock-names = "hdmi", "bvb", "audio", "cec"; | 
 | 			resets = <&dvp 1>; | 
 | 			interrupt-parent = <&aon_intr>; | 
 | 			interrupts = <8>, <7>, <6>, | 
 | 				     <9>, <10>, <11>; | 
 | 			interrupt-names = "cec-tx", "cec-rx", "cec-low", | 
 | 					  "wakeup", "hpd-connected", "hpd-removed"; | 
 | 			dmas = <&dma 17>; | 
 | 			dma-names = "audio-rx"; | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		ddc1: i2c@7ef09500 { | 
 | 			compatible = "brcm,bcm2711-hdmi-i2c"; | 
 | 			reg = <0x7ef09500 0x100>, <0x7ef05b00 0x300>; | 
 | 			reg-names = "bsc", "auto-i2c"; | 
 | 			clock-frequency = <97500>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	/* | 
 | 	 * emmc2 has different DMA constraints based on SoC revisions. It was | 
 | 	 * moved into its own bus, so as for RPi4's firmware to update them. | 
 | 	 * The firmware will find whether the emmc2bus alias is defined, and if | 
 | 	 * so, it'll edit the dma-ranges property below accordingly. | 
 | 	 */ | 
 | 	emmc2bus: emmc2bus { | 
 | 		compatible = "simple-bus"; | 
 | 		#address-cells = <2>; | 
 | 		#size-cells = <1>; | 
 |  | 
 | 		ranges = <0x0 0x7e000000  0x0 0xfe000000  0x01800000>; | 
 | 		dma-ranges = <0x0 0xc0000000  0x0 0x00000000  0x40000000>; | 
 |  | 
 | 		emmc2: mmc@7e340000 { | 
 | 			compatible = "brcm,bcm2711-emmc2"; | 
 | 			reg = <0x0 0x7e340000 0x100>; | 
 | 			interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			clocks = <&clocks BCM2711_CLOCK_EMMC2>; | 
 | 			status = "disabled"; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	arm-pmu { | 
 | 		compatible = "arm,cortex-a72-pmu", "arm,armv8-pmuv3"; | 
 | 		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, | 
 | 			<GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>, | 
 | 			<GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, | 
 | 			<GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; | 
 | 		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; | 
 | 	}; | 
 |  | 
 | 	timer { | 
 | 		compatible = "arm,armv8-timer"; | 
 | 		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | | 
 | 					  IRQ_TYPE_LEVEL_LOW)>, | 
 | 			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | | 
 | 					  IRQ_TYPE_LEVEL_LOW)>, | 
 | 			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | | 
 | 					  IRQ_TYPE_LEVEL_LOW)>, | 
 | 			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | | 
 | 					  IRQ_TYPE_LEVEL_LOW)>; | 
 | 		/* This only applies to the ARMv7 stub */ | 
 | 		arm,cpu-registers-not-fw-configured; | 
 | 	}; | 
 |  | 
 | 	cpus: cpus { | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <0>; | 
 | 		enable-method = "brcm,bcm2836-smp"; // for ARM 32-bit | 
 |  | 
 | 		/* Source for d/i-cache-line-size and d/i-cache-sets | 
 | 		 * https://developer.arm.com/documentation/100095/0003 | 
 | 		 * /Level-1-Memory-System/About-the-L1-memory-system?lang=en | 
 | 		 * Source for d/i-cache-size | 
 | 		 * https://www.raspberrypi.com/documentation/computers | 
 | 		 * /processors.html#bcm2711 | 
 | 		 */ | 
 | 		cpu0: cpu@0 { | 
 | 			device_type = "cpu"; | 
 | 			compatible = "arm,cortex-a72"; | 
 | 			reg = <0>; | 
 | 			enable-method = "spin-table"; | 
 | 			cpu-release-addr = <0x0 0x000000d8>; | 
 | 			d-cache-size = <0x8000>; | 
 | 			d-cache-line-size = <64>; | 
 | 			d-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set | 
 | 			i-cache-size = <0xc000>; | 
 | 			i-cache-line-size = <64>; | 
 | 			i-cache-sets = <256>; // 48KiB(size)/64(line-size)=768ways/3-way set | 
 | 			next-level-cache = <&l2>; | 
 | 		}; | 
 |  | 
 | 		cpu1: cpu@1 { | 
 | 			device_type = "cpu"; | 
 | 			compatible = "arm,cortex-a72"; | 
 | 			reg = <1>; | 
 | 			enable-method = "spin-table"; | 
 | 			cpu-release-addr = <0x0 0x000000e0>; | 
 | 			d-cache-size = <0x8000>; | 
 | 			d-cache-line-size = <64>; | 
 | 			d-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set | 
 | 			i-cache-size = <0xc000>; | 
 | 			i-cache-line-size = <64>; | 
 | 			i-cache-sets = <256>; // 48KiB(size)/64(line-size)=768ways/3-way set | 
 | 			next-level-cache = <&l2>; | 
 | 		}; | 
 |  | 
 | 		cpu2: cpu@2 { | 
 | 			device_type = "cpu"; | 
 | 			compatible = "arm,cortex-a72"; | 
 | 			reg = <2>; | 
 | 			enable-method = "spin-table"; | 
 | 			cpu-release-addr = <0x0 0x000000e8>; | 
 | 			d-cache-size = <0x8000>; | 
 | 			d-cache-line-size = <64>; | 
 | 			d-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set | 
 | 			i-cache-size = <0xc000>; | 
 | 			i-cache-line-size = <64>; | 
 | 			i-cache-sets = <256>; // 48KiB(size)/64(line-size)=768ways/3-way set | 
 | 			next-level-cache = <&l2>; | 
 | 		}; | 
 |  | 
 | 		cpu3: cpu@3 { | 
 | 			device_type = "cpu"; | 
 | 			compatible = "arm,cortex-a72"; | 
 | 			reg = <3>; | 
 | 			enable-method = "spin-table"; | 
 | 			cpu-release-addr = <0x0 0x000000f0>; | 
 | 			d-cache-size = <0x8000>; | 
 | 			d-cache-line-size = <64>; | 
 | 			d-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set | 
 | 			i-cache-size = <0xc000>; | 
 | 			i-cache-line-size = <64>; | 
 | 			i-cache-sets = <256>; // 48KiB(size)/64(line-size)=768ways/3-way set | 
 | 			next-level-cache = <&l2>; | 
 | 		}; | 
 |  | 
 | 		/* Source for d/i-cache-line-size and d/i-cache-sets | 
 | 		 *  https://developer.arm.com/documentation/100095/0003 | 
 | 		 *  /Level-2-Memory-System/About-the-L2-memory-system?lang=en | 
 | 		 *  Source for d/i-cache-size | 
 | 		 *  https://www.raspberrypi.com/documentation/computers | 
 | 		 *  /processors.html#bcm2711 | 
 | 		 */ | 
 | 		l2: l2-cache0 { | 
 | 			compatible = "cache"; | 
 | 			cache-unified; | 
 | 			cache-size = <0x100000>; | 
 | 			cache-line-size = <64>; | 
 | 			cache-sets = <1024>; // 1MiB(size)/64(line-size)=16384ways/16-way set | 
 | 			cache-level = <2>; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	scb { | 
 | 		compatible = "simple-bus"; | 
 | 		#address-cells = <2>; | 
 | 		#size-cells = <1>; | 
 |  | 
 | 		ranges = <0x0 0x7c000000  0x0 0xfc000000  0x03800000>, | 
 | 			 <0x6 0x00000000  0x6 0x00000000  0x40000000>; | 
 |  | 
 | 		pcie0: pcie@7d500000 { | 
 | 			compatible = "brcm,bcm2711-pcie"; | 
 | 			reg = <0x0 0x7d500000 0x9310>; | 
 | 			device_type = "pci"; | 
 | 			#address-cells = <3>; | 
 | 			#interrupt-cells = <1>; | 
 | 			#size-cells = <2>; | 
 | 			interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>, | 
 | 				     <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			interrupt-names = "pcie", "msi"; | 
 | 			interrupt-map-mask = <0x0 0x0 0x0 0x7>; | 
 | 			interrupt-map = <0 0 0 1 &gicv2 GIC_SPI 143 | 
 | 							IRQ_TYPE_LEVEL_HIGH>, | 
 | 					<0 0 0 2 &gicv2 GIC_SPI 144 | 
 | 							IRQ_TYPE_LEVEL_HIGH>, | 
 | 					<0 0 0 3 &gicv2 GIC_SPI 145 | 
 | 							IRQ_TYPE_LEVEL_HIGH>, | 
 | 					<0 0 0 4 &gicv2 GIC_SPI 146 | 
 | 							IRQ_TYPE_LEVEL_HIGH>; | 
 | 			msi-controller; | 
 | 			msi-parent = <&pcie0>; | 
 |  | 
 | 			ranges = <0x02000000 0x0 0xf8000000 0x6 0x00000000 | 
 | 				  0x0 0x04000000>; | 
 | 			/* | 
 | 			 * The wrapper around the PCIe block has a bug | 
 | 			 * preventing it from accessing beyond the first 3GB of | 
 | 			 * memory. | 
 | 			 */ | 
 | 			dma-ranges = <0x02000000 0x0 0x00000000 0x0 0x00000000 | 
 | 				      0x0 0xc0000000>; | 
 | 			brcm,enable-ssc; | 
 | 		}; | 
 |  | 
 | 		genet: ethernet@7d580000 { | 
 | 			compatible = "brcm,bcm2711-genet-v5"; | 
 | 			reg = <0x0 0x7d580000 0x10000>; | 
 | 			#address-cells = <0x1>; | 
 | 			#size-cells = <0x1>; | 
 | 			interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, | 
 | 				     <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			status = "disabled"; | 
 |  | 
 | 			genet_mdio: mdio@e14 { | 
 | 				compatible = "brcm,genet-mdio-v5"; | 
 | 				reg = <0xe14 0x8>; | 
 | 				reg-names = "mdio"; | 
 | 				#address-cells = <0x1>; | 
 | 				#size-cells = <0x0>; | 
 | 			}; | 
 | 		}; | 
 |  | 
 | 		xhci: usb@7e9c0000 { | 
 | 			compatible = "brcm,bcm2711-xhci", "brcm,xhci-brcm-v2"; | 
 | 			reg = <0x0 0x7e9c0000 0x100000>; | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <0>; | 
 | 			interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; | 
 | 			/* DWC2 and this IP block share the same USB PHY, | 
 | 			 * enabling both at the same time results in lockups. | 
 | 			 * So keep this node disabled and let the bootloader | 
 | 			 * decide which interface should be enabled. | 
 | 			 */ | 
 | 			status = "disabled"; | 
 | 		}; | 
 |  | 
 | 		v3d: gpu@7ec00000 { | 
 | 			compatible = "brcm,2711-v3d"; | 
 | 			reg = <0x0 0x7ec00000 0x4000>, | 
 | 			      <0x0 0x7ec04000 0x4000>; | 
 | 			reg-names = "hub", "core0"; | 
 |  | 
 | 			power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>; | 
 | 			resets = <&pm BCM2835_RESET_V3D>; | 
 | 			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | &clk_osc { | 
 | 	clock-frequency = <54000000>; | 
 | }; | 
 |  | 
 | &clocks { | 
 | 	compatible = "brcm,bcm2711-cprman"; | 
 | }; | 
 |  | 
 | &cpu_thermal { | 
 | 	coefficients = <(-487) 410040>; | 
 | 	thermal-sensors = <&thermal>; | 
 | }; | 
 |  | 
 | &dsi0 { | 
 | 	interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; | 
 | }; | 
 |  | 
 | &dsi1 { | 
 | 	interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; | 
 | 	compatible = "brcm,bcm2711-dsi1"; | 
 | }; | 
 |  | 
 | &gpio { | 
 | 	compatible = "brcm,bcm2711-gpio"; | 
 | 	interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>, | 
 | 		     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>, | 
 | 		     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>, | 
 | 		     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; | 
 |  | 
 | 	gpio-ranges = <&gpio 0 0 58>; | 
 |  | 
 | 	gpclk0_gpio49: gpclk0-gpio49 { | 
 | 		pin-gpclk { | 
 | 			pins = "gpio49"; | 
 | 			function = "alt1"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	gpclk1_gpio50: gpclk1-gpio50 { | 
 | 		pin-gpclk { | 
 | 			pins = "gpio50"; | 
 | 			function = "alt1"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	gpclk2_gpio51: gpclk2-gpio51 { | 
 | 		pin-gpclk { | 
 | 			pins = "gpio51"; | 
 | 			function = "alt1"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	i2c0_gpio46: i2c0-gpio46 { | 
 | 		pin-sda { | 
 | 			function = "alt0"; | 
 | 			pins = "gpio46"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 		pin-scl { | 
 | 			function = "alt0"; | 
 | 			pins = "gpio47"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	i2c1_gpio46: i2c1-gpio46 { | 
 | 		pin-sda { | 
 | 			function = "alt1"; | 
 | 			pins = "gpio46"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 		pin-scl { | 
 | 			function = "alt1"; | 
 | 			pins = "gpio47"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	i2c3_gpio2: i2c3-gpio2 { | 
 | 		pin-sda { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio2"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 		pin-scl { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio3"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	i2c3_gpio4: i2c3-gpio4 { | 
 | 		pin-sda { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio4"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 		pin-scl { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio5"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	i2c4_gpio6: i2c4-gpio6 { | 
 | 		pin-sda { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio6"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 		pin-scl { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio7"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	i2c4_gpio8: i2c4-gpio8 { | 
 | 		pin-sda { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio8"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 		pin-scl { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio9"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	i2c5_gpio10: i2c5-gpio10 { | 
 | 		pin-sda { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio10"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 		pin-scl { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio11"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	i2c5_gpio12: i2c5-gpio12 { | 
 | 		pin-sda { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio12"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 		pin-scl { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio13"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	i2c6_gpio0: i2c6-gpio0 { | 
 | 		pin-sda { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio0"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 		pin-scl { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio1"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	i2c6_gpio22: i2c6-gpio22 { | 
 | 		pin-sda { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio22"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 		pin-scl { | 
 | 			function = "alt5"; | 
 | 			pins = "gpio23"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	i2c_slave_gpio8: i2c-slave-gpio8 { | 
 | 		pins-i2c-slave { | 
 | 			pins = "gpio8", | 
 | 			       "gpio9", | 
 | 			       "gpio10", | 
 | 			       "gpio11"; | 
 | 			function = "alt3"; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	jtag_gpio48: jtag-gpio48 { | 
 | 		pins-jtag { | 
 | 			pins = "gpio48", | 
 | 			       "gpio49", | 
 | 			       "gpio50", | 
 | 			       "gpio51", | 
 | 			       "gpio52", | 
 | 			       "gpio53"; | 
 | 			function = "alt4"; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	mii_gpio28: mii-gpio28 { | 
 | 		pins-mii { | 
 | 			pins = "gpio28", | 
 | 			       "gpio29", | 
 | 			       "gpio30", | 
 | 			       "gpio31"; | 
 | 			function = "alt4"; | 
 | 		}; | 
 | 	}; | 
 | 	mii_gpio36: mii-gpio36 { | 
 | 		pins-mii { | 
 | 			pins = "gpio36", | 
 | 			       "gpio37", | 
 | 			       "gpio38", | 
 | 			       "gpio39"; | 
 | 			function = "alt5"; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	pcm_gpio50: pcm-gpio50 { | 
 | 		pins-pcm { | 
 | 			pins = "gpio50", | 
 | 			       "gpio51", | 
 | 			       "gpio52", | 
 | 			       "gpio53"; | 
 | 			function = "alt2"; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	pwm0_0_gpio12: pwm0-0-gpio12 { | 
 | 		pin-pwm { | 
 | 			pins = "gpio12"; | 
 | 			function = "alt0"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	pwm0_0_gpio18: pwm0-0-gpio18 { | 
 | 		pin-pwm { | 
 | 			pins = "gpio18"; | 
 | 			function = "alt5"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	pwm1_0_gpio40: pwm1-0-gpio40 { | 
 | 		pin-pwm { | 
 | 			pins = "gpio40"; | 
 | 			function = "alt0"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	pwm0_1_gpio13: pwm0-1-gpio13 { | 
 | 		pin-pwm { | 
 | 			pins = "gpio13"; | 
 | 			function = "alt0"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	pwm0_1_gpio19: pwm0-1-gpio19 { | 
 | 		pin-pwm { | 
 | 			pins = "gpio19"; | 
 | 			function = "alt5"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	pwm1_1_gpio41: pwm1-1-gpio41 { | 
 | 		pin-pwm { | 
 | 			pins = "gpio41"; | 
 | 			function = "alt0"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	pwm0_1_gpio45: pwm0-1-gpio45 { | 
 | 		pin-pwm { | 
 | 			pins = "gpio45"; | 
 | 			function = "alt0"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	pwm0_0_gpio52: pwm0-0-gpio52 { | 
 | 		pin-pwm { | 
 | 			pins = "gpio52"; | 
 | 			function = "alt1"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	pwm0_1_gpio53: pwm0-1-gpio53 { | 
 | 		pin-pwm { | 
 | 			pins = "gpio53"; | 
 | 			function = "alt1"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	rgmii_gpio35: rgmii-gpio35 { | 
 | 		pin-start-stop { | 
 | 			pins = "gpio35"; | 
 | 			function = "alt4"; | 
 | 		}; | 
 | 		pin-rx-ok { | 
 | 			pins = "gpio36"; | 
 | 			function = "alt4"; | 
 | 		}; | 
 | 	}; | 
 | 	rgmii_irq_gpio34: rgmii-irq-gpio34 { | 
 | 		pin-irq { | 
 | 			pins = "gpio34"; | 
 | 			function = "alt5"; | 
 | 		}; | 
 | 	}; | 
 | 	rgmii_irq_gpio39: rgmii-irq-gpio39 { | 
 | 		pin-irq { | 
 | 			pins = "gpio39"; | 
 | 			function = "alt4"; | 
 | 		}; | 
 | 	}; | 
 | 	rgmii_mdio_gpio28: rgmii-mdio-gpio28 { | 
 | 		pins-mdio { | 
 | 			pins = "gpio28", | 
 | 			       "gpio29"; | 
 | 			function = "alt5"; | 
 | 		}; | 
 | 	}; | 
 | 	rgmii_mdio_gpio37: rgmii-mdio-gpio37 { | 
 | 		pins-mdio { | 
 | 			pins = "gpio37", | 
 | 			       "gpio38"; | 
 | 			function = "alt4"; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	spi0_gpio46: spi0-gpio46 { | 
 | 		pins-spi { | 
 | 			pins = "gpio46", | 
 | 			       "gpio47", | 
 | 			       "gpio48", | 
 | 			       "gpio49"; | 
 | 			function = "alt2"; | 
 | 		}; | 
 | 	}; | 
 | 	spi2_gpio46: spi2-gpio46 { | 
 | 		pins-spi { | 
 | 			pins = "gpio46", | 
 | 			       "gpio47", | 
 | 			       "gpio48", | 
 | 			       "gpio49", | 
 | 			       "gpio50"; | 
 | 			function = "alt5"; | 
 | 		}; | 
 | 	}; | 
 | 	spi3_gpio0: spi3-gpio0 { | 
 | 		pins-spi { | 
 | 			pins = "gpio0", | 
 | 			       "gpio1", | 
 | 			       "gpio2", | 
 | 			       "gpio3"; | 
 | 			function = "alt3"; | 
 | 		}; | 
 | 	}; | 
 | 	spi4_gpio4: spi4-gpio4 { | 
 | 		pins-spi { | 
 | 			pins = "gpio4", | 
 | 			       "gpio5", | 
 | 			       "gpio6", | 
 | 			       "gpio7"; | 
 | 			function = "alt3"; | 
 | 		}; | 
 | 	}; | 
 | 	spi5_gpio12: spi5-gpio12 { | 
 | 		pins-spi { | 
 | 			pins = "gpio12", | 
 | 			       "gpio13", | 
 | 			       "gpio14", | 
 | 			       "gpio15"; | 
 | 			function = "alt3"; | 
 | 		}; | 
 | 	}; | 
 | 	spi6_gpio18: spi6-gpio18 { | 
 | 		pins-spi { | 
 | 			pins = "gpio18", | 
 | 			       "gpio19", | 
 | 			       "gpio20", | 
 | 			       "gpio21"; | 
 | 			function = "alt3"; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	uart2_gpio0: uart2-gpio0 { | 
 | 		pin-tx { | 
 | 			pins = "gpio0"; | 
 | 			function = "alt4"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 		pin-rx { | 
 | 			pins = "gpio1"; | 
 | 			function = "alt4"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 	}; | 
 | 	uart2_ctsrts_gpio2: uart2-ctsrts-gpio2 { | 
 | 		pin-cts { | 
 | 			pins = "gpio2"; | 
 | 			function = "alt4"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 		pin-rts { | 
 | 			pins = "gpio3"; | 
 | 			function = "alt4"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	uart3_gpio4: uart3-gpio4 { | 
 | 		pin-tx { | 
 | 			pins = "gpio4"; | 
 | 			function = "alt4"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 		pin-rx { | 
 | 			pins = "gpio5"; | 
 | 			function = "alt4"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 	}; | 
 | 	uart3_ctsrts_gpio6: uart3-ctsrts-gpio6 { | 
 | 		pin-cts { | 
 | 			pins = "gpio6"; | 
 | 			function = "alt4"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 		pin-rts { | 
 | 			pins = "gpio7"; | 
 | 			function = "alt4"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	uart4_gpio8: uart4-gpio8 { | 
 | 		pin-tx { | 
 | 			pins = "gpio8"; | 
 | 			function = "alt4"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 		pin-rx { | 
 | 			pins = "gpio9"; | 
 | 			function = "alt4"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 	}; | 
 | 	uart4_ctsrts_gpio10: uart4-ctsrts-gpio10 { | 
 | 		pin-cts { | 
 | 			pins = "gpio10"; | 
 | 			function = "alt4"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 		pin-rts { | 
 | 			pins = "gpio11"; | 
 | 			function = "alt4"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | 	uart5_gpio12: uart5-gpio12 { | 
 | 		pin-tx { | 
 | 			pins = "gpio12"; | 
 | 			function = "alt4"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 		pin-rx { | 
 | 			pins = "gpio13"; | 
 | 			function = "alt4"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 	}; | 
 | 	uart5_ctsrts_gpio14: uart5-ctsrts-gpio14 { | 
 | 		pin-cts { | 
 | 			pins = "gpio14"; | 
 | 			function = "alt4"; | 
 | 			bias-pull-up; | 
 | 		}; | 
 | 		pin-rts { | 
 | 			pins = "gpio15"; | 
 | 			function = "alt4"; | 
 | 			bias-disable; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | &rmem { | 
 | 	#address-cells = <2>; | 
 | }; | 
 |  | 
 | &cma { | 
 | 	/* | 
 | 	 * arm64 reserves the CMA by default somewhere in ZONE_DMA32, | 
 | 	 * that's not good enough for the BCM2711 as some devices can | 
 | 	 * only address the lower 1G of memory (ZONE_DMA). | 
 | 	 */ | 
 | 	alloc-ranges = <0x0 0x00000000 0x40000000>; | 
 | }; | 
 |  | 
 | &i2c0 { | 
 | 	compatible = "brcm,bcm2711-i2c", "brcm,bcm2835-i2c"; | 
 | 	interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; | 
 | }; | 
 |  | 
 | &i2c1 { | 
 | 	compatible = "brcm,bcm2711-i2c", "brcm,bcm2835-i2c"; | 
 | 	interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; | 
 | }; | 
 |  | 
 | &mailbox { | 
 | 	interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; | 
 | }; | 
 |  | 
 | &sdhci { | 
 | 	interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; | 
 | }; | 
 |  | 
 | &sdhost { | 
 | 	interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; | 
 | }; | 
 |  | 
 | &spi { | 
 | 	interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; | 
 | }; | 
 |  | 
 | &spi1 { | 
 | 	interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; | 
 | }; | 
 |  | 
 | &spi2 { | 
 | 	interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; | 
 | }; | 
 |  | 
 | &system_timer { | 
 | 	interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, | 
 | 		     <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, | 
 | 		     <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, | 
 | 		     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; | 
 | }; | 
 |  | 
 | &txp { | 
 | 	interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; | 
 | }; | 
 |  | 
 | &uart0 { | 
 | 	interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; | 
 | }; | 
 |  | 
 | &uart1 { | 
 | 	interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; | 
 | }; | 
 |  | 
 | &usb { | 
 | 	interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | 
 | }; | 
 |  | 
 | &vec { | 
 | 	compatible = "brcm,bcm2711-vec"; | 
 | 	interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; | 
 | }; |