On 25/01/2023 13:06, Li Chen wrote: >>> Feel free to correct me if you think this >>> is not a good idea. >> >> This is bad idea. Compatibles should be specific. Devices should not use >> syscons to poke other registers, unless strictly necessary, but have >> strictly defined MMIO address space and use it. > > Ok, I will convert syscon-based regmaps to SoC-specific compatibles and of_device_id->data. > > But I have three questions: > > 0. why syscon + offsets is a bad idea copared to specific compatibles? Specific compatibles are a requirement. They are needed to match device in exact way, not some generic and unspecific. The same with every other interface, it must be specific to allow only correct usage. It's of course different with generic fallbacks, but we do not talk about them here... > 1. when would it be a good idea to use syscon in device tree? When your device needs to poke one or few registers from some system-controller block. > 2. syscon VS reg, which is preferred in device tree? There is no such choice. Your DTS *must* describe the hardware. The hardware description is for example clock controller which has its own address space. If you now do not add clock controller's address space to the clock controller, it is not a proper hardware description. The same with every other property. If your device has interrupts, but you do not add them, it is not correct description. Best regards, Krzysztof