[U-Boot] [PATCH V3 1/6] watchdog: bcm6345: switch to raw I/O functions

This driver is used on several big endian mips board. So we could use raw I/O function instead of forcing big endian access.
Signed-off-by: Philippe Reynes philippe.reynes@softathome.com Reviewed-by: Daniel Schwierzeck daniel.schwierzeck@gmail.com --- drivers/watchdog/bcm6345_wdt.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
Changelog: v2: - add a commit message (thanks Marek) v3: - no change
diff --git a/drivers/watchdog/bcm6345_wdt.c b/drivers/watchdog/bcm6345_wdt.c index e1bd73d..44f5662 100644 --- a/drivers/watchdog/bcm6345_wdt.c +++ b/drivers/watchdog/bcm6345_wdt.c @@ -32,8 +32,8 @@ static int bcm6345_wdt_reset(struct udevice *dev) { struct bcm6345_wdt_priv *priv = dev_get_priv(dev);
- writel_be(WDT_CTL_START1_MASK, priv->regs + WDT_CTL_REG); - writel_be(WDT_CTL_START2_MASK, priv->regs + WDT_CTL_REG); + writel(WDT_CTL_START1_MASK, priv->regs + WDT_CTL_REG); + writel(WDT_CTL_START2_MASK, priv->regs + WDT_CTL_REG);
return 0; } @@ -50,7 +50,7 @@ static int bcm6345_wdt_start(struct udevice *dev, u64 timeout, ulong flags) timeout = WDT_VAL_MAX; }
- writel_be(timeout, priv->regs + WDT_VAL_REG); + writel(timeout, priv->regs + WDT_VAL_REG);
return bcm6345_wdt_reset(dev); } @@ -64,8 +64,8 @@ static int bcm6345_wdt_stop(struct udevice *dev) { struct bcm6345_wdt_priv *priv = dev_get_priv(dev);
- writel_be(WDT_CTL_STOP1_MASK, priv->regs + WDT_CTL_REG); - writel_be(WDT_CTL_STOP2_MASK, priv->regs + WDT_CTL_REG); + writel(WDT_CTL_STOP1_MASK, priv->regs + WDT_CTL_REG); + writel(WDT_CTL_STOP2_MASK, priv->regs + WDT_CTL_REG);
return 0; }

This IP is also used on some arm SoC, so we allow to use it on arm bcm6858 too.
Signed-off-by: Philippe Reynes philippe.reynes@softathome.com --- drivers/watchdog/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Changelog: v2: - add a commit message (thanks Marek) v3: - only enable this driver on bcm6858 (thanks Daniel)
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 10fd303..9456abd 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -88,7 +88,7 @@ config WDT_ASPEED
config WDT_BCM6345 bool "BCM6345 watchdog timer support" - depends on WDT && ARCH_BMIPS + depends on WDT && (ARCH_BMIPS || ARCH_BCM6858) help Select this to enable watchdog timer for BCM6345 SoCs. The watchdog timer is stopped when initialized.

On Mon, Jan 28, 2019 at 03:37:28PM +0100, Philippe Reynes wrote:
This IP is also used on some arm SoC, so we allow to use it on arm bcm6858 too.
Signed-off-by: Philippe Reynes philippe.reynes@softathome.com
Applied to u-boot/master, thanks!

This commit add watchdog and sysreset watchdog in the bcm6838 device tree.
Signed-off-by: Philippe Reynes philippe.reynes@softathome.com --- arch/mips/dts/brcm,bcm6838.dtsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
Changelog: v2: - add a commit message (thanks Marek) v3: - no change
diff --git a/arch/mips/dts/brcm,bcm6838.dtsi b/arch/mips/dts/brcm,bcm6838.dtsi index 77d6a8e..b6f9559 100644 --- a/arch/mips/dts/brcm,bcm6838.dtsi +++ b/arch/mips/dts/brcm,bcm6838.dtsi @@ -73,6 +73,23 @@ status = "disabled"; };
+ wdt0: watchdog@14e002d0 { + compatible = "brcm,bcm6345-wdt"; + reg = <0x14e002d0 0xc>; + clocks = <&periph_osc>; + }; + + wdt1: watchdog@14e002dc { + compatible = "brcm,bcm6345-wdt"; + reg = <0x14e002dc 0xc>; + clocks = <&periph_osc>; + }; + + wdt-reboot { + compatible = "wdt-reboot"; + wdt = <&wdt0>; + }; + leds: led-controller@14e00f00 { compatible = "brcm,bcm6328-leds"; reg = <0x14e00f00 0x28>;

On Mon, Jan 28, 2019 at 03:37:29PM +0100, Philippe Reynes wrote:
This commit add watchdog and sysreset watchdog in the bcm6838 device tree.
Signed-off-by: Philippe Reynes philippe.reynes@softathome.com
Applied to u-boot/master, thanks!

This commit add watchdog and sysreset watchdog in the bcm6858 device tree.
Signed-off-by: Philippe Reynes philippe.reynes@softathome.com --- arch/arm/dts/bcm6858.dtsi | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
Changelog: v2: - add a commit message (thanks Marek) v3: - no change
diff --git a/arch/arm/dts/bcm6858.dtsi b/arch/arm/dts/bcm6858.dtsi index d78d34d..23b80c6 100644 --- a/arch/arm/dts/bcm6858.dtsi +++ b/arch/arm/dts/bcm6858.dtsi @@ -81,5 +81,22 @@
status = "disabled"; }; + + wdt1: watchdog@ff802780 { + compatible = "brcm,bcm6345-wdt"; + reg = <0x0 0xff802780 0x0 0x14>; + clocks = <&periph_osc>; + }; + + wdt2: watchdog@ff8027c0 { + compatible = "brcm,bcm6345-wdt"; + reg = <0x0 0xff8027c0 0x0 0x14>; + clocks = <&periph_osc>; + }; + + wdt-reboot { + compatible = "wdt-reboot"; + wdt = <&wdt1>; + }; }; };

On Mon, Jan 28, 2019 at 03:37:30PM +0100, Philippe Reynes wrote:
This commit add watchdog and sysreset watchdog in the bcm6858 device tree.
Signed-off-by: Philippe Reynes philippe.reynes@softathome.com
Applied to u-boot/master, thanks!

Enable watchdog and reboot with watchdog in the configuration.
Signed-off-by: Philippe Reynes philippe.reynes@softathome.com --- configs/bcm968380gerg_ram_defconfig | 2 ++ 1 file changed, 2 insertions(+)
Changelog: v2: - add a commit message (thanks Marek) v3: - no change
diff --git a/configs/bcm968380gerg_ram_defconfig b/configs/bcm968380gerg_ram_defconfig index fdecc0f..d98fe51 100644 --- a/configs/bcm968380gerg_ram_defconfig +++ b/configs/bcm968380gerg_ram_defconfig @@ -46,4 +46,6 @@ CONFIG_RESET_BCM6345=y # CONFIG_SPL_SERIAL_PRESENT is not set CONFIG_DM_SERIAL=y CONFIG_BCM6345_SERIAL=y +CONFIG_SYSRESET_WATCHDOG=y +CONFIG_WDT_BCM6345=y CONFIG_LZO=y

On Mon, Jan 28, 2019 at 03:37:31PM +0100, Philippe Reynes wrote:
Enable watchdog and reboot with watchdog in the configuration.
Signed-off-by: Philippe Reynes philippe.reynes@softathome.com
Applied to u-boot/master, thanks!

Enable watchdog and reboot with watchdog in the configuration.
Signed-off-by: Philippe Reynes philippe.reynes@softathome.com --- configs/bcm968580_ram_defconfig | 2 ++ 1 file changed, 2 insertions(+)
Changelog: v2: - add a commit message (thanks Marek) v3: - no change
diff --git a/configs/bcm968580_ram_defconfig b/configs/bcm968580_ram_defconfig index 56e0a56..b23f960 100644 --- a/configs/bcm968580_ram_defconfig +++ b/configs/bcm968580_ram_defconfig @@ -31,5 +31,7 @@ CONFIG_DM_SERIAL=y CONFIG_SERIAL_SEARCH_ALL=y CONFIG_BCM6345_SERIAL=y CONFIG_SYSRESET=y +CONFIG_SYSRESET_WATCHDOG=y +CONFIG_WDT_BCM6345=y CONFIG_REGEX=y # CONFIG_GENERATE_SMBIOS_TABLE is not set

On Mon, Jan 28, 2019 at 03:37:32PM +0100, Philippe Reynes wrote:
Enable watchdog and reboot with watchdog in the configuration.
Signed-off-by: Philippe Reynes philippe.reynes@softathome.com
Applied to u-boot/master, thanks!

On Mon, Jan 28, 2019 at 03:37:27PM +0100, Philippe Reynes wrote:
This driver is used on several big endian mips board. So we could use raw I/O function instead of forcing big endian access.
Signed-off-by: Philippe Reynes philippe.reynes@softathome.com Reviewed-by: Daniel Schwierzeck daniel.schwierzeck@gmail.com
Applied to u-boot/master, thanks!
participants (2)
-
Philippe Reynes
-
Tom Rini