[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20191116162051.GA23056@roeck-us.net>
Date: Sat, 16 Nov 2019 08:20:51 -0800
From: Guenter Roeck <linux@...ck-us.net>
To: Eugen.Hristev@...rochip.com
Cc: wim@...ux-watchdog.org, robh+dt@...nel.org,
alexandre.belloni@...tlin.com, devicetree@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
Nicolas.Ferre@...rochip.com, linux-watchdog@...r.kernel.org
Subject: Re: [PATCH v4 3/3] watchdog: sama5d4_wdt: addition of sam9x60
compatible watchdog
On Fri, Nov 15, 2019 at 08:30:18AM +0000, Eugen.Hristev@...rochip.com wrote:
> From: Eugen Hristev <eugen.hristev@...rochip.com>
>
> Add support for SAM9X60 WDT into sama5d4_wdt.
> This means that this driver gets a flag inside the data struct
> that represents the sam9x60 support.
> This flag differentiates between the two hardware blocks, and is set
> according to the compatible of the driver instantiation.
>
> Signed-off-by: Eugen Hristev <eugen.hristev@...rochip.com>
> ---
> Changes in v4:
> - check compatible with different of_ function
> - call irq parse and map only if need_irq
> - changed tabbing in struct defintion
>
> Changes in v3:
> - changed need_irq to bool, instead of a single bit variable.
> - the platform data config struct is gone now, changed to a pointer to a bool
> to have the sam9x60_support as 'true', pointing to a static bool with true value.
> Can have a better solution than this ?
> - the specific sam9x60_support flag is assigned at probe time, corresponding
> to the flag value in .data
>
> drivers/watchdog/at91sam9_wdt.h | 14 ++++++
> drivers/watchdog/sama5d4_wdt.c | 109 +++++++++++++++++++++++++++++++---------
> 2 files changed, 98 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/watchdog/at91sam9_wdt.h b/drivers/watchdog/at91sam9_wdt.h
> index abfe34d..4b3bd1d 100644
> --- a/drivers/watchdog/at91sam9_wdt.h
> +++ b/drivers/watchdog/at91sam9_wdt.h
> @@ -24,7 +24,10 @@
> #define AT91_WDT_MR 0x04 /* Watchdog Mode Register */
> #define AT91_WDT_WDV (0xfffUL << 0) /* Counter Value */
> #define AT91_WDT_SET_WDV(x) ((x) & AT91_WDT_WDV)
> +#define AT91_SAM9X60_PERIODRST BIT(4) /* Period Reset */
> +#define AT91_SAM9X60_RPTHRST BIT(5) /* Minimum Restart Period */
> #define AT91_WDT_WDFIEN BIT(12) /* Fault Interrupt Enable */
> +#define AT91_SAM9X60_WDDIS BIT(12) /* Watchdog Disable */
> #define AT91_WDT_WDRSTEN BIT(13) /* Reset Processor */
> #define AT91_WDT_WDRPROC BIT(14) /* Timer Restart */
> #define AT91_WDT_WDDIS BIT(15) /* Watchdog Disable */
> @@ -37,4 +40,15 @@
> #define AT91_WDT_WDUNF BIT(0) /* Watchdog Underflow */
> #define AT91_WDT_WDERR BIT(1) /* Watchdog Error */
>
> +#define AT91_SAM9X60_VR 0x08 /* Watchdog Timer Value Register */
> +
> +#define AT91_SAM9X60_WLR 0x0c
> +#define AT91_SAM9X60_COUNTER (0xfffUL << 0) /* Watchdog Period Value */
> +#define AT91_SAM9X60_SET_COUNTER(x) ((x) & AT91_SAM9X60_COUNTER)
> +
> +#define AT91_SAM9X60_IER 0x14 /* Interrupt Enable Register */
> +#define AT91_SAM9X60_PERINT BIT(0) /* Period Interrupt Enable */
> +#define AT91_SAM9X60_IDR 0x18 /* Interrupt Disable Register */
> +#define AT91_SAM9X60_ISR 0x1c /* Interrupt Status Register */
> +
Lots of line-too-long checkpatch warnings. Please avoid.
Thanks,
Guenter
Powered by blists - more mailing lists