[PATCH] regulator: mc13783: consider Power Gates as digital regulators.

Mark Brown broonie at opensource.wolfsonmicro.com
Mon Jan 18 12:37:23 EST 2010


As I just wrote...

On Mon, Jan 18, 2010 at 06:07:53PM +0100, Alberto Panizzo wrote:

> Something like this?
> 	if (mask & MC13783_REG_POWERMISC_PWGTSPI_M) {
> 		u32 new_state = (val & MC13783_REG_POWERMISC_PWGTSPI_M) ^ mask;
> 
> 		mc13783_state_powermisc_pwgt =
> 			(mc13783_state_powermisc_pwgt & ~mask) | new_state;
> 	}

Yes, that's clearer.

> > > +	if (ret)
> > > +		return ret;
> > > +
> > > +	valread = (valread & ~mask) | val;
> > > +
> > > +	/* Re propose the stored state for Power Gates */
> > > +	valread = (valread & ~MC13783_REG_POWERMISC_PWGTSPI_M) |
> > > +						mc13783_state_powermisc_pwgt;
> > 
> > ...and this further mainpulation.

> What is obscure in this? it is the same operation as the previous
> MC13783_REG_POWERMISC_PWGTSPI_M is the mask for PWGT1 and 2 bits and in 
> mc13783_state_powermisc_pwgt there is the stored state for those two bits.

Part of it is the fact that the first bit was almost completely opaque
but even so it would be less surprising if you first worked out the
value you wanted to set, then did whatever manipulation was required to
translate into the format that actually gets written.



More information about the linux-arm-kernel mailing list