On Wed, Dec 02, 2015 at 08:26:36PM +0000, Simon Arlott wrote: > On 02/12/15 12:53, Mark Brown wrote: > > This is the sort of thing you can pick up from the SoC compatible > > strings. As things stand there is zero content in this driver that > > relates to this SoC. > There's always going to be very little content in the driver that > relates to this SoC, given that a single bit flip enables/disables > power. > All other device tree drivers allow a register address to be specified > for the device, how is an offset in the regmap any different? It's not that it's an offset in regmap, it's that you're trying to make a device driver with literally *no* content that is specific to the actual device. If you're making a driver for a specific device like this it should know at least something about how to control the device from the compatible string. If you're making a generic driver it should not make reference to specific devices. In general I would prefer to have a driver with a SoC specific compatible string and the data tables in the kernel, that way we keep the device trees stable and our ABI more robust. > >> The mask is used as there's one bit per regulator in the register, but > >> there's more than one way to express this in the DT: > > I wouldn't expect to see it in the device tree at all for a device > > specific driver. > If there isn't an individual entry in DT for each regulator, how is it > supposed to work? There's no #regulator-cells property. There could be one if it would help, but we do normally manage to do this without - look at how other regulator drivers work.