Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2043398imm; Thu, 14 Jun 2018 07:56:31 -0700 (PDT) X-Google-Smtp-Source: ADUXVKJjXA6aaG/0pzye2QLFYqQo8K5lZefd2Hpj50zSzLnNyiwQgRodKIlzUl8Vsn1dbRa6G/z2 X-Received: by 2002:a17:902:b18b:: with SMTP id s11-v6mr3441303plr.190.1528988191203; Thu, 14 Jun 2018 07:56:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528988191; cv=none; d=google.com; s=arc-20160816; b=dwRV1OcgqKDcdiPxTsID5LMO526j/FRDb5NThP1i1WMgZ7gidH3TySIHDvaUHivR2/ qF3B0YyOtkrVU7oylC5nJegS6rBqSLjntM56emUYryg1Avd9N8MwXby04Rv+RFl13Bzp HMQlXsny5ktzjw7eGB/siyUIpOYlx6VPhtR7cOwIMKqkcD6fHbKxJWaIsJL7SKRNjhJh 9Ck1ow6Y0DQWV5poc4LyRcT6qgA/cY9NyLz1LvMfqhp+s1SW5+LOjkBNfekehHkh90tf 8Kem/p1o/uLtR5q+z00Sgi3Zkx8bzjCnydDeHfYMwRfDN7bUrOSK+vqeTB90lcZCylsL RpWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature :arc-authentication-results; bh=GsOJBNtKEHPFmRBuSbF1x9o29907sr3jOyGmLPCbU0U=; b=i+szlg/mjakCuswvMssyBcMoMyVcSpXzmT1YY3kSM1VUiDOxRsnUQpL1h0FK1FPWDZ YpfYe6Lw4RPaINQjHp5O/baspPS2ajE3KOouVsqCekrBjGZZOy3QeEyBsix+fAb4FIEw Qh4Ob2xDf8XH1xEgO3SttTKkErGYyhFGmBLPZvN2GXXF6Thd1WBGcL12N5k3evB4MTnX rTdVQ85nLGEn6qW/nYRza35jw3TJqfhVzt3ITPSZIlDmG7givu6/LGgWafzLIWm1/Sk9 YDk40FzLevcWl15wEYHAFltDGw9ZwYKZdSzB9iVl3EexLHPpXyaOuTDjGAMuy1LDf+XH k/BQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=OkA6YOgt; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 31-v6si5433201plj.216.2018.06.14.07.56.16; Thu, 14 Jun 2018 07:56:31 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=OkA6YOgt; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936417AbeFNOzV (ORCPT + 99 others); Thu, 14 Jun 2018 10:55:21 -0400 Received: from mail-qt0-f194.google.com ([209.85.216.194]:34288 "EHLO mail-qt0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S936314AbeFNOzT (ORCPT ); Thu, 14 Jun 2018 10:55:19 -0400 Received: by mail-qt0-f194.google.com with SMTP id d3-v6so6046323qto.1 for ; Thu, 14 Jun 2018 07:55:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=GsOJBNtKEHPFmRBuSbF1x9o29907sr3jOyGmLPCbU0U=; b=OkA6YOgtjVfUnaCPFL4JjN04xI+3XZw6Qpzu2YzN6/FSJA1XBSlo1PtuAkdadqi0Cc BaYrhjEhWGbRyrr3sMw3yy9YtcwZtDi/bFAKQt8Hlzjg/vX0hojzWdFcFb/DvN4drVLL 9HpUnDC9/8ZrFdmRuEcuLh2xB1v0QxzJWhYgI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=GsOJBNtKEHPFmRBuSbF1x9o29907sr3jOyGmLPCbU0U=; b=mdZof5sxqwWWSHlbfAucsEA/ScchWmgVhd8n3XwaMsx6w+alug4i/xzurZI3P33ZWg bqh9S5Vvt16eG0yIpnZ67xXptM9ix455Wf+GnTBg/N3J4yK/nvuVhidE20BgzeUzlmIU FNQTmDP1uZhp/wsaXjKdXK+APzvN5yBuumeyC4SqJ8k3u+swqiInoWlgyPcRBvHGQDWG m0WtILlTPmOchSGzIg8mgV5ZPp6tzjVMUjb2I+xO0iRRL3pZC0XqN82bRzjPyApmR5TP 659q1y+0ddgXh2gWSWLHcwn0f/+mzi1WreUoSp1DSpbhmL6CYAELobVpF5rq3TCaGAVj bZmw== X-Gm-Message-State: APt69E1O6y4j+rjFc/GNQvQ21DfiprfhiXd1+fYOH37gOzVfClL8P8GF pL7vH6JxbNVBqOkRvnpOkH9v4ATDKglYejKSSI1S8Q== X-Received: by 2002:ac8:41d5:: with SMTP id o21-v6mr2612736qtm.265.1528988118368; Thu, 14 Jun 2018 07:55:18 -0700 (PDT) MIME-Version: 1.0 References: <0cdd0957cf80c2f9921928755722a427c7309964.1528972165.git.amit.kucheria@linaro.org> In-Reply-To: From: Amit Kucheria Date: Thu, 14 Jun 2018 17:55:06 +0300 Message-ID: Subject: Re: [PATCH v3 4/6] thermal: tsens: Add support for SDM845 To: Rob Herring Cc: Linux Kernel Mailing List , Rajendra Nayak , linux-arm-msm , Bjorn Andersson , Eduardo Valentin , smohanad@codeaurora.org, Vivek Gautam , Andy Gross , Zhang Rui , Mark Rutland , David Brown , Catalin Marinas , Will Deacon , Kees Cook , Linux PM list , DTML , "open list:ARM/QUALCOMM SUPPORT" , Lists LAKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Rob, Thanks for the review. On Thu, Jun 14, 2018 at 5:21 PM Rob Herring wrote: > > On Thu, Jun 14, 2018 at 4:43 AM, Amit Kucheria wrote: > > SDM845 uses the TSENS v2 IP block > > > > Signed-off-by: Amit Kucheria > > --- > > Documentation/devicetree/bindings/thermal/qcom-tsens.txt | 1 + > > arch/arm64/boot/dts/qcom/msm8996.dtsi | 2 +- > > drivers/thermal/qcom/tsens-v2.c | 9 ++++++++- > > drivers/thermal/qcom/tsens.c | 3 +++ > > drivers/thermal/qcom/tsens.h | 5 ++++- > > 5 files changed, 17 insertions(+), 3 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/thermal/qcom-tsens.txt b/Documentation/devicetree/bindings/thermal/qcom-tsens.txt > > index 06195e8..84da3db 100644 > > --- a/Documentation/devicetree/bindings/thermal/qcom-tsens.txt > > +++ b/Documentation/devicetree/bindings/thermal/qcom-tsens.txt > > @@ -5,6 +5,7 @@ Required properties: > > - "qcom,msm8916-tsens" : For 8916 Family of SoCs > > - "qcom,msm8974-tsens" : For 8974 Family of SoCs > > - "qcom,msm8996-tsens" : For 8996 Family of SoCs > > + - "qcom,tsens-v2" : For any SoC with v2 version of the tsens IP > > Stick with "qcom,sdm845-tsens". Though perhaps it should be > '"qcom,sdm845-tsens", "qcom,msm8996-tsens"' if there is compatibility. There are lots of (30+) SoC families that use v2 of the tsens IP. So we're talking about potentially 100s of platforms using the IP. This could become very unwieldy to deal with very quickly. The core functionality in tsens v2 remains the same (e.g. reading the temperature) and any differences could potentially be addressed with more specific DTs or preferably dynamically detected by probing the minor version of the HW version register. > > - reg: Address range of the thermal registers > > - #thermal-sensor-cells : Should be 1. See ./thermal.txt for a description. > > diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi > > index 6c8a857..28d4c08 100644 > > --- a/arch/arm64/boot/dts/qcom/msm8996.dtsi > > +++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi > > @@ -460,7 +460,7 @@ > > }; > > > > tsens0: thermal-sensor@4a8000 { > > - compatible = "qcom,msm8996-tsens"; > > + compatible = "qcom,msm8996-tsens", "qcom,tsens-v2"; > > There's no point to adding this now because you already have to > support "qcom,msm8996-tsens". Of course. > > > reg = <0x4a9000 0x1000>, /* TM */ > > <0x4a8000 0x1000>; /* SROT */ > > #qcom,sensors = <13>; > > diff --git a/drivers/thermal/qcom/tsens-v2.c b/drivers/thermal/qcom/tsens-v2.c > > index c981a40..abc8f13 100644 > > --- a/drivers/thermal/qcom/tsens-v2.c > > +++ b/drivers/thermal/qcom/tsens-v2.c > > @@ -69,8 +69,15 @@ static const struct tsens_ops ops_v2 = { > > .get_temp = get_temp_tsens_v2, > > }; > > > > +const struct tsens_data data_tsens_v2 = { > > + .ops = &ops_v2, > > +}; > > + > > +/* Kept around for backward compatibility with old msm8996.dtsi. > > + * New platforms should use data_tsens_v2 if possible and define > > + * the #qcom,sensors property in DT. > > Hum, I think this should just be implied by the compatible as it was. > If this was the *only* difference, then a property would be okay, but > as soon as you find some other difference you need yet another > property and have to do a DT update on all platforms. Perhaps I was needless wordy, but the only reason to keep data_8996 around is the num_sensors bit below. Now that Bjorn's patch 6d7c70d1cd65 ("thermal: qcom: tsens: Allow number of sensors to come from DT") has landed, that should be the default way to specify the number of sensors connected to each IP block. We want future DTs to simply use the qcom,tsens-v2 property instead of saying that they're all compatible with 8996. That will more truly reflect the HW (tsens v2) and the qcom,msm8996-tsens binding probably shouldn't have been added in the first place. > > + */ > > const struct tsens_data data_8996 = { > > .num_sensors = 13, > > .ops = &ops_v2, > > }; > > - > > diff --git a/drivers/thermal/qcom/tsens.c b/drivers/thermal/qcom/tsens.c > > index 3440166c..a2c9bfa 100644 > > --- a/drivers/thermal/qcom/tsens.c > > +++ b/drivers/thermal/qcom/tsens.c > > @@ -72,6 +72,9 @@ static const struct of_device_id tsens_table[] = { > > }, { > > .compatible = "qcom,msm8996-tsens", > > .data = &data_8996, > > + }, { > > + .compatible = "qcom,tsens-v2", > > + .data = &data_tsens_v2, > > Why different data if 8996 is compatible with v2? See above. > > }, > > {} > > }; > > diff --git a/drivers/thermal/qcom/tsens.h b/drivers/thermal/qcom/tsens.h > > index dc56e1e..69212cb 100644 > > --- a/drivers/thermal/qcom/tsens.h > > +++ b/drivers/thermal/qcom/tsens.h > > @@ -87,6 +87,9 @@ void compute_intercept_slope(struct tsens_device *, u32 *, u32 *, u32); > > int init_common(struct tsens_device *); > > int get_temp_common(struct tsens_device *, int, int *); > > > > -extern const struct tsens_data data_8916, data_8974, data_8960, data_8996; > > +/* TSENS v1 targets */ > > +extern const struct tsens_data data_8916, data_8974, data_8960; > > +/* TSENS v2 targets */ > > +extern const struct tsens_data data_8996, data_tsens_v2; > > > > #endif /* __QCOM_TSENS_H__ */ > > -- > > 2.7.4 > >