Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 12 Aug 2023 08:34:34 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        FreeBSD ARM List <freebsd-arm@freebsd.org>
Subject:   The bcm2711-rpi-4-b.dtb update that is part of the RPi firmware update to the most recent tagged version: a diff with the old
Message-ID:  <AC661513-A577-428B-9D5E-970E87CCE1E2@yahoo.com>
References:  <AC661513-A577-428B-9D5E-970E87CCE1E2.ref@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On distinct systems, one a 14.0-ALPHA1 snapshot image based system and
the other with a record of the prior FreeBSD RPI* firmware:

# dtc -Idtb -Odts -s -o ~/bcm2711-rpi-4-b-20230405.dts =
/boot/efi/bcm2711-rpi-4-b.dtb

# dtc -Idtb -Odts -s -o ~/bcm2711-rpi-4-b-20210303.dts =
/boot/efi/Holding_area_for_fbsd_RPiFW_materials/bcm2711-rpi-4-b.dtb

Note the use of the -s to sort the output for making diff
reasonable to use on the *.dts files.

I do warn that the RPi* firmware adjusts the live device tree to
not match the *.dtb file in some details. This varies by hardware
vintage, RAM size, and, and such. So the below is only suggestive
of what the FreeBSD kernel ends up working with for some parts of
the device tree.

Note:

# diff -u ~/bcm2711-rpi-4-b-*.dts | grep "phandle" | wc -l
     435

So, after putting the *.dts files in a common place, I avoid
documenting the phandle differences by first stripping them:

# grep -v "phandle =3D <" ~/bcm2711-rpi-4-b-20210303.dts > =
~/bcm2711-rpi-4-b-20210303-no-phandles.dts
# grep -v "phandle =3D <" ~/bcm2711-rpi-4-b-20230405.dts > =
~/bcm2711-rpi-4-b-20230405-no-phandles.dts

# diff -u ~/bcm2711-rpi-4-b-*-no-phandles.dts | grep "^[-+]" | wc -l
     488
# diff -u ~/bcm2711-rpi-4-b-*-no-phandles.dts | wc -l
    1157

For reference (leading whitespace might not be fully
preserved):

# diff -u ~/bcm2711-rpi-4-b-*-no-phandles.dts
--- /usr/home/root/bcm2711-rpi-4-b-20210303-no-phandles.dts	=
2023-08-12 08:11:21.128888000 -0700
+++ /usr/home/root/bcm2711-rpi-4-b-20230405-no-phandles.dts	=
2023-08-12 08:11:53.529703000 -0700
@@ -11,62 +11,73 @@
 	model =3D "Raspberry Pi 4 Model B";
 	__overrides__ {
=20
-		act_led_activelow =3D <0x3d 0x6770696f 0x733a3800>;
-		act_led_gpio =3D <0x3d 0x6770696f 0x733a3400>;
-		act_led_trigger =3D [00 00 00 3d 6c 69 6e 75 78 2c 64 65 =
66 61 75 6c 74 2d 74 72 69 67 67 65 72 00];
+		act_led_activelow =3D <0x41 0x6770696f 0x733a3800>;
+		act_led_gpio =3D <0x41 0x6770696f 0x733a3400>;
+		act_led_trigger =3D [00 00 00 41 6c 69 6e 75 78 2c 64 65 =
66 61 75 6c 74 2d 74 72 69 67 67 65 72 00];
 		arm_freq;
-		audio =3D [00 00 00 36 73 74 61 74 75 73 00];
+		audio =3D [00 00 00 3d 62 6f 6f 74 61 72 67 73 7b 6f 6e =
3d 27 73 6e 64 5f 62 63 6d 32 38 33 35 2e 65 6e 61 62 6c 65 5f 68 65 61 =
64 70 68 6f 6e 65 73 3d 31 20 73 6e 64 5f 62 63 6d 32 38 33 35 2e 65 6e =
61 62 6c 65 5f 68 64 6d 69 3d 31 27 2c 6f 66 66 3d 27 73 6e 64 5f 62 63 =
6d 32 38 33 35 2e 65 6e 61 62 6c 65 5f 68 65 61 64 70 68 6f 6e 65 73 3d =
30 20 73 6e 64 5f 62 63 6d 32 38 33 35 2e 65 6e 61 62 6c 65 5f 68 64 6d =
69 3d 30 27 7d 00];
 		axiperf =3D [00 00 00 3c 73 74 61 74 75 73 00];
 		cache_line_size;
 		cam0-led;
 		cam0-led-ctrl;
 		cam0-pwdn;
 		cam0-pwdn-ctrl;
-		eth_led0 =3D <0x2e 0x6c65642d 0x6d6f6465 0x733a3000>;
-		eth_led1 =3D <0x2e 0x6c65642d 0x6d6f6465 0x733a3400>;
-		i2c0 =3D [00 00 00 10 73 74 61 74 75 73 00 00 00 00 34 =
73 74 61 74 75 73 00];
-		i2c0_baudrate =3D [00 00 00 10 63 6c 6f 63 6b 2d 66 72 =
65 71 75 65 6e 63 79 3a 30 00];
-		i2c1 =3D [00 00 00 35 73 74 61 74 75 73 00];
-		i2c1_baudrate =3D [00 00 00 35 63 6c 6f 63 6b 2d 66 72 =
65 71 75 65 6e 63 79 3a 30 00];
-		i2s =3D [00 00 00 32 73 74 61 74 75 73 00];
-		krnbt =3D [00 00 00 2f 73 74 61 74 75 73 00];
-		krnbt_baudrate =3D <0x2f 0x6d61782d 0x73706565 =
0x643a3000>;
-		pwr_led_activelow =3D <0x3e 0x6770696f 0x733a3800>;
-		pwr_led_gpio =3D <0x3e 0x6770696f 0x733a3400>;
-		pwr_led_trigger =3D [00 00 00 3e 6c 69 6e 75 78 2c 64 65 =
66 61 75 6c 74 2d 74 72 69 67 67 65 72 00];
+		eee =3D [00 00 00 3d 62 6f 6f 74 61 72 67 73 7b 6f 6e 3d =
27 27 2c 6f 66 66 3d 27 67 65 6e 65 74 2e 65 65 65 3d 4e 27 7d 00];
+		eth_led0 =3D <0x2f 0x6c65642d 0x6d6f6465 0x733a3000>;
+		eth_led1 =3D <0x2f 0x6c65642d 0x6d6f6465 0x733a3400>;
+		hdmi =3D [00 00 00 3e 73 74 61 74 75 73 00 00 00 00 3f =
73 74 61 74 75 73 00];
+		i2c0 =3D [00 00 00 21 73 74 61 74 75 73 00 00 00 00 35 =
73 74 61 74 75 73 00];
+		i2c0_baudrate =3D [00 00 00 21 63 6c 6f 63 6b 2d 66 72 =
65 71 75 65 6e 63 79 3a 30 00];
+		i2c1 =3D [00 00 00 36 73 74 61 74 75 73 00];
+		i2c1_baudrate =3D [00 00 00 36 63 6c 6f 63 6b 2d 66 72 =
65 71 75 65 6e 63 79 3a 30 00];
+		i2s =3D [00 00 00 33 73 74 61 74 75 73 00];
+		krnbt =3D [00 00 00 30 73 74 61 74 75 73 00];
+		krnbt_baudrate =3D <0x30 0x6d61782d 0x73706565 =
0x643a3000>;
+		pcie =3D [00 00 00 2d 73 74 61 74 75 73 00];
+		pwr_led_activelow =3D <0x42 0x6770696f 0x733a3800>;
+		pwr_led_gpio =3D <0x42 0x6770696f 0x733a3400>;
+		pwr_led_trigger =3D [00 00 00 42 6c 69 6e 75 78 2c 64 65 =
66 61 75 6c 74 2d 74 72 69 67 67 65 72 00];
 		random =3D [00 00 00 38 73 74 61 74 75 73 00];
+		sd =3D [00 00 00 40 73 74 61 74 75 73 00];
 		sd_debug =3D [00 00 00 39 62 72 63 6d 2c 64 65 62 75 67 =
00];
 		sd_force_pio =3D <0x39 0x6272636d 0x2c666f72 0x63652d70 =
0x696f3f00>;
 		sd_overclock =3D <0x39 0x6272636d 0x2c6f7665 0x72636c6f =
0x636b2d35 0x303a3000>;
 		sd_pio_limit =3D [00 00 00 39 62 72 63 6d 2c 70 69 6f 2d =
6c 69 6d 69 74 3a 30 00];
-		sd_poll_once =3D [00 00 00 3f 6e 6f 6e 2d 72 65 6d 6f 76 =
61 62 6c 65 3f 00];
+		sd_poll_once =3D [00 00 00 40 6e 6f 6e 2d 72 65 6d 6f 76 =
61 62 6c 65 3f 00];
 		sdio_overclock =3D <0x3a 0x6272636d 0x2c6f7665 =
0x72636c6f 0x636b2d35 0x303a3000 0x3b 0x6272636d 0x2c6f7665 0x72636c6f =
0x636b2d35 0x303a3000>;
-		spi =3D [00 00 00 33 73 74 61 74 75 73 00];
-		spi_dma4 =3D <0x33 0x646d6173 0x3a303d00 0x40 0x33 =
0x646d6173 0x3a383d00 0x40>;
-		uart0 =3D [00 00 00 30 73 74 61 74 75 73 00];
-		uart1 =3D [00 00 00 31 73 74 61 74 75 73 00];
+		spi =3D [00 00 00 34 73 74 61 74 75 73 00];
+		spi_dma4 =3D <0x34 0x646d6173 0x3a303d00 0x43 0x34 =
0x646d6173 0x3a383d00 0x43>;
+		uart0 =3D [00 00 00 31 73 74 61 74 75 73 00];
+		uart1 =3D [00 00 00 32 73 74 61 74 75 73 00];
 		watchdog =3D [00 00 00 37 73 74 61 74 75 73 00];
 	};
 	__symbols__ {
=20
-		act_led =3D "/leds/act";
+		act_led =3D "/leds/led-act";
 		alt0 =3D "/soc/gpio@7e200000/alt0";
 		aon_intr =3D "/soc/interrupt-controller@7ef00100";
-		audio =3D "/soc/mailbox@7e00b840/bcm2835_audio";
 		audio_pins =3D "/soc/gpio@7e200000/audio_pins";
 		aux =3D "/soc/aux@7e215000";
 		avs_monitor =3D "/soc/avs-monitor@7d5d2000";
 		axiperf =3D "/soc/axiperf";
 		blconfig =3D "/reserved-memory/nvram@0";
+		blpubkey =3D "/reserved-memory/nvram@1";
 		bt =3D "/soc/serial@7e201000/bluetooth";
 		bt_pins =3D "/soc/gpio@7e200000/bt_pins";
-		cam1_reg =3D "/cam1_reg";
+		cam0_clk =3D "/cam0_clk";
+		cam0_reg =3D "/cam_dummy_reg";
+		cam0_regulator =3D "/cam0_regulator";
+		cam1_clk =3D "/cam1_clk";
+		cam1_reg =3D "/cam1_regulator";
+		cam_dummy_reg =3D "/cam_dummy_reg";
+		chosen =3D "/chosen";
 		clk_108MHz =3D "/clk-108M";
 		clk_27MHz =3D "/clk-27M";
 		clk_osc =3D "/clocks/clk-osc";
 		clk_usb =3D "/clocks/clk-usb";
 		clocks =3D "/soc/cprman@7e101000";
 		cma =3D "/reserved-memory/linux,cma";
+		cooling_maps =3D =
"/thermal-zones/cpu-thermal/cooling-maps";
 		cpu0 =3D "/cpus/cpu@0";
 		cpu1 =3D "/cpus/cpu@1";
 		cpu2 =3D "/cpus/cpu@2";
@@ -80,13 +91,19 @@
 		dma =3D "/soc/dma@7e007000";
 		dma40 =3D "/scb/dma@7e007b00";
 		dpi =3D "/soc/dpi@7e208000";
+		dpi_16bit_cpadhi_gpio0 =3D =
"/soc/gpio@7e200000/dpi_16bit_cpadhi_gpio0";
+		dpi_16bit_cpadhi_gpio2 =3D =
"/soc/gpio@7e200000/dpi_16bit_cpadhi_gpio2";
+		dpi_16bit_gpio0 =3D =
"/soc/gpio@7e200000/dpi_16bit_gpio0";
+		dpi_16bit_gpio2 =3D =
"/soc/gpio@7e200000/dpi_16bit_gpio2";
+		dpi_18bit_cpadhi_gpio0 =3D =
"/soc/gpio@7e200000/dpi_18bit_cpadhi_gpio0";
+		dpi_18bit_cpadhi_gpio2 =3D =
"/soc/gpio@7e200000/dpi_18bit_cpadhi_gpio2";
 		dpi_18bit_gpio0 =3D =
"/soc/gpio@7e200000/dpi_18bit_gpio0";
 		dpi_18bit_gpio2 =3D =
"/soc/gpio@7e200000/dpi_18bit_gpio2";
 		dpi_gpio0 =3D "/soc/gpio@7e200000/dpi_gpio0";
 		dsi0 =3D "/soc/dsi@7e209000";
 		dsi1 =3D "/soc/dsi@7e700000";
 		dvp =3D "/soc/clock@7ef00000";
-		emmc2 =3D "/emmc2bus/emmc2@7e340000";
+		emmc2 =3D "/emmc2bus/mmc@7e340000";
 		emmc2bus =3D "/emmc2bus";
 		emmc_gpio22 =3D "/soc/gpio@7e200000/emmc_gpio22";
 		emmc_gpio34 =3D "/soc/gpio@7e200000/emmc_gpio34";
@@ -148,6 +165,7 @@
 		i2s_pins =3D "/soc/gpio@7e200000/i2s";
 		jtag_gpio22 =3D "/soc/gpio@7e200000/jtag_gpio22";
 		jtag_gpio48 =3D "/soc/gpio@7e200000/jtag_gpio48";
+		l2 =3D "/cpus/l2-cache0";
 		leds =3D "/leds";
 		local_intc =3D "/soc/local_intc@40000000";
 		mailbox =3D "/soc/mailbox@7e00b880";
@@ -179,7 +197,7 @@
 		pwm1 =3D "/soc/pwm@7e20c800";
 		pwm1_0_gpio40 =3D "/soc/gpio@7e200000/pwm1_0_gpio40";
 		pwm1_1_gpio41 =3D "/soc/gpio@7e200000/pwm1_1_gpio41";
-		pwr_led =3D "/leds/pwr";
+		pwr_led =3D "/leds/led-pwr";
 		random =3D "/soc/rng@7e104000";
 		reset =3D "/soc/firmware/reset";
 		rgmii_gpio35 =3D "/soc/gpio@7e200000/rgmii_gpio35";
@@ -230,6 +248,7 @@
 		spidev1 =3D "/soc/spi@7e204000/spidev@1";
 		system_timer =3D "/soc/timer@7e003000";
 		thermal =3D "/soc/avs-monitor@7d5d2000/thermal";
+		thermal_trips =3D "/thermal-zones/cpu-thermal/trips";
 		txp =3D "/soc/txp@7e004000";
 		uart0 =3D "/soc/serial@7e201000";
 		uart0_ctsrts_gpio16 =3D =
"/soc/gpio@7e200000/uart0_ctsrts_gpio16";
@@ -269,19 +288,19 @@
 		v3dbus =3D "/v3dbus";
 		vc4 =3D "/gpu";
 		vchiq =3D "/soc/mailbox@7e00b840";
-		vcsm =3D "/soc/vcsm";
+		vcio =3D "/soc/firmware/vcio";
 		vdd_3v3_reg =3D "/fixedregulator_3v3";
 		vdd_5v0_reg =3D "/fixedregulator_5v0";
-		vec =3D "/soc/vec@7e806000";
+		vec =3D "/soc/vec@7ec13000";
 		watchdog =3D "/soc/watchdog@7e100000";
 		xhci =3D "/scb/xhci@7e9c0000";
 	};
 	aliases {
=20
-		audio =3D "/soc/mailbox@7e00b840/bcm2835_audio";
 		aux =3D "/soc/aux@7e215000";
 		axiperf =3D "/soc/axiperf";
 		blconfig =3D "/reserved-memory/nvram@0";
+		blpubkey =3D "/reserved-memory/nvram@1";
 		dma =3D "/soc/dma@7e007000";
 		emmc2bus =3D "/emmc2bus";
 		ethernet0 =3D "/scb/ethernet@7d580000";
@@ -290,6 +309,8 @@
 		i2c0 =3D "/soc/i2c0mux/i2c@0";
 		i2c1 =3D "/soc/i2c@7e804000";
 		i2c10 =3D "/soc/i2c0mux/i2c@1";
+		i2c20 =3D "/soc/i2c@7ef04500";
+		i2c21 =3D "/soc/i2c@7ef09500";
 		i2c3 =3D "/soc/i2c@7e205600";
 		i2c4 =3D "/soc/i2c@7e205800";
 		i2c5 =3D "/soc/i2c@7e205a00";
@@ -298,7 +319,7 @@
 		leds =3D "/leds";
 		mailbox =3D "/soc/mailbox@7e00b880";
 		mmc =3D "/soc/mmc@7e300000";
-		mmc0 =3D "/emmc2bus/emmc2@7e340000";
+		mmc0 =3D "/emmc2bus/mmc@7e340000";
 		mmc1 =3D "/soc/mmcnr@7e300000";
 		mmc2 =3D "/soc/mmc@7e202000";
 		pcie0 =3D "/scb/pcie@7d500000";
@@ -311,6 +332,10 @@
 		spi0 =3D "/soc/spi@7e204000";
 		spi1 =3D "/soc/spi@7e215080";
 		spi2 =3D "/soc/spi@7e2150c0";
+		spi3 =3D "/soc/spi@7e204600";
+		spi4 =3D "/soc/spi@7e204800";
+		spi5 =3D "/soc/spi@7e204a00";
+		spi6 =3D "/soc/spi@7e204c00";
 		thermal =3D "/soc/avs-monitor@7d5d2000/thermal";
 		uart0 =3D "/soc/serial@7e201000";
 		uart1 =3D "/soc/serial@7e215040";
@@ -319,21 +344,46 @@
 	};
 	arm-pmu {
=20
-		compatible =3D "arm,cortex-a72-pmu", "arm,armv8-pmuv3";
+		compatible =3D "arm,cortex-a72-pmu", "arm,armv8-pmuv3", =
"arm,cortex-a7-pmu";
 		interrupt-affinity =3D <0x28 0x29 0x2a 0x2b>;
 		interrupts =3D <0x0 0x10 0x4 0x0 0x11 0x4 0x0 0x12 0x4 =
0x0 0x13 0x4>;
 	};
-	cam1_reg {
+	cam0_clk {
=20
+		#clock-cells =3D <0x0>;
+		compatible =3D "fixed-clock";
+		status =3D "disabled";
+	};
+	cam0_regulator {
+
 		compatible =3D "regulator-fixed";
 		enable-active-high;
-		gpio =3D <0xa 0x5 0x0>;
-		regulator-name =3D "cam1-reg";
+		regulator-name =3D "cam0-reg";
 		status =3D "disabled";
 	};
+	cam1_clk {
+
+		#clock-cells =3D <0x0>;
+		compatible =3D "fixed-clock";
+		status =3D "disabled";
+	};
+	cam1_regulator {
+
+		compatible =3D "regulator-fixed";
+		enable-active-high;
+		gpio =3D <0xb 0x5 0x0>;
+		regulator-name =3D "cam1-reg";
+		status =3D "okay";
+	};
+	cam_dummy_reg {
+
+		compatible =3D "regulator-fixed";
+		regulator-name =3D "cam-dummy-reg";
+		status =3D "okay";
+	};
 	chosen {
=20
-		bootargs =3D "coherent_pool=3D1M 8250.nr_uarts=3D1 =
snd_bcm2835.enable_compat_alsa=3D0 snd_bcm2835.enable_hdmi=3D1";
+		bootargs =3D "coherent_pool=3D1M 8250.nr_uarts=3D1 =
snd_bcm2835.enable_headphones=3D0";
 	};
 	clk-108M {
=20
@@ -375,34 +425,70 @@
=20
 			compatible =3D "arm,cortex-a72";
 			cpu-release-addr =3D <0x0 0xd8>;
+			d-cache-line-size =3D <0x40>;
+			d-cache-sets =3D <0x100>;
+			d-cache-size =3D <0x8000>;
 			device_type =3D "cpu";
 			enable-method =3D "spin-table";
+			i-cache-line-size =3D <0x40>;
+			i-cache-sets =3D <0x100>;
+			i-cache-size =3D <0xc000>;
+			next-level-cache =3D <0x2c>;
 			reg =3D <0x0>;
 		};
 		cpu@1 {
=20
 			compatible =3D "arm,cortex-a72";
 			cpu-release-addr =3D <0x0 0xe0>;
+			d-cache-line-size =3D <0x40>;
+			d-cache-sets =3D <0x100>;
+			d-cache-size =3D <0x8000>;
 			device_type =3D "cpu";
 			enable-method =3D "spin-table";
+			i-cache-line-size =3D <0x40>;
+			i-cache-sets =3D <0x100>;
+			i-cache-size =3D <0xc000>;
+			next-level-cache =3D <0x2c>;
 			reg =3D <0x1>;
 		};
 		cpu@2 {
=20
 			compatible =3D "arm,cortex-a72";
 			cpu-release-addr =3D <0x0 0xe8>;
+			d-cache-line-size =3D <0x40>;
+			d-cache-sets =3D <0x100>;
+			d-cache-size =3D <0x8000>;
 			device_type =3D "cpu";
 			enable-method =3D "spin-table";
+			i-cache-line-size =3D <0x40>;
+			i-cache-sets =3D <0x100>;
+			i-cache-size =3D <0xc000>;
+			next-level-cache =3D <0x2c>;
 			reg =3D <0x2>;
 		};
 		cpu@3 {
=20
 			compatible =3D "arm,cortex-a72";
 			cpu-release-addr =3D <0x0 0xf0>;
+			d-cache-line-size =3D <0x40>;
+			d-cache-sets =3D <0x100>;
+			d-cache-size =3D <0x8000>;
 			device_type =3D "cpu";
 			enable-method =3D "spin-table";
+			i-cache-line-size =3D <0x40>;
+			i-cache-sets =3D <0x100>;
+			i-cache-size =3D <0xc000>;
+			next-level-cache =3D <0x2c>;
 			reg =3D <0x3>;
 		};
+		l2-cache0 {
+
+			cache-level =3D <0x2>;
+			cache-line-size =3D <0x40>;
+			cache-sets =3D <0x400>;
+			cache-size =3D <0x100000>;
+			compatible =3D "cache";
+		};
 	};
 	emmc2bus {
=20
@@ -411,10 +497,10 @@
 		compatible =3D "simple-bus";
 		dma-ranges =3D <0x0 0xc0000000 0x0 0x0 0x40000000>;
 		ranges =3D <0x0 0x7e000000 0x0 0xfe000000 0x1800000>;
-		emmc2@7e340000 {
+		mmc@7e340000 {
=20
 			broken-cd;
-			clocks =3D <0x7 0x33>;
+			clocks =3D <0x8 0x33>;
 			compatible =3D "brcm,bcm2711-emmc2";
 			interrupts =3D <0x0 0x7e 0x4>;
 			mmc-ddr-3_3v;
@@ -443,23 +529,24 @@
 	gpu {
=20
 		compatible =3D "brcm,bcm2711-vc5";
+		raspberrypi,firmware =3D <0x6>;
 		status =3D "disabled";
 	};
 	leds {
=20
 		compatible =3D "gpio-leds";
-		act {
+		led-act {
=20
-			default-state =3D "keep";
-			gpios =3D <0xf 0x2a 0x0>;
-			label =3D "led0";
+			default-state =3D "off";
+			gpios =3D <0x7 0x2a 0x0>;
+			label =3D "ACT";
 			linux,default-trigger =3D "mmc0";
 		};
-		pwr {
+		led-pwr {
=20
-			default-state =3D "keep";
-			gpios =3D <0xa 0x2 0x1>;
-			label =3D "led1";
+			default-state =3D "off";
+			gpios =3D <0xb 0x2 0x1>;
+			label =3D "PWR";
 			linux,default-trigger =3D "default-on";
 		};
 	};
@@ -495,6 +582,15 @@
 			reg =3D <0x0 0x0 0x0>;
 			status =3D "disabled";
 		};
+		nvram@1 {
+
+			#address-cells =3D <0x1>;
+			#size-cells =3D <0x1>;
+			compatible =3D =
"raspberrypi,bootloader-public-key", "nvmem-rmem";
+			no-map;
+			reg =3D <0x0 0x0 0x0>;
+			status =3D "disabled";
+		};
 	};
 	scb {
=20
@@ -503,6 +599,15 @@
 		compatible =3D "simple-bus";
 		dma-ranges =3D <0x0 0x0 0x0 0x0 0x4 0x0>;
 		ranges =3D <0x0 0x7c000000 0x0 0xfc000000 0x0 0x3800000 =
0x0 0x40000000 0x0 0xff800000 0x0 0x800000 0x6 0x0 0x6 0x0 0x0 =
0x40000000 0x0 0x0 0x0 0x0 0x0 0xfc000000>;
+		codec@7eb10000 {
+
+			clock-names =3D "hevc";
+			clocks =3D <0x14 0xb>;
+			compatible =3D "raspberrypi,rpivid-vid-decoder";
+			interrupts =3D <0x0 0x62 0x4>;
+			reg =3D <0x0 0x7eb10000 0x0 0x1000 0x0 =
0x7eb00000 0x0 0x10000>;
+			reg-names =3D "intc", "hevc";
+		};
 		dma@7e007b00 {
=20
 			#dma-cells =3D <0x1>;
@@ -518,14 +623,14 @@
 			#size-cells =3D <0x1>;
 			compatible =3D "brcm,bcm2711-genet-v5";
 			interrupts =3D <0x0 0x9d 0x4 0x0 0x9e 0x4>;
-			phy-handle =3D <0x2e>;
+			phy-handle =3D <0x2f>;
 			phy-mode =3D "rgmii-rxid";
 			reg =3D <0x0 0x7d580000 0x0 0x10000>;
 			status =3D "okay";
 			mdio@e14 {
=20
-				#address-cells =3D <0x0>;
-				#size-cells =3D <0x1>;
+				#address-cells =3D <0x1>;
+				#size-cells =3D <0x0>;
 				compatible =3D "brcm,genet-mdio-v5";
 				reg =3D <0xe14 0x8>;
 				reg-names =3D "mdio";
@@ -536,18 +641,6 @@
 				};
 			};
 		};
-		h264-decoder@7eb20000 {
-
-			compatible =3D =
"raspberrypi,rpivid-h264-decoder";
-			reg =3D <0x0 0x7eb20000 0x0 0x10000>;
-			status =3D "okay";
-		};
-		hevc-decoder@7eb00000 {
-
-			compatible =3D =
"raspberrypi,rpivid-hevc-decoder";
-			reg =3D <0x0 0x7eb00000 0x0 0x10000>;
-			status =3D "okay";
-		};
 		pcie@7d500000 {
=20
 			#address-cells =3D <0x3>;
@@ -557,45 +650,33 @@
 			compatible =3D "brcm,bcm2711-pcie";
 			device_type =3D "pci";
 			dma-ranges =3D <0x2000000 0x0 0x0 0x0 0x0 0x0 =
0xc0000000>;
-			interrupt-map =3D <0x0 0x0 0x0 0x1 0x1 0x0 0x8f =
0x4>;
+			interrupt-map =3D <0x0 0x0 0x0 0x1 0x1 0x0 0x8f =
0x4 0x0 0x0 0x0 0x2 0x1 0x0 0x90 0x4 0x0 0x0 0x0 0x3 0x1 0x0 0x91 0x4 =
0x0 0x0 0x0 0x4 0x1 0x0 0x92 0x4>;
 			interrupt-map-mask =3D <0x0 0x0 0x0 0x7>;
 			interrupt-names =3D "pcie", "msi";
-			interrupts =3D <0x0 0x94 0x4 0x0 0x94 0x4>;
+			interrupts =3D <0x0 0x93 0x4 0x0 0x94 0x4>;
 			msi-controller;
-			msi-parent =3D <0x2c>;
+			msi-parent =3D <0x2d>;
 			ranges =3D <0x2000000 0x0 0xc0000000 0x6 0x0 0x0 =
0x40000000>;
 			reg =3D <0x0 0x7d500000 0x0 0x9310>;
-			pci@1,0 {
+			pci@0,0 {
=20
 				#address-cells =3D <0x3>;
 				#size-cells =3D <0x2>;
+				device_type =3D "pci";
 				ranges;
 				reg =3D <0x0 0x0 0x0 0x0 0x0>;
-				usb@1,0 {
+				usb@0,0 {
=20
-					reg =3D <0x10000 0x0 0x0 0x0 =
0x0>;
-					resets =3D <0x2d 0x0>;
+					reg =3D <0x0 0x0 0x0 0x0 0x0>;
+					resets =3D <0x2e 0x0>;
 				};
 			};
 		};
-		rpivid-local-intc@7eb10000 {
-
-			compatible =3D "raspberrypi,rpivid-local-intc";
-			interrupts =3D <0x0 0x62 0x4>;
-			reg =3D <0x0 0x7eb10000 0x0 0x1000>;
-			status =3D "okay";
-		};
-		vp9-decoder@7eb30000 {
-
-			compatible =3D "raspberrypi,rpivid-vp9-decoder";
-			reg =3D <0x0 0x7eb30000 0x0 0x10000>;
-			status =3D "okay";
-		};
 		xhci@7e9c0000 {
=20
 			compatible =3D "generic-xhci";
 			interrupts =3D <0x0 0xb0 0x4>;
-			power-domains =3D <0x13 0x6>;
+			power-domains =3D <0x10 0x6>;
 			reg =3D <0x0 0x7e9c0000 0x0 0x100000>;
 			status =3D "disabled";
 		};
@@ -603,7 +684,7 @@
 	sd_io_1v8_reg {
=20
 		compatible =3D "regulator-gpio";
-		gpios =3D <0xa 0x4 0x0>;
+		gpios =3D <0xb 0x4 0x0>;
 		regulator-always-on;
 		regulator-boot-on;
 		regulator-max-microvolt =3D <0x325aa0>;
@@ -617,7 +698,7 @@
=20
 		compatible =3D "regulator-fixed";
 		enable-active-high;
-		gpio =3D <0xa 0x6 0x0>;
+		gpio =3D <0xb 0x6 0x0>;
 		regulator-boot-on;
 		regulator-max-microvolt =3D <0x325aa0>;
 		regulator-min-microvolt =3D <0x325aa0>;
@@ -633,7 +714,7 @@
 		aux@7e215000 {
=20
 			#clock-cells =3D <0x1>;
-			clocks =3D <0x7 0x14>;
+			clocks =3D <0x8 0x14>;
 			compatible =3D "brcm,bcm2835-aux";
 			reg =3D <0x7e215000 0x8>;
 		};
@@ -658,7 +739,7 @@
=20
 			#clock-cells =3D <0x1>;
 			#reset-cells =3D <0x1>;
-			clocks =3D <0x1c>;
+			clocks =3D <0x1a>;
 			compatible =3D "brcm,brcm2711-dvp";
 			reg =3D <0x7ef00000 0x10>;
 			status =3D "disabled";
@@ -677,10 +758,10 @@
 			#clock-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
 			clock-names =3D "lp", "vpu";
-			clocks =3D <0x7 0x2d 0x16 0x4>;
+			clocks =3D <0x8 0x2d 0x14 0x4>;
 			compatible =3D "brcm,bcm2835-unicam";
 			interrupts =3D <0x0 0x66 0x4>;
-			power-domains =3D <0x13 0xc>;
+			power-domains =3D <0x10 0xc>;
 			reg =3D <0x7e800000 0x800 0x7e802000 0x4>;
 			status =3D "disabled";
 		};
@@ -691,10 +772,10 @@
 			#size-cells =3D <0x0>;
 			brcm,num-data-lanes =3D <0x2>;
 			clock-names =3D "lp", "vpu";
-			clocks =3D <0x7 0x2e 0x16 0x4>;
+			clocks =3D <0x8 0x2e 0x14 0x4>;
 			compatible =3D "brcm,bcm2835-unicam";
 			interrupts =3D <0x0 0x67 0x4>;
-			power-domains =3D <0x13 0xd>;
+			power-domains =3D <0x10 0xd>;
 			reg =3D <0x7e801000 0x800 0x7e802004 0x4>;
 			status =3D "disabled";
 		};
@@ -709,10 +790,8 @@
 		};
 		dpi@7e208000 {
=20
-			#address-cells =3D <0x1>;
-			#size-cells =3D <0x0>;
 			clock-names =3D "core", "pixel";
-			clocks =3D <0x7 0x14 0x7 0x2c>;
+			clocks =3D <0x8 0x14 0x8 0x2c>;
 			compatible =3D "brcm,bcm2835-dpi";
 			reg =3D <0x7e208000 0x8c>;
 			status =3D "disabled";
@@ -724,10 +803,10 @@
 			#size-cells =3D <0x0>;
 			clock-names =3D "phy", "escape", "pixel";
 			clock-output-names =3D "dsi0_byte", "dsi0_ddr2", =
"dsi0_ddr";
-			clocks =3D <0x7 0x20 0x7 0x2f 0x7 0x31>;
+			clocks =3D <0x8 0x20 0x8 0x2f 0x8 0x31>;
 			compatible =3D "brcm,bcm2835-dsi0";
 			interrupts =3D <0x0 0x64 0x4>;
-			power-domains =3D <0x13 0x11>;
+			power-domains =3D <0x10 0x11>;
 			reg =3D <0x7e209000 0x78>;
 			status =3D "disabled";
 		};
@@ -738,10 +817,10 @@
 			#size-cells =3D <0x0>;
 			clock-names =3D "phy", "escape", "pixel";
 			clock-output-names =3D "dsi1_byte", "dsi1_ddr2", =
"dsi1_ddr";
-			clocks =3D <0x7 0x23 0x7 0x30 0x7 0x32>;
+			clocks =3D <0x8 0x23 0x8 0x30 0x8 0x32>;
 			compatible =3D "brcm,bcm2711-dsi1";
 			interrupts =3D <0x0 0x6c 0x4>;
-			power-domains =3D <0x13 0x12>;
+			power-domains =3D <0x10 0x12>;
 			reg =3D <0x7e700000 0x8c>;
 			status =3D "disabled";
 		};
@@ -757,7 +836,7 @@
 			#size-cells =3D <0x1>;
 			compatible =3D "raspberrypi,bcm2835-firmware", =
"simple-mfd";
 			dma-ranges;
-			mboxes =3D <0x22>;
+			mboxes =3D <0x24>;
 			clocks {
=20
 				#clock-cells =3D <0x1>;
@@ -776,6 +855,10 @@
 				#reset-cells =3D <0x1>;
 				compatible =3D =
"raspberrypi,firmware-reset";
 			};
+			vcio {
+
+				compatible =3D "raspberrypi,vcio";
+			};
 		};
 		firmwarekms@7e600000 {
=20
@@ -792,6 +875,7 @@
 			compatible =3D "brcm,bcm2711-gpio";
 			gpio-controller;
 			gpio-line-names =3D "ID_SDA", "ID_SCL", "SDA1", =
"SCL1", "GPIO_GCLK", "GPIO5", "GPIO6", "SPI_CE1_N", "SPI_CE0_N", =
"SPI_MISO", "SPI_MOSI", "SPI_SCLK", "GPIO12", "GPIO13", "TXD1", "RXD1", =
"GPIO16", "GPIO17", "GPIO18", "GPIO19", "GPIO20", "GPIO21", "GPIO22", =
"GPIO23", "GPIO24", "GPIO25", "GPIO26", "GPIO27", "RGMII_MDIO", =
"RGMIO_MDC", "CTS0", "RTS0", "TXD0", "RXD0", "SD1_CLK", "SD1_CMD", =
"SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3", "PWM0_MISO", =
"PWM1_MOSI", "STATUS_LED_G_CLK", "SPIFLASH_CE_N", "SDA0", "SCL0", =
"RGMII_RXCLK", "RGMII_RXCTL", "RGMII_RXD0", "RGMII_RXD1", "RGMII_RXD2", =
"RGMII_RXD3", "RGMII_TXCLK", "RGMII_TXCTL", "RGMII_TXD0", "RGMII_TXD1", =
"RGMII_TXD2", "RGMII_TXD3";
+			gpio-ranges =3D <0x7 0x0 0x0 0x3a>;
 			interrupt-controller;
 			interrupts =3D <0x0 0x71 0x4 0x0 0x72 0x4>;
 			pinctrl-names =3D "default";
@@ -805,6 +889,7 @@
=20
 				brcm,function =3D <0x4>;
 				brcm,pins =3D <0x28 0x29>;
+				brcm,pull =3D <0x0>;
 			};
 			bt_pins {
=20
@@ -812,6 +897,37 @@
 				brcm,pins =3D "-";
 				brcm,pull =3D <0x2>;
 			};
+			dpi_16bit_cpadhi_gpio0 {
+
+				brcm,function =3D <0x6>;
+				brcm,pins =3D <0x0 0x1 0x2 0x3 0x4 0x5 =
0x6 0x7 0x8 0xc 0xd 0xe 0xf 0x10 0x11 0x14 0x15 0x16 0x17 0x18>;
+			};
+			dpi_16bit_cpadhi_gpio2 {
+
+				brcm,function =3D <0x6>;
+				brcm,pins =3D <0x2 0x3 0x4 0x5 0x6 0x7 =
0x8 0xc 0xd 0xe 0xf 0x10 0x11 0x14 0x15 0x16 0x17 0x18>;
+			};
+			dpi_16bit_gpio0 {
+
+				brcm,function =3D <0x6>;
+				brcm,pins =3D <0x0 0x1 0x2 0x3 0x4 0x5 =
0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x11 0x12 0x13>;
+			};
+			dpi_16bit_gpio2 {
+
+				brcm,function =3D <0x6>;
+				brcm,pins =3D <0x2 0x3 0x4 0x5 0x6 0x7 =
0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x11 0x12 0x13>;
+			};
+			dpi_18bit_cpadhi_gpio0 {
+
+				brcm,function =3D <0x6>;
+				brcm,pins =3D <0x0 0x1 0x2 0x3 0x4 0x5 =
0x6 0x7 0x8 0x9 0xc 0xd 0xe 0xf 0x10 0x11 0x14 0x15 0x16 0x17 0x18 =
0x19>;
+				brcm,pull =3D <0x0>;
+			};
+			dpi_18bit_cpadhi_gpio2 {
+
+				brcm,function =3D <0x6>;
+				brcm,pins =3D <0x2 0x3 0x4 0x5 0x6 0x7 =
0x8 0x9 0xc 0xd 0xe 0xf 0x10 0x11 0x14 0x15 0x16 0x17 0x18 0x19>;
+			};
 			dpi_18bit_gpio0 {
=20
 				brcm,function =3D <0x6>;
@@ -1659,41 +1775,43 @@
 		hdmi@7ef00700 {
=20
 			clock-names =3D "hdmi", "bvb", "audio", "cec";
-			clocks =3D <0x16 0xd 0x16 0xe 0x1d 0x0 0x1e>;
+			clocks =3D <0x14 0xd 0x14 0xe 0x1b 0x0 0x1e>;
 			compatible =3D "brcm,bcm2711-hdmi0";
-			ddc =3D <0x20>;
+			ddc =3D <0x1d>;
 			dma-names =3D "audio-rx";
-			dmas =3D <0xb 0x9f0000a>;
+			dmas =3D <0xc 0x9fa000a>;
 			interrupt-names =3D "cec-tx", "cec-rx", =
"cec-low", "wakeup", "hpd-connected", "hpd-removed";
-			interrupt-parent =3D <0x1f>;
+			interrupt-parent =3D <0x1c>;
 			interrupts =3D <0x0 0x1 0x2 0x3 0x4 0x5>;
 			reg =3D <0x7ef00700 0x300 0x7ef00300 0x200 =
0x7ef00f00 0x80 0x7ef00f80 0x80 0x7ef01b00 0x200 0x7ef01f00 0x400 =
0x7ef00200 0x80 0x7ef04300 0x100 0x7ef20000 0x100 0x7ef00100 0x30>;
 			reg-names =3D "hdmi", "dvp", "phy", "rm", =
"packet", "metadata", "csc", "cec", "hd", "intr2";
-			resets =3D <0x1d 0x0>;
+			resets =3D <0x1b 0x0>;
 			status =3D "disabled";
+			wifi-2.4ghz-coexistence;
 		};
 		hdmi@7ef05700 {
=20
 			clock-names =3D "hdmi", "bvb", "audio", "cec";
-			clocks =3D <0x16 0xd 0x16 0xe 0x1d 0x1 0x1e>;
+			clocks =3D <0x14 0xd 0x14 0xe 0x1b 0x1 0x1e>;
 			compatible =3D "brcm,bcm2711-hdmi1";
-			ddc =3D <0x21>;
+			ddc =3D <0x1f>;
 			dma-names =3D "audio-rx";
-			dmas =3D <0xb 0x9f00011>;
+			dmas =3D <0xc 0x9fa0011>;
 			interrupt-names =3D "cec-tx", "cec-rx", =
"cec-low", "wakeup", "hpd-connected", "hpd-removed";
-			interrupt-parent =3D <0x1f>;
+			interrupt-parent =3D <0x1c>;
 			interrupts =3D <0x8 0x7 0x6 0x9 0xa 0xb>;
 			reg =3D <0x7ef05700 0x300 0x7ef05300 0x200 =
0x7ef05f00 0x80 0x7ef05f80 0x80 0x7ef06b00 0x200 0x7ef06f00 0x400 =
0x7ef00280 0x80 0x7ef09300 0x100 0x7ef20000 0x100 0x7ef00100 0x30>;
 			reg-names =3D "hdmi", "dvp", "phy", "rm", =
"packet", "metadata", "csc", "cec", "hd", "intr2";
-			resets =3D <0x1d 0x1>;
+			resets =3D <0x1b 0x1>;
 			status =3D "disabled";
+			wifi-2.4ghz-coexistence;
 		};
 		hvs@7e400000 {
=20
-			clocks =3D <0x16 0x4>;
+			clocks =3D <0x14 0x4>;
 			compatible =3D "brcm,bcm2711-hvs";
 			interrupts =3D <0x0 0x61 0x4>;
-			reg =3D <0x7e400000 0x6000>;
+			reg =3D <0x7e400000 0x8000>;
 			status =3D "disabled";
 		};
 		i2c@7e205000 {
@@ -1701,7 +1819,7 @@
 			#address-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
 			clock-frequency =3D <0x186a0>;
-			clocks =3D <0x7 0x14>;
+			clocks =3D <0x8 0x14>;
 			compatible =3D "brcm,bcm2711-i2c", =
"brcm,bcm2835-i2c";
 			interrupts =3D <0x0 0x75 0x4>;
 			reg =3D <0x7e205000 0x200>;
@@ -1711,7 +1829,7 @@
=20
 			#address-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
-			clocks =3D <0x7 0x14>;
+			clocks =3D <0x8 0x14>;
 			compatible =3D "brcm,bcm2711-i2c", =
"brcm,bcm2835-i2c";
 			interrupts =3D <0x0 0x75 0x4>;
 			reg =3D <0x7e205600 0x200>;
@@ -1721,7 +1839,7 @@
=20
 			#address-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
-			clocks =3D <0x7 0x14>;
+			clocks =3D <0x8 0x14>;
 			compatible =3D "brcm,bcm2711-i2c", =
"brcm,bcm2835-i2c";
 			interrupts =3D <0x0 0x75 0x4>;
 			reg =3D <0x7e205800 0x200>;
@@ -1731,7 +1849,7 @@
=20
 			#address-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
-			clocks =3D <0x7 0x14>;
+			clocks =3D <0x8 0x14>;
 			compatible =3D "brcm,bcm2711-i2c", =
"brcm,bcm2835-i2c";
 			interrupts =3D <0x0 0x75 0x4>;
 			reg =3D <0x7e205a00 0x200>;
@@ -1741,7 +1859,7 @@
=20
 			#address-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
-			clocks =3D <0x7 0x14>;
+			clocks =3D <0x8 0x14>;
 			compatible =3D "brcm,bcm2711-i2c", =
"brcm,bcm2835-i2c";
 			interrupts =3D <0x0 0x75 0x4>;
 			reg =3D <0x7e205c00 0x200>;
@@ -1752,10 +1870,10 @@
 			#address-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
 			clock-frequency =3D <0x186a0>;
-			clocks =3D <0x7 0x14>;
+			clocks =3D <0x8 0x14>;
 			compatible =3D "brcm,bcm2711-i2c", =
"brcm,bcm2835-i2c";
 			interrupts =3D <0x0 0x75 0x4>;
-			pinctrl-0 =3D <0x17>;
+			pinctrl-0 =3D <0x15>;
 			pinctrl-names =3D "default";
 			reg =3D <0x7e804000 0x1000>;
 			status =3D "disabled";
@@ -1781,9 +1899,9 @@
 			#address-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
 			compatible =3D "i2c-mux-pinctrl";
-			i2c-parent =3D <0x10>;
-			pinctrl-0 =3D <0x11>;
-			pinctrl-1 =3D <0x12>;
+			i2c-parent =3D <0x21>;
+			pinctrl-0 =3D <0x22>;
+			pinctrl-1 =3D <0x23>;
 			pinctrl-names =3D "i2c0", "i2c_csi_dsi";
 			status =3D "disabled";
 			i2c@0 {
@@ -1802,11 +1920,11 @@
 		i2s@7e203000 {
=20
 			#sound-dai-cells =3D <0x0>;
-			clocks =3D <0x7 0x1f>;
+			clocks =3D <0x8 0x1f>;
 			compatible =3D "brcm,bcm2835-i2s";
 			dma-names =3D "tx", "rx";
-			dmas =3D <0xb 0x2 0xb 0x3>;
-			pinctrl-0 =3D <0xc>;
+			dmas =3D <0xc 0x2 0xc 0x3>;
+			pinctrl-0 =3D <0xd>;
 			pinctrl-names =3D "default";
 			reg =3D <0x7e203000 0x24>;
 			status =3D "disabled";
@@ -1824,7 +1942,7 @@
 			#interrupt-cells =3D <0x1>;
 			compatible =3D "brcm,bcm2711-l2-intc", =
"brcm,l2-intc";
 			interrupt-controller;
-			interrupts =3D <0x0 0x60 0x4>;
+			interrupts =3D <0x0 0x60 0x1>;
 			reg =3D <0x7ef00100 0x30>;
 			status =3D "disabled";
 		};
@@ -1837,15 +1955,9 @@
=20
 			compatible =3D "brcm,bcm2711-vchiq";
 			interrupts =3D <0x0 0x22 0x4>;
+			pinctrl-0 =3D <0x25>;
+			pinctrl-names =3D "default";
 			reg =3D <0x7e00b840 0x3c>;
-			bcm2835_audio {
-
-				brcm,pwm-channels =3D <0x8>;
-				compatible =3D "brcm,bcm2835-audio";
-				pinctrl-0 =3D <0x23>;
-				pinctrl-names =3D "default";
-				status =3D "disabled";
-			};
 		};
 		mailbox@7e00b880 {
=20
@@ -1859,10 +1971,11 @@
 			brcm,overclock-50 =3D <0x0>;
 			brcm,pio-limit =3D <0x1>;
 			bus-width =3D <0x4>;
-			clocks =3D <0x7 0x14>;
+			clocks =3D <0x8 0x14>;
 			compatible =3D "brcm,bcm2835-sdhost";
 			dma-names =3D "rx-tx";
-			dmas =3D <0xb 0x2000000d>;
+			dmas =3D <0xc 0x2000000d>;
+			firmware =3D <0x6>;
 			interrupts =3D <0x0 0x78 0x4>;
 			reg =3D <0x7e202000 0x100>;
 			status =3D "disabled";
@@ -1871,12 +1984,12 @@
=20
 			brcm,overclock-50 =3D <0x0>;
 			bus-width =3D <0x4>;
-			clocks =3D <0x7 0x1c>;
+			clocks =3D <0x8 0x1c>;
 			compatible =3D "brcm,bcm2835-mmc", =
"brcm,bcm2835-sdhci";
 			dma-names =3D "rx-tx";
-			dmas =3D <0xb 0xb>;
+			dmas =3D <0xc 0xb>;
 			interrupts =3D <0x0 0x7e 0x4>;
-			pinctrl-0 =3D <0x24>;
+			pinctrl-0 =3D <0x13>;
 			pinctrl-names =3D "default";
 			reg =3D <0x7e300000 0x100>;
 			status =3D "disabled";
@@ -1885,13 +1998,13 @@
=20
 			brcm,overclock-50 =3D <0x0>;
 			bus-width =3D <0x4>;
-			clocks =3D <0x7 0x1c>;
+			clocks =3D <0x8 0x1c>;
 			compatible =3D "brcm,bcm2835-mmc", =
"brcm,bcm2835-sdhci";
 			dma-names =3D "rx-tx";
-			dmas =3D <0xb 0xb>;
+			dmas =3D <0xc 0xb>;
 			interrupts =3D <0x0 0x7e 0x4>;
 			non-removable;
-			pinctrl-0 =3D <0x25>;
+			pinctrl-0 =3D <0x20>;
 			pinctrl-names =3D "default";
 			reg =3D <0x7e300000 0x100>;
 			status =3D "okay";
@@ -1941,8 +2054,8 @@
=20
 			#pwm-cells =3D <0x2>;
 			assigned-clock-rates =3D <0x989680>;
-			assigned-clocks =3D <0x7 0x1e>;
-			clocks =3D <0x7 0x1e>;
+			assigned-clocks =3D <0x8 0x1e>;
+			clocks =3D <0x8 0x1e>;
 			compatible =3D "brcm,bcm2835-pwm";
 			reg =3D <0x7e20c000 0x28>;
 			status =3D "disabled";
@@ -1951,10 +2064,10 @@
=20
 			#pwm-cells =3D <0x2>;
 			assigned-clock-rates =3D <0x989680>;
-			assigned-clocks =3D <0x7 0x1e>;
-			clocks =3D <0x7 0x1e>;
+			assigned-clocks =3D <0x8 0x1e>;
+			clocks =3D <0x8 0x1e>;
 			compatible =3D "brcm,bcm2835-pwm";
-			pinctrl-0 =3D <0x1a 0x1b>;
+			pinctrl-0 =3D <0x18 0x19>;
 			pinctrl-names =3D "default";
 			reg =3D <0x7e20c800 0x28>;
 			status =3D "disabled";
@@ -1969,11 +2082,11 @@
=20
 			arm,primecell-periphid =3D <0x241011>;
 			clock-names =3D "uartclk", "apb_pclk";
-			clocks =3D <0x7 0x13 0x7 0x14>;
+			clocks =3D <0x8 0x13 0x8 0x14>;
 			compatible =3D "arm,pl011", "arm,primecell";
 			cts-event-workaround;
 			interrupts =3D <0x0 0x79 0x4>;
-			pinctrl-0 =3D <0x8 0x9>;
+			pinctrl-0 =3D <0x9 0xa>;
 			pinctrl-names =3D "default";
 			reg =3D <0x7e201000 0x200>;
 			skip-init;
@@ -1983,7 +2096,7 @@
=20
 				compatible =3D "brcm,bcm43438-bt";
 				max-speed =3D <0x2dc6c0>;
-				shutdown-gpios =3D <0xa 0x0 0x0>;
+				shutdown-gpios =3D <0xb 0x0 0x0>;
 				status =3D "disabled";
 			};
 		};
@@ -1991,7 +2104,7 @@
=20
 			arm,primecell-periphid =3D <0x241011>;
 			clock-names =3D "uartclk", "apb_pclk";
-			clocks =3D <0x7 0x13 0x7 0x14>;
+			clocks =3D <0x8 0x13 0x8 0x14>;
 			compatible =3D "arm,pl011", "arm,primecell";
 			interrupts =3D <0x0 0x79 0x4>;
 			reg =3D <0x7e201400 0x200>;
@@ -2001,7 +2114,7 @@
=20
 			arm,primecell-periphid =3D <0x241011>;
 			clock-names =3D "uartclk", "apb_pclk";
-			clocks =3D <0x7 0x13 0x7 0x14>;
+			clocks =3D <0x8 0x13 0x8 0x14>;
 			compatible =3D "arm,pl011", "arm,primecell";
 			interrupts =3D <0x0 0x79 0x4>;
 			reg =3D <0x7e201600 0x200>;
@@ -2011,7 +2124,7 @@
=20
 			arm,primecell-periphid =3D <0x241011>;
 			clock-names =3D "uartclk", "apb_pclk";
-			clocks =3D <0x7 0x13 0x7 0x14>;
+			clocks =3D <0x8 0x13 0x8 0x14>;
 			compatible =3D "arm,pl011", "arm,primecell";
 			interrupts =3D <0x0 0x79 0x4>;
 			reg =3D <0x7e201800 0x200>;
@@ -2021,7 +2134,7 @@
=20
 			arm,primecell-periphid =3D <0x241011>;
 			clock-names =3D "uartclk", "apb_pclk";
-			clocks =3D <0x7 0x13 0x7 0x14>;
+			clocks =3D <0x8 0x13 0x8 0x14>;
 			compatible =3D "arm,pl011", "arm,primecell";
 			interrupts =3D <0x0 0x79 0x4>;
 			reg =3D <0x7e201a00 0x200>;
@@ -2029,10 +2142,10 @@
 		};
 		serial@7e215040 {
=20
-			clocks =3D <0x14 0x0>;
+			clocks =3D <0x11 0x0>;
 			compatible =3D "brcm,bcm2835-aux-uart";
 			interrupts =3D <0x0 0x5d 0x4>;
-			pinctrl-0 =3D <0x15>;
+			pinctrl-0 =3D <0x12>;
 			pinctrl-names =3D "default";
 			reg =3D <0x7e215040 0x40>;
 			skip-init;
@@ -2041,18 +2154,18 @@
=20
 				compatible =3D "brcm,bcm43438-bt";
 				max-speed =3D <0x70800>;
-				shutdown-gpios =3D <0xa 0x0 0x0>;
+				shutdown-gpios =3D <0xb 0x0 0x0>;
 				status =3D "disabled";
 			};
 		};
 		smi@7e600000 {
=20
 			assigned-clock-rates =3D <0x7735940>;
-			assigned-clocks =3D <0x7 0x2a>;
-			clocks =3D <0x7 0x2a>;
+			assigned-clocks =3D <0x8 0x2a>;
+			clocks =3D <0x8 0x2a>;
 			compatible =3D "brcm,bcm2835-smi";
 			dma-names =3D "rx-tx";
-			dmas =3D <0xb 0x4>;
+			dmas =3D <0xc 0x4>;
 			interrupts =3D <0x0 0x70 0x4>;
 			reg =3D <0x7e600000 0x100>;
 			status =3D "disabled";
@@ -2065,13 +2178,13 @@
=20
 			#address-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
-			clocks =3D <0x7 0x14>;
+			clocks =3D <0x8 0x14>;
 			compatible =3D "brcm,bcm2835-spi";
-			cs-gpios =3D <0xf 0x8 0x1 0xf 0x7 0x1>;
+			cs-gpios =3D <0x7 0x8 0x1 0x7 0x7 0x1>;
 			dma-names =3D "tx", "rx";
-			dmas =3D <0xb 0x6 0xb 0x7>;
+			dmas =3D <0xc 0x6 0xc 0x7>;
 			interrupts =3D <0x0 0x76 0x4>;
-			pinctrl-0 =3D <0xd 0xe>;
+			pinctrl-0 =3D <0xe 0xf>;
 			pinctrl-names =3D "default";
 			reg =3D <0x7e204000 0x200>;
 			status =3D "disabled";
@@ -2096,7 +2209,7 @@
=20
 			#address-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
-			clocks =3D <0x7 0x14>;
+			clocks =3D <0x8 0x14>;
 			compatible =3D "brcm,bcm2835-spi";
 			interrupts =3D <0x0 0x76 0x4>;
 			reg =3D <0x7e204600 0x200>;
@@ -2106,7 +2219,7 @@
=20
 			#address-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
-			clocks =3D <0x7 0x14>;
+			clocks =3D <0x8 0x14>;
 			compatible =3D "brcm,bcm2835-spi";
 			interrupts =3D <0x0 0x76 0x4>;
 			reg =3D <0x7e204800 0x200>;
@@ -2116,7 +2229,7 @@
=20
 			#address-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
-			clocks =3D <0x7 0x14>;
+			clocks =3D <0x8 0x14>;
 			compatible =3D "brcm,bcm2835-spi";
 			interrupts =3D <0x0 0x76 0x4>;
 			reg =3D <0x7e204a00 0x200>;
@@ -2126,7 +2239,7 @@
=20
 			#address-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
-			clocks =3D <0x7 0x14>;
+			clocks =3D <0x8 0x14>;
 			compatible =3D "brcm,bcm2835-spi";
 			interrupts =3D <0x0 0x76 0x4>;
 			reg =3D <0x7e204c00 0x200>;
@@ -2136,7 +2249,7 @@
=20
 			#address-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
-			clocks =3D <0x14 0x1>;
+			clocks =3D <0x11 0x1>;
 			compatible =3D "brcm,bcm2835-aux-spi";
 			interrupts =3D <0x0 0x5d 0x4>;
 			reg =3D <0x7e215080 0x40>;
@@ -2146,7 +2259,7 @@
=20
 			#address-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
-			clocks =3D <0x14 0x2>;
+			clocks =3D <0x11 0x2>;
 			compatible =3D "brcm,bcm2835-aux-spi";
 			interrupts =3D <0x0 0x5d 0x4>;
 			reg =3D <0x7e2150c0 0x40>;
@@ -2158,6 +2271,7 @@
 			compatible =3D "brcm,bcm2835-system-timer";
 			interrupts =3D <0x0 0x40 0x4 0x0 0x41 0x4 0x0 =
0x42 0x4 0x0 0x43 0x4>;
 			reg =3D <0x7e003000 0x1000>;
+			status =3D "disabled";
 		};
 		txp@7e004000 {
=20
@@ -2171,29 +2285,23 @@
 			#address-cells =3D <0x1>;
 			#size-cells =3D <0x0>;
 			clock-names =3D "otg";
-			clocks =3D <0x18>;
+			clocks =3D <0x16>;
 			compatible =3D "brcm,bcm2708-usb";
 			interrupt-names =3D "usb", "soft";
 			interrupts =3D <0x0 0x49 0x4 0x0 0x28 0x4>;
 			phy-names =3D "usb2-phy";
-			phys =3D <0x19>;
-			power-domains =3D <0x13 0x6>;
+			phys =3D <0x17>;
+			power-domains =3D <0x10 0x6>;
 			reg =3D <0x7e980000 0x10000 0x7e00b200 0x200>;
 			status =3D "disabled";
 		};
-		vcsm {
+		vec@7ec13000 {
=20
-			compatible =3D "raspberrypi,bcm2835-vcsm";
-			firmware =3D <0x6>;
-			status =3D "okay";
-		};
-		vec@7e806000 {
-
-			clocks =3D <0x7 0x18>;
-			compatible =3D "brcm,bcm2835-vec";
+			clocks =3D <0x14 0xf>;
+			compatible =3D "brcm,bcm2711-vec";
 			interrupts =3D <0x0 0x7b 0x4>;
-			power-domains =3D <0x13 0x7>;
-			reg =3D <0x7e806000 0x1000>;
+			power-domains =3D <0x10 0x7>;
+			reg =3D <0x7ec13000 0x1000>;
 			status =3D "disabled";
 		};
 		watchdog@7e100000 {
@@ -2201,9 +2309,10 @@
 			#power-domain-cells =3D <0x1>;
 			#reset-cells =3D <0x1>;
 			clock-names =3D "v3d", "peri_image", "h264", =
"isp";
-			clocks =3D <0x7 0x15 0x7 0x1d 0x7 0x17 0x7 =
0x16>;
-			compatible =3D "brcm,bcm2835-pm", =
"brcm,bcm2835-pm-wdt";
+			clocks =3D <0x8 0x15 0x8 0x1d 0x8 0x17 0x8 =
0x16>;
+			compatible =3D "brcm,bcm2711-pm", =
"brcm,bcm2835-pm-wdt";
 			reg =3D <0x7e100000 0x114 0x7e00a000 0x24 =
0x7ec11000 0x20>;
+			reg-names =3D "pm", "asb", "rpivid_asb";
 			system-power-controller;
 		};
 	};
@@ -2218,6 +2327,15 @@
 			cooling-maps {
=20
 			};
+			trips {
+
+				cpu-crit {
+
+					hysteresis =3D <0x0>;
+					temperature =3D <0x1adb0>;
+					type =3D "critical";
+				};
+			};
 		};
 	};
 	timer {
@@ -2235,7 +2353,7 @@
 		ranges =3D <0x7c500000 0x0 0xfc500000 0x0 0x3300000 =
0x40000000 0x0 0xff800000 0x0 0x800000>;
 		v3d@7ec04000 {
=20
-			clocks =3D <0x16 0x5>;
+			clocks =3D <0x14 0x5>;
 			clocks-names =3D "v3d";
 			compatible =3D "brcm,2711-v3d";
 			interrupts =3D <0x0 0x4a 0x4>;


=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AC661513-A577-428B-9D5E-970E87CCE1E2>