Received: by 2002:a25:f815:0:0:0:0:0 with SMTP id u21csp2119669ybd; Thu, 27 Jun 2019 07:07:00 -0700 (PDT) X-Google-Smtp-Source: APXvYqwR/vgQkwBA1XL2eu+X442rlFkoxOxD+/MZtSIaaFYQZvW2wc+r2u5f4eBMYuXQWVX19bEV X-Received: by 2002:a17:902:31c3:: with SMTP id x61mr4809785plb.331.1561644420320; Thu, 27 Jun 2019 07:07:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561644420; cv=none; d=google.com; s=arc-20160816; b=0gFLKK3bKDh21dZfMKFzj6yyHZ0Eh/TrqbjVA7Gvk3OiPTEPDRpVVA6dlWqt2iSuMx Lh5Tk/WJWuzESOfL26U8EuNV9uefahjF0VNDV2aNdDcc3c2VEj6vejRtFtoPCqSgk9Bn joZgEU+THH83sGbxWWJwuht5IS1WnnLV8oeB9Wj+ATcOF1KEWqP8C1lfZ2wK+adp7uMs xsgL4HZJ6u/jGp7SrdGW/bZVG8yjzueqaJ9z40kXalfzAPP80ax3Jqw03D6uplLwSomv LMM9JxVAvKdZvFHzSpznIhkDg4MJB2cMxTY0oN9ld3Z4iR/LXNGnRdydGXutcaKGeAzA yfTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:from; bh=xwRqw0QgAE+WeDth9LBEtqPROPnxcrsoMr8w8/+i7eA=; b=RBgORDndB5Keov3a6nByf0fMgBJoTourWQ6ewnFcX4R5LiF+iqotVdzSkp3I6TK1XI 9fKudBmiskZ5/zKw0QYPtiSSK5TETwFtHG0rSsNw2XzCx/16Fi9VyZ/3qfCDkzmKibsn kpO0aDhtGYkLvFyBwCdmt7RhoBELolzy/W+L4Hg1ihlkzECl/JCBanYz3zcQfFN+rr6B Iek7dLiwVse/jgzyr2EdUcW3Ve7DTc05m8T/NzOFb12HCYhOyb30M+cQz60THerVrxIb aLgySZgFgMZb+wgGLiE0tS0sfrvvaOqBFTqUMzg/lwcFe8gWt7BWVlOvPm6l1Ii8RWLo zBPg== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a7si2826494pfc.54.2019.06.27.07.06.44; Thu, 27 Jun 2019 07:07:00 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727095AbfF0OFE (ORCPT + 99 others); Thu, 27 Jun 2019 10:05:04 -0400 Received: from bhuna.collabora.co.uk ([46.235.227.227]:46194 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727074AbfF0OFA (ORCPT ); Thu, 27 Jun 2019 10:05:00 -0400 Received: from laptop.home (unknown [IPv6:2a01:cb19:8ad6:900:8ae7:f3be:9ccd:d8f9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: aragua) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id EA0452899E9; Thu, 27 Jun 2019 15:04:58 +0100 (BST) From: Fabien Lahoudere Cc: kernel@collabora.com, Fabien Lahoudere , Nick Vaccaro , Jonathan Cameron , Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/2] iio: common: cros_ec_sensors: set default frequencies Date: Thu, 27 Jun 2019 16:04:30 +0200 Message-Id: <7d3972d1200065fe6e98a310e66f53a7ed12e281.1561642224.git.fabien.lahoudere@collabora.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit To: unlisted-recipients:; (no To-header on input) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Version 3 of the EC protocol provides min and max frequencies for EC sensors. Default frequencies are provided for earlier protocol. Signed-off-by: Fabien Lahoudere Signed-off-by: Nick Vaccaro --- .../cros_ec_sensors/cros_ec_sensors_core.c | 44 +++++++++++++++++++ .../linux/iio/common/cros_ec_sensors_core.h | 3 ++ 2 files changed, 47 insertions(+) diff --git a/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c b/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c index 2e0f97448e64..72f56d54cccd 100644 --- a/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c +++ b/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c @@ -50,6 +50,37 @@ static int cros_ec_get_host_cmd_version_mask(struct cros_ec_device *ec_dev, return ret; } +static void get_default_min_max_freq(enum motionsensor_type type, + u32 *min_freq, + u32 *max_freq) +{ + switch (type) { + case MOTIONSENSE_TYPE_ACCEL: + case MOTIONSENSE_TYPE_GYRO: + *min_freq = 12500; + *max_freq = 100000; + break; + case MOTIONSENSE_TYPE_MAG: + *min_freq = 5000; + *max_freq = 25000; + break; + case MOTIONSENSE_TYPE_PROX: + case MOTIONSENSE_TYPE_LIGHT: + *min_freq = 100; + *max_freq = 50000; + break; + case MOTIONSENSE_TYPE_BARO: + *min_freq = 250; + *max_freq = 20000; + break; + case MOTIONSENSE_TYPE_ACTIVITY: + default: + *min_freq = 0; + *max_freq = 0; + break; + } +} + int cros_ec_sensors_core_init(struct platform_device *pdev, struct iio_dev *indio_dev, bool physical_device) @@ -100,6 +131,19 @@ int cros_ec_sensors_core_init(struct platform_device *pdev, } state->type = state->resp->info.type; state->loc = state->resp->info.location; + + /* Value to stop the device */ + state->frequencies[0] = 0; + if (state->msg->version < 3) { + get_default_min_max_freq(state->resp->info.type, + &state->frequencies[1], + &state->frequencies[2]); + } else { + state->frequencies[1] = + state->resp->info_3.min_frequency; + state->frequencies[2] = + state->resp->info_3.max_frequency; + } } return 0; diff --git a/include/linux/iio/common/cros_ec_sensors_core.h b/include/linux/iio/common/cros_ec_sensors_core.h index 0c636b9fe8d7..94c87da22c04 100644 --- a/include/linux/iio/common/cros_ec_sensors_core.h +++ b/include/linux/iio/common/cros_ec_sensors_core.h @@ -70,6 +70,9 @@ struct cros_ec_sensors_core_state { unsigned long scan_mask, s16 *data); int curr_sampl_freq; + + /* Disable, Min and Max Sampling Frequency in mHz */ + int frequencies[3]; }; /** -- 2.20.1