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. Best regards, Krzysztof