]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
platform: cznic: turris-omnia-mcu: Make watchdog code optional
authorMarek Behún <kabel@kernel.org>
Fri, 19 Jul 2024 08:57:53 +0000 (10:57 +0200)
committerArnd Bergmann <arnd@arndb.de>
Wed, 7 Aug 2024 12:43:54 +0000 (14:43 +0200)
Make the watchdog part of the driver optional, under a boolean config
option. Move the dependency to WATCHDOG to this new option, and change
the WATCHDOG_CORE dependency to selection, as is done in most watchdog
drivers.

This makes the turris-omnia-mcu driver available for compilation even if
WATCHDOG is disabled.

Fixes: ed46f1f7731d ("platform: cznic: turris-omnia-mcu: fix Kconfig dependencies")
Signed-off-by: Marek Behún <kabel@kernel.org>
Link: https://lore.kernel.org/r/20240719085756.30598-2-kabel@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
drivers/platform/cznic/Kconfig
drivers/platform/cznic/Makefile
drivers/platform/cznic/turris-omnia-mcu.h

index cb0d4d686d8a5123e2f0511a03af343e5854bd74..b56c343e21d61450968bb0a58b2f75fce8a4e6de 100644 (file)
@@ -17,11 +17,9 @@ config TURRIS_OMNIA_MCU
        depends on MACH_ARMADA_38X || COMPILE_TEST
        depends on I2C
        depends on OF
-       depends on WATCHDOG
        depends on GPIOLIB
        depends on HW_RANDOM
        depends on RTC_CLASS
-       depends on WATCHDOG_CORE
        select GPIOLIB_IRQCHIP
        help
          Say Y here to add support for the features implemented by the
@@ -31,7 +29,6 @@ config TURRIS_OMNIA_MCU
            disabled) and the ability to configure wake up from this mode (via
            rtcwake)
          - true random number generator (if available on the MCU)
-         - MCU watchdog
          - GPIO pins
            - to get front button press events (the front button can be
              configured either to generate press events to the CPU or to change
@@ -44,7 +41,21 @@ config TURRIS_OMNIA_MCU
              to be able to program SOC's OTP on board revisions 32+
            - to get input from the LED output pins of the WAN ethernet PHY, LAN
              switch and MiniPCIe ports
+         Other features can be enabled by subsequent config options.
          To compile this driver as a module, choose M here; the module will be
          called turris-omnia-mcu.
 
+if TURRIS_OMNIA_MCU
+
+config TURRIS_OMNIA_MCU_WATCHDOG
+       bool "Turris Omnia MCU watchdog"
+       default y
+       depends on WATCHDOG
+       select WATCHDOG_CORE
+       help
+         Say Y here to add support for watchdog provided by CZ.NIC's Turris
+         Omnia MCU.
+
+endif # TURRIS_OMNIA_MCU
+
 endif # CZNIC_PLATFORMS
index eae4c6b341fff776fd11759625a9eda4f28f42bd..7599b483505605b74f5bb2c6df2eaeb25387d51c 100644 (file)
@@ -5,4 +5,4 @@ turris-omnia-mcu-y              := turris-omnia-mcu-base.o
 turris-omnia-mcu-y             += turris-omnia-mcu-gpio.o
 turris-omnia-mcu-y             += turris-omnia-mcu-sys-off-wakeup.o
 turris-omnia-mcu-y             += turris-omnia-mcu-trng.o
-turris-omnia-mcu-y             += turris-omnia-mcu-watchdog.o
+turris-omnia-mcu-$(CONFIG_TURRIS_OMNIA_MCU_WATCHDOG)           += turris-omnia-mcu-watchdog.o
index 2ca56ae13aa908c7fcf3782a336911f0716050cb..85bf9ab39356f5ad3b86743a250b6c6ccb6272ca 100644 (file)
@@ -47,8 +47,10 @@ struct omnia_mcu {
        u32 rtc_alarm;
        bool front_button_poweron;
 
+#ifdef CONFIG_TURRIS_OMNIA_MCU_WATCHDOG
        /* MCU watchdog */
        struct watchdog_device wdt;
+#endif
 
        /* true random number generator */
        struct hwrng trng;
@@ -189,6 +191,14 @@ extern const struct attribute_group omnia_mcu_poweroff_group;
 int omnia_mcu_register_gpiochip(struct omnia_mcu *mcu);
 int omnia_mcu_register_sys_off_and_wakeup(struct omnia_mcu *mcu);
 int omnia_mcu_register_trng(struct omnia_mcu *mcu);
+
+#ifdef CONFIG_TURRIS_OMNIA_MCU_WATCHDOG
 int omnia_mcu_register_watchdog(struct omnia_mcu *mcu);
+#else
+static inline int omnia_mcu_register_watchdog(struct omnia_mcu *mcu)
+{
+       return 0;
+}
+#endif
 
 #endif /* __TURRIS_OMNIA_MCU_H */