From: <Balakrishnan.S@microchip.com>
To: <alexandre.belloni@bootlin.com>
Cc: <wim@linux-watchdog.org>, <linux@roeck-us.net>,
<Nicolas.Ferre@microchip.com>, <claudiu.beznea@tuxon.dev>,
<linux-watchdog@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>, <andrei.simion@microchip.com>
Subject: Re: [PATCH 1/3] watchdog: at91sam9_wdt.h: Cleanup the header file
Date: Mon, 2 Mar 2026 07:11:37 +0000 [thread overview]
Message-ID: <4ad39929-426a-4d6c-adde-b0ebf36bc541@microchip.com> (raw)
In-Reply-To: <202602270752399219b90c@mail.local>
Hi,
Thanks for the comments.
On 27/02/26 1:22 pm, Alexandre Belloni wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> On 27/02/2026 13:01:14+0530, Balakrishnan Sambath wrote:
>> From: Andrei Simion <andrei.simion@microchip.com>
>>
>> This patch reorganizes the header file by renaming the registers using
>> a general pattern also this patch simplifies the watchdog disable logic
>> in the at91sam9_wdt.h header by differentiating between modern
>> (SAM9X60, SAMA7G5, SAM9X7) and legacy (SAMA5, AT91SAM9261) chips based
>> on the watchdog disable bit.
>> For modern chips, the disable bit is at bit 12, while for legacy chips
>> it is at bit 15.
>>
>> Signed-off-by: Andrei Simion <andrei.simion@microchip.com>
>> [Remove Kconfig-based WDDIS selection and define explicit legacy and
>> modern masks]
>> Signed-off-by: Balakrishnan Sambath <balakrishnan.s@microchip.com>
>> ---
>> drivers/watchdog/at91sam9_wdt.h | 65 ++++++++++++++++-----------------
>> 1 file changed, 32 insertions(+), 33 deletions(-)
>>
>> diff --git a/drivers/watchdog/at91sam9_wdt.h b/drivers/watchdog/at91sam9_wdt.h
>> index 298d545df1a1..1e0aeecb489f 100644
>> --- a/drivers/watchdog/at91sam9_wdt.h
>> +++ b/drivers/watchdog/at91sam9_wdt.h
>> @@ -3,59 +3,58 @@
>> * drivers/watchdog/at91sam9_wdt.h
>> *
>> * Copyright (C) 2007 Andrew Victor
>> * Copyright (C) 2007 Atmel Corporation.
>> * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
>> *
>> * Watchdog Timer (WDT) - System peripherals regsters.
>> * Based on AT91SAM9261 datasheet revision D.
>> * Based on SAM9X60 datasheet.
>> + * Based on SAMA7G5 datasheet.
>> + * Based on SAM9X75 datasheet.
>> *
>> */
>>
>> #ifndef AT91_WDT_H
>> #define AT91_WDT_H
>>
>> #include <linux/bits.h>
>>
>> -#define AT91_WDT_CR 0x00 /* Watchdog Control Register */
>> -#define AT91_WDT_WDRSTT BIT(0) /* Restart */
>> -#define AT91_WDT_KEY (0xa5UL << 24) /* KEY Password */
>> -
>> -#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_CR 0x00 /* Watchdog Control Register */
>> +#define AT91_WDT_WDRSTT BIT(0) /* Restart */
>> +#define AT91_WDT_KEY (0xa5UL << 24) /* KEY Password */
>> +#define AT91_WDT_MR 0x04 /* Watchdog Mode Register */
>> +#define AT91_WDT_WDV (0xfffUL << 0) /* Counter Value */
>> #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 */
>> -#define AT91_WDT_WDD (0xfffUL << 16) /* Delta Value */
>> -#define AT91_WDT_SET_WDD(x) (((x) << 16) & AT91_WDT_WDD)
>> -#define AT91_WDT_WDDBGHLT BIT(28) /* Debug Halt */
>> -#define AT91_WDT_WDIDLEHLT BIT(29) /* Idle Halt */
>> -
>> +#define AT91_WDT_WDRSTEN BIT(13)
>> +#define AT91_WDT_WDRPROC BIT(14)
>> +#define AT91_WDT_WDD (0xfffUL << 16)
>> +#define AT91_WDT_WDDBGHLT BIT(28)
>> +#define AT91_WDT_WDIDLEHLT BIT(29)
>> #define AT91_WDT_SR 0x08 /* Watchdog Status Register */
>> #define AT91_WDT_WDUNF BIT(0) /* Watchdog Underflow */
>> #define AT91_WDT_WDERR BIT(1) /* Watchdog Error */
>>
>> -/* Watchdog Timer Value Register */
>> -#define AT91_SAM9X60_VR 0x08
>> +#define AT91_WDT_SET_WDV(x) ((x) & AT91_WDT_WDV)
>> +#define AT91_WDT_SET_WDD(x) (((x) << 16) & AT91_WDT_WDD)
>>
>> -/* Watchdog Window Level Register */
>> -#define AT91_SAM9X60_WLR 0x0c
>> -/* Watchdog Period Value */
>> -#define AT91_SAM9X60_COUNTER (0xfffUL << 0)
>> -#define AT91_SAM9X60_SET_COUNTER(x) ((x) & AT91_SAM9X60_COUNTER)
>> +#define AT91_WDT_VR 0x08 /* Watchdog Timer Value Register */
>> +#define AT91_WDT_ISR 0x1c /* Interrupt Status Register */
>> +#define AT91_WDT_IER 0x14 /* Interrupt Enable Register */
>> +#define AT91_WDT_IDR 0x18 /* Interrupt Disable Register */
>> +#define AT91_WDT_WLR 0x0c /* Watchdog Window Level Register */
>> +#define AT91_WDT_PERIODRST BIT(4) /* Period Reset */
>> +#define AT91_WDT_RPTHRST BIT(5) /* Minimum Restart Period */
>> +#define AT91_WDT_PERINT BIT(0) /* Period Interrupt Enable */
>> +#define AT91_WDT_COUNTER (0xfffUL << 0) /* Watchdog Period Value */
>> +#define AT91_WDT_SET_COUNTER(x) ((x) & AT91_WDT_COUNTER)
>>
>> -/* Interrupt Enable Register */
>> -#define AT91_SAM9X60_IER 0x14
>> -/* Period Interrupt Enable */
>> -#define AT91_SAM9X60_PERINT BIT(0)
>> -/* Interrupt Disable Register */
>> -#define AT91_SAM9X60_IDR 0x18
>> -/* Interrupt Status Register */
>> -#define AT91_SAM9X60_ISR 0x1c
>> +/*
>> + * WDDIS bit differs by SoC:
>> + * - SAMA5, AT91SAM9261: bit 15
>> + * - SAM9X60, SAMA7G5, SAM9X75: bit 12
>> + * Select at runtime via compatible string.
>> + */
>> +#define AT91_WDT_WDDIS_LEGACY BIT(15)
>> +#define AT91_WDT_WDDIS_MODERN BIT(12)
>
> This is bad naming, we are going to end up with
> AT91_WDT_WDDIS_LEGACY_LEGACY, AT91_WDT_WDDIS_MODERN_LEGACY and
> AT91_WDT_WDDIS_MODERN next time. The proper name would use the name of
> the SoC introducing the new position.
Okay got it. If that's the case I'll retain the soC specific namings
everywhere in v2.
>
>>
>> #endif
>> --
>> 2.34.1
>>
>
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
next prev parent reply other threads:[~2026-03-02 7:11 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-27 7:31 [PATCH 0/3] watchdog: at91/sama5d4: header cleanup and driver refactor Balakrishnan Sambath
2026-02-27 7:31 ` [PATCH 1/3] watchdog: at91sam9_wdt.h: Cleanup the header file Balakrishnan Sambath
2026-02-27 7:52 ` Alexandre Belloni
2026-03-02 7:11 ` Balakrishnan.S [this message]
2026-02-27 7:31 ` [PATCH 2/3] watchdog: sama5d4_wdt: Refactor the driver Balakrishnan Sambath
2026-02-27 8:05 ` Alexandre Belloni
2026-03-02 7:24 ` Balakrishnan.S
2026-02-27 7:31 ` [PATCH 3/3] watchdog: at91sam9_wdt: Rename AT91_WDT_WDDIS to AT91_WDT_WDDIS_LEGACY Balakrishnan Sambath
2026-02-27 7:44 ` [PATCH 0/3] watchdog: at91/sama5d4: header cleanup and driver refactor Guenter Roeck
2026-03-02 7:26 ` Balakrishnan.S
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=4ad39929-426a-4d6c-adde-b0ebf36bc541@microchip.com \
--to=balakrishnan.s@microchip.com \
--cc=Nicolas.Ferre@microchip.com \
--cc=alexandre.belloni@bootlin.com \
--cc=andrei.simion@microchip.com \
--cc=claudiu.beznea@tuxon.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=wim@linux-watchdog.org \
/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