On 16/03/2022 11:18, Ioana Ciornei wrote: >>> >>> It's related since it shows a generic usage pattern of the sfp node. >>> I wouldn't just remove it since it's just adds context to the example >>> not doing any harm. >> >> Usage (consumer) is not related to these bindings. The bindings for this >> phy/mac should show the usage of sfp, but not the provider bindings. >> >> The bindings of each clock provider do not contain examples for clock >> consumer. Same for regulator, pinctrl, power domains, interconnect and >> every other component. It would be a lot of code duplication to include >> consumers in each provider. Instead, we out the example of consumer in >> the consumer bindings. >> >> The harm is - duplicated code and one more example which can be done >> wrong (like here node name not conforming to DT spec). > > I suppose you refer to "sfp-eth3" which you suggested here to be just > "sfp". I refer now to "cps_emac3" which uses specific name instead of generic and underscore instead of hyphen (although underscore is actually listed as allowed in DT spec, dtc will complain about it). >In an example, that's totally acceptable but on boards there can > be multiple SFPs which would mean that there would be multiple sfp > nodes. We have to discern somehow between them. Adding a unit name would > not be optimal since there is no "reg" property to go with it. The common practice is adding a numbering suffix. > > So "sfp-eth3" or variants I think are necessary even though not > conforming to the DT spec. > >> >> If you insist to keep it, please share why these bindings are special, >> different than all other bindings I mentioned above. > > If it's that unheard of to have a somewhat complete example why are > there multiple dtschema files submitted even by yourself with this same > setup? I am also learning and I wished many of my mistakes of early DT bindings conversion were spotted. Especially my early bindings... but even now I keep making mistakes. Human thing. :) I converted quite a lot of bindings, so can you point to such examples of my schema which includes consumer example in a provider bindings? If you find such, please send a patch removing trivial code. > As an example for a consumer device being listed in the provider yaml > file is 'gpio-pca95xx.yaml' Indeed, this is trivial and useless code which I kept from conversion, should be removed. > and for the reverse (provider described in > the consumer) I can list 'samsung,s5pv210-clock.yaml', > 'samsung,exynos5260-clock.yaml' etc. These are different. This is an example how to model the input clock to the device being described in the bindings. This is not an example how to use the clock provider, like you created here. The input clock sometimes is defined in Exynos clock controller, sometimes outside. The example there shows the second case - when it has to come outside. It's not showing the usage of clocks provided by this device, but I agree that it also might be trivial and obvious. If you think it is obvious, feel free to comment/send a patch. Best regards, Krzysztof