Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp2447718pxu; Sat, 28 Nov 2020 14:32:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJzhgHfZRdNqN1ue6pQDoPur2xwVivNkh/zJtVj/PmJiN5F6uJNtO2F0T7mFVA/XezqRCcrc X-Received: by 2002:a17:906:ecad:: with SMTP id qh13mr8916123ejb.443.1606602728397; Sat, 28 Nov 2020 14:32:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606602728; cv=none; d=google.com; s=arc-20160816; b=r4a7s5BaZCAPAOD/SgO96eDue8fOsxKlgkGXIk1N2OS8oJpd06B9Gxix96Heg/9hHb Ju11+3l0YOLIoK3b57XPWPafIV30H0LpPlVkee7VJpGZ83TWloDI2R+pxYgddhrrktlj uykp788HECJ5n5bphytJlbYzvn6sNfnV98HjoeDs/jZMz1zLaaR4npSulk9lJF5WdlLs DK3Sy7WhGkEY4p2OZsv6jVSbhepgPH0tJ93PV/8SyDp/4nXRKFzmkmW/qJ7K/7aqD2tj VaPqzkN/6lXd4/jqKQtT0nP/RBFN3gaiIGwNRvcAwEZ6ghUOiAjxG1CiKEjn4sNeup+q 7Ftg== 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=LtYQ5R2d1+ZclYDdl48vQEkF/ATttcSEn/bjRzKgy7M=; b=Gzm1H2jFfq9f4qlW5pVtvhn28byjVMy6psT/2/yX+r25UYKiPI4J8D/rlViIns69b+ 1MT7jQlVWlUEpZoB10Ij8tMQKktw/vBtrK9BiwmRMnVetXCW5hl//Fh01DiQk/oNjSJs +1WuoFi/DApQ9GPjIapIhZMtEdETwYwxL3VC8qvHA4BtAcNr7KBj7IRh0WXkBj+QvBXF Kxy31dTcgM3U8cjk20/YubOzzJYPp2FllD+G/lxwtQ97/oDngrz9DS6UruUXEcwkhHeu pGmta31gwHc7KM6PHE9c4Rz5feeuBZByk3KEuXzOL6ScrOnsx7CMKQYTSh2bAmzcJDqx H7Zw== 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 a3si8078757edq.430.2020.11.28.14.31.46; Sat, 28 Nov 2020 14:32:08 -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 S2388003AbgK1W3U (ORCPT + 99 others); Sat, 28 Nov 2020 17:29:20 -0500 Received: from relay6-d.mail.gandi.net ([217.70.183.198]:43599 "EHLO relay6-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387738AbgK1W3U (ORCPT ); Sat, 28 Nov 2020 17:29:20 -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 relay6-d.mail.gandi.net (Postfix) with ESMTPSA id D6AA1C0004; Sat, 28 Nov 2020 22:28:36 +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 v3 07/10] iio: adc: at91_adc: merge at91_adc_probe_dt back in at91_adc_probe Date: Sat, 28 Nov 2020 23:28:15 +0100 Message-Id: <20201128222818.1910764-8-alexandre.belloni@bootlin.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201128222818.1910764-1-alexandre.belloni@bootlin.com> References: <20201128222818.1910764-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 Reviewed-by: Ludovic Desroches --- drivers/iio/adc/at91_adc.c | 115 ++++++++++++++++--------------------- 1 file changed, 48 insertions(+), 67 deletions(-) diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c index d746a18143cd..70750abb5dea 100644 --- a/drivers/iio/adc/at91_adc.c +++ b/drivers/iio/adc/at91_adc.c @@ -831,69 +831,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 = of_device_get_match_data(&pdev->dev); - - 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, }; @@ -1059,10 +996,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) @@ -1070,9 +1009,51 @@ 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 = of_device_get_match_data(&pdev->dev); + + 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); -- 2.28.0