Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp1319362imm; Tue, 2 Oct 2018 06:28:41 -0700 (PDT) X-Google-Smtp-Source: ACcGV63/hBVxFzgfQmuBRavwL0jdLKU2qx7tGAe0OhYyh3YhvVzvNxe5J8dDnNOFLxyD5kEcY9pC X-Received: by 2002:a17:902:5e3:: with SMTP id f90-v6mr16666611plf.222.1538486921023; Tue, 02 Oct 2018 06:28:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538486920; cv=none; d=google.com; s=arc-20160816; b=vfahzEWIVovZs53jIcyEXqvBLiua44d+nAU4/s7ZmNHNOSKaMdyyRiPLr/QWCiJuWq W+IOhxoxp1vm7EA4Rx0JGFaHLiHJguf5jfHSQ3Ree+o6UeoGwcpDE7K5lSAwYmacVRaK oT1dzSwpMLsX12VlP2tP/G8/Q+M1hSKOODKHybWRZIcP4KFmhJo8H8G63kqI4iGgV0jn znbmVjOuIXgjOmB9cbhD91kuFgnTcc85YVah7emfMQisSoZX+9dPNAALrGz7aAli1aP4 vZf9Tr0fzYqtcLNNbgCkRm2K/KYWH7ZL4L/6W2KHGfq3kF/KlSQAD/99WTX0ahMAAusU xisg== 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=a2xUPx2R0b8UFDoYW91nb9p97zCGW/OzFGXmM1aTza4=; b=txYiG2I9cXOad93RpY1/wP8uk7oNv3qeiHAcQloqQVQNfDrEJOsNmUzhOxEW2zLd98 NJCZkN7dT+KGEV0yleObWRyIP/JKoT+GUehO5NqvpuQnq8mZJ165J/qRObJVj4lq4fSP Jw5tDzNfnz8zL1bq05LAcAadxUUVHai+sh/rFehVlYLwpZBuo223p0pt3ebp6C5zOPo5 ZhqKNNG0+WJO5CwIBLav/DKAvTr/KR8W+j5qm7UnbhhIcf99mCpzthCsfV+zPkBQorzv 6fcyV5a77uuki7bo3IMdq6UmW68i2nKeGyk1odYx1GHipHbzEijyRT+T4w8QiBs87nXX /3HQ== 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 q5-v6si1406170pgp.332.2018.10.02.06.28.25; Tue, 02 Oct 2018 06:28:40 -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 S1728626AbeJBUKy (ORCPT + 99 others); Tue, 2 Oct 2018 16:10:54 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:60342 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728525AbeJBUKx (ORCPT ); Tue, 2 Oct 2018 16:10:53 -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 C2FA7BF0; Tue, 2 Oct 2018 13:27:30 +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.18 062/228] iio: accel: adxl345: convert address field usage in iio_chan_spec Date: Tue, 2 Oct 2018 06:22:39 -0700 Message-Id: <20181002132503.472398918@linuxfoundation.org> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181002132459.032960735@linuxfoundation.org> References: <20181002132459.032960735@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.18-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;