[patch v2 1/2] mc13892: reboot on wdi event
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Wed Mar 2 14:47:16 EST 2011
Hello Arnaud,
On Wed, Mar 02, 2011 at 07:45:13PM +0100, Arnaud Patard wrote:
> By default, on wdi (watchdog input) event the mc13892 is powering off.
> This patch allows to change this behaviour throught platform_data.
>
> v2:
> - move to mc13xxx-core
> - make it configurable
>
> Signed-off-by: Arnaud Patard <arnaud.patard at rtp-net.org>
>
> Index: linux-2.6-submit/drivers/mfd/mc13xxx-core.c
> ===================================================================
> --- linux-2.6-submit.orig/drivers/mfd/mc13xxx-core.c 2011-03-01 22:26:40.000000000 +0100
> +++ linux-2.6-submit/drivers/mfd/mc13xxx-core.c 2011-03-02 12:24:30.000000000 +0100
> @@ -136,6 +136,9 @@
> #define MC13XXX_REVISION_FAB (0x03 << 11)
> #define MC13XXX_REVISION_ICIDCODE (0x3f << 13)
>
> +#define MC13892_POWERCTL2 15
> +#define MC13892_POWERCTL2_WDIRESET (1<<12)
> +
> #define MC13783_ADC1 44
> #define MC13783_ADC1_ADEN (1 << 0)
> #define MC13783_ADC1_RAND (1 << 1)
> @@ -715,6 +718,7 @@
> struct mc13xxx_platform_data *pdata = dev_get_platdata(&spi->dev);
> enum mc13xxx_id id;
> int ret;
> + unsigned int val;
>
> mc13xxx = kzalloc(sizeof(*mc13xxx), GFP_KERNEL);
> if (!mc13xxx)
> @@ -734,6 +738,15 @@
> if (ret || id == MC13XXX_ID_INVALID)
> goto err_revision;
>
> + if ((id == MC13XXX_ID_MC13892) && pdata->wdi_reboot) {
> + /* allows to reboot on wdi event */
> + ret = mc13xxx_reg_read(mc13xxx, MC13892_POWERCTL2, &val);
> + if (!ret) {
> + val |= MC13892_POWERCTL2_WDIRESET;
> + mc13xxx_reg_write(mc13xxx, MC13892_POWERCTL2, val);
> + }
> + }
> +
> /* mask all irqs */
> ret = mc13xxx_reg_write(mc13xxx, MC13XXX_IRQMASK0, 0x00ffffff);
> if (ret)
> Index: linux-2.6-submit/include/linux/mfd/mc13xxx.h
> ===================================================================
> --- linux-2.6-submit.orig/include/linux/mfd/mc13xxx.h 2011-03-01 22:30:59.000000000 +0100
> +++ linux-2.6-submit/include/linux/mfd/mc13xxx.h 2011-03-01 22:31:27.000000000 +0100
> @@ -149,6 +149,8 @@
git diff provide some info about the context after the @@ hunk header.
I consider this really useful. GNU diff is able to do this, too (option
-p).
> int num_regulators;
> struct mc13xxx_regulator_init_data *regulators;
> struct mc13xxx_leds_platform_data *leds;
> +
> + unsigned int wdi_reboot;
there is already a member .flags. What about defining another bit for
that?
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
More information about the linux-arm-kernel
mailing list