Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp1347470imm; Tue, 2 Oct 2018 06:54:21 -0700 (PDT) X-Google-Smtp-Source: ACcGV61AjwjokcgoNF/yOqGuExRaRs2ZTAFpnTz48D/JjdNH8UCzPwJK20geYjF4t9A7sFhSfXSL X-Received: by 2002:a63:4658:: with SMTP id v24-v6mr14813709pgk.425.1538488461586; Tue, 02 Oct 2018 06:54:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538488461; cv=none; d=google.com; s=arc-20160816; b=unxngbADEMUjvTsvvOLTz84+K6QN85XlRjiBMQSLTc9TUDg4hK147V8uGFjZMd3wbw KWcY/d0XQlDF0bdSPbplbQ8cjf9tA1L3/7V5s2+EoC2XkFu+vrYRVKF7uHFV7E96HYpV NMMwwS2go3KU3vR9vQT4VmwSMn7m31idkIxUBj25xvC5E5XNkEgRA4mzq6gjXF3cESfT bQqYhBB6folaGetUmW2A4SnGQOAOAY6WU4Ci2+g+NKPE4FA3ZbUosSqBsnYu/JtSN9Sc iQISuGcaUt+7871fM7co2kFuBINUxV/SuuT2j90TwpqpERMi9c/aZJajHk2L4k6yaNNd XEJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from; bh=Cev85DRNWS/NnhOPMQ97gNiQ+P0Yv+tZH4TeC5c+fik=; b=AbnnW6CQ3LjDChjRvp91AuOkR9SPZ2GA6063yVNSryxVP+9wx0C/p6yVb32sk8Cjo4 rOSvxgy1yPlwLN6nC819TYexzkduoizto3cVtaUidBEl3XL1uhgXZDwR6tf8wtZEOqDY qJ3Pn5ybiLF7sBKOFij9KBEyOUnYsE5vywq2UIqJnsMeOrlofQVJzEMcRK2xksmHXP0w 10borbSIIL79X/gNL7zU5136ggmtcGAUledROIXowO3ZrCMMwgRIKgOOCg+hjSzo80Xz H0QmA8c2OK4mkzVlDBHZ0H0MnZsdm7u0ThQJ9x0cVvyWbSjej9WdTQnJbzZRoQee65W/ kC8w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s20-v6si7789021pgj.546.2018.10.02.06.54.06; Tue, 02 Oct 2018 06:54:21 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731536AbeJBUQC (ORCPT + 99 others); Tue, 2 Oct 2018 16:16:02 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:34616 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731491AbeJBUQB (ORCPT ); Tue, 2 Oct 2018 16:16:01 -0400 Received: from localhost (24-104-73-23-ip-static.hfc.comcastbusiness.net [24.104.73.23]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id E5BFBBF0; Tue, 2 Oct 2018 13:32:37 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Eva Rachel Retuya , Andy Shevchenko , Jonathan Cameron , Akinobu Mita , Jonathan Cameron , Sasha Levin Subject: [PATCH 4.14 046/137] iio: accel: adxl345: convert address field usage in iio_chan_spec Date: Tue, 2 Oct 2018 06:24:07 -0700 Message-Id: <20181002132501.701485271@linuxfoundation.org> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181002132458.446916963@linuxfoundation.org> References: <20181002132458.446916963@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Akinobu Mita [ Upstream commit 9048f1f18a70a01eaa3c8e7166fdb2538929d780 ] Currently the address field in iio_chan_spec is filled with an accel data register address for the corresponding axis. In preparation for adding calibration offset support, this sets the address field to the index of accel data registers instead of the actual register address. This change makes it easier to access both accel registers and calibration offset registers with fewer lines of code as these are located in X-axis, Y-axis, Z-axis order. Cc: Eva Rachel Retuya Cc: Andy Shevchenko Cc: Jonathan Cameron Signed-off-by: Akinobu Mita Signed-off-by: Jonathan Cameron Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/iio/accel/adxl345_core.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) --- a/drivers/iio/accel/adxl345_core.c +++ b/drivers/iio/accel/adxl345_core.c @@ -21,6 +21,8 @@ #define ADXL345_REG_DATAX0 0x32 #define ADXL345_REG_DATAY0 0x34 #define ADXL345_REG_DATAZ0 0x36 +#define ADXL345_REG_DATA_AXIS(index) \ + (ADXL345_REG_DATAX0 + (index) * sizeof(__le16)) #define ADXL345_POWER_CTL_MEASURE BIT(3) #define ADXL345_POWER_CTL_STANDBY 0x00 @@ -47,19 +49,19 @@ struct adxl345_data { u8 data_range; }; -#define ADXL345_CHANNEL(reg, axis) { \ +#define ADXL345_CHANNEL(index, axis) { \ .type = IIO_ACCEL, \ .modified = 1, \ .channel2 = IIO_MOD_##axis, \ - .address = reg, \ + .address = index, \ .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), \ } static const struct iio_chan_spec adxl345_channels[] = { - ADXL345_CHANNEL(ADXL345_REG_DATAX0, X), - ADXL345_CHANNEL(ADXL345_REG_DATAY0, Y), - ADXL345_CHANNEL(ADXL345_REG_DATAZ0, Z), + ADXL345_CHANNEL(0, X), + ADXL345_CHANNEL(1, Y), + ADXL345_CHANNEL(2, Z), }; static int adxl345_read_raw(struct iio_dev *indio_dev, @@ -67,7 +69,7 @@ static int adxl345_read_raw(struct iio_d int *val, int *val2, long mask) { struct adxl345_data *data = iio_priv(indio_dev); - __le16 regval; + __le16 accel; int ret; switch (mask) { @@ -77,12 +79,13 @@ static int adxl345_read_raw(struct iio_d * ADXL345_REG_DATA(X0/Y0/Z0) contain the least significant byte * and ADXL345_REG_DATA(X0/Y0/Z0) + 1 the most significant byte */ - ret = regmap_bulk_read(data->regmap, chan->address, ®val, - sizeof(regval)); + ret = regmap_bulk_read(data->regmap, + ADXL345_REG_DATA_AXIS(chan->address), + &accel, sizeof(accel)); if (ret < 0) return ret; - *val = sign_extend32(le16_to_cpu(regval), 12); + *val = sign_extend32(le16_to_cpu(accel), 12); return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: *val = 0;