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

Linus Walleij linus.walleij at linaro.org
Fri Jul 26 13:37:21 PDT 2024


Hi Valentin,

On Mon, Jul 22, 2024 at 6:02 PM Valentin Caron
<valentin.caron at foss.st.com> wrote:

> This series adds a pinctrl/pinmux interface to control STM32 RTC outputs.

Interesting! I think it is the first pin controller outside on
drivers/pinctrl in the kernel tree.

Please include me and the linux-gpio at vger.kernel.org list in
subsequent postings, I want to be sure what gets merged here
and I only noticed this from the LWN driver patches summary.

> 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>;

So the first one is a generic pin control setting and the second
one is a hog for the pins defined by the device itself.

It's clever, and works. Nice work!

(There should probably be a comment in the device tree to say
what is going on so people reading it are not confused.)

>     /* 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";
>     };

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list