On Mon, Nov 14, 2022 at 05:56:21PM +0100, Krzysztof Kozlowski wrote: > On 14/11/2022 17:48, Johan Hovold wrote: > > On Mon, Nov 14, 2022 at 05:39:26PM +0100, Krzysztof Kozlowski wrote: > >> On 14/11/2022 17:32, Johan Hovold wrote: > > > >>> Fair enough, I'll drop it. But there doesn't seem to be a good way to > >>> describe the indexes currently and most bindings simply ignore to do so. > >>> > >>> So what is the preference then? Just leave things undocumented, listing > >>> indexes in a free-text 'description', or adding a free-text reference to > >>> a binding header file and using those define names in a free-text > >>> 'description'? > >> > >> Either 2 or 3. Several bindings for small number of constants choose > >> option 2. > > > > Ok, we have three now, but USB4 will bump this to ten or so. > > Then probably header file is the way to go. > > > > >>> And if going with the last option, does this mean that every SoC and PHY > >>> type needs its own header for those three clocks or so to avoid having > >>> a common dumping ground header file where indexes will not necessarily > >>> be 0-based and consecutive. > >> > >> phy-qcom-qmp-combo.c has one qcom_qmp_dp_clks_hw_get(), so why would you > >> have many of header files? > > > > We don't know what kind of clock outputs later revisions of these PHYs > > will have. The only way to guarantee 0-based consecutive indexes appears > > to be to use per-SoC defines (e.g. as for the GCC bindings). > > Which is also fine. I don't understand still why it is a problem - even > if you have multiple files, one for each SoC/phy. If USB4 brings here 10 > more clocks and other SoCs/phys might bring many more options, then what > else can you do? Grow the binding file with big text-based mapping of > IDs? It's not a viable solution. Header or headers is the only > maintainable way for such cases. So then we must add per-SoC (and PHY type) headers even if we can possibly reuse defines from one platform for another as long as they appear to be similar enough? For example, using a "SC7180_USB3_DP" infix for the current platforms and add a new series of indexes for SC8280XP: QMP_SC7180_USB3_DP_USB3_PIPE 0 QMP_SC7180_USB3_DP_DP_LINK 1 QMP_SC7180_USB3_DP_DP_VCO_DIV 2 QMP_SC8280XP_USB4_USB3_DP_USB3_PIPE 0 QMP_SC8280XP_USB4_USB3_DP_DP_LINK 1 QMP_SC8280XP_USB4_USB3_DP_DP_VCO_DIV 2 QMP_SC8280XP_USB4_USB3_DP_USB4_PCIE_PIPE 3 ... QMP_SC8280XP_USB4_USB3_DP_USB4_RX1 9 Johan