Received: by 2002:a25:ef43:0:0:0:0:0 with SMTP id w3csp586134ybm; Wed, 27 May 2020 03:04:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwWUqr6aK/VElPm/OhToUkNP/YXqefij8CoskwB9MTixTMo97IbbHOAeUV5Z74jJglwqjSo X-Received: by 2002:a17:906:81d6:: with SMTP id e22mr5041343ejx.418.1590573859840; Wed, 27 May 2020 03:04:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590573859; cv=none; d=google.com; s=arc-20160816; b=ZdPL05Piii1nJos8mr4cbHxLQsiPKduBacLz5Om3juf4TAtThazDzyP24ElO3P7/pV iAtqomCgxHmX/MSMMHkcPGIBzfIvOscUqhrLEbRPL8NvTYJh981cH2BhYagoy/4D4pwB 7hfXCj8D4XHkL2X72zcRIORkT0qRAV9LCYOYl6/ncWZFhOd7uyuYijJ0MJJUQFr5AFl0 YDZ+TKWkMD6BrmEDsbPTuyIG6limBXBwav6kkvl8tq+9hA1PjzH8uK+GdarGqdPbzH3Y 5ru5myX1de0QXpYk5DYMtM+xOQPOirlusHjohlOYdp+pyCNwVohPZotYzBzCpx7Q09zv p35Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:ironport-sdr:ironport-sdr; bh=ywTeV1jWZXs4QkrQTi5EnWtVhanfnjUYS9EqlvM4kpY=; b=qu+yVTh9by2YKqFWXGwHdSycjhYfBoHyk9VrOKX94UbfU/jqqSCwQS7lJsNxu0d3yN xbIIWgS+g1xwbzeUWReJO6Yo6AuE9xnQLVa/Q6lGmtWiE3uwdNgGP/mBknOpk9+pDGqK ZdM8Tlaqe7Is0SAC9uFyzj7Js56+Yl1EI7X424wjquidmxaiWL8heo3p3gfmMzuoe5/J +DNDGTqoMlLUiftOueujXJuZbvbCDF5DoWwCmv1zCUEn6lhTYIIGk2zbt/aTmFXTCkJh LlRKjMjYELHs/Ubx82T1wq2ofgZAd8k+F8BMSFusYMjMYyBPVmOJbz2e5zpl1mcOANEC 66Ng== 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=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dr8si1864252ejc.593.2020.05.27.03.03.56; Wed, 27 May 2020 03:04:19 -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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728333AbgE0G26 (ORCPT + 99 others); Wed, 27 May 2020 02:28:58 -0400 Received: from mga01.intel.com ([192.55.52.88]:3448 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726487AbgE0G26 (ORCPT ); Wed, 27 May 2020 02:28:58 -0400 IronPort-SDR: WPnP6rejn/oFiZ0aBVouUEBbdfcAvNtRWk7ARNfavpoxqFZ6xXQ88wU95uiObMAsESqNRjJS6D LQL7o7riYZ8g== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 May 2020 23:28:57 -0700 IronPort-SDR: bkCRZ90oJrkR7iPFP9fBSIOLyx9V59salad5X/SdN71GDSH/5LcbXt5XaArMm10zU8nXqhN0h+ rpKrqE4ImG8A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,440,1583222400"; d="scan'208";a="255386847" Received: from linux.intel.com ([10.54.29.200]) by fmsmga007.fm.intel.com with ESMTP; 26 May 2020 23:28:57 -0700 Received: from [10.214.150.18] (rtanwar-mobl.gar.corp.intel.com [10.214.150.18]) by linux.intel.com (Postfix) with ESMTP id 72BAC580101; Tue, 26 May 2020 23:28:54 -0700 (PDT) Subject: Re: [PATCH v1 2/2] Add PWM driver for LGM To: =?UTF-8?Q?Uwe_Kleine-K=c3=b6nig?= Cc: thierry.reding@gmail.com, p.zabel@pengutronix.de, linux-pwm@vger.kernel.org, robh+dt@kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, andriy.shevchenko@intel.com, songjun.Wu@intel.com, cheol.yong.kim@intel.com, qi-ming.wu@intel.com References: <3c1d2343b034325dbc185ccd23a35b40a62a4e7b.1590132733.git.rahul.tanwar@linux.intel.com> <20200522085613.ktb2ruw2virj337v@pengutronix.de> From: "Tanwar, Rahul" Message-ID: <3a1f1e83-2d9d-ddbf-e2e6-9c8bab87372b@linux.intel.com> Date: Wed, 27 May 2020 14:28:53 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.8.1 MIME-Version: 1.0 In-Reply-To: <20200522085613.ktb2ruw2virj337v@pengutronix.de> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Uwe, Thanks for review. On 22/5/2020 4:56 pm, Uwe Kleine-König wrote: > Hello, > > On Fri, May 22, 2020 at 03:41:59PM +0800, Rahul Tanwar wrote: >> Add PWM controller driver for Intel's Lightning Mountain(LGM) SoC. >> >> Signed-off-by: Rahul Tanwar >> --- >> drivers/pwm/Kconfig | 9 ++ >> drivers/pwm/Makefile | 1 + >> drivers/pwm/pwm-intel-lgm.c | 356 ++++++++++++++++++++++++++++++++++++++++++++ >> 3 files changed, 366 insertions(+) >> create mode 100644 drivers/pwm/pwm-intel-lgm.c >> >> diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig >> index eebbc917ac97..a582214f50b2 100644 >> --- a/drivers/pwm/Kconfig >> +++ b/drivers/pwm/Kconfig >> @@ -232,6 +232,15 @@ config PWM_IMX_TPM >> To compile this driver as a module, choose M here: the module >> will be called pwm-imx-tpm. >> >> +config PWM_INTEL_LGM >> + tristate "Intel LGM PWM support" >> + depends on X86 || COMPILE_TEST >> + help >> + Generic PWM framework driver for LGM SoC. [...] >> +}; >> + >> +static void tach_work(struct work_struct *work) >> +{ >> + struct intel_pwm_chip *pc = container_of(work, struct intel_pwm_chip, >> + work.work); >> + struct regmap *regmap = pc->regmap; >> + u32 fan_tach, fan_dc, val; >> + s32 diff; >> + static u32 fanspeed_err_cnt, time_window, delta_dc; >> + >> + /* >> + * Fan speed is tracked by reading the active duty cycle of PWM output >> + * from the active duty cycle register. Some variance in the duty cycle >> + * register value is expected. So we set a time window of 30 seconds and >> + * if we detect inaccurate fan speed 6 times within 30 seconds then we >> + * mark it as fan speed problem and fix it by readjusting the duty cycle. >> + */ > I'm a unhappy to have this in the PWM driver. The PWM driver is supposed > to be generic and I think this belongs into a dedicated driver. Well noted about all other review concerns. I will rework the driver in v2. However, i am not very sure about the above point - of having a separate dedicated driver for tach_work because its logic is tightly coupled with this driver. Regards, Rahul