
Hi Wolfgang
On 02/10/15 10:42 AM, Wolfgang Denk wrote:
Dear Fabio,
In message 1443792315-18997-1-git-send-email-festevam@gmail.com you wrote: ...
Unlike i.MX and Vybrid, the watchdog controller on LS102x is big-endian.
...
+struct watchdog_regs {
- u16 wcr; /* Control */
- u16 wsr; /* Service */
- u16 wrsr; /* Reset Status */
+};
+#define WCR_SRS (1 << 4)
This belongs to some watchdog (or processor) related header file.
As is, it duplicates code from drivers/watchdog/imx_watchdog.c which is something we should not do.
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile index 9e9cb55..a007ae8 100644 --- a/drivers/watchdog/Makefile +++ b/drivers/watchdog/Makefile @@ -7,7 +7,7 @@
obj-$(CONFIG_AT91SAM9_WATCHDOG) += at91sam9_wdt.o obj-$(CONFIG_FTWDT010_WATCHDOG) += ftwdt010_wdt.o -ifneq (,$(filter $(SOC), mx31 mx35 mx5 mx6 mx7 vf610 ls102xa)) +ifneq (,$(filter $(SOC), mx31 mx35 mx5 mx6 mx7 vf610))
So this fixes the reset problem for now - but what happens when someone wants to use the watchdog for real? Will we create a copy of drivers/watchdog/imx_watchdog.c using big-endian accessors? This cannot be right?
I don't know if you've seen my earlier e-mail on this but I was suggesting to bring watchdog to DM and then consider endian type from dts to implement it properly. Would this not ultimately be the right solution ?
Regards Sinan Akman
Best regards,
Wolfgang Denk