Received: by 2002:ac0:a679:0:0:0:0:0 with SMTP id p54csp682848imp; Thu, 21 Feb 2019 09:06:10 -0800 (PST) X-Google-Smtp-Source: AHgI3IYLtl2KdI4JXm3dw3ICKyI5Ace1lasWb5okbBUIiMjR4xtA54/JNaauAbKl1Ktx6ckJMsVJ X-Received: by 2002:a62:5385:: with SMTP id h127mr222609pfb.10.1550768770886; Thu, 21 Feb 2019 09:06:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550768770; cv=none; d=google.com; s=arc-20160816; b=VkMhkjDVTP28mmRaastjizG/dNcAFgHoJR5s/9gBc+YCbNcVSo9BbzNLHbjlJkS5Hu mw1Ph86N7ocCUXQIuHB0SveRtdXBWt58d/6AAVBA3QEs8dAqfNuq9j0UqI7mturOC1Qy RosrTrj4JD7htFC4jICndzFbQO18qecHtRTwYtySZIPlDKB5+k8LAowmoS6MhIrg/gKk KHkej8OlLjymHkXCh54EPngfCPNAQODyse6UDo+FEeUKT+D+qJ9Dho9F22nC/OuKgkmO J09qpM4OruNuub5N8+uzZWM+N53Cy9qmppLaNwPrTKsuOX+Wxx4ONOaV/0W/img2UVmg TrNg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=JjKSK3nOEyXy4/RAny4zSi/l8B45ILeBinF/xXI8OQI=; b=lcSCClmkfP4n1xAGE486xZuUyVjF4XJL5GBRSie5EFCQYMloz1OO/lIl9FOcjuKbdG yORLDGOIb2Sahjlc2VSWJrB/5WyfEQe76W5e7sGpxCdzi6UR/9AciDRBJsLbHTuXULvO 99ZgAfidenAI8Md4FuDg6hayKHh1IP/Okj/bUujE4NV65A3B+AfOnu/r8TkocD96oRCp LbtYi4oF80/dJv4OR/znbypO/S+uYuuiRoc9Ve/ixW0+TK8GQO+yliL85NNwJY3KvJry 24Hv9de83zFK4qV1a8+ZRQR8w2jOLYZ7KitYcL4T49csqUPbogNpr2a9/SxcAOGiqtBV t8nQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@goldelico.com header.s=strato-dkim-0002 header.b=RRHq5Xmp; 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 f4si18401502pgb.164.2019.02.21.09.05.55; Thu, 21 Feb 2019 09:06:10 -0800 (PST) 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; dkim=fail header.i=@goldelico.com header.s=strato-dkim-0002 header.b=RRHq5Xmp; 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 S1728442AbfBURDE (ORCPT + 99 others); Thu, 21 Feb 2019 12:03:04 -0500 Received: from mo4-p03-ob.smtp.rzone.de ([85.215.255.101]:30809 "EHLO mo4-p03-ob.smtp.rzone.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726155AbfBURDD (ORCPT ); Thu, 21 Feb 2019 12:03:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1550768581; s=strato-dkim-0002; d=goldelico.com; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: X-RZG-CLASS-ID:X-RZG-AUTH:From:Subject:Sender; bh=JjKSK3nOEyXy4/RAny4zSi/l8B45ILeBinF/xXI8OQI=; b=RRHq5XmpcAbf0zv5sE/xgikgkz+be+lgJkFQuaJJX1cblTpWFZs5d2SWx3FNcMMXys 3IuLeD9NLW5dRxcKNH1rlw90zwvjdW+r1Su0VgLLBwlp7pvyOCA4mujq0iXOWodb29sq oggp7OVt2iDXRQg512fVU8HCVF3RBte/WT04Xm64jyY5SRoRu3+IUOZzG/NCLi4MZHv7 bln4BlaaKZ6/S67lHW79h0+qjLJ+cxpF2jNWIPHeSOvqQtQ+syCFJ6Xjzp/Cojyl1q/V Y1psxGOWPaiNEhmxqv8xZD8hPFz2q6WF4RYFysVhejxI7mc5+N7ZH5uRC+8I7BvAQEvx lksQ== X-RZG-AUTH: ":JGIXVUS7cutRB/49FwqZ7WcJeFKiMhflhwDubTJ9o1OAA2UNf2MzNl43D1ri" X-RZG-CLASS-ID: mo00 Received: from iMac.fritz.box by smtp.strato.de (RZmta 44.9 DYNA|AUTH) with ESMTPSA id 608499v1LH30LXH (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (curve secp521r1 with 521 ECDH bits, eq. 15360 bits RSA)) (Client did not present a certificate); Thu, 21 Feb 2019 18:03:00 +0100 (CET) From: "H. Nikolaus Schaller" To: Linus Walleij , Jonathan Cameron , Rob Herring , Mark Rutland , "H. Nikolaus Schaller" , Andy Shevchenko , Charles Keepax , Song Qiang , Jean-Baptiste Maneyrol , Martin Kelly , Jonathan Marek , Brian Masney , Stephan Gerhold Cc: letux-kernel@openphoenux.org, Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 06/10] iio: gyro: itg3200: add mount matrix support Date: Thu, 21 Feb 2019 18:02:51 +0100 Message-Id: X-Mailer: git-send-email 2.19.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch allows to read a mount-matrix device tree property and report to user-space or in-kernel iio clients. Signed-off-by: H. Nikolaus Schaller --- drivers/iio/gyro/itg3200_core.c | 20 ++++++++++++++++++++ include/linux/iio/gyro/itg3200.h | 1 + 2 files changed, 21 insertions(+) diff --git a/drivers/iio/gyro/itg3200_core.c b/drivers/iio/gyro/itg3200_core.c index 7adecb562c81..203a6be33b70 100644 --- a/drivers/iio/gyro/itg3200_core.c +++ b/drivers/iio/gyro/itg3200_core.c @@ -242,6 +242,20 @@ static int itg3200_initial_setup(struct iio_dev *indio_dev) return ret; } +static const struct iio_mount_matrix * +itg3200_get_mount_matrix(const struct iio_dev *indio_dev, + const struct iio_chan_spec *chan) +{ + struct itg3200 *data = iio_priv(indio_dev); + + return &data->orientation; +} + +static const struct iio_chan_spec_ext_info itg3200_ext_info[] = { + IIO_MOUNT_MATRIX(IIO_SHARED_BY_DIR, itg3200_get_mount_matrix), + { } +}; + #define ITG3200_ST \ { .sign = 's', .realbits = 16, .storagebits = 16, .endianness = IIO_BE } @@ -255,6 +269,7 @@ static int itg3200_initial_setup(struct iio_dev *indio_dev) .address = ITG3200_REG_GYRO_ ## _mod ## OUT_H, \ .scan_index = ITG3200_SCAN_GYRO_ ## _mod, \ .scan_type = ITG3200_ST, \ + .ext_info = itg3200_ext_info, \ } static const struct iio_chan_spec itg3200_channels[] = { @@ -297,6 +312,11 @@ static int itg3200_probe(struct i2c_client *client, st = iio_priv(indio_dev); + ret = iio_read_mount_matrix(&client->dev, "mount-matrix", + &st->orientation); + if (ret) + return ret; + i2c_set_clientdata(client, indio_dev); st->i2c = client; diff --git a/include/linux/iio/gyro/itg3200.h b/include/linux/iio/gyro/itg3200.h index 2a820850f284..0a30fddccfb3 100644 --- a/include/linux/iio/gyro/itg3200.h +++ b/include/linux/iio/gyro/itg3200.h @@ -104,6 +104,7 @@ struct itg3200 { struct i2c_client *i2c; struct iio_trigger *trig; + struct iio_mount_matrix orientation; }; enum ITG3200_SCAN_INDEX { -- 2.19.1