From 9565bd9bd61f026effce7ebfe17d413d1adb032f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Tue, 9 Nov 2021 12:07:59 +0100 Subject: [PATCH] bcm4908: add watchdog support MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Rafał Miłecki --- target/linux/bcm4908/config-5.10 | 2 + target/linux/bcm4908/config-5.4 | 2 + ...4-dts-broadcom-bcm4908-add-TWD-block.patch | 50 +++++++++++++++++++ ...8_wdt-allow-building-on-ARCH_BCM4908.patch | 25 ++++++++++ ...4-dts-broadcom-bcm4908-add-TWD-block.patch | 50 +++++++++++++++++++ ...8_wdt-allow-building-on-ARCH_BCM4908.patch | 25 ++++++++++ 6 files changed, 154 insertions(+) create mode 100644 target/linux/bcm4908/patches-5.10/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch create mode 100644 target/linux/bcm4908/patches-5.10/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch create mode 100644 target/linux/bcm4908/patches-5.4/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch create mode 100644 target/linux/bcm4908/patches-5.4/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch diff --git a/target/linux/bcm4908/config-5.10 b/target/linux/bcm4908/config-5.10 index 7efb81f508..a6cb52b18c 100644 --- a/target/linux/bcm4908/config-5.10 +++ b/target/linux/bcm4908/config-5.10 @@ -36,6 +36,7 @@ CONFIG_B53=y # CONFIG_B53_SERDES is not set # CONFIG_B53_SRAB_DRIVER is not set CONFIG_BCM4908_ENET=y +CONFIG_BCM7038_WDT=y CONFIG_BCM7XXX_PHY=y CONFIG_BCM_NET_PHYLIB=y CONFIG_BCM_PMB=y @@ -204,6 +205,7 @@ CONFIG_UBIFS_FS=y CONFIG_UNMAP_KERNEL_AT_EL0=y CONFIG_USB_SUPPORT=y CONFIG_VMAP_STACK=y +CONFIG_WATCHDOG_CORE=y CONFIG_XPS=y CONFIG_XXHASH=y CONFIG_ZLIB_DEFLATE=y diff --git a/target/linux/bcm4908/config-5.4 b/target/linux/bcm4908/config-5.4 index 8a37c61127..55b20f86d2 100644 --- a/target/linux/bcm4908/config-5.4 +++ b/target/linux/bcm4908/config-5.4 @@ -38,6 +38,7 @@ CONFIG_B53=y # CONFIG_B53_SERDES is not set # CONFIG_B53_SRAB_DRIVER is not set CONFIG_BCM4908_ENET=y +CONFIG_BCM7038_WDT=y CONFIG_BCM7XXX_PHY=y CONFIG_BCM_NET_PHYLIB=y CONFIG_BCM_PMB=y @@ -208,6 +209,7 @@ CONFIG_UBIFS_FS=y CONFIG_UNMAP_KERNEL_AT_EL0=y CONFIG_USB_SUPPORT=y CONFIG_VMAP_STACK=y +CONFIG_WATCHDOG_CORE=y CONFIG_XPS=y CONFIG_XXHASH=y CONFIG_ZLIB_DEFLATE=y diff --git a/target/linux/bcm4908/patches-5.10/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch b/target/linux/bcm4908/patches-5.10/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch new file mode 100644 index 0000000000..026ce3b9fc --- /dev/null +++ b/target/linux/bcm4908/patches-5.10/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch @@ -0,0 +1,50 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Tue, 9 Nov 2021 11:39:42 +0100 +Subject: [PATCH] arm64: dts: broadcom: bcm4908: add TWD block +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +BCM4908 contains TWD block that provides few functions: +1. Timers +2. Wathchdog +3. Software reset + +Signed-off-by: Rafał Miłecki +--- + .../boot/dts/broadcom/bcm4908/bcm4908.dtsi | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi ++++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi +@@ -273,9 +273,18 @@ + #size-cells = <1>; + ranges = <0x00 0x00 0xff800000 0x3000>; + +- timer: timer@400 { +- compatible = "brcm,bcm6328-timer", "syscon"; +- reg = <0x400 0x3c>; ++ twd: timer-mfd@400 { ++ compatible = "brcm,bcm4908-twd", "brcm,twd", "simple-mfd", "syscon"; ++ reg = <0x400 0x4c>; ++ ranges = <0x0 0x400 0x4c>; ++ ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ watchdog@28 { ++ compatible = "brcm,bcm7038-wdt"; ++ reg = <0x28 0x8>; ++ }; + }; + + gpio0: gpio-controller@500 { +@@ -329,7 +338,7 @@ + + reboot { + compatible = "syscon-reboot"; +- regmap = <&timer>; ++ regmap = <&twd>; + offset = <0x34>; + mask = <1>; + }; diff --git a/target/linux/bcm4908/patches-5.10/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch b/target/linux/bcm4908/patches-5.10/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch new file mode 100644 index 0000000000..f4cf75037e --- /dev/null +++ b/target/linux/bcm4908/patches-5.10/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch @@ -0,0 +1,25 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Tue, 9 Nov 2021 11:34:28 +0100 +Subject: [PATCH] watchdog: bcm7038_wdt: allow building on ARCH_BCM4908 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The same hardware block is present on BCM4908 SoCs family. + +Signed-off-by: Rafał Miłecki +--- + drivers/watchdog/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/watchdog/Kconfig ++++ b/drivers/watchdog/Kconfig +@@ -1800,7 +1800,7 @@ config BCM7038_WDT + tristate "BCM7038 Watchdog" + select WATCHDOG_CORE + depends on HAS_IOMEM +- depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST ++ depends on ARCH_BCM4908 || ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST + help + Watchdog driver for the built-in hardware in Broadcom 7038 and + later SoCs used in set-top boxes. BCM7038 was made public diff --git a/target/linux/bcm4908/patches-5.4/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch b/target/linux/bcm4908/patches-5.4/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch new file mode 100644 index 0000000000..026ce3b9fc --- /dev/null +++ b/target/linux/bcm4908/patches-5.4/301-arm64-dts-broadcom-bcm4908-add-TWD-block.patch @@ -0,0 +1,50 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Tue, 9 Nov 2021 11:39:42 +0100 +Subject: [PATCH] arm64: dts: broadcom: bcm4908: add TWD block +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +BCM4908 contains TWD block that provides few functions: +1. Timers +2. Wathchdog +3. Software reset + +Signed-off-by: Rafał Miłecki +--- + .../boot/dts/broadcom/bcm4908/bcm4908.dtsi | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi ++++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi +@@ -273,9 +273,18 @@ + #size-cells = <1>; + ranges = <0x00 0x00 0xff800000 0x3000>; + +- timer: timer@400 { +- compatible = "brcm,bcm6328-timer", "syscon"; +- reg = <0x400 0x3c>; ++ twd: timer-mfd@400 { ++ compatible = "brcm,bcm4908-twd", "brcm,twd", "simple-mfd", "syscon"; ++ reg = <0x400 0x4c>; ++ ranges = <0x0 0x400 0x4c>; ++ ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ watchdog@28 { ++ compatible = "brcm,bcm7038-wdt"; ++ reg = <0x28 0x8>; ++ }; + }; + + gpio0: gpio-controller@500 { +@@ -329,7 +338,7 @@ + + reboot { + compatible = "syscon-reboot"; +- regmap = <&timer>; ++ regmap = <&twd>; + offset = <0x34>; + mask = <1>; + }; diff --git a/target/linux/bcm4908/patches-5.4/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch b/target/linux/bcm4908/patches-5.4/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch new file mode 100644 index 0000000000..16ed3f5072 --- /dev/null +++ b/target/linux/bcm4908/patches-5.4/800-watchdog-bcm7038_wdt-allow-building-on-ARCH_BCM4908.patch @@ -0,0 +1,25 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Tue, 9 Nov 2021 11:34:28 +0100 +Subject: [PATCH] watchdog: bcm7038_wdt: allow building on ARCH_BCM4908 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The same hardware block is present on BCM4908 SoCs family. + +Signed-off-by: Rafał Miłecki +--- + drivers/watchdog/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/watchdog/Kconfig ++++ b/drivers/watchdog/Kconfig +@@ -1759,7 +1759,7 @@ config BCM7038_WDT + tristate "BCM7038 Watchdog" + select WATCHDOG_CORE + depends on HAS_IOMEM +- depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST ++ depends on ARCH_BCM4908 || ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST + help + Watchdog driver for the built-in hardware in Broadcom 7038 and + later SoCs used in set-top boxes. BCM7038 was made public -- 2.30.2