linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: "Grant Likely" <grant.likely@secretlab.ca>
To: "Marian Balakowicz" <m8@semihalf.com>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: [PATCH 12/15] [POWERPC] Add mpc52xx_restart(), mpc52xx_halt(), mpc52xx_power_off().
Date: Mon, 8 Oct 2007 01:15:11 -0600	[thread overview]
Message-ID: <fa686aa40710080015h10096e92hd0671962aed25cf6@mail.gmail.com> (raw)
In-Reply-To: <4708C3B2.1050103@semihalf.com>

On 10/7/07, Marian Balakowicz <m8@semihalf.com> wrote:
>
> Add common MPC5200 helper routines: mpc52xx_restart(), mpc52xx_halt(),
> mpc52xx_power_off().
>
> 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                |    7 ++++
>  2 files changed, 52 insertions(+)
>
> diff --git a/arch/powerpc/platforms/52xx/mpc52xx_common.c b/arch/powerpc/platforms/52xx/mpc52xx_common.c
> index b1cd7b0..e7087d7 100644
> --- a/arch/powerpc/platforms/52xx/mpc52xx_common.c
> +++ b/arch/powerpc/platforms/52xx/mpc52xx_common.c
> @@ -88,6 +88,14 @@ mpc52xx_find_ipb_freq(struct device_node *node)
>  }
>  EXPORT_SYMBOL(mpc52xx_find_ipb_freq);
>
> +/*
> + * This variable is mapped in mpc52xx_setup_cpu() by a call to
> + * mpc52xx_find_and_map(), and used in mpc52xx_restart(). This is because
> + * mpc52xx_restart() can be called from interrupt context (e.g., watchdog
> + * interrupt handler), and mpc52xx_find_and_map() (ioremap() to be exact)
> + * can't be called from interrupt context.
> + */
> +volatile struct mpc52xx_gpt *mpc52xx_gpt0 = NULL;
>
>  void __init
>  mpc52xx_setup_cpu(void)
> @@ -95,6 +103,9 @@ mpc52xx_setup_cpu(void)
>         struct mpc52xx_cdm  __iomem *cdm;
>         struct mpc52xx_xlb  __iomem *xlb;
>
> +       /* mpc52xx_gpt0 is mapped here and used in mpc52xx_restart */
> +       mpc52xx_gpt0 = mpc52xx_find_and_map("mpc5200-gpt");
> +
>         /* Map zones */
>         cdm = mpc52xx_find_and_map("mpc5200-cdm");
>         xlb = mpc52xx_find_and_map("mpc5200-xlb");
> @@ -138,3 +149,37 @@ mpc52xx_declare_of_platform_devices(void)
>                         "Error while probing of_platform bus\n");
>  }
>
> +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_gpt0) {
> +               out_be32(&mpc52xx_gpt0->mode, 0x00000000);
> +               out_be32(&mpc52xx_gpt0->count, 0x000000ff);
> +               out_be32(&mpc52xx_gpt0->mode, 0x00009004);
> +       } else
> +               printk("mpc52xx_restart: Can't access gpt. "
> +                       "Restart impossible, system halted\n");
> +
> +       while (1);
> +}
> +
> +void
> +mpc52xx_halt(void)
> +{
> +       local_irq_disable();
> +
> +       while (1);
> +}
> +
> +void
> +mpc52xx_power_off(void)
> +{
> +       /* By default we don't have any way of shut down.
> +          If a specific board wants to, it can set the power down
> +          code to any hardware implementation dependent code */
> +       mpc52xx_halt();
> +}
> diff --git a/include/asm-powerpc/mpc52xx.h b/include/asm-powerpc/mpc52xx.h
> index a431798..8dfb4de 100644
> --- a/include/asm-powerpc/mpc52xx.h
> +++ b/include/asm-powerpc/mpc52xx.h
> @@ -104,6 +104,9 @@ struct mpc52xx_gpt {
>         u32 status;             /* GPTx + 0X0c */
>  };
>
> +/* Static instance of GPT0 */
> +extern volatile struct mpc52xx_gpt *mpc52xx_gpt0;
> +

No; don't make this a global symbol.  Restrict it to the
mpc52xx_common file.  Use a helper function if you need to too set the
value.

>  /* GPIO */
>  struct mpc52xx_gpio {
>         u32 port_config;        /* GPIO + 0x00 */
> @@ -257,6 +260,10 @@ extern unsigned int mpc52xx_get_irq(void);
>
>  extern int __init mpc52xx_add_bridge(struct device_node *node);
>
> +extern void mpc52xx_restart(char *cmd);
> +extern void mpc52xx_halt(void);
> +extern void mpc52xx_power_off(void);
> +
>  #endif /* __ASSEMBLY__ */
>
>  #ifdef CONFIG_PM
>
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>


-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195

  reply	other threads:[~2007-10-08  7:15 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-06 10:12 [PATCH 00/15] [POWERPC] TQM5200, CM5200 and Motion-PRO support Marian Balakowicz
2007-10-07 11:15 ` [PATCH 01/15] [POWERPC] TQM5200 DTS Marian Balakowicz
2007-10-07 17:36   ` Grant Likely
2007-10-07 20:30     ` Wolfgang Denk
2007-10-17 11:10     ` Marian Balakowicz
2007-10-17 14:57       ` Grant Likely
2007-10-08  6:27   ` Grant Likely
2007-10-08 13:52     ` Kumar Gala
2007-10-07 11:18 ` [PATCH 02/15] [POWERPC] TQM5200 defconfig Marian Balakowicz
2007-10-07 11:19 ` [POWERPC 03/15] [POWERPC] TQM5200 board support Marian Balakowicz
2007-10-07 12:21   ` Stephen Rothwell
2007-10-08  6:21   ` Grant Likely
2007-10-08  7:44     ` Wolfgang Denk
2007-10-08  7:54       ` Grant Likely
2007-10-08 20:48         ` Grant Likely
2007-10-08 22:32           ` Wolfgang Denk
2007-10-08 22:37             ` Grant Likely
2007-10-17 11:24     ` Marian Balakowicz
2007-10-08 15:04   ` Scott Wood
2007-10-17 11:42     ` Marian Balakowicz
2007-10-17 15:33       ` Scott Wood
2007-10-07 11:20 ` [PATCH 04/15] [POWERPC] CM5200 DTS Marian Balakowicz
2007-10-08  1:50   ` David Gibson
2007-10-17 12:22     ` Marian Balakowicz
2007-10-17 14:59       ` Grant Likely
2007-10-18  0:22       ` David Gibson
2007-10-19 11:06         ` Marian Balakowicz
2007-10-07 11:22 ` [PATCH 05/15] [POWERPC] CM5200 defconfig Marian Balakowicz
2007-10-07 11:24 ` [PATCH 06/15] [POWERPC] CM5200 board support Marian Balakowicz
2007-10-07 12:29   ` Stephen Rothwell
2007-10-08  6:28     ` Grant Likely
2007-10-07 11:25 ` [PATCH 07/15] [POWERPC] Promess Motion-PRO DTS Marian Balakowicz
2007-10-08  1:53   ` David Gibson
2007-10-08  6:44   ` Grant Likely
2007-10-08 14:58   ` Scott Wood
2007-10-08 15:16     ` Grant Likely
2007-10-18 12:50   ` Wolfgang Grandegger
2007-10-18 12:54     ` David Gibson
2007-10-18 13:16     ` Grant Likely
2007-10-07 11:26 ` [PATCH 08/15] [POWERPC] Promess Motion-PRO defconfig Marian Balakowicz
2007-10-07 11:28 ` [PATCH 09/15] [POWERPC] Promess Motion-PRO board support Marian Balakowicz
2007-10-07 12:32   ` Stephen Rothwell
2007-10-08  6:45     ` Grant Likely
2007-10-07 11:30 ` [PATCH 10/15] [POWERPC] Add mpc52xx_find_and_map_path(), refactor utility functions Marian Balakowicz
2007-10-08  6:47   ` Grant Likely
2007-10-07 11:31 ` [PATCH 11/15] [POWERPC] Motion-PRO: Add LED support Marian Balakowicz
2007-10-08  7:10   ` Grant Likely
2007-10-07 11:32 ` [PATCH 12/15] [POWERPC] Add mpc52xx_restart(), mpc52xx_halt(), mpc52xx_power_off() Marian Balakowicz
2007-10-08  7:15   ` Grant Likely [this message]
2007-10-08 13:56   ` Kumar Gala
2007-10-07 11:32 ` [PATCH 13/15] [POWERPC] Init restart/halt/power_off machine hooks for TQM5200 Marian Balakowicz
2007-10-07 11:35 ` [PATCH 14/15] [POWERPC] Init restart/halt/power_off machine hooks for CM5200 Marian Balakowicz
2007-10-07 11:36 ` [PATCH 15/15] [POWERPC] Init restart/halt/power_off machine hooks for Motion-PRO Marian Balakowicz
2007-10-08  7:16 ` [PATCH 00/15] [POWERPC] TQM5200, CM5200 and Motion-PRO support Grant Likely
2007-10-08 13:57 ` Kumar Gala
2007-10-09  9:08 ` Marian Balakowicz
2007-10-09 14:38   ` Grant Likely
2007-10-09 15:57     ` Kumar Gala

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=fa686aa40710080015h10096e92hd0671962aed25cf6@mail.gmail.com \
    --to=grant.likely@secretlab.ca \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=m8@semihalf.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).