mirror of
https://github.com/LiBwrt-op/openwrt-6.x.git
synced 2025-12-16 16:57:28 +00:00
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.56 Removed upstreamed: - airoha/patches-6.12/028-v6.13-spi-airoha-do-not-keep-tx-rx-dma-buffer-always-mappe.patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.56&id=ad00df9ee321e87639a740e6e372f11bfe5af52c - airoha/patches-6.12/029-01-spi-airoha-return-an-error-for-continuous-mode-di.patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/drivers/spi?h=v6.12.56&id=f5dc5baa5b04ceb0fca2460bc2863921f0e7ede5 - airoha/patches-6.12/029-03-spi-airoha-add-support-of-dual-quad-wires-spi-mod.patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.56&id=182221d35c1427630ea6d9de9953c2280848c851 - airoha/patches-6.12/029-05-spi-airoha-switch-back-to-non-dma-mode-in-the-cas.patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.56&id=8063828625359826316c5a1885e9ea341bbdb1b3 - airoha/patches-6.12/029-06-spi-airoha-fix-reading-writing-of-flashes-with-mo.patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.56&id=4e9a2d592d91b902f918158c1049eef19f9cce90 - mediatek/patches-6.12/810-tty-serial-8250_mtk-enable-baud-clock.patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.56&id=7cbf5ed24a26d4d80dcc19eb2259fdb9b179d5cf All other patches automatically rebased. Build system: x86/64 Build-tested: mediatek/filogic Run-tested: mediatek/filogic Signed-off-by: Edoardo Pinci <epinci@outlook.com> Link: https://github.com/openwrt/openwrt/pull/20589 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
240 lines
6.4 KiB
Diff
240 lines
6.4 KiB
Diff
From d1b83761cef13adca83c97dea088e883862a721d Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
Date: Fri, 21 Jun 2024 16:59:51 +0100
|
|
Subject: [PATCH] arm64: dts: broadcom: Add display pipeline support to BCM2712
|
|
|
|
Adds the HVS and associated hardware blocks to support the HDMI
|
|
and writeback connectors on BCM2712 / Pi5.
|
|
|
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
---
|
|
.../boot/dts/broadcom/bcm2712-rpi-5-b.dts | 14 ++
|
|
arch/arm64/boot/dts/broadcom/bcm2712.dtsi | 189 ++++++++++++++++++
|
|
2 files changed, 203 insertions(+)
|
|
|
|
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
|
|
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
|
|
@@ -732,5 +732,19 @@ spi10_cs_pins: &spi10_cs_gpio1 {};
|
|
firmware = <&firmware>;
|
|
#power-domain-cells = <1>;
|
|
};
|
|
+};
|
|
+
|
|
+&hvs {
|
|
+ clocks = <&firmware_clocks 4>, <&firmware_clocks 16>;
|
|
+ clock-names = "core", "disp";
|
|
+};
|
|
+
|
|
+&hdmi0 {
|
|
+ clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>;
|
|
+ clock-names = "hdmi", "bvb", "audio", "cec";
|
|
+};
|
|
|
|
+&hdmi1 {
|
|
+ clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
|
|
+ clock-names = "hdmi", "bvb", "audio", "cec";
|
|
};
|
|
--- a/arch/arm64/boot/dts/broadcom/bcm2712.dtsi
|
|
+++ b/arch/arm64/boot/dts/broadcom/bcm2712.dtsi
|
|
@@ -268,6 +268,172 @@
|
|
IRQ_TYPE_LEVEL_HIGH)>;
|
|
#interrupt-cells = <3>;
|
|
};
|
|
+
|
|
+ aon_intr: interrupt-controller@7d510600 {
|
|
+ compatible = "brcm,bcm2711-l2-intc", "brcm,l2-intc";
|
|
+ reg = <0x7d510600 0x30>;
|
|
+ interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
|
|
+ interrupt-controller;
|
|
+ #interrupt-cells = <1>;
|
|
+ };
|
|
+
|
|
+ pixelvalve0: pixelvalve@7c410000 {
|
|
+ compatible = "brcm,bcm2712-pixelvalve0";
|
|
+ reg = <0x7c410000 0x100>;
|
|
+ interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
|
|
+ };
|
|
+
|
|
+ pixelvalve1: pixelvalve@7c411000 {
|
|
+ compatible = "brcm,bcm2712-pixelvalve1";
|
|
+ reg = <0x7c411000 0x100>;
|
|
+ interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
|
|
+ };
|
|
+
|
|
+ mop: mop@7c500000 {
|
|
+ compatible = "brcm,bcm2712-mop";
|
|
+ reg = <0x7c500000 0x28>;
|
|
+ interrupt-parent = <&disp_intr>;
|
|
+ interrupts = <1>;
|
|
+ };
|
|
+
|
|
+ moplet: moplet@7c501000 {
|
|
+ compatible = "brcm,bcm2712-moplet";
|
|
+ reg = <0x7c501000 0x20>;
|
|
+ interrupt-parent = <&disp_intr>;
|
|
+ interrupts = <0>;
|
|
+ };
|
|
+
|
|
+ disp_intr: interrupt-controller@7c502000 {
|
|
+ compatible = "brcm,bcm2711-l2-intc", "brcm,l2-intc";
|
|
+ reg = <0x7c502000 0x30>;
|
|
+ interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
|
|
+ interrupt-controller;
|
|
+ #interrupt-cells = <1>;
|
|
+ };
|
|
+
|
|
+ dvp: clock@7c700000 {
|
|
+ compatible = "brcm,brcm2711-dvp";
|
|
+ reg = <0x7c700000 0x10>;
|
|
+ clocks = <&clk_108MHz>;
|
|
+ #clock-cells = <1>;
|
|
+ #reset-cells = <1>;
|
|
+ };
|
|
+
|
|
+ ddc0: i2c@7d508200 {
|
|
+ compatible = "brcm,brcmstb-i2c";
|
|
+ reg = <0x7d508200 0x58>;
|
|
+ interrupt-parent = <&bsc_irq>;
|
|
+ interrupts = <1>;
|
|
+ clock-frequency = <97500>;
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+ };
|
|
+
|
|
+ ddc1: i2c@7d508280 {
|
|
+ compatible = "brcm,brcmstb-i2c";
|
|
+ reg = <0x7d508280 0x58>;
|
|
+ interrupt-parent = <&bsc_irq>;
|
|
+ interrupts = <2>;
|
|
+ clock-frequency = <97500>;
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+ };
|
|
+
|
|
+ bsc_irq: intc@7d508380 {
|
|
+ compatible = "brcm,bcm7271-l2-intc";
|
|
+ reg = <0x7d508380 0x10>;
|
|
+ interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
|
|
+ interrupt-controller;
|
|
+ #interrupt-cells = <1>;
|
|
+ };
|
|
+
|
|
+ main_irq: intc@7d508400 {
|
|
+ compatible = "brcm,bcm7271-l2-intc";
|
|
+ reg = <0x7d508400 0x10>;
|
|
+ interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>;
|
|
+ interrupt-controller;
|
|
+ #interrupt-cells = <1>;
|
|
+ };
|
|
+
|
|
+ hdmi0: hdmi@7ef00700 {
|
|
+ compatible = "brcm,bcm2712-hdmi0";
|
|
+ reg = <0x7c701400 0x300>,
|
|
+ <0x7c701000 0x200>,
|
|
+ <0x7c701d00 0x300>,
|
|
+ <0x7c702000 0x80>,
|
|
+ <0x7c703800 0x200>,
|
|
+ <0x7c704000 0x800>,
|
|
+ <0x7c700100 0x80>,
|
|
+ <0x7d510800 0x100>,
|
|
+ <0x7c720000 0x100>;
|
|
+ reg-names = "hdmi",
|
|
+ "dvp",
|
|
+ "phy",
|
|
+ "rm",
|
|
+ "packet",
|
|
+ "metadata",
|
|
+ "csc",
|
|
+ "cec",
|
|
+ "hd";
|
|
+ resets = <&dvp 1>;
|
|
+ interrupt-parent = <&aon_intr>;
|
|
+ interrupts = <1>, <2>, <3>,
|
|
+ <7>, <8>;
|
|
+ interrupt-names = "cec-tx", "cec-rx", "cec-low",
|
|
+ "hpd-connected", "hpd-removed";
|
|
+ ddc = <&ddc0>;
|
|
+ };
|
|
+
|
|
+ hdmi1: hdmi@7ef05700 {
|
|
+ compatible = "brcm,bcm2712-hdmi1";
|
|
+ reg = <0x7c706400 0x300>,
|
|
+ <0x7c706000 0x200>,
|
|
+ <0x7c706d00 0x300>,
|
|
+ <0x7c707000 0x80>,
|
|
+ <0x7c708800 0x200>,
|
|
+ <0x7c709000 0x800>,
|
|
+ <0x7c700180 0x80>,
|
|
+ <0x7d511000 0x100>,
|
|
+ <0x7c720000 0x100>;
|
|
+ reg-names = "hdmi",
|
|
+ "dvp",
|
|
+ "phy",
|
|
+ "rm",
|
|
+ "packet",
|
|
+ "metadata",
|
|
+ "csc",
|
|
+ "cec",
|
|
+ "hd";
|
|
+ resets = <&dvp 2>;
|
|
+ interrupt-parent = <&aon_intr>;
|
|
+ interrupts = <11>, <12>, <13>,
|
|
+ <14>, <15>;
|
|
+ interrupt-names = "cec-tx", "cec-rx", "cec-low",
|
|
+ "hpd-connected", "hpd-removed";
|
|
+ ddc = <&ddc1>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ axi: axi {
|
|
+ compatible = "simple-bus";
|
|
+ #address-cells = <2>;
|
|
+ #size-cells = <2>;
|
|
+
|
|
+ ranges = <0x00 0x00000000 0x00 0x00000000 0x10 0x00000000>,
|
|
+ <0x10 0x00000000 0x10 0x00000000 0x01 0x00000000>,
|
|
+ <0x14 0x00000000 0x14 0x00000000 0x04 0x00000000>,
|
|
+ <0x18 0x00000000 0x18 0x00000000 0x04 0x00000000>,
|
|
+ <0x1c 0x00000000 0x1c 0x00000000 0x04 0x00000000>;
|
|
+
|
|
+ dma-ranges = <0x00 0x00000000 0x00 0x00000000 0x10 0x00000000>,
|
|
+ <0x10 0x00000000 0x10 0x00000000 0x01 0x00000000>,
|
|
+ <0x14 0x00000000 0x14 0x00000000 0x04 0x00000000>,
|
|
+ <0x18 0x00000000 0x18 0x00000000 0x04 0x00000000>,
|
|
+ <0x1c 0x00000000 0x1c 0x00000000 0x04 0x00000000>;
|
|
+
|
|
+ vc4: gpu {
|
|
+ compatible = "brcm,bcm2712-vc6";
|
|
+ };
|
|
};
|
|
|
|
timer {
|
|
@@ -283,4 +449,27 @@
|
|
<GIC_PPI 12 (GIC_CPU_MASK_SIMPLE(4) |
|
|
IRQ_TYPE_LEVEL_LOW)>;
|
|
};
|
|
+
|
|
+ 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";
|
|
+ };
|
|
+
|
|
+ hvs: hvs@107c580000 {
|
|
+ compatible = "brcm,bcm2712-hvs";
|
|
+ reg = <0x10 0x7c580000 0x0 0x1a000>;
|
|
+ interrupt-parent = <&disp_intr>;
|
|
+ interrupts = <2>, <9>, <16>;
|
|
+ interrupt-names = "ch0-eof", "ch1-eof", "ch2-eof";
|
|
+ //iommus = <&iommu4>;
|
|
+ };
|
|
};
|