Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp2317893pxv; Sat, 24 Jul 2021 12:07:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxyuOzQH5chK4QP7Alvja3Au3kEW7npUno1Xyly3+uX1Ebh7CiFI6m/q/bIimTK02uzD1SF X-Received: by 2002:a92:d441:: with SMTP id r1mr7404049ilm.106.1627153627068; Sat, 24 Jul 2021 12:07:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627153627; cv=none; d=google.com; s=arc-20160816; b=eRNi7vZXh6WEg9xp4KTvs1ytRzW2cEwafOagzRuZ04Svw8HBt0mI881hDN2z6pyz+P aBeJP8x5JJ7Xl7FKrpykrWLOrVQ0os2OzfLLVjJvpesnAmCR9KtuZtFszeutbo84xJjb wZoaL+k0iKTKgYLhmvbXf01PcI5sjN3ohNEOeYIZBlpimBVU1RQkqL2ZaB+FEqinBQRH XMFbjVQqpjSvG9zr/A7izTUj5pvsU1Sg45ci4DNP7x8/SHEDs5XWP803Dgq6JwcvQ3C/ gHjHY15rHW1ymAumcg1eupAoET2Kku9/1t9aff1aro/2Hnm3sUQc9tl2JN6TTapfsWjQ DpCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:to:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:from :dkim-signature; bh=CE42oTvnUW/ICeEUw/qu06y5Bh7gLGHxP818wCHu9ZI=; b=h6ujLd5LZvjlwLfOTkqG8GytgiW3H8955GyeIFRsRC8oLpxE0QlZRg9nDnZcTpTpEI FXrmxYx5lO6KyMYQCngONeBr/s+ke9p7wya43NpwA/0Ift06TFnqMwp8r8KUMDbVm1gT yxcqWI+rTRQBdO0CJlyXzQuGOIXRYImmLqVRLNE4wMRx5jlF9fwqI0lQdGPuPtvs6XJs 8RDkfiyEiIq5aGf2gBQCJ7kyjMlqnP3EgDlukVRtu34QniPNkkveDOuHxBPtTdAXhPYh 6LiUQBTAZdIue47ckIJK/w+6Ei0uumx7sGFcBuJ/97D8bIPoALB5agvtLAG7/LjRN8Bu W6Og== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=Mk98RsKg; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h2si38323881ils.86.2021.07.24.12.06.56; Sat, 24 Jul 2021 12:07:07 -0700 (PDT) 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; dkim=fail header.i=@gmail.com header.s=20161025 header.b=Mk98RsKg; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229907AbhGXSZN (ORCPT + 99 others); Sat, 24 Jul 2021 14:25:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47882 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229834AbhGXSZB (ORCPT ); Sat, 24 Jul 2021 14:25:01 -0400 Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [IPv6:2a00:1450:4864:20::32b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 71C73C061575; Sat, 24 Jul 2021 12:05:31 -0700 (PDT) Received: by mail-wm1-x32b.google.com with SMTP id b128so2744294wmb.4; Sat, 24 Jul 2021 12:05:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CE42oTvnUW/ICeEUw/qu06y5Bh7gLGHxP818wCHu9ZI=; b=Mk98RsKgtx8fgh6/6N2TN1pQqI83pAQTpIiYgI/RF2pEILohyQmi0j5HZWijDjB+Oz 8j634AlbzNZpkazgAYpSaUR1r6rGNJPgrAP9jKQZjrKMQrk2ZBt4ABvijxYGYisePIYM 7DDcxXnjAzNqJ+blfl2SF2KsAAhSB1wajIe5yxKXCqDpA37TZcMyopFNTOBecmhbo+X9 Jh10TFXWWZv8Wk5R8YfDw8Eaku2l3Sk4SqPllrca9hKhI+j+9ZYwIp7xSZCFAIQEefqA H7T/ZiomolCvlHZ2/lj6DqXy3HYd2egsJqx9xl/cABIQj1HmttxgEdcPgydQzw5bjCYw GFLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CE42oTvnUW/ICeEUw/qu06y5Bh7gLGHxP818wCHu9ZI=; b=D5VHy0uKzwawXqhiq1n/wksWH/deA2LUaHWsd6mj5imBpU0DENmdyfv/mTVM3j/mNj y7ACgoVFgEj8IQ31Rcc5cNOHwHjfgnJUa7zpuHRPCotWeRH4zkLMKIUzA5Ic9ZYlMy0u 0dVTTWntbOq910d/7eTIufxoum+ZxEsLz11jGEpCZRurkC3Qx1OUeFkOaBzesVHODq0O MYMATCV/Q3zjP05AE/RwlTbuKJa3cUBn5be4MHeOlGsN0aarTsVTevZbm3oAr2yf0mkt z0f9Mc/YjtOiW75jTdtSKhLZNrKzqzsK7w4qWMY+QbZPxb/icGzvfDpCIzqO29xNi6fT gKwg== X-Gm-Message-State: AOAM5331QGZlLUkIKYM4L3qHov3WFY8aW1sFecktKnvtpbQhtkDrJRyb WWxdpG9z3t0Wh8AIPKJW7OI= X-Received: by 2002:a1c:ed10:: with SMTP id l16mr19345683wmh.8.1627153529906; Sat, 24 Jul 2021 12:05:29 -0700 (PDT) Received: from monk.home (astrasbourg-157-1-7-84.w90-40.abo.wanadoo.fr. [90.40.218.84]) by smtp.gmail.com with ESMTPSA id j15sm1117798wms.20.2021.07.24.12.05.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 24 Jul 2021 12:05:29 -0700 (PDT) From: Christophe Branchereau Cc: jic23@kernel.org, lars@metafoo.de, linux-mips@vger.kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, robh+dt@kernel.org, devicetree@vger.kernel.org, linux@roeck-us.net, contact@artur-rojek.eu, paul@crapouillou.net, Christophe Branchereau Subject: [PATCH v3 4/5] iio/adc: ingenic: add JZ4760B support to the sadc driver Date: Sat, 24 Jul 2021 21:04:48 +0200 Message-Id: <20210724190449.221894-5-cbranchereau@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210724190449.221894-1-cbranchereau@gmail.com> References: <20210724190449.221894-1-cbranchereau@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The JZ4760B variant differs slightly from the JZ4760: it has a bit called VBAT_SEL in the CFG register. In order to correctly sample the battery voltage on existing handhelds using this SOC, the bit must be cleared. We leave the possibility to set the bit, by using the "ingenic,use-internal-divider" in the devicetree. Signed-off-by: Christophe Branchereau --- drivers/iio/adc/ingenic-adc.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/iio/adc/ingenic-adc.c b/drivers/iio/adc/ingenic-adc.c index 6b9af0530590..eaa8ab36183c 100644 --- a/drivers/iio/adc/ingenic-adc.c +++ b/drivers/iio/adc/ingenic-adc.c @@ -37,6 +37,7 @@ #define JZ_ADC_REG_CFG_SAMPLE_NUM(n) ((n) << 10) #define JZ_ADC_REG_CFG_PULL_UP(n) ((n) << 16) #define JZ_ADC_REG_CFG_CMD_SEL BIT(22) +#define JZ_ADC_REG_CFG_VBAT_SEL BIT(30) #define JZ_ADC_REG_CFG_TOUCH_OPS_MASK (BIT(31) | GENMASK(23, 10)) #define JZ_ADC_REG_ADCLK_CLKDIV_LSB 0 #define JZ4725B_ADC_REG_ADCLK_CLKDIV10US_LSB 16 @@ -879,6 +880,14 @@ static int ingenic_adc_probe(struct platform_device *pdev) /* Put hardware in a known passive state. */ writeb(0x00, adc->base + JZ_ADC_REG_ENABLE); writeb(0xff, adc->base + JZ_ADC_REG_CTRL); + + /* JZ4760B specific */ + if (device_property_present(dev, "ingenic,use-internal-divider")) + ingenic_adc_set_config(adc, JZ_ADC_REG_CFG_VBAT_SEL, + JZ_ADC_REG_CFG_VBAT_SEL); + else + ingenic_adc_set_config(adc, JZ_ADC_REG_CFG_VBAT_SEL, 0); + usleep_range(2000, 3000); /* Must wait at least 2ms. */ clk_disable(adc->clk); -- 2.30.2