Linux IIO development
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Beomho Seo <beomho.seo@samsung.com>,
	linux-iio@vger.kernel.org, ldewangan@nvidia.com
Cc: Peter Meerwald <pmeerw@pmeerw.net>,
	Myungjoo Ham <myungjoo.ham@samsung.com>,
	Jaehoon Chung <jh80.chung@samsung.com>
Subject: Re: [PATCH RESEND 1/2] iio: ak8975: Fix calculation formula for convert micro tesla to gauss unit
Date: Sat, 08 Feb 2014 10:25:44 +0000	[thread overview]
Message-ID: <52F60628.6000404@kernel.org> (raw)
In-Reply-To: <52F0AFCF.1090302@samsung.com>

On 04/02/14 09:15, Beomho Seo wrote:
>
> One micro tesla equal 0.01 gauss. So I have fixed calculation formula And add RAW_TO_GAUSS macro.
> ASA is in the range of 0 to 255. If multiply 0.003, calculation result(in_magn_[*]_scale) is
> always 0. So multiply 3000 and return and IIO_VAL_INT_PLUS_MICRO.
> As a result, read_raw call back function return accurate scale value.
>
> Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
Applied to the fixes-togreg branch of iio.git

Thanks,
> ---
>   drivers/iio/magnetometer/ak8975.c |   16 +++++++++-------
>   1 file changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/ak8975.c
> index ff284e5..0542354 100644
> --- a/drivers/iio/magnetometer/ak8975.c
> +++ b/drivers/iio/magnetometer/ak8975.c
> @@ -85,6 +85,7 @@
>   #define AK8975_MAX_CONVERSION_TIMEOUT	500
>   #define AK8975_CONVERSION_DONE_POLL_TIME 10
>   #define AK8975_DATA_READY_TIMEOUT	((100*HZ)/1000)
> +#define RAW_TO_GAUSS(asa) ((((asa) + 128) * 3000) / 256)
>
>   /*
>    * Per-instance context data for the device.
> @@ -265,15 +266,15 @@ static int ak8975_setup(struct i2c_client *client)
>    *
>    * Since 1uT = 0.01 gauss, our final scale factor becomes:
>    *
> - * Hadj = H * ((ASA + 128) / 256) * 3/10 * 100
> - * Hadj = H * ((ASA + 128) * 30 / 256
> + * Hadj = H * ((ASA + 128) / 256) * 3/10 * 1/100
> + * Hadj = H * ((ASA + 128) * 0.003) / 256
>    *
>    * Since ASA doesn't change, we cache the resultant scale factor into the
>    * device context in ak8975_setup().
>    */
> -	data->raw_to_gauss[0] = ((data->asa[0] + 128) * 30) >> 8;
> -	data->raw_to_gauss[1] = ((data->asa[1] + 128) * 30) >> 8;
> -	data->raw_to_gauss[2] = ((data->asa[2] + 128) * 30) >> 8;
> +	data->raw_to_gauss[0] = RAW_TO_GAUSS(data->asa[0]);
> +	data->raw_to_gauss[1] = RAW_TO_GAUSS(data->asa[1]);
> +	data->raw_to_gauss[2] = RAW_TO_GAUSS(data->asa[2]);
>
>   	return 0;
>   }
> @@ -428,8 +429,9 @@ static int ak8975_read_raw(struct iio_dev *indio_dev,
>   	case IIO_CHAN_INFO_RAW:
>   		return ak8975_read_axis(indio_dev, chan->address, val);
>   	case IIO_CHAN_INFO_SCALE:
> -		*val = data->raw_to_gauss[chan->address];
> -		return IIO_VAL_INT;
> +		*val = 0;
> +		*val2 = data->raw_to_gauss[chan->address];
> +		return IIO_VAL_INT_PLUS_MICRO;
>   	}
>   	return -EINVAL;
>   }
>


  reply	other threads:[~2014-02-08 10:25 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-04  9:15 [PATCH RESEND 1/2] iio: ak8975: Fix calculation formula for convert micro tesla to gauss unit Beomho Seo
2014-02-08 10:25 ` Jonathan Cameron [this message]
2014-02-08 10:28   ` Jonathan Cameron

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=52F60628.6000404@kernel.org \
    --to=jic23@kernel.org \
    --cc=beomho.seo@samsung.com \
    --cc=jh80.chung@samsung.com \
    --cc=ldewangan@nvidia.com \
    --cc=linux-iio@vger.kernel.org \
    --cc=myungjoo.ham@samsung.com \
    --cc=pmeerw@pmeerw.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox