Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp17773pxv; Wed, 21 Jul 2021 14:13:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwQINfCFJ4Ip7gmEk8ju6FqgTmTmGSy6NKuxKtphve8cEciT2Yn/tI48/iqBE1e5CUtob6h X-Received: by 2002:a6b:b287:: with SMTP id b129mr27896442iof.209.1626901535799; Wed, 21 Jul 2021 14:05:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626901535; cv=none; d=google.com; s=arc-20160816; b=l/rtAhzxAhrA0GvUxyHq3hDz4PJbRpXRTca/bFuHdgDpwxF/DzjkraXCIxs93mM/KN cLA+SMsMcenJWd/pDeW5YBeSAxoZPpE92wc5gw6asnhP3iwrm40BCxrEDXHg/H59dRlW bf5dBoHgz3ZbZsTs/05ga1GpSdrXVEQKpxKxoHki6RGuGWNfgDg2kXNmb60heh1OZTTB WFULR5hm6pq2LbfFoqxyHpffRBUAA82A+QQf6rRMMgJB40jbIsQCtH9SyubJwJ/V30nm l2ZX5sX0B5hneNYLxXjBp2hSbrOR2wJK46Tu61uO7zZnel8x7oKhH76xKmukPHnBMIiQ 5NKg== 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:cc:to:subject:from:date; bh=Qc76lwQGevXFgQPw3U9MFUtV39zfpB6jz2NtFNDnwmk=; b=gaLrEz6AtE6mse1otP0G9pSLn34KGIJX0Uj1xAnAzu+P7SvS1wq7ihR7Gqpizl6GXw 5ntYrHyQdNi4qxH89N45qRDG5h+G1Tgnr7BjKJMtJaTO8ZM1AzR5HvXFCHwml0aNcqGe aVxZ92dTTmqEBscWHwRO7CPRGxAGzM0ygxX4cIQzre8NdsWbKt3n+Dwl2Ok5GDbNtsUN K3u0634wOtao0Z4m3EXfSMv/9QVDqQFIf25hpCohH5dOrf6jxxkNg7CP1KUJs5kqRPGk ckcveJettqLbrqF7e0IEiYU/Q3rxHskwLRoSf8tET3j5nUfbEhWF7nmpDnEFyrjn2h0s uReA== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=crapouillou.net Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g5si25036935ilb.152.2021.07.21.14.05.23; Wed, 21 Jul 2021 14:05:35 -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; 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=NONE dis=NONE) header.from=crapouillou.net Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236157AbhGURoG convert rfc822-to-8bit (ORCPT + 99 others); Wed, 21 Jul 2021 13:44:06 -0400 Received: from aposti.net ([89.234.176.197]:48802 "EHLO aposti.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236999AbhGURoE (ORCPT ); Wed, 21 Jul 2021 13:44:04 -0400 Date: Wed, 21 Jul 2021 19:24:29 +0100 From: Paul Cercueil Subject: Re: [PATCH 4/6] iio/adc: ingenic: add JZ4760B support to the sadc driver To: citral23 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 Message-Id: In-Reply-To: <20210721105317.36742-5-cbranchereau@gmail.com> References: <20210721105317.36742-1-cbranchereau@gmail.com> <20210721105317.36742-5-cbranchereau@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 8BIT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Christophe, Le mer., juil. 21 2021 at 12:53:15 +0200, citral23 a ?crit : > The JZ4760B variant differs slightly from the JZ4760, in that 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: citral23 > --- > drivers/iio/adc/ingenic-adc.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/iio/adc/ingenic-adc.c > b/drivers/iio/adc/ingenic-adc.c > index 285e7aa8e37a..618150475421 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 > @@ -869,6 +870,10 @@ 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); > + > + if (!device_property_present(dev, "ingenic,use-internal-divider")) > /* JZ4760B specific */ > + ingenic_adc_set_config(adc, JZ_ADC_REG_CFG_VBAT_SEL, 0); You miss an "else" part, no? Set the bit if the property is present, clear it if it is missing? You can't really rely on the reset value, since (e.g.) the bootloader could have changed it. Cheers, -Paul > + > usleep_range(2000, 3000); /* Must wait at least 2ms. */ > clk_disable(adc->clk); > > @@ -896,6 +901,7 @@ static const struct of_device_id > ingenic_adc_of_match[] = { > { .compatible = "ingenic,jz4725b-adc", .data = > &jz4725b_adc_soc_data, }, > { .compatible = "ingenic,jz4740-adc", .data = &jz4740_adc_soc_data, > }, > { .compatible = "ingenic,jz4760-adc", .data = &jz4760_adc_soc_data, > }, > + { .compatible = "ingenic,jz4760b-adc", .data = > &jz4760_adc_soc_data, }, > { .compatible = "ingenic,jz4770-adc", .data = &jz4770_adc_soc_data, > }, > { }, > }; > -- > 2.30.2 >