Message ID | 20240722160022.454226-1-valentin.caron@foss.st.com |
---|---|
Headers | show |
Series | rtc: stm32: add pinctrl interface to handle RTC outs | expand |
Hi Valentin, On Mon, Jul 22, 2024 at 6:02 PM Valentin Caron <valentin.caron@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@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
Hello Linus, On 26/07/2024 22:37:21+0200, Linus Walleij wrote: > On Mon, Jul 22, 2024 at 6:02 PM Valentin Caron > <valentin.caron@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. Actually, we have rtc-omap which does this too. I've been pushing for more RTC to do this instead of defining custom dt bindings to do what boils down to pinmuxing. > > Please include me and the linux-gpio@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. I'll also ensure you get copied on pinctrl related patches.
On Mon, 22 Jul 2024 18:00:18 +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. > > [...] Applied, thanks! [1/4] dt-bindings: rtc: stm32: describe pinmux nodes https://git.kernel.org/abelloni/c/5b19519d4e6f [2/4] rtc: stm32: add pinctrl and pinmux interfaces https://git.kernel.org/abelloni/c/16ad2bc09efb [3/4] rtc: stm32: add Low Speed Clock Output (LSCO) support https://git.kernel.org/abelloni/c/bb7b0df2be5c [4/4] rtc: stm32: add alarm A out feature https://git.kernel.org/abelloni/c/04dcadb87da6 Best regards,