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

From: Linus Walleij
Date: Fri Jul 26 2024 - 16:38:02 EST


Hi Valentin,

On Mon, Jul 22, 2024 at 6:02 PM Valentin Caron
<valentin.caron@xxxxxxxxxxx> 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@xxxxxxxxxxxxxxx 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