Hi Rob, Am 2020-06-10 00:03, schrieb Rob Herring: [..]
Yes, we should use 'reg' whenever possible. If we don't have 'reg', then you shouldn't have a unit-address either and you can simply match on the node name (standard DT driver matching is with compatible, device_type, and node name (w/o unit-address)). We've generally been doing 'classname-N' when there's no 'reg' to do 'classname@N'. Matching on 'classname-N' would work with node name matching as only unit-addresses are stripped.
This still keeps me thinking. Shouldn't we allow the (MFD!) device driver creator to choose between "classname@N" and "classname-N". In most cases N might not be made up, but it is arbitrarily chosen; for example you've chosen the bank for the ab8500 reg. It is not a defined entity, like an I2C address if your parent is an I2C bus, or a SPI chip select, or the memory address in case of MMIO. Instead the device driver creator just chooses some "random" property from the datasheet; another device creator might have chosen another property. Wouldn't it make more sense, to just say this MFD provides N pwm devices and the subnodes are matching based on pwm-{0,1..N-1}? That would also be the logical consequence of the current MFD sub device to OF node matching code, which just supports N=1. -michael