On Fri, 8 Dec 2023 at 14:21, Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: > > On 08/12/2023 13:17, Dmitry Baryshkov wrote: > >>>>>> Anyway, I was thinking this should be rather argument to phy-cells. > >>>>> I'm not sure I'm for this, because the results would be: > >>>>> > >>>>> --- device.dts --- > >>>>> &dp_controller0 { > >>>>> phys = <&dp_phy0 PHY_EDP>; > >>>>> }; > >>>>> > >>>>> &dp_controller1 { > >>>>> phys = <&dp_phy1 PHY_DP>; > >>>>> }; > >>>>> ------------------ > >>>>> > >>>>> as opposed to: > >>>>> > >>>>> --- device.dts --- > >>>>> &dp_phy0 { > >>>>> phy-type <PHY_EDP>; > >>>>> }; > >>>>> > >>>>> &dp_phy1 { > >>>>> phy-type = <PHY_DP>; > >>>>> }; > >>>>> ------------------ > >>>> > >>>> Which is exactly what I proposed/wanted to see. > >>>> > >>>>> > >>>>> i.e., we would be saying "this board is connected to this phy > >>>>> instead" vs "this phy is of this type on this board". > >>>>> > >>>>> While none of them really fit the "same hw, different config" > >>>>> situation, I'd vote for the latter one being closer to the > >>>>> truth > >>>> > >>>> Then maybe I miss the bigger picture, but commit msg clearly says: > >>>> "multiple PHYs that can work in both eDP or DP mode" > >>>> > >>>> If this is not the case, describe the hardware correctly in the commit > >>>> msg, so people will not ask stupid questions... > >>> > >>> There are multiple PHYs (each of them at its own address space). Each > >>> of the PHYs in question can be used either for the DisplayPort output > >>> (directly or through the USB-C) or to drive the eDP panel. > >>> > >>> Same applies to the displayport-controller. It can either drive the DP > >>> or eDP output, hardware-wise it is the same. > >> > >> Therefore what I proposed was correct - the block which uses the phy > >> configures its mode. Because this part: > >> "this phy is of this type on this board". > >> is not true. The phy is both types. > > > > But hopefully you don't mean using #phy-cells here. There are no > > sub-PHYs or anything like that. > > I am exactly talking about phy-cells. Look at first example from Abel's > code. I always had an impression that #foo-cells means that there are different units within the major handler. I.e. #clock-cells mean that there are several different clocks, #reset-cells mean that there are several resets, etc. Ok, maybe this is not a perfect description. We need cells to identify a particular instance within the major block. Maybe that sounds more correct. For the USB+DP PHY we use #phy-cells to select between USB3 and DP PHYs. But for these PHYs we do not have sub-devices, sub-blocks, etc. There is a single PHY which works in either of the modes. Last, but not least, using #phy-cells in this way would create asymmetry with all the other PHYs (and especially other QMP PHYs) present on these platforms. If you feel that phy-type is not an appropriate solution, I'd vote for not having the type in DT at all, letting the DP controller determine the proper mode on its own. -- With best wishes Dmitry