From: Alexandre Belloni <alexandre.belloni@free-electrons.com>
To: Harald Geyer <harald@ccbib.org>,
Hector Palacios <hector.palacios@digi.com>
Cc: linux-iio@vger.kernel.org, jic23@kernel.org, lars@metafoo.de,
fabio.estevam@freescale.com, marex@denx.de
Subject: Re: [PATCH v3 5/5] iio: mxs-lradc: add write_raw function to modify scale
Date: Fri, 06 Dec 2013 17:32:21 +0100 [thread overview]
Message-ID: <52A1FC15.9090707@free-electrons.com> (raw)
In-Reply-To: <E1VoyGH-0001FW-4Z@stardust.g4.wien.funkfeuer.at>
Hi,
On 06/12/2013 17:28, Harald Geyer wrote:
> Hi,
>
> anybody knows what became of below patch?
>
> It got a 'Reviewed-by: Marek Vasut <marex@denx.de>' but then nothing
> happened and it never got applied it seems.
>
> I'm considering working on current source support for the mxs-lradc driver
> and would likely write something similar...
I've started rebasing it on 3.13 and removing the DT part but I couldn't
test it yet. I'll try to find the time to do so this week end.
> Harald
>
> Hector Palacios writes:
>> Added write_raw function to manipulate the optional divider_by_two
>> through the scaling attribute out of the available scales.
>>
>> Signed-off-by: Hector Palacios <hector.palacios@digi.com>
>> ---
>> drivers/staging/iio/adc/mxs-lradc.c | 56 ++++++++++++++++++++++++++++++++++++-
>> 1 file changed, 55 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/staging/iio/adc/mxs-lradc.c b/drivers/staging/iio/adc/mxs-lradc.c
>> index 5d332b1..4d3c7f5 100644
>> --- a/drivers/staging/iio/adc/mxs-lradc.c
>> +++ b/drivers/staging/iio/adc/mxs-lradc.c
>> @@ -213,6 +213,7 @@ struct mxs_lradc {
>> #define LRADC_CTRL1_LRADC_IRQ_OFFSET 0
>>
>> #define LRADC_CTRL2 0x20
>> +#define LRADC_CTRL2_DIVIDE_BY_TWO_OFFSET 24
>> #define LRADC_CTRL2_TEMPSENSE_PWD (1 << 15)
>>
>> #define LRADC_STATUS 0x40
>> @@ -320,7 +321,8 @@ static int mxs_lradc_read_raw(struct iio_dev *iio_dev,
>> break;
>> case IIO_CHAN_INFO_SCALE:
>> *val = lradc->vref_mv[chan->channel];
>> - *val2 = chan->scan_type.realbits;
>> + *val2 = chan->scan_type.realbits -
>> + lradc->is_divided[chan->channel];
>> ret = IIO_VAL_FRACTIONAL_LOG2;
>> break;
>> default:
>> @@ -333,6 +335,56 @@ static int mxs_lradc_read_raw(struct iio_dev *iio_dev,
>> return ret;
>> }
>>
>> +static int mxs_lradc_write_raw(struct iio_dev *iio_dev,
>> + const struct iio_chan_spec *chan,
>> + int val, int val2, long m)
>> +{
>> + struct mxs_lradc *lradc = iio_priv(iio_dev);
>> + struct mxs_lradc_scale *scale_avail =
>> + lradc->scale_avail[chan->channel];
>> + int ret;
>> +
>> + ret = mutex_trylock(&lradc->lock);
>> + if (!ret)
>> + return -EBUSY;
>> +
>> + switch (m) {
>> + case IIO_CHAN_INFO_SCALE:
>> + ret = -EINVAL;
>> + if (val == scale_avail[MXS_LRADC_DIV_DISABLED].integer &&
>> + val2 == scale_avail[MXS_LRADC_DIV_DISABLED].nano) {
>> + /* divider by two disabled */
>> + writel(1 << LRADC_CTRL2_DIVIDE_BY_TWO_OFFSET,
>> + lradc->base + LRADC_CTRL2 + STMP_OFFSET_REG_CLR);
>> + lradc->is_divided[chan->channel] = 0;
>> + ret = 0;
>> + } else if (val == scale_avail[MXS_LRADC_DIV_ENABLED].integer &&
>> + val2 == scale_avail[MXS_LRADC_DIV_ENABLED].nano) {
>> + /* divider by two enabled */
>> + writel(1 << LRADC_CTRL2_DIVIDE_BY_TWO_OFFSET,
>> + lradc->base + LRADC_CTRL2 + STMP_OFFSET_REG_SET);
>> + lradc->is_divided[chan->channel] = 1;
>> + ret = 0;
>> + }
>> +
>> + break;
>> + default:
>> + ret = -EINVAL;
>> + break;
>> + }
>> +
>> + mutex_unlock(&lradc->lock);
>> +
>> + return ret;
>> +}
>> +
>> +static int mxs_lradc_write_raw_get_fmt(struct iio_dev *iio_dev,
>> + const struct iio_chan_spec *chan,
>> + long m)
>> +{
>> + return IIO_VAL_INT_PLUS_NANO;
>> +}
>> +
>> static ssize_t mxs_lradc_show_scale_available_ch(struct device *dev,
>> struct device_attribute *attr,
>> char *buf,
>> @@ -410,6 +462,8 @@ static const struct attribute_group mxs_lradc_attribute_group = {
>> static const struct iio_info mxs_lradc_iio_info = {
>> .driver_module = THIS_MODULE,
>> .read_raw = mxs_lradc_read_raw,
>> + .write_raw = mxs_lradc_write_raw,
>> + .write_raw_get_fmt = mxs_lradc_write_raw_get_fmt,
>> .attrs = &mxs_lradc_attribute_group,
>> };
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
prev parent reply other threads:[~2013-12-06 16:32 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-22 14:03 [PATCH v3 0/5] iio: mxs-lradc: add support to optional divider_by_two Hector Palacios
2013-07-22 14:03 ` Hector Palacios
2013-07-22 14:03 ` [PATCH v3 1/5] iio: mxs-lradc: change the realbits to 12 Hector Palacios
2013-07-22 14:03 ` Hector Palacios
2013-08-13 21:24 ` Jonathan Cameron
2013-08-13 21:24 ` Jonathan Cameron
2013-07-22 14:04 ` [PATCH v3 2/5] ARM: dts: add reference voltage property for MXS LRADC Hector Palacios
2013-07-22 14:04 ` Hector Palacios
2013-07-22 18:34 ` Lars-Peter Clausen
2013-07-22 18:34 ` Lars-Peter Clausen
2013-07-22 22:06 ` Marek Vasut
2013-07-22 22:06 ` Marek Vasut
2013-07-26 9:23 ` Alexandre Belloni
2013-07-26 9:23 ` Alexandre Belloni
2013-08-13 21:23 ` Jonathan Cameron
2013-08-13 21:23 ` Jonathan Cameron
2013-08-14 14:44 ` Pawel Moll
2013-08-14 14:44 ` Pawel Moll
2013-08-14 14:44 ` Pawel Moll
2013-08-21 22:13 ` Alexandre Belloni
2013-08-21 22:13 ` Alexandre Belloni
2013-08-22 6:17 ` Jonathan Cameron
2013-08-22 6:17 ` Jonathan Cameron
2013-08-22 16:51 ` Pawel Moll
2013-08-23 23:00 ` Jonathan Cameron
2013-09-23 12:47 ` Alexandre Belloni
2013-09-23 12:47 ` Alexandre Belloni
2013-09-23 13:39 ` Hector Palacios
2013-09-23 13:39 ` Hector Palacios
2013-08-22 8:05 ` Hector Palacios
2013-08-22 8:05 ` Hector Palacios
2013-08-22 16:50 ` Pawel Moll
2013-08-22 16:50 ` Pawel Moll
2013-08-22 16:50 ` Pawel Moll
2013-08-22 16:41 ` Pawel Moll
2013-08-22 16:41 ` Pawel Moll
2013-08-22 16:41 ` Pawel Moll
2013-08-22 17:00 ` Lars-Peter Clausen
2013-08-22 17:00 ` Lars-Peter Clausen
2013-07-22 14:04 ` [PATCH v3 3/5] iio: mxs-lradc: add scale attribute to channels Hector Palacios
2013-07-22 14:04 ` Hector Palacios
2013-07-22 14:04 ` [PATCH v3 4/5] iio: mxs-lradc: add scale_available file " Hector Palacios
2013-07-22 14:04 ` Hector Palacios
2013-07-22 22:36 ` Marek Vasut
2013-07-23 7:00 ` Hector Palacios
2013-07-23 7:00 ` Hector Palacios
2013-07-23 8:46 ` Lars-Peter Clausen
2013-07-23 8:46 ` Lars-Peter Clausen
2013-07-23 13:25 ` Hector Palacios
2013-07-23 13:25 ` Hector Palacios
2013-07-26 13:17 ` Alexandre Belloni
2013-07-26 13:17 ` Alexandre Belloni
2013-07-26 16:13 ` Jonathan Cameron
2013-07-26 16:13 ` Jonathan Cameron
2013-08-07 7:50 ` Alexandre Belloni
2013-08-07 7:50 ` Alexandre Belloni
2013-08-13 21:26 ` Jonathan Cameron
2013-08-13 21:26 ` Jonathan Cameron
2013-07-22 14:04 ` [PATCH v3 5/5] iio: mxs-lradc: add write_raw function to modify scale Hector Palacios
2013-07-22 14:04 ` Hector Palacios
2013-07-22 22:37 ` Marek Vasut
2013-07-22 22:37 ` Marek Vasut
2013-12-06 16:28 ` Harald Geyer
2013-12-06 16:32 ` Alexandre Belloni [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52A1FC15.9090707@free-electrons.com \
--to=alexandre.belloni@free-electrons.com \
--cc=fabio.estevam@freescale.com \
--cc=harald@ccbib.org \
--cc=hector.palacios@digi.com \
--cc=jic23@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=marex@denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.