On Sat, May 30, 2020 at 11:31:52AM +0200, Wolfram Sang wrote: > > > + addr = reg & 0x3FFFFFFFU; > > + snprintf(unit_addr, sizeof(unit_addr), "%x", addr); > > Hmm, this hardcoded value will not work if we ever need to add another > bit. I hope this will never happen, though. > > > + if ((reg & (1U << 31)) && addr > 0x3ff) > > Same here with bit 31. I'd be glad to use a macro or some helper here, but alas there is no ready-to-use i2c-related one in the dtc code. See, there are hard-coded literals in the PCI nodes checkers (check_pci_device_reg(), check_pci_device_bus_num()) and the hard-coded literals've been in the i2c-nodes checkers even before this patch. > I haven't checked DTC but can't we import the > header with the defines into the project? Or is this then a circular > dependency? > I guess importing header would be much better than the hard-coded values currently used. What do the code maintainers say about that? Any idea how it is supposed to be implemented? -Sergey