Re: [PATCH] dt-bindings: serial: 8250: allow "main" and "uart" as clock names

From: Alex Elder
Date: Tue Jul 29 2025 - 17:36:12 EST


On 7/29/25 4:08 PM, Conor Dooley wrote:
On Tue, Jul 29, 2025 at 04:04:05PM -0500, Alex Elder wrote:
On 7/29/25 12:54 PM, Conor Dooley wrote:
On Tue, Jul 29, 2025 at 06:53:19AM +0800, Yixun Lan wrote:
Hi Alex,

On 17:00 Mon 28 Jul , Alex Elder wrote:
There are two compatible strings defined in "8250.yaml" that require
two clocks to be specified, along with their names:
- "spacemit,k1-uart", used in "spacemit/k1.dtsi"
- "nxp,lpc1850-uart", used in "lpc/lpc18xx.dtsi"

When only one clock is used, the name is not required. However there
are two places that do specify a name:
- In "mediatek/mt7623.dtsi", the clock for the "mediatek,mtk-btif"
compatible serial device is named "main"
- In "qca/ar9132.dtsi", the clock for the "ns8250" compatible
serial device is named "uart"

In commit d2db0d7815444 ("dt-bindings: serial: 8250: allow clock 'uartclk'
and 'reg' for nxp,lpc1850-uart"), Frank Li added the restriction that two
named clocks be used for the NXP platform mentioned above. Extend that
so that the two named clocks used by the SpacemiT platform are similarly
restricted.

Add "main" and "uart" as allowed names when a single clock is specified.

Fixes: 2c0594f9f0629 ("dt-bindings: serial: 8250: support an optional second clock")
Reported-by: kernel test robot <lkp@xxxxxxxxx>
Closes: https://lore.kernel.org/oe-kbuild-all/202507160314.wrC51lXX-lkp@xxxxxxxxx/
Signed-off-by: Alex Elder <elder@xxxxxxxxxxxx>
---
.../devicetree/bindings/serial/8250.yaml | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/serial/8250.yaml b/Documentation/devicetree/bindings/serial/8250.yaml
index e46bee8d25bf0..cef52ebd8f7da 100644
--- a/Documentation/devicetree/bindings/serial/8250.yaml
+++ b/Documentation/devicetree/bindings/serial/8250.yaml
@@ -61,11 +61,17 @@ allOf:
- const: uartclk
- const: reg
..
else:
would it be better to drop this 'else', and moving following 'if' block
to the same level with "nxp,lpc1850-uart"?

the reason here would avoid too many indentions if add more constraint in
the future if other SoC uart need different clock-names..

I agree, it's more typical to do it that way I think to boot.

Also, why is there a k1/lpc conditional bit that is not part of the
allOf in addition to the bits in the allOf? Can that get merged with the
allOf please?

Are you talking about the blank line here?

No, I'm talking about what's down around line 270 in the binding.

Oh wow that's in a weird spot, and it might be redundant?

Anyway I'll work on getting that fixed too before I send
my next version.

-Alex


then:
oneOf:
- required: [ clock-frequency ]
- required: [ clocks ]
<------ this blank line
- if:
properties:
compatible:
contains:
const: nxp,lpc1850-uart
then:

I didn't notice that before. It got inserted with commit
d2db0d7815444 ("dt-bindings: serial: 8250: allow clock
'uartclk' and 'reg' for nxp,lpc1850-uart").

If so, yes I'll remove that as well when I update the patch to
get rid of the else as Yixun suggests.

Greg won't take this for a couple weeks so I'll hold off sending
v2 for a while.

-Alex