[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20101129155122.GB30926@sirena.org.uk>
Date: Mon, 29 Nov 2010 15:51:23 +0000
From: Mark Brown <broonie@...nsource.wolfsonmicro.com>
To: Alberto Panizzo <maramaopercheseimorto@...il.com>
Cc: Guennadi Liakhovetski <g.liakhovetski@....de>,
Mauro Carvalho Chehab <mchehab@...radead.org>,
Hans Verkuil <hverkuil@...all.nl>,
Laurent Pinchart <laurent.pinchart@...asonboard.com>,
Magnus Damm <damm@...nsource.se>,
M?rton N?meth <nm127@...email.hu>, linux-media@...r.kernel.org,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/3] soc_camera: Add the ability to bind regulators to
soc_camedra devices
On Mon, Nov 29, 2010 at 10:34:57AM +0100, Alberto Panizzo wrote:
> On dom, 2010-11-28 at 20:05 +0100, Guennadi Liakhovetski wrote:
> > (2) would anyone really want to
> > use several regulators for a camera sensor? If so, can it be the case,
> > that, for example, the regulators have to be switched off in the reverse
> > order to switching on? Or something else?
> Well, I'm working on the i.MX31 3 Stack board support and there are 2
> regulators that powers the camera and if you consider the digital output
> that enable another supplier needed, the total regulators are three..
> So, yes a list of regulators is needed in this case, and Yes I did not
> considered the order of enabling and disabling operations. Just because
> even the freescale drivers didn't.
> A practical general rule is to turn off switchers in the reverse order
> than the turning on one. And this can be easily implemented here.
> But as you rose the question, we can add priorities of turning on and
> off.
If you use the regulator bulk API it'll reverse the ordering when doing
the power down (or should if it doesn't already).
> > > +static int soc_camera_power_set(struct soc_camera_device *icd,
> > > + struct soc_camera_link *icl,
> > > + int power_on)
> > > +{
> > > + int ret, i;
> > > +
> > > + for (i = 0; i < icd->num_soc_regulators; i++) {
> > > + if (power_on) {
> > > + ret = regulator_set_voltage(icd->soc_regulators[i],
> > > + icl->soc_regulator_descs[i].value_on_min,
> > > + icl->soc_regulator_descs[i].value_on_max);
Unless you're actively varying the voltages at runtime (as Guennadi
mentioned) I'd really expect the voltages to be handled by the regulator
constraints.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists