Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp1465466pxb; Fri, 13 Nov 2020 13:29:14 -0800 (PST) X-Google-Smtp-Source: ABdhPJxIkrQVfuO3lqBJFN+jDWT3sB8059QVAk1/C2CXuB5qeJzCINyhAz2Q+IeDyoJO6drONytg X-Received: by 2002:a50:8245:: with SMTP id 63mr4670982edf.133.1605302953864; Fri, 13 Nov 2020 13:29:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605302953; cv=none; d=google.com; s=arc-20160816; b=jQZUNiIKXCZYzIbkwGYtGA6E1tdQil8aN906w3V3MriruA+R7uhRpZho8eJLRxpKbj I82rrebD6tFLJgbamUC5oEGgPouToyRkS5V2COHDo+AlVnRXiKUaFm5m4tPwc+YTO2Ix 5vxa7uOACaVj6fMMDJ4i9d+ygh59dnJbD/3bt9KFvIcrNqEj68lutDDgLjWlc4Z8XFXb 3c5oxH5bVxk1hZEG4fLxuG/NrYnUoQxBkJeFkOLePut8oHnoGwV6+z1bGpO/f/ospJ9l ZrUAk10YBgQFhMqBSNRwkKiBxJ7MosJgH3T9bdi3OPMxIzKYOuaS3e9v6bP1cHw2EOhO pE4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=xQR3XcuRiWQhsTQlxdgfu7dmTottgfcecWuPU0d37BY=; b=S8b5BA+CJFlvPVfiy4jFVzg+H9CNKO7WduyGawcuKjLfIZ/3nQSHVQpUxCVyWGboX8 dmZuFOhtf8uUGET/JOpZka7ZyPDSds1yVbyGnqDzI2m1SagTRZgHNpCgXZ3h18KYuJf1 w2tJmzdpcYc9OYMXfDcz9MKsyRQpv8Uil12w3Toi35thie6SYPbRKdBnUahA+V9TiWeY mvdsw7bWiXAXD2cxKduXuFup50cUm1+itGZ2TVmdx8WuOT0v/mnsM5osKVcqdE2d/4uz AQuX3YijQ4USbbUg6axnD+RfLCANwMjJX8LXAXtz5K+SWyQj6lvH2AjoURrE7bHuPov5 vuJg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y15si6432140ejk.247.2020.11.13.13.28.51; Fri, 13 Nov 2020 13:29:13 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726375AbgKMV1L (ORCPT + 99 others); Fri, 13 Nov 2020 16:27:11 -0500 Received: from relay8-d.mail.gandi.net ([217.70.183.201]:43819 "EHLO relay8-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726174AbgKMV1I (ORCPT ); Fri, 13 Nov 2020 16:27:08 -0500 X-Originating-IP: 86.194.74.19 Received: from localhost (lfbn-lyo-1-997-19.w86-194.abo.wanadoo.fr [86.194.74.19]) (Authenticated sender: alexandre.belloni@bootlin.com) by relay8-d.mail.gandi.net (Postfix) with ESMTPSA id D91781BF20B; Fri, 13 Nov 2020 21:27:02 +0000 (UTC) From: Alexandre Belloni To: Jonathan Cameron Cc: Lars-Peter Clausen , Peter Meerwald-Stadler , Nicolas Ferre , Ludovic Desroches , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Alexandre Belloni Subject: [PATCH 5/9] iio: adc: at91_adc: merge at91_adc_probe_dt back in at91_adc_probe Date: Fri, 13 Nov 2020 22:26:46 +0100 Message-Id: <20201113212650.507680-6-alexandre.belloni@bootlin.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201113212650.507680-1-alexandre.belloni@bootlin.com> References: <20201113212650.507680-1-alexandre.belloni@bootlin.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org at91_adc_probe_dt is now small enough to be merged back in at91_adc_probe. Signed-off-by: Alexandre Belloni --- drivers/iio/adc/at91_adc.c | 118 +++++++++++++++---------------------- 1 file changed, 49 insertions(+), 69 deletions(-) diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c index 83539422b704..9f05eb722f5e 100644 --- a/drivers/iio/adc/at91_adc.c +++ b/drivers/iio/adc/at91_adc.c @@ -833,70 +833,6 @@ static int at91_adc_probe_dt_ts(struct device_node *node, } } -static int at91_adc_probe_dt(struct iio_dev *idev, - struct platform_device *pdev) -{ - struct at91_adc_state *st = iio_priv(idev); - struct device_node *node = pdev->dev.of_node; - int ret; - u32 prop; - char *s; - - st->caps = (struct at91_adc_caps *) - of_match_device(at91_adc_dt_ids, &pdev->dev)->data; - - st->use_external = of_property_read_bool(node, "atmel,adc-use-external-triggers"); - - if (of_property_read_u32(node, "atmel,adc-channels-used", &prop)) { - dev_err(&idev->dev, "Missing adc-channels-used property in the DT.\n"); - ret = -EINVAL; - goto error_ret; - } - st->channels_mask = prop; - - st->sleep_mode = of_property_read_bool(node, "atmel,adc-sleep-mode"); - - if (of_property_read_u32(node, "atmel,adc-startup-time", &prop)) { - dev_err(&idev->dev, "Missing adc-startup-time property in the DT.\n"); - ret = -EINVAL; - goto error_ret; - } - st->startup_time = prop; - - prop = 0; - of_property_read_u32(node, "atmel,adc-sample-hold-time", &prop); - st->sample_hold_time = prop; - - if (of_property_read_u32(node, "atmel,adc-vref", &prop)) { - dev_err(&idev->dev, "Missing adc-vref property in the DT.\n"); - ret = -EINVAL; - goto error_ret; - } - st->vref_mv = prop; - - st->res = st->caps->high_res_bits; - if (st->caps->low_res_bits && - !of_property_read_string(node, "atmel,adc-use-res", (const char **)&s) - && !strcmp(s, "lowres")) - st->res = st->caps->low_res_bits; - - dev_info(&idev->dev, "Resolution used: %u bits\n", st->res); - - st->registers = &st->caps->registers; - st->num_channels = st->caps->num_channels; - - /* Check if touchscreen is supported. */ - if (st->caps->has_ts) - return at91_adc_probe_dt_ts(node, st, &idev->dev); - else - dev_info(&idev->dev, "not support touchscreen in the adc compatible string.\n"); - - return 0; - -error_ret: - return ret; -} - static const struct iio_info at91_adc_info = { .read_raw = &at91_adc_read_raw, }; @@ -1062,10 +998,12 @@ static void at91_ts_unregister(struct at91_adc_state *st) static int at91_adc_probe(struct platform_device *pdev) { unsigned int prsc, mstrclk, ticks, adc_clk, adc_clk_khz, shtim; + struct device_node *node = pdev->dev.of_node; int ret; struct iio_dev *idev; struct at91_adc_state *st; - u32 reg; + u32 reg, prop; + char *s; idev = devm_iio_device_alloc(&pdev->dev, sizeof(struct at91_adc_state)); if (!idev) @@ -1073,9 +1011,52 @@ static int at91_adc_probe(struct platform_device *pdev) st = iio_priv(idev); - ret = at91_adc_probe_dt(idev, pdev); - if (ret) - return ret; + st->caps = (struct at91_adc_caps *) + of_match_device(at91_adc_dt_ids, &pdev->dev)->data; + + st->use_external = of_property_read_bool(node, "atmel,adc-use-external-triggers"); + + if (of_property_read_u32(node, "atmel,adc-channels-used", &prop)) { + dev_err(&idev->dev, "Missing adc-channels-used property in the DT.\n"); + return -EINVAL; + } + st->channels_mask = prop; + + st->sleep_mode = of_property_read_bool(node, "atmel,adc-sleep-mode"); + + if (of_property_read_u32(node, "atmel,adc-startup-time", &prop)) { + dev_err(&idev->dev, "Missing adc-startup-time property in the DT.\n"); + return -EINVAL; + } + st->startup_time = prop; + + prop = 0; + of_property_read_u32(node, "atmel,adc-sample-hold-time", &prop); + st->sample_hold_time = prop; + + if (of_property_read_u32(node, "atmel,adc-vref", &prop)) { + dev_err(&idev->dev, "Missing adc-vref property in the DT.\n"); + return -EINVAL; + } + st->vref_mv = prop; + + st->res = st->caps->high_res_bits; + if (st->caps->low_res_bits && + !of_property_read_string(node, "atmel,adc-use-res", (const char **)&s) + && !strcmp(s, "lowres")) + st->res = st->caps->low_res_bits; + + dev_info(&idev->dev, "Resolution used: %u bits\n", st->res); + + st->registers = &st->caps->registers; + st->num_channels = st->caps->num_channels; + + /* Check if touchscreen is supported. */ + if (st->caps->has_ts) { + ret = at91_adc_probe_dt_ts(node, st, &idev->dev); + if (ret) + return ret; + } platform_set_drvdata(pdev, idev); @@ -1091,7 +1072,6 @@ static int at91_adc_probe(struct platform_device *pdev) if (IS_ERR(st->reg_base)) return PTR_ERR(st->reg_base); - /* * Disable all IRQs before setting up the handler */ -- 2.28.0