Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1065520ybz; Thu, 16 Apr 2020 02:06:44 -0700 (PDT) X-Google-Smtp-Source: APiQypL6799q/yG0teuQm2baiYWu0C1u4RuUEl2WIUtyPtp04phw8CjMc8sHLYoXAypk4vDd8Uwg X-Received: by 2002:a17:906:a39a:: with SMTP id k26mr8367484ejz.172.1587028003866; Thu, 16 Apr 2020 02:06:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587028003; cv=none; d=google.com; s=arc-20160816; b=iWDyYEOxbckSA2aWlXSHkOzjsXr4Mq3y9dFkqSh6rro/N5KF7JnWvqcoYrKBm11Wxk SkwTmeLmsTocAJXiGVO2dWp7WaJTaDcpXG8p11DztpNpu/DlUERA1MJyqajhOOYBePJr kF7xey1cU6EQ5Yq5wlsNS+KDx38GUyPgx4FD38VD/DXDQjl1KYlnioScTOJB2q2XyEDc 2B4sJiOgoHCGwg/r24rR1pMRTVqmNFDosOR7HeVliD5T4HRNrA0+f8QzuaeLAPskXRq2 tmBchknvepjy5omcxIoIReiT4DmINJwT27FmKZRNviYogANrfoSdsBJaRcm4Ei1yRQ02 A+Fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=kKuLsQOqe6v7VSURFc0z90JFbMHYugiuZRdNEvygP+8=; b=kLcjdMdCW9SdAbXBTxzWECGD2Ax1V/auxeUjLRX2wr5XVHUA+vYCXu6MlDWJnUXFsH 5za528xnDQbwoirtvw7WYLoJVtc3n3y5fEo0aKQwb0TuwsXFZ69k/1QJPeF80hLLPG4v zna6YI6eCW2VuRV8GdHuUyD0B7lTT2HD2lRDeLIh5lWIvDoTEYdEkD2+KiZX82fZtiex a49gm+lKlyLb0VYKXXJp/5vCF0jiBrX7Uxe3wzu1vdiGIRcu2qdclM2jFIsfqnNCX7IB 6Pd4iwNMnW10WvJEsURVLqaN9vvbw50ezjNktzrRCG0lDuuB+t+zy1w2jh6gsTf5FA9B dbvw== 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=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g9si3891394edu.268.2020.04.16.02.06.21; Thu, 16 Apr 2020 02:06:43 -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=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2503216AbgDPJDM (ORCPT + 99 others); Thu, 16 Apr 2020 05:03:12 -0400 Received: from inva021.nxp.com ([92.121.34.21]:47850 "EHLO inva021.nxp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2503146AbgDPI6U (ORCPT ); Thu, 16 Apr 2020 04:58:20 -0400 Received: from inva021.nxp.com (localhost [127.0.0.1]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id E8F23200C33; Thu, 16 Apr 2020 10:58:14 +0200 (CEST) Received: from invc005.ap-rdc01.nxp.com (invc005.ap-rdc01.nxp.com [165.114.16.14]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 30E49200C3E; Thu, 16 Apr 2020 10:58:12 +0200 (CEST) Received: from titan.ap.freescale.net (titan.ap.freescale.net [10.192.208.233]) by invc005.ap-rdc01.nxp.com (Postfix) with ESMTP id 53BD7402A8; Thu, 16 Apr 2020 16:58:08 +0800 (SGT) From: Yuantian Tang To: rui.zhang@intel.com, edubezval@gmail.com, daniel.lezcano@linaro.org Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Yuantian Tang Subject: [PATCH] thermal: qoriq: Update the settings for TMUv2 Date: Thu, 16 Apr 2020 16:43:52 +0800 Message-Id: <20200416084352.33604-1-andy.tang@nxp.com> X-Mailer: git-send-email 2.9.5 X-Virus-Scanned: ClamAV using ClamSMTP Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org For TMU v2, TMSAR registers need to be set properly to get the accurate temperature values. Also temperature reading needs to convert to degree Celsius since it is in degrees Kelvin. Signed-off-by: Yuantian Tang --- drivers/thermal/qoriq_thermal.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/thermal/qoriq_thermal.c b/drivers/thermal/qoriq_thermal.c index 028a6bbf75dc..c6ab0a0681cb 100644 --- a/drivers/thermal/qoriq_thermal.c +++ b/drivers/thermal/qoriq_thermal.c @@ -23,6 +23,7 @@ #define TMTMIR_DEFAULT 0x0000000f #define TIER_DISABLE 0x0 #define TEUMR0_V2 0x51009c00 +#define TMSARA_V2 0xe #define TMU_VER1 0x1 #define TMU_VER2 0x2 @@ -50,6 +51,9 @@ * Site Register */ #define TRITSR_V BIT(31) +#define REGS_V2_TMSAR(n) (0x304 + 16 * (n)) /* TMU monitoring + * site adjustment register + */ #define REGS_TTRnCR(n) (0xf10 + 4 * (n)) /* Temperature Range n * Control Register */ @@ -100,7 +104,11 @@ static int tmu_get_temp(void *p, int *temp) 10 * USEC_PER_MSEC)) return -ENODATA; - *temp = (val & 0xff) * 1000; + /* For TMUv2, temperature reading in degrees Kelvin */ + if (qdata->ver == TMU_VER1) + *temp = (val & 0xff) * 1000; + else + *temp = (val & 0x1ff) - 273; return 0; } @@ -192,6 +200,8 @@ static int qoriq_tmu_calibration(struct device *dev, static void qoriq_tmu_init_device(struct qoriq_tmu_data *data) { + int i; + /* Disable interrupt, using polling instead */ regmap_write(data->regmap, REGS_TIER, TIER_DISABLE); @@ -202,6 +212,8 @@ static void qoriq_tmu_init_device(struct qoriq_tmu_data *data) } else { regmap_write(data->regmap, REGS_V2_TMTMIR, TMTMIR_DEFAULT); regmap_write(data->regmap, REGS_V2_TEUMR(0), TEUMR0_V2); + for (i = 0; i < 7; i++) + regmap_write(data->regmap, REGS_V2_TMSAR(i), TMSARA_V2); } /* Disable monitoring */ @@ -212,6 +224,7 @@ static const struct regmap_range qoriq_yes_ranges[] = { regmap_reg_range(REGS_TMR, REGS_TSCFGR), regmap_reg_range(REGS_TTRnCR(0), REGS_TTRnCR(3)), regmap_reg_range(REGS_V2_TEUMR(0), REGS_V2_TEUMR(2)), + regmap_reg_range(REGS_V2_TMSAR(0), REGS_V2_TMSAR(15)), regmap_reg_range(REGS_IPBRR(0), REGS_IPBRR(1)), /* Read only registers below */ regmap_reg_range(REGS_TRITSR(0), REGS_TRITSR(15)), -- 2.17.1