bcm4908: add watchdog support

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This commit is contained in:
Rafał Miłecki 2021-11-09 12:07:59 +01:00
parent 9a18bbec1f
commit 9565bd9bd6
6 changed files with 154 additions and 0 deletions

View File

@ -36,6 +36,7 @@ CONFIG_B53=y
# CONFIG_B53_SERDES is not set # CONFIG_B53_SERDES is not set
# CONFIG_B53_SRAB_DRIVER is not set # CONFIG_B53_SRAB_DRIVER is not set
CONFIG_BCM4908_ENET=y CONFIG_BCM4908_ENET=y
CONFIG_BCM7038_WDT=y
CONFIG_BCM7XXX_PHY=y CONFIG_BCM7XXX_PHY=y
CONFIG_BCM_NET_PHYLIB=y CONFIG_BCM_NET_PHYLIB=y
CONFIG_BCM_PMB=y CONFIG_BCM_PMB=y
@ -204,6 +205,7 @@ CONFIG_UBIFS_FS=y
CONFIG_UNMAP_KERNEL_AT_EL0=y CONFIG_UNMAP_KERNEL_AT_EL0=y
CONFIG_USB_SUPPORT=y CONFIG_USB_SUPPORT=y
CONFIG_VMAP_STACK=y CONFIG_VMAP_STACK=y
CONFIG_WATCHDOG_CORE=y
CONFIG_XPS=y CONFIG_XPS=y
CONFIG_XXHASH=y CONFIG_XXHASH=y
CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_DEFLATE=y

View File

@ -38,6 +38,7 @@ CONFIG_B53=y
# CONFIG_B53_SERDES is not set # CONFIG_B53_SERDES is not set
# CONFIG_B53_SRAB_DRIVER is not set # CONFIG_B53_SRAB_DRIVER is not set
CONFIG_BCM4908_ENET=y CONFIG_BCM4908_ENET=y
CONFIG_BCM7038_WDT=y
CONFIG_BCM7XXX_PHY=y CONFIG_BCM7XXX_PHY=y
CONFIG_BCM_NET_PHYLIB=y CONFIG_BCM_NET_PHYLIB=y
CONFIG_BCM_PMB=y CONFIG_BCM_PMB=y
@ -208,6 +209,7 @@ CONFIG_UBIFS_FS=y
CONFIG_UNMAP_KERNEL_AT_EL0=y CONFIG_UNMAP_KERNEL_AT_EL0=y
CONFIG_USB_SUPPORT=y CONFIG_USB_SUPPORT=y
CONFIG_VMAP_STACK=y CONFIG_VMAP_STACK=y
CONFIG_WATCHDOG_CORE=y
CONFIG_XPS=y CONFIG_XPS=y
CONFIG_XXHASH=y CONFIG_XXHASH=y
CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_DEFLATE=y

View File

@ -0,0 +1,50 @@
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
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 <rafal@milecki.pl>
---
.../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>;
};

View File

@ -0,0 +1,25 @@
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
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 <rafal@milecki.pl>
---
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

View File

@ -0,0 +1,50 @@
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
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 <rafal@milecki.pl>
---
.../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>;
};

View File

@ -0,0 +1,25 @@
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
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 <rafal@milecki.pl>
---
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