On 24/04/2024 18:14, Nikolaos Pasaloukos wrote: >> No, they cannot be invalid. IDs start from 0 and are incremented by one. >> If you have holes, it is not a binding. >> >> Drop the header or use it properly, so as virtual IDs. >> >> Best regards, >> Krzysztof >> > My intention was to avoid using magic numbers on the DeviceTree. That's why I added them here. > Also, we have some custom drivers which we plan to upload and their schemas need those files. > The alternative would be to use magic numbers for our clocks and resets. > > In the commit message and on the header file I have mentioned that these are numbers matching > the hardware specification (1 to 1) of the chip not just enums. > Some IDs are invalid because of a hardware gap, some others are invalid because the SCMI > service will return an error that the number is invalid. > > Is there another way to prevent the magic numbers in the schemas and device-tree. > > Thank you very much for your fast and detailed review. Bindings describe the interface between DTS and drivers (OS or some sort of other software). The purpose of binding headers is to document the constants which are used by both, because they are part of that interface. Therefore constants are pure abstraction. Let me rephrase the question: Why you do not have headers for interrupt numbers? All addresses? GPIO pin numbers? Best regards, Krzysztof