Commit 019f87f1 authored by Marek Behún's avatar Marek Behún Committed by Arnd Bergmann
Browse files

platform: cznic: turris-omnia-mcu: Make watchdog code optional



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: ed46f1f7 ("platform: cznic: turris-omnia-mcu: fix Kconfig dependencies")
Signed-off-by: default avatarMarek Behún <kabel@kernel.org>
Link: https://lore.kernel.org/r/20240719085756.30598-2-kabel@kernel.org


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent 8400291e
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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
+10 −0
Original line number Diff line number Diff line
@@ -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 */