On 2/18/2026 3:29 PM, Krzysztof Kozlowski wrote:
On 18/02/2026 14:26, Larisa Ileana Grigore wrote:
On 2/16/2026 5:10 PM, Krzysztof Kozlowski wrote:
On 16/02/2026 16:02, Larisa Grigore wrote:
From: Radu Pirea radu-nicolae.pirea@nxp.com
Add optional support for the two clock inputs used by the LINFlexD UART controller:
- "lin": LIN_BAUD_CLK
- "ipg": LINFLEXD_CLK
The clock inputs are kept optional to maintain compatibility with the S32V234 platform.
Does S32V234 have the clocks? I don't understand the "maintain compatibility" in this context. Either you have or you have not clocks, which should be expressed in schema (: false, see example schema).
Hello Krzysztof,
Thanks for pointing this out! I will update both the schema and the commit description. S32V234 does not expose these clocks in its device tree—on this platform the LINFlexD clocks are set up and enabled by U‑Boot, so they are not available to the kernel.
So there are clocks. DTS is being used by bootloader, so how bootloader is going to set up clocks for S32V234 if no one provides them?
This looks like buggy/incomplete approach, although I understand that the original binding had the issue.
Indeed, I also believe the binding is not fully accurate on S32V234. As I mentioned earlier, the LINFlexD clocks are not managed by Linux on this platform. They, along with several other clocks, are usually initialized by U‑Boot, and Linux does not handle them. That is likely the reason they were omitted from the S32V234 binding. I’m willing to correct this for the S32V234 compatible by making that property optional, so we don’t break compatibility. For S32G, I would prefer to avoid repeating the same oversight we had on S32V234 and make the property required, since the IP, as you correctly pointed out, does have dedicated clock inputs.
How would you approach this?
Thank you, Larisa
The changes in this patch are intended specifically for S32G2/G3, where the clocks are provided in the DT and required by the driver.
Signed-off-by: Radu Pirea radu-nicolae.pirea@nxp.com Co-developed-by: Larisa Grigore larisa.grigore@oss.nxp.com Signed-off-by: Larisa Grigore larisa.grigore@oss.nxp.com
.../bindings/serial/fsl,s32-linflexuart.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
diff --git a/Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.yaml b/Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.yaml index 4171f524a928..885f0b1b3492 100644 --- a/Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.yaml +++ b/Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.yaml @@ -34,6 +34,14 @@ properties: interrupts: maxItems: 1
- clocks:
- maxItems: 2
- clock-names:
- items:
- const: lin- const: ipg- required:
- compatible
- reg
@@ -48,3 +56,13 @@ examples: reg = <0x40053000 0x1000>; interrupts = <0 59 4>; };
- |
- serial@401c8000 {
compatible = "nxp,s32g2-linflexuart","fsl,s32v234-linflexuart";reg = <0x401C8000 0x3000>;interrupts = <0 82 1>;clocks = <&clks 14>, <&clks 13>;clock-names = "lin", "ipg";Just add the clocks to existing example. No need for new example for each new property.
- };
The existing node refers to S32V234 which does not expose any clock properties in its device tree. Because of this, I couldn’t extend that
You just said S32V234 has clocks...
example with clocks and clock-names. The additional example is there only to illustrate the S32G2 case, where the clocks are required and actually present in the device tree. Should I remove it?
Best regards, Larisa
Best regards, Krzysztof
Best regards, Krzysztof