* [PATCH 0/2] iio:magnetometer:mag3110, missing patches @ 2014-05-02 8:09 Peter Meerwald 2014-05-02 8:09 ` [PATCH 1/2] iio:magnetometer:mag3110: Fix initialization of ctrl_reg1 Peter Meerwald 2014-05-02 8:09 ` [PATCH 2/2] iio:magnetometer:mag3110: Enable user offset calibration Peter Meerwald 0 siblings, 2 replies; 5+ messages in thread From: Peter Meerwald @ 2014-05-02 8:09 UTC (permalink / raw) To: linux-iio; +Cc: jic23 Hi, two patches are still missing for the mag3110 driver that were posted in January, see http://comments.gmane.org/gmane.linux.kernel.iio/10871 I think these patches could/should be applied now thanks, p. Peter Meerwald (2): iio:magnetometer:mag3110: Fix initialization of ctrl_reg1 iio:magnetometer:mag3110: Enable user offset calibration drivers/iio/magnetometer/mag3110.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) -- 1.9.1 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] iio:magnetometer:mag3110: Fix initialization of ctrl_reg1 2014-05-02 8:09 [PATCH 0/2] iio:magnetometer:mag3110, missing patches Peter Meerwald @ 2014-05-02 8:09 ` Peter Meerwald 2014-05-03 10:27 ` Jonathan Cameron 2014-05-02 8:09 ` [PATCH 2/2] iio:magnetometer:mag3110: Enable user offset calibration Peter Meerwald 1 sibling, 1 reply; 5+ messages in thread From: Peter Meerwald @ 2014-05-02 8:09 UTC (permalink / raw) To: linux-iio; +Cc: jic23, Peter Meerwald DR bits need to be shifted; since MAG3110_CTRL_DR_DEFAULT is zero, the change has no effect Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net> --- drivers/iio/magnetometer/mag3110.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iio/magnetometer/mag3110.c b/drivers/iio/magnetometer/mag3110.c index 8b77782..1b2df75 100644 --- a/drivers/iio/magnetometer/mag3110.c +++ b/drivers/iio/magnetometer/mag3110.c @@ -338,7 +338,7 @@ static int mag3110_probe(struct i2c_client *client, indio_dev->num_channels = ARRAY_SIZE(mag3110_channels); indio_dev->available_scan_masks = mag3110_scan_masks; - data->ctrl_reg1 = MAG3110_CTRL_DR_DEFAULT; + data->ctrl_reg1 = MAG3110_CTRL_DR_DEFAULT << MAG3110_CTRL_DR_SHIFT; ret = i2c_smbus_write_byte_data(client, MAG3110_CTRL_REG1, data->ctrl_reg1); if (ret < 0) -- 1.9.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] iio:magnetometer:mag3110: Fix initialization of ctrl_reg1 2014-05-02 8:09 ` [PATCH 1/2] iio:magnetometer:mag3110: Fix initialization of ctrl_reg1 Peter Meerwald @ 2014-05-03 10:27 ` Jonathan Cameron 0 siblings, 0 replies; 5+ messages in thread From: Jonathan Cameron @ 2014-05-03 10:27 UTC (permalink / raw) To: Peter Meerwald, linux-iio On 02/05/14 09:09, Peter Meerwald wrote: > DR bits need to be shifted; since MAG3110_CTRL_DR_DEFAULT is > zero, the change has no effect > > Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net> Gah, my careful colour coding of patches went astray on these two so I lost them. Thanks for the reminder. Applied to the togreg branch of iio.git J > --- > drivers/iio/magnetometer/mag3110.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/iio/magnetometer/mag3110.c b/drivers/iio/magnetometer/mag3110.c > index 8b77782..1b2df75 100644 > --- a/drivers/iio/magnetometer/mag3110.c > +++ b/drivers/iio/magnetometer/mag3110.c > @@ -338,7 +338,7 @@ static int mag3110_probe(struct i2c_client *client, > indio_dev->num_channels = ARRAY_SIZE(mag3110_channels); > indio_dev->available_scan_masks = mag3110_scan_masks; > > - data->ctrl_reg1 = MAG3110_CTRL_DR_DEFAULT; > + data->ctrl_reg1 = MAG3110_CTRL_DR_DEFAULT << MAG3110_CTRL_DR_SHIFT; > ret = i2c_smbus_write_byte_data(client, MAG3110_CTRL_REG1, > data->ctrl_reg1); > if (ret < 0) > ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] iio:magnetometer:mag3110: Enable user offset calibration 2014-05-02 8:09 [PATCH 0/2] iio:magnetometer:mag3110, missing patches Peter Meerwald 2014-05-02 8:09 ` [PATCH 1/2] iio:magnetometer:mag3110: Fix initialization of ctrl_reg1 Peter Meerwald @ 2014-05-02 8:09 ` Peter Meerwald 2014-05-03 10:28 ` Jonathan Cameron 1 sibling, 1 reply; 5+ messages in thread From: Peter Meerwald @ 2014-05-02 8:09 UTC (permalink / raw) To: linux-iio; +Cc: jic23, Peter Meerwald add IIO_CHAN_INFO_CALIBBIAS Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net> --- drivers/iio/magnetometer/mag3110.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/iio/magnetometer/mag3110.c b/drivers/iio/magnetometer/mag3110.c index 1b2df75..e3106b4 100644 --- a/drivers/iio/magnetometer/mag3110.c +++ b/drivers/iio/magnetometer/mag3110.c @@ -199,6 +199,13 @@ static int mag3110_read_raw(struct iio_dev *indio_dev, *val = mag3110_samp_freq[i][0]; *val2 = mag3110_samp_freq[i][1]; return IIO_VAL_INT_PLUS_MICRO; + case IIO_CHAN_INFO_CALIBBIAS: + ret = i2c_smbus_read_word_swapped(data->client, + MAG3110_OFF_X + 2 * chan->scan_index); + if (ret < 0) + return ret; + *val = sign_extend32(ret >> 1, 14); + return IIO_VAL_INT; } return -EINVAL; } @@ -223,6 +230,11 @@ static int mag3110_write_raw(struct iio_dev *indio_dev, data->ctrl_reg1 |= rate << MAG3110_CTRL_DR_SHIFT; return i2c_smbus_write_byte_data(data->client, MAG3110_CTRL_REG1, data->ctrl_reg1); + case IIO_CHAN_INFO_CALIBBIAS: + if (val < -10000 || val > 10000) + return -EINVAL; + return i2c_smbus_write_word_swapped(data->client, + MAG3110_OFF_X + 2 * chan->scan_index, val << 1); default: return -EINVAL; } @@ -260,7 +272,8 @@ done: .type = IIO_MAGN, \ .modified = 1, \ .channel2 = IIO_MOD_##axis, \ - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \ + BIT(IIO_CHAN_INFO_CALIBBIAS), \ .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SAMP_FREQ) | \ BIT(IIO_CHAN_INFO_SCALE), \ .scan_index = idx, \ @@ -345,7 +358,7 @@ static int mag3110_probe(struct i2c_client *client, return ret; ret = i2c_smbus_write_byte_data(client, MAG3110_CTRL_REG2, - MAG3110_CTRL_AUTO_MRST_EN | MAG3110_CTRL_RAW); + MAG3110_CTRL_AUTO_MRST_EN); if (ret < 0) return ret; -- 1.9.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] iio:magnetometer:mag3110: Enable user offset calibration 2014-05-02 8:09 ` [PATCH 2/2] iio:magnetometer:mag3110: Enable user offset calibration Peter Meerwald @ 2014-05-03 10:28 ` Jonathan Cameron 0 siblings, 0 replies; 5+ messages in thread From: Jonathan Cameron @ 2014-05-03 10:28 UTC (permalink / raw) To: Peter Meerwald, linux-iio On 02/05/14 09:09, Peter Meerwald wrote: > add IIO_CHAN_INFO_CALIBBIAS > > Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net> Applied to the togreg branch of iio.git Thanks, Jonathan > --- > drivers/iio/magnetometer/mag3110.c | 17 +++++++++++++++-- > 1 file changed, 15 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/magnetometer/mag3110.c b/drivers/iio/magnetometer/mag3110.c > index 1b2df75..e3106b4 100644 > --- a/drivers/iio/magnetometer/mag3110.c > +++ b/drivers/iio/magnetometer/mag3110.c > @@ -199,6 +199,13 @@ static int mag3110_read_raw(struct iio_dev *indio_dev, > *val = mag3110_samp_freq[i][0]; > *val2 = mag3110_samp_freq[i][1]; > return IIO_VAL_INT_PLUS_MICRO; > + case IIO_CHAN_INFO_CALIBBIAS: > + ret = i2c_smbus_read_word_swapped(data->client, > + MAG3110_OFF_X + 2 * chan->scan_index); > + if (ret < 0) > + return ret; > + *val = sign_extend32(ret >> 1, 14); > + return IIO_VAL_INT; > } > return -EINVAL; > } > @@ -223,6 +230,11 @@ static int mag3110_write_raw(struct iio_dev *indio_dev, > data->ctrl_reg1 |= rate << MAG3110_CTRL_DR_SHIFT; > return i2c_smbus_write_byte_data(data->client, > MAG3110_CTRL_REG1, data->ctrl_reg1); > + case IIO_CHAN_INFO_CALIBBIAS: > + if (val < -10000 || val > 10000) > + return -EINVAL; > + return i2c_smbus_write_word_swapped(data->client, > + MAG3110_OFF_X + 2 * chan->scan_index, val << 1); > default: > return -EINVAL; > } > @@ -260,7 +272,8 @@ done: > .type = IIO_MAGN, \ > .modified = 1, \ > .channel2 = IIO_MOD_##axis, \ > - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ > + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \ > + BIT(IIO_CHAN_INFO_CALIBBIAS), \ > .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SAMP_FREQ) | \ > BIT(IIO_CHAN_INFO_SCALE), \ > .scan_index = idx, \ > @@ -345,7 +358,7 @@ static int mag3110_probe(struct i2c_client *client, > return ret; > > ret = i2c_smbus_write_byte_data(client, MAG3110_CTRL_REG2, > - MAG3110_CTRL_AUTO_MRST_EN | MAG3110_CTRL_RAW); > + MAG3110_CTRL_AUTO_MRST_EN); > if (ret < 0) > return ret; > > ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-05-03 10:26 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-05-02 8:09 [PATCH 0/2] iio:magnetometer:mag3110, missing patches Peter Meerwald 2014-05-02 8:09 ` [PATCH 1/2] iio:magnetometer:mag3110: Fix initialization of ctrl_reg1 Peter Meerwald 2014-05-03 10:27 ` Jonathan Cameron 2014-05-02 8:09 ` [PATCH 2/2] iio:magnetometer:mag3110: Enable user offset calibration Peter Meerwald 2014-05-03 10:28 ` Jonathan Cameron
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).