[PATCH 0/4] rtc: stm32: add pinctrl interface to handle RTC outs

Alexandre Belloni alexandre.belloni at bootlin.com
Mon Jul 15 14:12:16 PDT 2024


Hello,

On 11/07/2024 16:08:39+0200, Valentin Caron wrote:
> 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>;
> };
> 

This all seems good to me, I let you fix the various issues that have
been reported. I was just wondering whether the LSCO clock was registered
early enough to be used but I guess you tested that.

-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



More information about the linux-arm-kernel mailing list