On 5/18/23 01:33, Marek Vasut wrote: > On 5/17/23 19:04, Raphael Gallais-Pou wrote: >> Hi Marek > > Hi, > >> On 5/17/23 17:41, Marek Vasut wrote: >>> On 5/17/23 16:35, Raphael Gallais-Pou wrote: >>> >>> Hi, >>> >>>> diff --git a/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi >>>> b/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi >>>> index 0f1110e42c93..a6e2e20f12fa 100644 >>>> --- a/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi >>>> +++ b/arch/arm/boot/dts/stm32mp15xx-dkx.dtsi >>>> @@ -457,8 +457,7 @@ <dc { >>>> status = "okay"; >>>> port { >>>> - ltdc_ep0_out: endpoint@0 { >>>> - reg = <0>; >>>> + ltdc_ep0_out: endpoint { >>>> remote-endpoint = <&sii9022_in>; >>>> }; >>>> }; >>> >>> This LTDC port/endpoint stuff always scares me, because I always feel I get it >>> wrong. >>> >>> I believe the LTDC does have one "port" , correct. >>> >>> But I think (?) that the LTDC has two endpoints, endpoint@0 for DPI (parallel >>> output out of the SoC) and endpoint@1 for DSI (internal connection into the >>> DSI serializer) ? >> >> You are correct indeed, I rushed the patch and did not thought about this. I >> agree that this can be confusing, as I also take some time to think through it. >> >>> >>> Only one of the endpoints can be connected at a time, but there are actually >>> two endpoints in the LTDC port {} node, aren't there ? >> Yes, they are mutually exclusive. >>> >>> So the original description should be OK I think , maybe #address/#size-cells >>> are missing instead ? >> >> Thing is: this file is only included in two device-trees : stm32mp157c-dk1.dts >> and stm32mp157c-dk2.dts. >> >> Among those two files there is only one which adds a second endpoint. Thus if >> the fields are set higher in the hierarchy, a warning yields. > > I do not understand this one part, which warning are you trying to fix ? > I just ran '$ make CHECK_DTBS=1 stm32mp157a-dk1.dtb stm32mp157c-dk2.dtb' in > latest linux-next and there was no warning related to LTDC . I'm sorry, I looked back at it and my explanations are confusing. I use Alex Torgue's tree, and I'm based on the next branch, but linux-next should be the same I just checked it. > > I think if you retain the stm32mp151.dtsi <dc { port { #address-cells = <1>; > #size-cells = <0>; }; }; part, then you wouldn't be getting any warnings > regarding LTDC , and you wouldn't have to remove the unit-address from > endpoint@0 . > > btw. I do use both endpoint@0/endpoint@1 in Avenger96 DTOs, but those are not > submitted yet, I have to clean them up a bit more first. > >> One way to do it would be to make the endpoint@0 go down in the device-tree with >> its dependencies, so that both endpoints are the same level without generating >> noise. > > I'm afraid I really don't quite understand which warning you're referring to. > Can you please share that warning and ideally how to trigger it (the > command-line incantation) ? Using '$ make dtbs W=1', you can observe several of the followings: arch/arm/boot/dts/stm32mp151.dtsi:1533.9-1536.6: Warning (avoid_unnecessary_addr_size): /soc/display-controller@5a001000/port: unnecessary #address-cells/#size-cells without "ranges" or child "reg" property arch/arm/boot/dts/stm32mp151.dtsi:1533.9-1536.6: Warning (graph_child_address): /soc/display-controller@5a001000/port: graph node has single child node 'endpoint@0', #address-cells/#size-cells are not necessary This <dc { port { #address-cells = <1>; #size-cells = <0>; }; }; part is actually annoying. This is because there is several device-trees that only got one endpoint, and some other that includes two. For instance: stm32mp15xx-dhcor-avenger96.dtsi vs stm32mp157c-dk2.dts. I would like to remove to root part of address/size field and let only the lower device-trees with with multiple endpoints handle their own fields. I hope this explains a bit better my process. Regards, Raphaël Gallais-Pou