Re: [PATCH v2 1/6] power: Introduce Broadcom kona reset driver

2016-06-07 Thread Sebastian Reichel
Hi,

On Tue, Jun 07, 2016 at 12:40:41PM -0700, Chris Brand wrote:
> On Mon, Jun 6, 2016 at 6:50 PM, Sebastian Reichel  wrote:
> > Hi,
> >
> > On Mon, Jun 06, 2016 at 09:42:03AM -0700, Chris Brand wrote:
> >> On Thu, Jun 2, 2016 at 7:38 PM, Sebastian Reichel  wrote:
> >> > Feel free to queue it via arm-soc with
> >> >
> >> > Acked-By: Sebastian Reichel 
> >> >
> >> > If I didn't overlook it, it's missing DT documentation, though.
> >>
> >> Thanks, Sebastian. Because this is effectively a move of code from
> >> arch/arm rather than new code, there's already dt documentation in
> >> Documentation/devicetree/bindings/reset/brcm,bcm21664-resetmgr.txt
> >
> > Ok. That directory is usually used for periphal reset controller.
> > Board/System reset controllers are usually documented in
> > .../bindings/power/reset (following kernel strucuture
> > [drivers/reset and drivers/power/reset]).
> >
> > -- Sebastian
> 
> Would you like me to send a separate patch to move that file ?

That would nice, thanks!

-- Sebastian


signature.asc
Description: PGP signature


Re: [PATCH v2 1/6] power: Introduce Broadcom kona reset driver

2016-06-07 Thread Sebastian Reichel
Hi,

On Tue, Jun 07, 2016 at 12:40:41PM -0700, Chris Brand wrote:
> On Mon, Jun 6, 2016 at 6:50 PM, Sebastian Reichel  wrote:
> > Hi,
> >
> > On Mon, Jun 06, 2016 at 09:42:03AM -0700, Chris Brand wrote:
> >> On Thu, Jun 2, 2016 at 7:38 PM, Sebastian Reichel  wrote:
> >> > Feel free to queue it via arm-soc with
> >> >
> >> > Acked-By: Sebastian Reichel 
> >> >
> >> > If I didn't overlook it, it's missing DT documentation, though.
> >>
> >> Thanks, Sebastian. Because this is effectively a move of code from
> >> arch/arm rather than new code, there's already dt documentation in
> >> Documentation/devicetree/bindings/reset/brcm,bcm21664-resetmgr.txt
> >
> > Ok. That directory is usually used for periphal reset controller.
> > Board/System reset controllers are usually documented in
> > .../bindings/power/reset (following kernel strucuture
> > [drivers/reset and drivers/power/reset]).
> >
> > -- Sebastian
> 
> Would you like me to send a separate patch to move that file ?

That would nice, thanks!

-- Sebastian


signature.asc
Description: PGP signature


Re: [PATCH v2 1/6] power: Introduce Broadcom kona reset driver

2016-06-07 Thread Chris Brand
On Mon, Jun 6, 2016 at 6:50 PM, Sebastian Reichel  wrote:
> Hi,
>
> On Mon, Jun 06, 2016 at 09:42:03AM -0700, Chris Brand wrote:
>> On Thu, Jun 2, 2016 at 7:38 PM, Sebastian Reichel  wrote:
>> > Feel free to queue it via arm-soc with
>> >
>> > Acked-By: Sebastian Reichel 
>> >
>> > If I didn't overlook it, it's missing DT documentation, though.
>>
>> Thanks, Sebastian. Because this is effectively a move of code from
>> arch/arm rather than new code, there's already dt documentation in
>> Documentation/devicetree/bindings/reset/brcm,bcm21664-resetmgr.txt
>
> Ok. That directory is usually used for periphal reset controller.
> Board/System reset controllers are usually documented in
> .../bindings/power/reset (following kernel strucuture
> [drivers/reset and drivers/power/reset]).
>
> -- Sebastian

Would you like me to send a separate patch to move that file ?

Chris


Re: [PATCH v2 1/6] power: Introduce Broadcom kona reset driver

2016-06-07 Thread Chris Brand
On Mon, Jun 6, 2016 at 6:50 PM, Sebastian Reichel  wrote:
> Hi,
>
> On Mon, Jun 06, 2016 at 09:42:03AM -0700, Chris Brand wrote:
>> On Thu, Jun 2, 2016 at 7:38 PM, Sebastian Reichel  wrote:
>> > Feel free to queue it via arm-soc with
>> >
>> > Acked-By: Sebastian Reichel 
>> >
>> > If I didn't overlook it, it's missing DT documentation, though.
>>
>> Thanks, Sebastian. Because this is effectively a move of code from
>> arch/arm rather than new code, there's already dt documentation in
>> Documentation/devicetree/bindings/reset/brcm,bcm21664-resetmgr.txt
>
> Ok. That directory is usually used for periphal reset controller.
> Board/System reset controllers are usually documented in
> .../bindings/power/reset (following kernel strucuture
> [drivers/reset and drivers/power/reset]).
>
> -- Sebastian

Would you like me to send a separate patch to move that file ?

Chris


Re: [PATCH v2 1/6] power: Introduce Broadcom kona reset driver

2016-06-06 Thread Sebastian Reichel
Hi,

On Mon, Jun 06, 2016 at 09:42:03AM -0700, Chris Brand wrote:
> On Thu, Jun 2, 2016 at 7:38 PM, Sebastian Reichel  wrote:
> > Feel free to queue it via arm-soc with
> >
> > Acked-By: Sebastian Reichel 
> >
> > If I didn't overlook it, it's missing DT documentation, though.
> 
> Thanks, Sebastian. Because this is effectively a move of code from
> arch/arm rather than new code, there's already dt documentation in
> Documentation/devicetree/bindings/reset/brcm,bcm21664-resetmgr.txt

Ok. That directory is usually used for periphal reset controller.
Board/System reset controllers are usually documented in
.../bindings/power/reset (following kernel strucuture
[drivers/reset and drivers/power/reset]).

-- Sebastian


signature.asc
Description: PGP signature


Re: [PATCH v2 1/6] power: Introduce Broadcom kona reset driver

2016-06-06 Thread Sebastian Reichel
Hi,

On Mon, Jun 06, 2016 at 09:42:03AM -0700, Chris Brand wrote:
> On Thu, Jun 2, 2016 at 7:38 PM, Sebastian Reichel  wrote:
> > Feel free to queue it via arm-soc with
> >
> > Acked-By: Sebastian Reichel 
> >
> > If I didn't overlook it, it's missing DT documentation, though.
> 
> Thanks, Sebastian. Because this is effectively a move of code from
> arch/arm rather than new code, there's already dt documentation in
> Documentation/devicetree/bindings/reset/brcm,bcm21664-resetmgr.txt

Ok. That directory is usually used for periphal reset controller.
Board/System reset controllers are usually documented in
.../bindings/power/reset (following kernel strucuture
[drivers/reset and drivers/power/reset]).

-- Sebastian


signature.asc
Description: PGP signature


Re: [PATCH v2 1/6] power: Introduce Broadcom kona reset driver

2016-06-06 Thread Chris Brand
On Thu, Jun 2, 2016 at 7:38 PM, Sebastian Reichel  wrote:
> Feel free to queue it via arm-soc with
>
> Acked-By: Sebastian Reichel 
>
> If I didn't overlook it, it's missing DT documentation, though.

Thanks, Sebastian. Because this is effectively a move of code from
arch/arm rather than new code, there's already dt documentation in
Documentation/devicetree/bindings/reset/brcm,bcm21664-resetmgr.txt

Chris


Re: [PATCH v2 1/6] power: Introduce Broadcom kona reset driver

2016-06-06 Thread Chris Brand
On Thu, Jun 2, 2016 at 7:38 PM, Sebastian Reichel  wrote:
> Feel free to queue it via arm-soc with
>
> Acked-By: Sebastian Reichel 
>
> If I didn't overlook it, it's missing DT documentation, though.

Thanks, Sebastian. Because this is effectively a move of code from
arch/arm rather than new code, there's already dt documentation in
Documentation/devicetree/bindings/reset/brcm,bcm21664-resetmgr.txt

Chris


Re: [PATCH v2 1/6] power: Introduce Broadcom kona reset driver

2016-06-02 Thread Sebastian Reichel
Hi Florian,

On Sat, May 21, 2016 at 10:09:07AM -0700, Florian Fainelli wrote:
> Le 11/05/2016 14:36, Chris Brand a écrit :
> > This driver supports reset on both BCM21664 and BCM23550.
> > Code is being moved from arch/arm/mach-bcm/board_bcm21664.c
> > 
> > Signed-off-by: Chris Brand 

> Sebastian, Dmitry, I know we are in the merge window, let me know if you
> would want me to take this patch and the 5 others in the next arm-soc
> pull request, or if you prefer to take this one in your own tree.

Feel free to queue it via arm-soc with

Acked-By: Sebastian Reichel 

If I didn't overlook it, it's missing DT documentation, though.

-- Sebastian


signature.asc
Description: PGP signature


Re: [PATCH v2 1/6] power: Introduce Broadcom kona reset driver

2016-06-02 Thread Sebastian Reichel
Hi Florian,

On Sat, May 21, 2016 at 10:09:07AM -0700, Florian Fainelli wrote:
> Le 11/05/2016 14:36, Chris Brand a écrit :
> > This driver supports reset on both BCM21664 and BCM23550.
> > Code is being moved from arch/arm/mach-bcm/board_bcm21664.c
> > 
> > Signed-off-by: Chris Brand 

> Sebastian, Dmitry, I know we are in the merge window, let me know if you
> would want me to take this patch and the 5 others in the next arm-soc
> pull request, or if you prefer to take this one in your own tree.

Feel free to queue it via arm-soc with

Acked-By: Sebastian Reichel 

If I didn't overlook it, it's missing DT documentation, though.

-- Sebastian


signature.asc
Description: PGP signature


Re: [PATCH v2 1/6] power: Introduce Broadcom kona reset driver

2016-05-21 Thread Florian Fainelli
Le 11/05/2016 14:36, Chris Brand a écrit :
> This driver supports reset on both BCM21664 and BCM23550.
> Code is being moved from arch/arm/mach-bcm/board_bcm21664.c
> 
> Signed-off-by: Chris Brand 

Sebastian, Dmitry, I know we are in the merge window, let me know if you
would want me to take this patch and the 5 others in the next arm-soc
pull request, or if you prefer to take this one in your own tree.

Thanks!
-- 
Florian


Re: [PATCH v2 1/6] power: Introduce Broadcom kona reset driver

2016-05-21 Thread Florian Fainelli
Le 11/05/2016 14:36, Chris Brand a écrit :
> This driver supports reset on both BCM21664 and BCM23550.
> Code is being moved from arch/arm/mach-bcm/board_bcm21664.c
> 
> Signed-off-by: Chris Brand 

Sebastian, Dmitry, I know we are in the merge window, let me know if you
would want me to take this patch and the 5 others in the next arm-soc
pull request, or if you prefer to take this one in your own tree.

Thanks!
-- 
Florian


[PATCH v2 1/6] power: Introduce Broadcom kona reset driver

2016-05-11 Thread Chris Brand
This driver supports reset on both BCM21664 and BCM23550.
Code is being moved from arch/arm/mach-bcm/board_bcm21664.c

Signed-off-by: Chris Brand 
---
 drivers/power/reset/Kconfig   | 10 +
 drivers/power/reset/Makefile  |  1 +
 drivers/power/reset/brcm-kona-reset.c | 75 +++
 3 files changed, 86 insertions(+)
 create mode 100644 drivers/power/reset/brcm-kona-reset.c

diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
index 0a6408a39c66..1a7c49f3650a 100644
--- a/drivers/power/reset/Kconfig
+++ b/drivers/power/reset/Kconfig
@@ -38,6 +38,16 @@ config POWER_RESET_AXXIA
 
  Say Y if you have an Axxia family SoC.
 
+config POWER_RESET_BRCMKONA
+   bool "Broadcom Kona reset driver"
+   depends on ARM || COMPILE_TEST
+   default ARCH_BCM_MOBILE
+   help
+ This driver provides restart support for Broadcom Kona chips.
+
+ Say Y here if you have a Broadcom Kona-based board and you wish
+ to have restart support.
+
 config POWER_RESET_BRCMSTB
bool "Broadcom STB reset driver"
depends on ARM || MIPS || COMPILE_TEST
diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile
index 096fa67047f6..ddb9a5b35480 100644
--- a/drivers/power/reset/Makefile
+++ b/drivers/power/reset/Makefile
@@ -2,6 +2,7 @@ obj-$(CONFIG_POWER_RESET_AS3722) += as3722-poweroff.o
 obj-$(CONFIG_POWER_RESET_AT91_POWEROFF) += at91-poweroff.o
 obj-$(CONFIG_POWER_RESET_AT91_RESET) += at91-reset.o
 obj-$(CONFIG_POWER_RESET_AXXIA) += axxia-reset.o
+obj-$(CONFIG_POWER_RESET_BRCMKONA) += brcm-kona-reset.o
 obj-$(CONFIG_POWER_RESET_BRCMSTB) += brcmstb-reboot.o
 obj-$(CONFIG_POWER_RESET_GPIO) += gpio-poweroff.o
 obj-$(CONFIG_POWER_RESET_GPIO_RESTART) += gpio-restart.o
diff --git a/drivers/power/reset/brcm-kona-reset.c 
b/drivers/power/reset/brcm-kona-reset.c
new file mode 100644
index ..d6f2070be89c
--- /dev/null
+++ b/drivers/power/reset/brcm-kona-reset.c
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2016 Broadcom
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation version 2.
+ *
+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any
+ * kind, whether express or implied; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include 
+#include 
+#include 
+#include 
+
+#include 
+
+#define RSTMGR_REG_WR_ACCESS_OFFSET0
+#define RSTMGR_REG_CHIP_SOFT_RST_OFFSET4
+
+#define RSTMGR_WR_PASSWORD 0xa5a5
+#define RSTMGR_WR_PASSWORD_SHIFT   8
+#define RSTMGR_WR_ACCESS_ENABLE1
+
+static void __iomem *kona_reset_base;
+
+static int kona_reset_handler(struct notifier_block *this,
+   unsigned long mode, void *cmd)
+{
+   /*
+* A soft reset is triggered by writing a 0 to bit 0 of the soft reset
+* register. To write to that register we must first write the password
+* and the enable bit in the write access enable register.
+*/
+   writel((RSTMGR_WR_PASSWORD << RSTMGR_WR_PASSWORD_SHIFT) |
+   RSTMGR_WR_ACCESS_ENABLE,
+   kona_reset_base + RSTMGR_REG_WR_ACCESS_OFFSET);
+   writel(0, kona_reset_base + RSTMGR_REG_CHIP_SOFT_RST_OFFSET);
+
+   return NOTIFY_DONE;
+}
+
+static struct notifier_block kona_reset_nb = {
+   .notifier_call = kona_reset_handler,
+   .priority = 128,
+};
+
+static int kona_reset_probe(struct platform_device *pdev)
+{
+   struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+
+   kona_reset_base = devm_ioremap_resource(>dev, res);
+   if (IS_ERR(kona_reset_base))
+   return PTR_ERR(kona_reset_base);
+
+   return register_restart_handler(_reset_nb);
+}
+
+static const struct of_device_id of_match[] = {
+   { .compatible = "brcm,bcm21664-resetmgr" },
+   {},
+};
+
+static struct platform_driver bcm_kona_reset_driver = {
+   .probe = kona_reset_probe,
+   .driver = {
+   .name = "brcm-kona-reset",
+   .of_match_table = of_match,
+   },
+};
+
+builtin_platform_driver(bcm_kona_reset_driver);
-- 
1.9.1



[PATCH v2 1/6] power: Introduce Broadcom kona reset driver

2016-05-11 Thread Chris Brand
This driver supports reset on both BCM21664 and BCM23550.
Code is being moved from arch/arm/mach-bcm/board_bcm21664.c

Signed-off-by: Chris Brand 
---
 drivers/power/reset/Kconfig   | 10 +
 drivers/power/reset/Makefile  |  1 +
 drivers/power/reset/brcm-kona-reset.c | 75 +++
 3 files changed, 86 insertions(+)
 create mode 100644 drivers/power/reset/brcm-kona-reset.c

diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
index 0a6408a39c66..1a7c49f3650a 100644
--- a/drivers/power/reset/Kconfig
+++ b/drivers/power/reset/Kconfig
@@ -38,6 +38,16 @@ config POWER_RESET_AXXIA
 
  Say Y if you have an Axxia family SoC.
 
+config POWER_RESET_BRCMKONA
+   bool "Broadcom Kona reset driver"
+   depends on ARM || COMPILE_TEST
+   default ARCH_BCM_MOBILE
+   help
+ This driver provides restart support for Broadcom Kona chips.
+
+ Say Y here if you have a Broadcom Kona-based board and you wish
+ to have restart support.
+
 config POWER_RESET_BRCMSTB
bool "Broadcom STB reset driver"
depends on ARM || MIPS || COMPILE_TEST
diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile
index 096fa67047f6..ddb9a5b35480 100644
--- a/drivers/power/reset/Makefile
+++ b/drivers/power/reset/Makefile
@@ -2,6 +2,7 @@ obj-$(CONFIG_POWER_RESET_AS3722) += as3722-poweroff.o
 obj-$(CONFIG_POWER_RESET_AT91_POWEROFF) += at91-poweroff.o
 obj-$(CONFIG_POWER_RESET_AT91_RESET) += at91-reset.o
 obj-$(CONFIG_POWER_RESET_AXXIA) += axxia-reset.o
+obj-$(CONFIG_POWER_RESET_BRCMKONA) += brcm-kona-reset.o
 obj-$(CONFIG_POWER_RESET_BRCMSTB) += brcmstb-reboot.o
 obj-$(CONFIG_POWER_RESET_GPIO) += gpio-poweroff.o
 obj-$(CONFIG_POWER_RESET_GPIO_RESTART) += gpio-restart.o
diff --git a/drivers/power/reset/brcm-kona-reset.c 
b/drivers/power/reset/brcm-kona-reset.c
new file mode 100644
index ..d6f2070be89c
--- /dev/null
+++ b/drivers/power/reset/brcm-kona-reset.c
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2016 Broadcom
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation version 2.
+ *
+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any
+ * kind, whether express or implied; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include 
+#include 
+#include 
+#include 
+
+#include 
+
+#define RSTMGR_REG_WR_ACCESS_OFFSET0
+#define RSTMGR_REG_CHIP_SOFT_RST_OFFSET4
+
+#define RSTMGR_WR_PASSWORD 0xa5a5
+#define RSTMGR_WR_PASSWORD_SHIFT   8
+#define RSTMGR_WR_ACCESS_ENABLE1
+
+static void __iomem *kona_reset_base;
+
+static int kona_reset_handler(struct notifier_block *this,
+   unsigned long mode, void *cmd)
+{
+   /*
+* A soft reset is triggered by writing a 0 to bit 0 of the soft reset
+* register. To write to that register we must first write the password
+* and the enable bit in the write access enable register.
+*/
+   writel((RSTMGR_WR_PASSWORD << RSTMGR_WR_PASSWORD_SHIFT) |
+   RSTMGR_WR_ACCESS_ENABLE,
+   kona_reset_base + RSTMGR_REG_WR_ACCESS_OFFSET);
+   writel(0, kona_reset_base + RSTMGR_REG_CHIP_SOFT_RST_OFFSET);
+
+   return NOTIFY_DONE;
+}
+
+static struct notifier_block kona_reset_nb = {
+   .notifier_call = kona_reset_handler,
+   .priority = 128,
+};
+
+static int kona_reset_probe(struct platform_device *pdev)
+{
+   struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+
+   kona_reset_base = devm_ioremap_resource(>dev, res);
+   if (IS_ERR(kona_reset_base))
+   return PTR_ERR(kona_reset_base);
+
+   return register_restart_handler(_reset_nb);
+}
+
+static const struct of_device_id of_match[] = {
+   { .compatible = "brcm,bcm21664-resetmgr" },
+   {},
+};
+
+static struct platform_driver bcm_kona_reset_driver = {
+   .probe = kona_reset_probe,
+   .driver = {
+   .name = "brcm-kona-reset",
+   .of_match_table = of_match,
+   },
+};
+
+builtin_platform_driver(bcm_kona_reset_driver);
-- 
1.9.1