* [PATCH 0/4] [POWERPC] MPC5200: update gpt binding, add restart support @ 2007-10-17 12:56 Marian Balakowicz 2007-10-17 12:58 ` [PATCH 1/4] [POWERPC] Add mpc52xx_find_and_map_path(), refactor utility functions Marian Balakowicz ` (3 more replies) 0 siblings, 4 replies; 10+ messages in thread From: Marian Balakowicz @ 2007-10-17 12:56 UTC (permalink / raw) To: linuxppc-dev This is a reworked version of patches to MPC5200 common code that were send together with the TQM5200/CM5200/Motion-PRO board support chnages. As there are some open issues in a board support code and to avoid additional respin I would like to have those reviewed first. [PATCH 1/4] [POWERPC] Add mpc52xx_find_and_map_path(), refactor utility functions [PATCH 2/4] [POWERPC] Update device tree binding for mpc5200 gpt [PATCH 3/4] [POWERPC] Add restart support for mpc52xx based platforms [PATCH 4/4] [POWERPC] Enable restart support for lite5200 board Cheers, Marian Balakowicz ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/4] [POWERPC] Add mpc52xx_find_and_map_path(), refactor utility functions 2007-10-17 12:56 [PATCH 0/4] [POWERPC] MPC5200: update gpt binding, add restart support Marian Balakowicz @ 2007-10-17 12:58 ` Marian Balakowicz 2007-10-17 15:02 ` Grant Likely 2007-10-17 12:59 ` [PATCH 2/4] [POWERPC] Update device tree binding for mpc5200 gpt Marian Balakowicz ` (2 subsequent siblings) 3 siblings, 1 reply; 10+ messages in thread From: Marian Balakowicz @ 2007-10-17 12:58 UTC (permalink / raw) To: linuxppc-dev Add helper routine mpc52xx_find_and_map_path(). Extract common code to mpc52xx_map_node() and refactor mpc52xx_find_and_map(). Signed-off-by: Jan Wrobel <wrr@semihalf.com> Reviewed-by: Grant Likely <grant.likely@secretlab.ca> --- arch/powerpc/platforms/52xx/mpc52xx_common.c | 21 +++++++++++++++++---- include/asm-powerpc/mpc52xx.h | 1 + 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/arch/powerpc/platforms/52xx/mpc52xx_common.c b/arch/powerpc/platforms/52xx/mpc52xx_common.c index 3bc201e..74b4b41 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_common.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_common.c @@ -19,14 +19,12 @@ #include <asm/prom.h> #include <asm/mpc52xx.h> -void __iomem * -mpc52xx_find_and_map(const char *compatible) +static void __iomem * +mpc52xx_map_node(struct device_node *ofn) { - struct device_node *ofn; const u32 *regaddr_p; u64 regaddr64, size64; - ofn = of_find_compatible_node(NULL, NULL, compatible); if (!ofn) return NULL; @@ -42,8 +40,23 @@ mpc52xx_find_and_map(const char *compati return ioremap((u32)regaddr64, (u32)size64); } + +void __iomem * +mpc52xx_find_and_map(const char *compatible) +{ + return mpc52xx_map_node( + of_find_compatible_node(NULL, NULL, compatible)); +} + EXPORT_SYMBOL(mpc52xx_find_and_map); +void __iomem * +mpc52xx_find_and_map_path(const char *path) +{ + return mpc52xx_map_node(of_find_node_by_path(path)); +} + +EXPORT_SYMBOL(mpc52xx_find_and_map_path); /** * mpc52xx_find_ipb_freq - Find the IPB bus frequency for a device diff --git a/include/asm-powerpc/mpc52xx.h b/include/asm-powerpc/mpc52xx.h index 24751df..9cf05f9 100644 --- a/include/asm-powerpc/mpc52xx.h +++ b/include/asm-powerpc/mpc52xx.h @@ -242,6 +242,7 @@ #endif /* __ASSEMBLY__ */ #ifndef __ASSEMBLY__ extern void __iomem * mpc52xx_find_and_map(const char *); +extern void __iomem * mpc52xx_find_and_map_path(const char *path); extern unsigned int mpc52xx_find_ipb_freq(struct device_node *node); extern void mpc5200_setup_xlb_arbiter(void); extern void mpc52xx_declare_of_platform_devices(void); ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/4] [POWERPC] Add mpc52xx_find_and_map_path(), refactor utility functions 2007-10-17 12:58 ` [PATCH 1/4] [POWERPC] Add mpc52xx_find_and_map_path(), refactor utility functions Marian Balakowicz @ 2007-10-17 15:02 ` Grant Likely 0 siblings, 0 replies; 10+ messages in thread From: Grant Likely @ 2007-10-17 15:02 UTC (permalink / raw) To: Marian Balakowicz; +Cc: linuxppc-dev On 10/17/07, Marian Balakowicz <m8@semihalf.com> wrote: > > Add helper routine mpc52xx_find_and_map_path(). Extract common code to > mpc52xx_map_node() and refactor mpc52xx_find_and_map(). > > Signed-off-by: Jan Wrobel <wrr@semihalf.com> > Reviewed-by: Grant Likely <grant.likely@secretlab.ca> Yeah, this is probably okay. Eventually these util functions should be refactored to be usable by any platform. Cheers, g. -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. grant.likely@secretlab.ca (403) 399-0195 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/4] [POWERPC] Update device tree binding for mpc5200 gpt 2007-10-17 12:56 [PATCH 0/4] [POWERPC] MPC5200: update gpt binding, add restart support Marian Balakowicz 2007-10-17 12:58 ` [PATCH 1/4] [POWERPC] Add mpc52xx_find_and_map_path(), refactor utility functions Marian Balakowicz @ 2007-10-17 12:59 ` Marian Balakowicz 2007-10-17 15:12 ` Grant Likely 2007-10-17 13:01 ` [PATCH 3/4] [POWERPC] Add restart support for mpc52xx based platforms Marian Balakowicz 2007-10-17 13:02 ` [PATCH 4/4] [POWERPC] Enable restart support for lite5200 board Marian Balakowicz 3 siblings, 1 reply; 10+ messages in thread From: Marian Balakowicz @ 2007-10-17 12:59 UTC (permalink / raw) To: linuxppc-dev Add 'fsl,' prefix to 'compatible' property for gpt nodes. Add 'fsl,' prefix to empty, GPT0 specific 'has-wdt' property. Signed-off-by: Marian Balakowicz <m8@semihalf.com> --- Documentation/powerpc/mpc52xx-device-tree-bindings.txt | 4 +- arch/powerpc/boot/dts/lite5200.dts | 26 +++++------------ arch/powerpc/boot/dts/lite5200b.dts | 26 +++++------------ drivers/char/watchdog/mpc5200_wdt.c | 4 +- 4 files changed, 22 insertions(+), 38 deletions(-) diff --git a/Documentation/powerpc/mpc52xx-device-tree-bindings.txt b/Documentation/powerpc/mpc52xx-device-tree-bindings.txt index e59fcbb..fedf7ef 100644 --- a/Documentation/powerpc/mpc52xx-device-tree-bindings.txt +++ b/Documentation/powerpc/mpc52xx-device-tree-bindings.txt @@ -185,7 +185,7 @@ bestcomm@<addr> dma-controller mpc5200- Recommended soc5200 child nodes; populate as needed for your board name device_type compatible Description ---- ----------- ---------- ----------- -gpt@<addr> gpt mpc5200-gpt General purpose timers +gpt@<addr> gpt fsl,mpc5200-gpt General purpose timers rtc@<addr> rtc mpc5200-rtc Real time clock mscan@<addr> mscan mpc5200-mscan CAN bus controller pci@<addr> pci mpc5200-pci PCI bridge @@ -213,7 +213,7 @@ cell-index int When multiple devices ar 5) General Purpose Timer nodes (child of soc5200 node) On the mpc5200 and 5200b, GPT0 has a watchdog timer function. If the board design supports the internal wdt, then the device node for GPT0 should -include the empty property 'has-wdt'. +include the empty property 'fsl,has-wdt'. 6) PSC nodes (child of soc5200 node) PSC nodes can define the optional 'port-number' property to force assignment diff --git a/arch/powerpc/boot/dts/lite5200.dts b/arch/powerpc/boot/dts/lite5200.dts index bc45f5f..6731763 100644 --- a/arch/powerpc/boot/dts/lite5200.dts +++ b/arch/powerpc/boot/dts/lite5200.dts @@ -70,18 +70,16 @@ }; gpt@600 { // General Purpose Timer - compatible = "mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200-gpt"; cell-index = <0>; reg = <600 10>; interrupts = <1 9 0>; interrupt-parent = <&mpc5200_pic>; - has-wdt; + fsl,has-wdt; }; gpt@610 { // General Purpose Timer - compatible = "mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200-gpt"; cell-index = <1>; reg = <610 10>; interrupts = <1 a 0>; @@ -89,8 +87,7 @@ }; gpt@620 { // General Purpose Timer - compatible = "mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200-gpt"; cell-index = <2>; reg = <620 10>; interrupts = <1 b 0>; @@ -98,8 +95,7 @@ }; gpt@630 { // General Purpose Timer - compatible = "mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200-gpt"; cell-index = <3>; reg = <630 10>; interrupts = <1 c 0>; @@ -107,8 +103,7 @@ }; gpt@640 { // General Purpose Timer - compatible = "mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200-gpt"; cell-index = <4>; reg = <640 10>; interrupts = <1 d 0>; @@ -116,8 +111,7 @@ }; gpt@650 { // General Purpose Timer - compatible = "mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200-gpt"; cell-index = <5>; reg = <650 10>; interrupts = <1 e 0>; @@ -125,8 +119,7 @@ }; gpt@660 { // General Purpose Timer - compatible = "mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200-gpt"; cell-index = <6>; reg = <660 10>; interrupts = <1 f 0>; @@ -134,8 +127,7 @@ }; gpt@670 { // General Purpose Timer - compatible = "mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200-gpt"; cell-index = <7>; reg = <670 10>; interrupts = <1 10 0>; diff --git a/arch/powerpc/boot/dts/lite5200b.dts b/arch/powerpc/boot/dts/lite5200b.dts index a6bb1d0..9d12f28 100644 --- a/arch/powerpc/boot/dts/lite5200b.dts +++ b/arch/powerpc/boot/dts/lite5200b.dts @@ -70,18 +70,16 @@ }; gpt@600 { // General Purpose Timer - compatible = "mpc5200b-gpt","mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; cell-index = <0>; reg = <600 10>; interrupts = <1 9 0>; interrupt-parent = <&mpc5200_pic>; - has-wdt; + fsl,has-wdt; }; gpt@610 { // General Purpose Timer - compatible = "mpc5200b-gpt","mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; cell-index = <1>; reg = <610 10>; interrupts = <1 a 0>; @@ -89,8 +87,7 @@ }; gpt@620 { // General Purpose Timer - compatible = "mpc5200b-gpt","mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; cell-index = <2>; reg = <620 10>; interrupts = <1 b 0>; @@ -98,8 +95,7 @@ }; gpt@630 { // General Purpose Timer - compatible = "mpc5200b-gpt","mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; cell-index = <3>; reg = <630 10>; interrupts = <1 c 0>; @@ -107,8 +103,7 @@ }; gpt@640 { // General Purpose Timer - compatible = "mpc5200b-gpt","mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; cell-index = <4>; reg = <640 10>; interrupts = <1 d 0>; @@ -116,8 +111,7 @@ }; gpt@650 { // General Purpose Timer - compatible = "mpc5200b-gpt","mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; cell-index = <5>; reg = <650 10>; interrupts = <1 e 0>; @@ -125,8 +119,7 @@ }; gpt@660 { // General Purpose Timer - compatible = "mpc5200b-gpt","mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; cell-index = <6>; reg = <660 10>; interrupts = <1 f 0>; @@ -134,8 +127,7 @@ }; gpt@670 { // General Purpose Timer - compatible = "mpc5200b-gpt","mpc5200-gpt"; - device_type = "gpt"; + compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; cell-index = <7>; reg = <670 10>; interrupts = <1 10 0>; diff --git a/drivers/char/watchdog/mpc5200_wdt.c b/drivers/char/watchdog/mpc5200_wdt.c index 564143d..9aaba7a 100644 --- a/drivers/char/watchdog/mpc5200_wdt.c +++ b/drivers/char/watchdog/mpc5200_wdt.c @@ -174,7 +174,7 @@ static int mpc5200_wdt_probe(struct of_d const void *has_wdt; int size; - has_wdt = of_get_property(op->node, "has-wdt", NULL); + has_wdt = of_get_property(op->node, "fsl,has-wdt", NULL); if (!has_wdt) return -ENODEV; @@ -253,7 +253,7 @@ static int mpc5200_wdt_shutdown(struct o } static struct of_device_id mpc5200_wdt_match[] = { - { .compatible = "mpc5200-gpt", }, + { .compatible = "fsl,mpc5200-gpt", }, {}, }; static struct of_platform_driver mpc5200_wdt_driver = { ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/4] [POWERPC] Update device tree binding for mpc5200 gpt 2007-10-17 12:59 ` [PATCH 2/4] [POWERPC] Update device tree binding for mpc5200 gpt Marian Balakowicz @ 2007-10-17 15:12 ` Grant Likely 0 siblings, 0 replies; 10+ messages in thread From: Grant Likely @ 2007-10-17 15:12 UTC (permalink / raw) To: Marian Balakowicz; +Cc: linuxppc-dev On 10/17/07, Marian Balakowicz <m8@semihalf.com> wrote: > > Add 'fsl,' prefix to 'compatible' property for gpt nodes. > Add 'fsl,' prefix to empty, GPT0 specific 'has-wdt' property. > > diff --git a/drivers/char/watchdog/mpc5200_wdt.c b/drivers/char/watchdog/mpc5200_wdt.c > index 564143d..9aaba7a 100644 > --- a/drivers/char/watchdog/mpc5200_wdt.c > +++ b/drivers/char/watchdog/mpc5200_wdt.c > @@ -174,7 +174,7 @@ static int mpc5200_wdt_probe(struct of_d > const void *has_wdt; > int size; > > - has_wdt = of_get_property(op->node, "has-wdt", NULL); > + has_wdt = of_get_property(op->node, "fsl,has-wdt", NULL); > if (!has_wdt) > return -ENODEV; Do this instead: has_wdt = of_get_property(op->node, "has-wdt", NULL); + if (!has_wdt) + has_wdt = of_get_property(op->node, "fsl,has-wdt", NULL); if (!has_wdt) return -ENODEV; This will allow it to still work with older device trees. > > @@ -253,7 +253,7 @@ static int mpc5200_wdt_shutdown(struct o > } > > static struct of_device_id mpc5200_wdt_match[] = { > - { .compatible = "mpc5200-gpt", }, > + { .compatible = "fsl,mpc5200-gpt", }, Keep both the old and new in the match table for now for the same reason. Otherwise, looks good. Thanks. g. -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. grant.likely@secretlab.ca (403) 399-0195 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 3/4] [POWERPC] Add restart support for mpc52xx based platforms 2007-10-17 12:56 [PATCH 0/4] [POWERPC] MPC5200: update gpt binding, add restart support Marian Balakowicz 2007-10-17 12:58 ` [PATCH 1/4] [POWERPC] Add mpc52xx_find_and_map_path(), refactor utility functions Marian Balakowicz 2007-10-17 12:59 ` [PATCH 2/4] [POWERPC] Update device tree binding for mpc5200 gpt Marian Balakowicz @ 2007-10-17 13:01 ` Marian Balakowicz 2007-10-17 14:02 ` Stephen Rothwell 2007-10-17 15:30 ` Grant Likely 2007-10-17 13:02 ` [PATCH 4/4] [POWERPC] Enable restart support for lite5200 board Marian Balakowicz 3 siblings, 2 replies; 10+ messages in thread From: Marian Balakowicz @ 2007-10-17 13:01 UTC (permalink / raw) To: linuxppc-dev Add common helper routines: mpc52xx_map_wdt() and mpc52xx_restart(). This patch relies on Sascha Hauer's patch published in: http://patchwork.ozlabs.org/linuxppc/patch?id=8910. Signed-off-by: Marian Balakowicz <m8@semihalf.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> --- arch/powerpc/platforms/52xx/mpc52xx_common.c | 45 +++++++++++++++++++++++++++ include/asm-powerpc/mpc52xx.h | 3 + 2 files changed, 48 insertions(+) diff --git a/arch/powerpc/platforms/52xx/mpc52xx_common.c b/arch/powerpc/platforms/52xx/mpc52xx_common.c index 74b4b41..553937b 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_common.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_common.c @@ -18,6 +18,13 @@ #include <asm/io.h> #include <asm/prom.h> #include <asm/mpc52xx.h> +/* + * This variable is mapped in mpc52xx_map_wdt() and used in mpc52xx_restart(). + * Permanent mapping is required because mpc52xx_restart() can be called + * from interrupt context while node mapping (which calls iorenmap()) + * cannot be used at such point. + */ +static volatile struct mpc52xx_gpt *mpc52xx_wdt = NULL; static void __iomem * mpc52xx_map_node(struct device_node *ofn) @@ -126,3 +133,41 @@ mpc52xx_declare_of_platform_devices(void "Error while probing of_platform bus\n"); } +void __init +mpc52xx_map_wdt(void) +{ + const void *has_wdt; + struct device_node *np; + + /* mpc52xx_wdt is mapped here and used in mpc52xx_restart, + * possibly from a interrupt context. */ + + for (np = NULL; + (np = of_find_compatible_node(np, NULL, "fsl,mpc5200-gpt")) != NULL; + ) { + /* wdt is only implement on gpt0, check has-wdt property. */ + has_wdt = of_get_property(np, "fsl,has-wdt", NULL); + if (has_wdt) { + mpc52xx_wdt = mpc52xx_map_node(np); + break; + } + } +} + +void +mpc52xx_restart(char *cmd) +{ + local_irq_disable(); + + /* Turn on the watchdog and wait for it to expire. + * It effectively does a reset. */ + if (mpc52xx_wdt) { + out_be32(&mpc52xx_wdt->mode, 0x00000000); + out_be32(&mpc52xx_wdt->count, 0x000000ff); + out_be32(&mpc52xx_wdt->mode, 0x00009004); + } else + printk("mpc52xx_restart: Can't access wdt. " + "Restart impossible, system halted.\n"); + + while (1); +} diff --git a/include/asm-powerpc/mpc52xx.h b/include/asm-powerpc/mpc52xx.h index 9cf05f9..39f619f 100644 --- a/include/asm-powerpc/mpc52xx.h +++ b/include/asm-powerpc/mpc52xx.h @@ -252,6 +252,9 @@ extern unsigned int mpc52xx_get_irq(void extern int __init mpc52xx_add_bridge(struct device_node *node); +extern void __init mpc52xx_map_wdt(void); +extern void mpc52xx_restart(char *cmd); + #endif /* __ASSEMBLY__ */ #ifdef CONFIG_PM ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 3/4] [POWERPC] Add restart support for mpc52xx based platforms 2007-10-17 13:01 ` [PATCH 3/4] [POWERPC] Add restart support for mpc52xx based platforms Marian Balakowicz @ 2007-10-17 14:02 ` Stephen Rothwell 2007-10-17 15:30 ` Grant Likely 1 sibling, 0 replies; 10+ messages in thread From: Stephen Rothwell @ 2007-10-17 14:02 UTC (permalink / raw) To: Marian Balakowicz; +Cc: linuxppc-dev [-- Attachment #1: Type: text/plain, Size: 628 bytes --] On Wed, 17 Oct 2007 15:01:28 +0200 Marian Balakowicz <m8@semihalf.com> wrote: > > +void __init > +mpc52xx_map_wdt(void) > +{ > + const void *has_wdt; ^^^^^^^^ white space damage > + struct device_node *np; > + > + /* mpc52xx_wdt is mapped here and used in mpc52xx_restart, > + * possibly from a interrupt context. */ > + > + for (np = NULL; > + (np = of_find_compatible_node(np, NULL, "fsl,mpc5200-gpt")) != NULL; > + ) { for_each_compatible_node(np, NULL, "fsl,mpc5200-gpt") { -- Cheers, Stephen Rothwell sfr@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 3/4] [POWERPC] Add restart support for mpc52xx based platforms 2007-10-17 13:01 ` [PATCH 3/4] [POWERPC] Add restart support for mpc52xx based platforms Marian Balakowicz 2007-10-17 14:02 ` Stephen Rothwell @ 2007-10-17 15:30 ` Grant Likely 1 sibling, 0 replies; 10+ messages in thread From: Grant Likely @ 2007-10-17 15:30 UTC (permalink / raw) To: Marian Balakowicz; +Cc: linuxppc-dev On 10/17/07, Marian Balakowicz <m8@semihalf.com> wrote: > > Add common helper routines: mpc52xx_map_wdt() and mpc52xx_restart(). > > This patch relies on Sascha Hauer's patch published in: > http://patchwork.ozlabs.org/linuxppc/patch?id=8910. > > Signed-off-by: Marian Balakowicz <m8@semihalf.com> > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> > --- > > arch/powerpc/platforms/52xx/mpc52xx_common.c | 45 +++++++++++++++++++++++++++ > include/asm-powerpc/mpc52xx.h | 3 + > 2 files changed, 48 insertions(+) > > diff --git a/arch/powerpc/platforms/52xx/mpc52xx_common.c b/arch/powerpc/platforms/52xx/mpc52xx_common.c > index 74b4b41..553937b 100644 > --- a/arch/powerpc/platforms/52xx/mpc52xx_common.c > +++ b/arch/powerpc/platforms/52xx/mpc52xx_common.c > @@ -18,6 +18,13 @@ #include <asm/io.h> > #include <asm/prom.h> > #include <asm/mpc52xx.h> > > +/* > + * This variable is mapped in mpc52xx_map_wdt() and used in mpc52xx_restart(). > + * Permanent mapping is required because mpc52xx_restart() can be called > + * from interrupt context while node mapping (which calls iorenmap()) > + * cannot be used at such point. > + */ > +static volatile struct mpc52xx_gpt *mpc52xx_wdt = NULL; > > static void __iomem * > mpc52xx_map_node(struct device_node *ofn) > @@ -126,3 +133,41 @@ mpc52xx_declare_of_platform_devices(void > "Error while probing of_platform bus\n"); > } > > +void __init > +mpc52xx_map_wdt(void) > +{ > + const void *has_wdt; > + struct device_node *np; > + > + /* mpc52xx_wdt is mapped here and used in mpc52xx_restart, > + * possibly from a interrupt context. */ > + > + for (np = NULL; > + (np = of_find_compatible_node(np, NULL, "fsl,mpc5200-gpt")) != NULL; > + ) { > + /* wdt is only implement on gpt0, check has-wdt property. */ > + has_wdt = of_get_property(np, "fsl,has-wdt", NULL); Test for both "has-wdt" and "fsl,has-wdt" for now. Otherwise, looks good. Cheers, g. -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. grant.likely@secretlab.ca (403) 399-0195 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 4/4] [POWERPC] Enable restart support for lite5200 board 2007-10-17 12:56 [PATCH 0/4] [POWERPC] MPC5200: update gpt binding, add restart support Marian Balakowicz ` (2 preceding siblings ...) 2007-10-17 13:01 ` [PATCH 3/4] [POWERPC] Add restart support for mpc52xx based platforms Marian Balakowicz @ 2007-10-17 13:02 ` Marian Balakowicz 2007-10-17 15:31 ` Grant Likely 3 siblings, 1 reply; 10+ messages in thread From: Marian Balakowicz @ 2007-10-17 13:02 UTC (permalink / raw) To: linuxppc-dev Signed-off-by: Marian Balakowicz <m8@semihalf.com> --- lite5200.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/powerpc/platforms/52xx/lite5200.c b/arch/powerpc/platforms/52xx/lite5200.c index 0caa3d9..ce9e3ee 100644 --- a/arch/powerpc/platforms/52xx/lite5200.c +++ b/arch/powerpc/platforms/52xx/lite5200.c @@ -143,6 +143,9 @@ #endif /* Some mpc5200 & mpc5200b related configuration */ mpc5200_setup_xlb_arbiter(); + /* Map wdt for mpc52xx_restart() */ + mpc52xx_map_wdt(); + #ifdef CONFIG_PM mpc52xx_suspend.board_suspend_prepare = lite5200_suspend_prepare; mpc52xx_suspend.board_resume_finish = lite5200_resume_finish; @@ -193,5 +196,6 @@ define_machine(lite5200) { .init = mpc52xx_declare_of_platform_devices, .init_IRQ = mpc52xx_init_irq, .get_irq = mpc52xx_get_irq, + .restart = mpc52xx_restart, .calibrate_decr = generic_calibrate_decr, }; ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 4/4] [POWERPC] Enable restart support for lite5200 board 2007-10-17 13:02 ` [PATCH 4/4] [POWERPC] Enable restart support for lite5200 board Marian Balakowicz @ 2007-10-17 15:31 ` Grant Likely 0 siblings, 0 replies; 10+ messages in thread From: Grant Likely @ 2007-10-17 15:31 UTC (permalink / raw) To: Marian Balakowicz; +Cc: linuxppc-dev On 10/17/07, Marian Balakowicz <m8@semihalf.com> wrote: > > Signed-off-by: Marian Balakowicz <m8@semihalf.com> Looks good; I'll pick this one up when you respin the others. Cheers, g. -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. grant.likely@secretlab.ca (403) 399-0195 ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2007-10-17 15:31 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-10-17 12:56 [PATCH 0/4] [POWERPC] MPC5200: update gpt binding, add restart support Marian Balakowicz 2007-10-17 12:58 ` [PATCH 1/4] [POWERPC] Add mpc52xx_find_and_map_path(), refactor utility functions Marian Balakowicz 2007-10-17 15:02 ` Grant Likely 2007-10-17 12:59 ` [PATCH 2/4] [POWERPC] Update device tree binding for mpc5200 gpt Marian Balakowicz 2007-10-17 15:12 ` Grant Likely 2007-10-17 13:01 ` [PATCH 3/4] [POWERPC] Add restart support for mpc52xx based platforms Marian Balakowicz 2007-10-17 14:02 ` Stephen Rothwell 2007-10-17 15:30 ` Grant Likely 2007-10-17 13:02 ` [PATCH 4/4] [POWERPC] Enable restart support for lite5200 board Marian Balakowicz 2007-10-17 15:31 ` Grant Likely
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).