Make the system poweroff and RTC wakeup part of the driver optional,
under a boolean config option. Move the dependency to RTC_CLASS to this
new option.
This makes the turris-omnia-mcu driver available for compilation even if
RTC_CLASS 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-4-kabel@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
 
        depends on I2C
        depends on OF
        depends on GPIOLIB
-       depends on RTC_CLASS
        select GPIOLIB_IRQCHIP
        help
          Say Y here to add support for the features implemented by the
          microcontroller on the CZ.NIC's Turris Omnia SOHO router.
          The features include:
-         - board poweroff into true low power mode (with voltage regulators
-           disabled) and the ability to configure wake up from this mode (via
-           rtcwake)
          - 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
 
 if TURRIS_OMNIA_MCU
 
+config TURRIS_OMNIA_MCU_SYSOFF_WAKEUP
+       bool "Turris Omnia MCU system off and RTC wakeup"
+       default y
+       depends on RTC_CLASS
+       help
+         Say Y here to add support for CZ.NIC's Turris Omnia board poweroff
+         into true low power mode (with voltage regulators disabled) and the
+         ability to configure wake up from this mode (via rtcwake).
+
 config TURRIS_OMNIA_MCU_WATCHDOG
        bool "Turris Omnia MCU watchdog"
        default y
 
 obj-$(CONFIG_TURRIS_OMNIA_MCU) += turris-omnia-mcu.o
 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-$(CONFIG_TURRIS_OMNIA_MCU_SYSOFF_WAKEUP)      += turris-omnia-mcu-sys-off-wakeup.o
 turris-omnia-mcu-$(CONFIG_TURRIS_OMNIA_MCU_TRNG)               += turris-omnia-mcu-trng.o
 turris-omnia-mcu-$(CONFIG_TURRIS_OMNIA_MCU_WATCHDOG)           += turris-omnia-mcu-watchdog.o
 
 static const struct attribute_group *omnia_mcu_groups[] = {
        &omnia_mcu_base_group,
        &omnia_mcu_gpio_group,
+#ifdef CONFIG_TURRIS_OMNIA_MCU_SYSOFF_WAKEUP
        &omnia_mcu_poweroff_group,
+#endif
        NULL
 };
 
 
        unsigned long last_status;
        bool button_pressed_emul;
 
+#ifdef CONFIG_TURRIS_OMNIA_MCU_SYSOFF_WAKEUP
        /* RTC device for configuring wake-up */
        struct rtc_device *rtcdev;
        u32 rtc_alarm;
        bool front_button_poweron;
+#endif
 
 #ifdef CONFIG_TURRIS_OMNIA_MCU_WATCHDOG
        /* MCU watchdog */
 
 extern const u8 omnia_int_to_gpio_idx[32];
 extern const struct attribute_group omnia_mcu_gpio_group;
-extern const struct attribute_group omnia_mcu_poweroff_group;
-
 int omnia_mcu_register_gpiochip(struct omnia_mcu *mcu);
+
+#ifdef CONFIG_TURRIS_OMNIA_MCU_SYSOFF_WAKEUP
+extern const struct attribute_group omnia_mcu_poweroff_group;
 int omnia_mcu_register_sys_off_and_wakeup(struct omnia_mcu *mcu);
+#else
+static inline int omnia_mcu_register_sys_off_and_wakeup(struct omnia_mcu *mcu)
+{
+       return 0;
+}
+#endif
 
 #ifdef CONFIG_TURRIS_OMNIA_MCU_TRNG
 int omnia_mcu_register_trng(struct omnia_mcu *mcu);