public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime.ripard@bootlin.com>
To: Frank Lee <tiny.windzz@gmail.com>
Cc: rui.zhang@intel.com, Eduardo Valentin <edubezval@gmail.com>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	robh+dt@kernel.org, Mark Rutland <mark.rutland@arm.com>,
	Chen-Yu Tsai <wens@csie.org>,
	catalin.marinas@arm.com, will.deacon@arm.com,
	David Miller <davem@davemloft.net>,
	Mauro Carvalho Chehab <mchehab+samsung@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jonathan.Cameron@huawei.com,
	Nicolas Ferre <nicolas.ferre@microchip.com>,
	paulmck@linux.ibm.com, Andy Gross <andy.gross@linaro.org>,
	olof@lixom.net, bjorn.andersson@linaro.org,
	Jagan Teki <jagan@amarulasolutions.com>,
	marc.w.gonzalez@free.fr, stefan.wahren@i2se.com,
	enric.balletbo@collabora.com, Linux PM <linux-pm@vger.kernel.org>,
	devicetree@vger.kernel.org,
	Linux ARM <linux-arm-kernel@lists.infra>
Subject: Re: [PATCH 2/3] thermal: sun50i: add thermal driver for h6
Date: Fri, 17 May 2019 09:36:34 +0200	[thread overview]
Message-ID: <20190517073634.izdmba3yqvxviyg3@flea> (raw)
In-Reply-To: <CAEExFWvcMbiCJ4HD0UAtv1P6AuBJ=oUdmhu886BNZhrRz483Ug@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3564 bytes --]

On Fri, May 17, 2019 at 01:51:56AM +0800, Frank Lee wrote:
> > > +struct sun50i_thermal_chip {
> > > +     int     sensor_num;
> > > +     int     offset;
> > > +     int     scale;
> > > +     int     ft_deviation;
> > > +     int     temp_calib_base;
> > > +     int     temp_data_base;
> > > +     int     (*enable)(struct tsens_device *tmdev);
> > > +     int     (*disable)(struct tsens_device *tmdev);
> > > +};
> >
> > I'm not super fond of having a lot of quirks that are not needed. If
> > we ever need those quirks when adding support for a new SoC, then
> > yeah, we should totally have some, but only when and if it's needed.
> >
> > Otherwise, the driver is more complicated for no particular reason.
>
> This is unavoidable because of the difference in soc.

I know, but this isn't my point.

My point is that at this time of the driver development, we don't know
what is going to be needed to support all of those SoCs.

Some of the parameters you added might not be needed, some parameters
might be missing, we don't know. So let's keep it simple for now.

> > > +static int tsens_probe(struct platform_device *pdev)
> > > +{
> > > +     struct tsens_device *tmdev;
> > > +     struct device *dev = &pdev->dev;
> > > +     int ret;
> > > +
> > > +     tmdev = devm_kzalloc(dev, sizeof(*tmdev), GFP_KERNEL);
> > > +     if (!tmdev)
> > > +             return -ENOMEM;
> > > +
> > > +     tmdev->dev = dev;
> > > +     tmdev->chip = of_device_get_match_data(&pdev->dev);
> > > +     if (!tmdev->chip)
> > > +             return -EINVAL;
> > > +
> > > +     ret = tsens_init(tmdev);
> > > +     if (ret)
> > > +             return ret;
> > > +
> > > +     ret = tsens_register(tmdev);
> > > +     if (ret)
> > > +             return ret;
> > > +
> > > +     ret = tmdev->chip->enable(tmdev);
> > > +     if (ret)
> > > +             return ret;
> > >
> > > +     platform_set_drvdata(pdev, tmdev);
> >
> > Your registration should be the very last thing you do. Otherwise, you
> > have a small window where the get_temp callback can be called, but the
> > driver will not be functional yet.
>
> No. Anyway, ths data qcquisition is ms level.

That's kind of irrelevant. There's nothing preventing get_temp to be
called right away.

> > > +     ret = tsens_calibrate(tmdev);
> > > +     if (ret)
> > > +             return ret;
> > > +
> > > +     /*
> > > +      * clkin = 24MHz
> > > +      * T acquire = clkin / (SUN50I_THS_CTRL0_T_ACQ + 1)
> > > +      *           = 20us
> > > +      */
> > > +     regmap_write(tmdev->regmap, SUN50I_THS_CTRL0,
> > > +                  SUN50I_THS_CTRL0_T_ACQ(479));
> > > +     /* average over 4 samples */
> > > +     regmap_write(tmdev->regmap, SUN50I_H6_THS_MFC,
> > > +                  SUN50I_THS_FILTER_EN |
> > > +                  SUN50I_THS_FILTER_TYPE(1));
> > > +     /* period = (SUN50I_H6_THS_PC_TEMP_PERIOD + 1) * 4096 / clkin; ~10ms */
> > > +     regmap_write(tmdev->regmap, SUN50I_H6_THS_PC,
> > > +                  SUN50I_H6_THS_PC_TEMP_PERIOD(58));
> > > +     /* enable sensor */
> > > +     val = GENMASK(tmdev->chip->sensor_num - 1, 0);
> > > +     regmap_write(tmdev->regmap, SUN50I_H6_THS_ENABLE, val);
> > > +
> > > +     return 0;
> > > +
> > > +assert_reset:
> > > +     reset_control_assert(tmdev->reset);
> > > +
> > > +     return ret;
> >
> > Can't we do that with runtime_pm?
>
> Saving energy doesn't make much sense compared to system security.

I'm not sure what you mean by security.

Maxime

--
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  parent reply	other threads:[~2019-05-17  7:36 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-12  8:26 [PATCH 0/3] add thermal driver for h6 Yangtao Li
2019-05-12  8:26 ` [PATCH 1/3] arm64: defconfig: add allwinner sid support Yangtao Li
2019-05-12 13:25   ` Maxime Ripard
2019-05-12  8:26 ` [PATCH 2/3] thermal: sun50i: add thermal driver for h6 Yangtao Li
2019-05-12 13:39   ` Maxime Ripard
2019-05-12 21:41     ` Ondřej Jirman
2019-05-16 15:02       ` Maxime Ripard
2019-05-16 17:36         ` Ondřej Jirman
2019-05-16 18:10         ` Frank Lee
2019-05-17  7:31           ` Maxime Ripard
2019-05-17 17:19             ` Frank Lee
2019-05-21  7:41               ` Maxime Ripard
2019-05-16 17:51     ` Frank Lee
2019-05-16 21:11       ` Ondřej Jirman
2019-05-17  7:36       ` Maxime Ripard [this message]
2019-05-17 17:27         ` Frank Lee
2019-05-21  8:05           ` Maxime Ripard
2019-05-21 10:27             ` Ondřej Jirman
2019-05-21 14:27               ` Maxime Ripard
2019-05-21 17:33                 ` Ondřej Jirman
2019-05-17 19:21     ` Vasily Khoruzhick
2019-05-21  7:47       ` Maxime Ripard
2019-05-12 22:16   ` Ondřej Jirman
2019-05-16 18:06     ` Frank Lee
2019-05-16 18:29       ` Ondřej Jirman
2019-05-17 16:34         ` Frank Lee
2019-05-19 14:22           ` Ondřej Jirman
2019-05-20 10:59             ` Maxime Ripard
2019-05-25 18:48             ` Frank Lee
2019-05-25 18:51               ` Frank Lee
2019-05-25 19:53               ` Vasily Khoruzhick
2019-05-26  1:24               ` Ondřej Jirman
2019-05-12 22:39   ` Ondřej Jirman
2019-05-13 10:01     ` Maxime Ripard
2019-05-16 18:08     ` Frank Lee
2019-05-12  8:26 ` [PATCH 3/3] dt-bindings: thermal: add binding document for h6 thermal controller Yangtao Li
2019-05-12 13:41   ` Maxime Ripard
2019-05-16 18:13     ` Frank Lee
2019-05-17  7:38       ` Maxime Ripard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190517073634.izdmba3yqvxviyg3@flea \
    --to=maxime.ripard@bootlin.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=andy.gross@linaro.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=catalin.marinas@arm.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edubezval@gmail.com \
    --cc=enric.balletbo@collabora.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jagan@amarulasolutions.com \
    --cc=linux-arm-kernel@lists.infra \
    --cc=linux-pm@vger.kernel.org \
    --cc=marc.w.gonzalez@free.fr \
    --cc=mark.rutland@arm.com \
    --cc=mchehab+samsung@kernel.org \
    --cc=nicolas.ferre@microchip.com \
    --cc=olof@lixom.net \
    --cc=paulmck@linux.ibm.com \
    --cc=robh+dt@kernel.org \
    --cc=rui.zhang@intel.com \
    --cc=stefan.wahren@i2se.com \
    --cc=tiny.windzz@gmail.com \
    --cc=wens@csie.org \
    --cc=will.deacon@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox