From patchwork Tue Sep 6 11:26:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Crt Mori X-Patchwork-Id: 12967328 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A12E6ECAAD5 for ; Tue, 6 Sep 2022 11:26:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230189AbiIFL0r (ORCPT ); Tue, 6 Sep 2022 07:26:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44858 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229916AbiIFL0r (ORCPT ); Tue, 6 Sep 2022 07:26:47 -0400 Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7A6444F1AF for ; Tue, 6 Sep 2022 04:26:45 -0700 (PDT) Received: by mail-ej1-x634.google.com with SMTP id gb36so22418672ejc.10 for ; Tue, 06 Sep 2022 04:26:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=melexis.com; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date; bh=XyJKVGE0cD/925orO/HXak99UYJgYNpKUPooDkzvfhg=; b=YNaLRjPAI6HE/oMyHjRmptBtO0czvRuRep/SybAqxLi3sij+gq+SpkrrYJyfT0c9Vs oIpm8H9JSRvaS7soQue2jz38q3KxMszb++YocStDax3w7KvRD2/xVB4zUTJ8s+MIpYnP 5530UTobZsnos0Y/ybyG77PEK1ZxnxZYI2SOsiXkdtF4popIQ/1hO6SwqZaAaqFkg2eu RNDYrteHXE9DOAHLDObRTFvStb4kZ7c8Bex/YxEyx8yCTM3Ja+sN3+fMNjTyBDFPepOn qJ4Qbl9xpxjLI+rVBkXUpuAV5HxzJQjruGSfmJaQRHG6QESxRGnBfSrq7Otk9hz33B5Q H7uQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date; bh=XyJKVGE0cD/925orO/HXak99UYJgYNpKUPooDkzvfhg=; b=NSfeLSn/GRleyRtsQSAt9oMT5h9piI1TDpyjnLuzprLbuYxBQbfoO+WvAjt2vRN5ao zNC4GIdxFEu0b0q53ypIJJujVNeP2OKAZoFzPjmeHVt0bN2PI1fT0hrzccABZznnKeU7 c0ooEqys4ttg31qauui3EyQxDgdD3AFoXr5osOilPSS7FLlBhKcaLKqe5T+REwbfgIhX YQRxRRaIyLVM1nMuVkt2WLWFPehm8nTvGTGNC1PWbanJcMTS/R+jscQm3wwyiCiRQ4qE yqFLn41yvTh937XtVrKFh4bN5F9cnlk1Rx84YBi6lDRYbd44P2+nhNa+Dm6zHo1zKOVG 8MFw== X-Gm-Message-State: ACgBeo0Hic4XUAwLzQ/FZzhZiPYYXc8qEvV8arIXrYeTN+zlkmWLp3+e KhdoqtdmgTBgf4tw8k2+PtUPlg== X-Google-Smtp-Source: AA6agR4ZyeXLSEhMi1dcy3MJJxfdhL/tgUBQixZK3GdCiGoHRrYPA2/r6QQn1Arm6OJyHPsEG5YVMQ== X-Received: by 2002:a17:907:781a:b0:730:ccea:7c29 with SMTP id la26-20020a170907781a00b00730ccea7c29mr39108019ejc.85.1662463603472; Tue, 06 Sep 2022 04:26:43 -0700 (PDT) Received: from cmo-ThinkPad-T495.telenet.be ([194.150.35.21]) by smtp.gmail.com with ESMTPSA id 9-20020a170906210900b0074136cac2e7sm6395669ejt.81.2022.09.06.04.26.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Sep 2022 04:26:42 -0700 (PDT) From: cmo@melexis.com To: Jonathan Cameron Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Crt Mori Subject: [PATCH] iio: temperature: mlx90614 Refactoring available filter attributes Date: Tue, 6 Sep 2022 13:26:32 +0200 Message-Id: <20220906112632.244453-1-cmo@melexis.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-iio@vger.kernel.org From: Crt Mori Change/refactor to the new way of defining available attribute values. Signed-off-by: Crt Mori --- drivers/iio/temperature/mlx90614.c | 41 ++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/drivers/iio/temperature/mlx90614.c b/drivers/iio/temperature/mlx90614.c index c253a5315988..3157416be912 100644 --- a/drivers/iio/temperature/mlx90614.c +++ b/drivers/iio/temperature/mlx90614.c @@ -79,16 +79,15 @@ struct mlx90614_data { /* Bandwidth values for IIR filtering */ static const int mlx90614_iir_values[] = {77, 31, 20, 15, 723, 153, 110, 86}; -static IIO_CONST_ATTR(in_temp_object_filter_low_pass_3db_frequency_available, - "0.15 0.20 0.31 0.77 0.86 1.10 1.53 7.23"); - -static struct attribute *mlx90614_attributes[] = { - &iio_const_attr_in_temp_object_filter_low_pass_3db_frequency_available.dev_attr.attr, - NULL, -}; - -static const struct attribute_group mlx90614_attr_group = { - .attrs = mlx90614_attributes, +static const int mlx90614_freqs[][2] = { + {0, 150000}, + {0, 200000}, + {0, 310000}, + {0, 770000}, + {0, 860000}, + {1, 100000}, + {1, 530000}, + {7, 230000} }; /* @@ -373,6 +372,22 @@ static int mlx90614_write_raw_get_fmt(struct iio_dev *indio_dev, } } +static int mlx90614_read_avail(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + const int **vals, int *type, int *length, + long mask) +{ + switch (mask) { + case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY: + *vals = (int *)mlx90614_freqs; + *type = IIO_VAL_INT_PLUS_MICRO; + *length = 2 * ARRAY_SIZE(mlx90614_freqs); + return IIO_AVAIL_LIST; + default: + return -EINVAL; + } +} + static const struct iio_chan_spec mlx90614_channels[] = { { .type = IIO_TEMP, @@ -389,6 +404,8 @@ static const struct iio_chan_spec mlx90614_channels[] = { .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_CALIBEMISSIVITY) | BIT(IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY), + .info_mask_separate_available = + BIT(IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY), .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_OFFSET) | BIT(IIO_CHAN_INFO_SCALE), }, @@ -401,6 +418,8 @@ static const struct iio_chan_spec mlx90614_channels[] = { .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_CALIBEMISSIVITY) | BIT(IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY), + .info_mask_separate_available = + BIT(IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY), .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_OFFSET) | BIT(IIO_CHAN_INFO_SCALE), }, @@ -410,7 +429,7 @@ static const struct iio_info mlx90614_info = { .read_raw = mlx90614_read_raw, .write_raw = mlx90614_write_raw, .write_raw_get_fmt = mlx90614_write_raw_get_fmt, - .attrs = &mlx90614_attr_group, + .read_avail = mlx90614_read_avail, }; #ifdef CONFIG_PM