Hello, On Mon Feb 26, 2024 at 12:56 PM CET, Conor Dooley wrote: > On Mon, Feb 26, 2024 at 11:33:06AM +0100, Théo Lebrun wrote: > > Hello Conor, > > > > On Fri Feb 23, 2024 at 7:12 PM CET, Conor Dooley wrote: > > > On Fri, Feb 23, 2024 at 05:05:25PM +0100, Théo Lebrun wrote: > > > > Compatible can be A or B, not A or B or A+B. Remove last option. > > > > A=ti,j721e-usb and B=ti,am64-usb. > > > > > > > > Signed-off-by: Théo Lebrun <theo.lebrun@xxxxxxxxxxx> > > > > --- > > > > Documentation/devicetree/bindings/usb/ti,j721e-usb.yaml | 9 +++------ > > > > 1 file changed, 3 insertions(+), 6 deletions(-) > > > > > > > > diff --git a/Documentation/devicetree/bindings/usb/ti,j721e-usb.yaml b/Documentation/devicetree/bindings/usb/ti,j721e-usb.yaml > > > > index 95ff9791baea..949f45eb45c2 100644 > > > > --- a/Documentation/devicetree/bindings/usb/ti,j721e-usb.yaml > > > > +++ b/Documentation/devicetree/bindings/usb/ti,j721e-usb.yaml > > > > @@ -11,12 +11,9 @@ maintainers: > > > > > > > > properties: > > > > compatible: > > > > - oneOf: > > > > - - const: ti,j721e-usb > > > > - - const: ti,am64-usb > > > > - - items: > > > > - - const: ti,j721e-usb > > > > - - const: ti,am64-usb > > > > > > Correct, this makes no sense. The devices seem to be compatible though, > > > so I would expect this to actually be: > > > oneOf: > > > - const: ti,j721e-usb > > > - items: > > > - const: ti,am64-usb > > > - const: ti,j721e-usb > > > > I need your help to grasp what that change is supposed to express? Would > > you mind turning it into english sentences? > > A=ti,j721e-usb and B=ti,am64-usb. My understanding of your proposal is > > that a device can either be compat with A or B. But B is compatible > > with A so you express it as a list of items. If B is compat with A then > > A is compat with B. Does the order of items matter? > > The two devices are compatible with each other, based on an inspection of > the driver and the existing "A+B" setup. If this was a newly submitted > binding, "B" would not get approved because "A+B" allows support without > software changes and all that jazz. > > Your patch says that allowing "A", "B" and "A+B" makes no sense and you > suggest removing "A+B". I am agreeing that it makes no sense to allow > all 3 of these situations. > > What I also noticed is other problems with the binding. What should have > been "A+B" is actually documented as "B+A", but that doesn't make sense > when the originally supported device is "A". > > Therefore my suggestion was to only allow "A" and "A+B", which is what > we would (hopefully) tell you to do were you submitting the am64 support > as a new patch today. Thank you for the in-depth explanation! It makes much more sense now, especially the handling of historic stuff that ideally wouldn't have been done this way but that won't be changed from now on. > > I've not applied your proposal to check for dtbs_check but I'd guess it > > would throw warnings for the single existing upstream DTSI (as of > > v6.8-rc6) that uses "ti,am64-usb"? See: > > arch/arm64/boot/dts/ti/k3-am64-main.dtsi. > > Yeah, it would but it's not as if that cannot be changed. There's no > concerns here about backwards compatibility here, right? I'm not involved in the maintenance of this platform so I do not believe I should be answering this question. I asked the question because I taught there always were concerns of backwards-compat when it comes to DT and dt-bindings (in the best of all possible worlds). K3 maintainers are already in cc. Thanks, -- Théo Lebrun, Bootlin Embedded Linux and Kernel engineering https://bootlin.com