This series adds a pinctrl/pinmux interface to control STM32 RTC outputs. Theses two signals output are possible: - LSCO (Low Speed Clock Output) that allow to output LSE clock on a pin. On STM32MPU Discovery boards, this feature is used to generate a clock to Wifi/Bluetooth module. - Alarm out that allow to send a pulse on a pin when alarm A of the RTC expires. First attempt [1] was based on 'st,' vendor properties, this one is based on pinctrl and pinmux framework. As device-trees will be upstreamed separately, here is an example: stm32-pinctrl { rtc_rsvd_pins_a: rtc-rsvd-0 { pins { pinmux = <STM32_PINMUX('B', 2, AF1)>, /* OUT2 */ <STM32_PINMUX('I', 8, ANALOG)>; /* OUT2_RMP */ }; }; }; stm32-rtc { pinctrl-0 = <&rtc_rsvd_pins_a &rtc_alarma_pins_a>; /* Enable by foo-device */ rtc_lsco_pins_a: rtc-lsco-0 { pins = "out2_rmp"; function = "lsco"; }; /* Enable by stm32-rtc hog */ rtc_alarma_pins_a: rtc-alarma-0 { pins = "out2"; function = "alarm-a"; }; }; foo-device { pinctrl-0 = <&rtc_lsco_pins_a>; }; [1] https://lore.kernel.org/linux-arm-kernel/20220504130617.331290-5-valentin.caron@xxxxxxxxxxx/t/#m37935e92315e22bbe085775096175afc05b7ff09 Since v2: - Modify Kconfig after (a lot of) robots alert: + https://lore.kernel.org/oe-kbuild-all/202407190654.I3RI7WfP-lkp@xxxxxxxxx/ + https://lore.kernel.org/oe-kbuild-all/202407191258.1oitwwMV-lkp@xxxxxxxxx/ + https://lore.kernel.org/oe-kbuild-all/202407200400.NnW2fJ0q-lkp@xxxxxxxxx/ + https://lore.kernel.org/oe-kbuild-all/202407181525.BRNKqmNf-lkp@xxxxxxxxx/ + https://lore.kernel.org/oe-kbuild-all/202407191830.8bh5dJ09-lkp@xxxxxxxxx/ Make RTC_DRV_STM32 depends on OF, PINCTRL and COMMON_CLK as they are menuconfig entry. Make RTC_DRV_STM32 select PINCONF, PINCONF_GENERIC and PINMUX as they config entry. Since v1: - Select PINMUX and PINCONF_GENERIC to solve: https://lore.kernel.org/oe-kbuild-all/202407130943.ie6n2Orh-lkp@xxxxxxxxx/ - Make stm32_rtc_pinctrl_pins as static to solve: https://lore.kernel.org/oe-kbuild-all/202407130612.OEicZbNE-lkp@xxxxxxxxx/ - Change "depends on" to "select" COMMON_CLK config - Modify regex in dt-binding to avoid properties like "rtc--123" as valid ones. Valentin Caron (4): dt-bindings: rtc: stm32: describe pinmux nodes rtc: stm32: add pinctrl and pinmux interfaces rtc: stm32: add Low Speed Clock Output (LSCO) support rtc: stm32: add alarm A out feature .../devicetree/bindings/rtc/st,stm32-rtc.yaml | 28 ++ drivers/rtc/Kconfig | 6 + drivers/rtc/rtc-stm32.c | 281 ++++++++++++++++++ 3 files changed, 315 insertions(+) -- 2.25.1