From: Nicolas Frattaroli <frattaroli.nicolas@gmail.com>
To: Sebastian Reichel <sebastian.reichel@collabora.com>,
Heiko Stuebner <heiko@sntech.de>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Amit Kucheria <amitk@kernel.org>, Zhang Rui <rui.zhang@intel.com>,
linux-rockchip@lists.infradead.org
Cc: Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
linux-pm@vger.kernel.org, linux-rockchip@lists.infradead.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Finley Xiao <finley.xiao@rock-chips.com>,
kernel@collabora.com, Daniel Lezcano <daniel.lezcano@linaro.org>
Subject: Re: [PATCH 1/2] thermal: rockchip: Support RK3588 SoC in the thermal driver
Date: Sat, 22 Oct 2022 10:43:31 +0200 [thread overview]
Message-ID: <7276280.TLKafQO6qx@archbook> (raw)
In-Reply-To: <2aafa6cc-a7de-0b7a-571f-04593ad53787@linaro.org>
On Freitag, 21. Oktober 2022 21:59:56 CEST Daniel Lezcano wrote:
> On 21/10/2022 19:47, Sebastian Reichel wrote:
> > From: Finley Xiao <finley.xiao@rock-chips.com>
> >
> > The RK3588 SoC has seven channels TS-ADC(TOP, BIG_CORE0, BIG_CORE1,
> > LITTEL_CORE, CENTER, GPU, and NPU).
>
> Is possible to give a more elaborate description of those sensors?
>
> What is TOP and CENTER ?
>
> There are 4 Bigs on this platform but two sensors ?
As far as I know, the four big cores in the SoC are arranged in two
clusters of two cores each, so one temperature sensor for each
cluster. As far as I can tell each CPU in a cluster shares its voltage
with its partner CPU core in its cluster.
If you have access to the TRM, it contains the following line in
part 1 on page 1372:
Support to 7 channel TS-ADC (near chip center, A76_0/1, A76_2/3,
DSU and A55_0/1/2/3, PD_CENTER, NPU, GPU)
I assume one of "TOP" and "CENTER" is "near chip center", the other is
PD_CENTER, whatever that means (PD = power domain maybe?)
I agree these could be named more descriptively.
>
>
> > Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
> > [rebase, squash fixes]
> > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> > ---
> > drivers/thermal/rockchip_thermal.c | 182 ++++++++++++++++++++++++++++-
> > 1 file changed, 179 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/thermal/rockchip_thermal.c b/drivers/thermal/rockchip_thermal.c
> > index 819e059cde71..82f475a6448f 100644
> > --- a/drivers/thermal/rockchip_thermal.c
> > +++ b/drivers/thermal/rockchip_thermal.c
> > @@ -61,10 +61,9 @@ enum adc_sort_mode {
> > #include "thermal_hwmon.h"
> >
> > /**
> > - * The max sensors is two in rockchip SoCs.
> > - * Two sensors: CPU and GPU sensor.
> > + * The max sensors is seven in rockchip SoCs.
> > */
> > -#define SOC_MAX_SENSORS 2
> > +#define SOC_MAX_SENSORS 7
>
> You may get rid of this and replace the sensors array to an dyn
> allocation based on chn_num
>
> [ ... ]
>
> > +static const struct rockchip_tsadc_chip rk3588_tsadc_data = {
> > + /* top, big_core0, big_core1, little_core, center, gpu, npu */
> > + .chn_id = {0, 1, 2, 3, 4, 5, 6},
>
> You may want to revisit that. Actually, chn_id is not useful and can be
> removed everywhere as there is no hole. Otherwise a bit mask could be
> used. By removing it, SENSOR_CPU and SENSOR_GPU can be removed too.
>
> > + .chn_num = 7, /* seven channels for tsadc
> > + .tshut_mode = TSHUT_MODE_GPIO, /* default TSHUT via GPIO give PMIC */
> > + .tshut_polarity = TSHUT_LOW_ACTIVE, /* default TSHUT LOW ACTIVE */
> > + .tshut_temp = 95000,
> > + .initialize = rk_tsadcv8_initialize,
> > + .irq_ack = rk_tsadcv4_irq_ack,
> > + .control = rk_tsadcv4_control,
> > + .get_temp = rk_tsadcv4_get_temp,
> > + .set_alarm_temp = rk_tsadcv3_alarm_temp,
> > + .set_tshut_temp = rk_tsadcv3_tshut_temp,
> > + .set_tshut_mode = rk_tsadcv3_tshut_mode,
> > + .table = {
> > + .id = rk3588_code_table,
> > + .length = ARRAY_SIZE(rk3588_code_table),
> > + .data_mask = TSADCV4_DATA_MASK,
> > + .mode = ADC_INCREMENT,
> > + },
> > +};
> > +
> > static const struct of_device_id of_rockchip_thermal_match[] = {
> > { .compatible = "rockchip,px30-tsadc",
> > .data = (void *)&px30_tsadc_data,
> > @@ -1180,6 +1352,10 @@ static const struct of_device_id of_rockchip_thermal_match[] = {
> > .compatible = "rockchip,rk3568-tsadc",
> > .data = (void *)&rk3568_tsadc_data,
> > },
> > + {
> > + .compatible = "rockchip,rk3588-tsadc",
> > + .data = (void *)&rk3588_tsadc_data,
> > + },
> > { /* end */ },
> > };
> > MODULE_DEVICE_TABLE(of, of_rockchip_thermal_match);
>
>
>
WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Frattaroli <frattaroli.nicolas@gmail.com>
To: Sebastian Reichel <sebastian.reichel@collabora.com>,
Heiko Stuebner <heiko@sntech.de>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Amit Kucheria <amitk@kernel.org>, Zhang Rui <rui.zhang@intel.com>,
linux-rockchip@lists.infradead.org
Cc: Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
linux-pm@vger.kernel.org, linux-rockchip@lists.infradead.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Finley Xiao <finley.xiao@rock-chips.com>,
kernel@collabora.com, Daniel Lezcano <daniel.lezcano@linaro.org>
Subject: Re: [PATCH 1/2] thermal: rockchip: Support RK3588 SoC in the thermal driver
Date: Sat, 22 Oct 2022 10:43:31 +0200 [thread overview]
Message-ID: <7276280.TLKafQO6qx@archbook> (raw)
In-Reply-To: <2aafa6cc-a7de-0b7a-571f-04593ad53787@linaro.org>
On Freitag, 21. Oktober 2022 21:59:56 CEST Daniel Lezcano wrote:
> On 21/10/2022 19:47, Sebastian Reichel wrote:
> > From: Finley Xiao <finley.xiao@rock-chips.com>
> >
> > The RK3588 SoC has seven channels TS-ADC(TOP, BIG_CORE0, BIG_CORE1,
> > LITTEL_CORE, CENTER, GPU, and NPU).
>
> Is possible to give a more elaborate description of those sensors?
>
> What is TOP and CENTER ?
>
> There are 4 Bigs on this platform but two sensors ?
As far as I know, the four big cores in the SoC are arranged in two
clusters of two cores each, so one temperature sensor for each
cluster. As far as I can tell each CPU in a cluster shares its voltage
with its partner CPU core in its cluster.
If you have access to the TRM, it contains the following line in
part 1 on page 1372:
Support to 7 channel TS-ADC (near chip center, A76_0/1, A76_2/3,
DSU and A55_0/1/2/3, PD_CENTER, NPU, GPU)
I assume one of "TOP" and "CENTER" is "near chip center", the other is
PD_CENTER, whatever that means (PD = power domain maybe?)
I agree these could be named more descriptively.
>
>
> > Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
> > [rebase, squash fixes]
> > Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> > ---
> > drivers/thermal/rockchip_thermal.c | 182 ++++++++++++++++++++++++++++-
> > 1 file changed, 179 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/thermal/rockchip_thermal.c b/drivers/thermal/rockchip_thermal.c
> > index 819e059cde71..82f475a6448f 100644
> > --- a/drivers/thermal/rockchip_thermal.c
> > +++ b/drivers/thermal/rockchip_thermal.c
> > @@ -61,10 +61,9 @@ enum adc_sort_mode {
> > #include "thermal_hwmon.h"
> >
> > /**
> > - * The max sensors is two in rockchip SoCs.
> > - * Two sensors: CPU and GPU sensor.
> > + * The max sensors is seven in rockchip SoCs.
> > */
> > -#define SOC_MAX_SENSORS 2
> > +#define SOC_MAX_SENSORS 7
>
> You may get rid of this and replace the sensors array to an dyn
> allocation based on chn_num
>
> [ ... ]
>
> > +static const struct rockchip_tsadc_chip rk3588_tsadc_data = {
> > + /* top, big_core0, big_core1, little_core, center, gpu, npu */
> > + .chn_id = {0, 1, 2, 3, 4, 5, 6},
>
> You may want to revisit that. Actually, chn_id is not useful and can be
> removed everywhere as there is no hole. Otherwise a bit mask could be
> used. By removing it, SENSOR_CPU and SENSOR_GPU can be removed too.
>
> > + .chn_num = 7, /* seven channels for tsadc
> > + .tshut_mode = TSHUT_MODE_GPIO, /* default TSHUT via GPIO give PMIC */
> > + .tshut_polarity = TSHUT_LOW_ACTIVE, /* default TSHUT LOW ACTIVE */
> > + .tshut_temp = 95000,
> > + .initialize = rk_tsadcv8_initialize,
> > + .irq_ack = rk_tsadcv4_irq_ack,
> > + .control = rk_tsadcv4_control,
> > + .get_temp = rk_tsadcv4_get_temp,
> > + .set_alarm_temp = rk_tsadcv3_alarm_temp,
> > + .set_tshut_temp = rk_tsadcv3_tshut_temp,
> > + .set_tshut_mode = rk_tsadcv3_tshut_mode,
> > + .table = {
> > + .id = rk3588_code_table,
> > + .length = ARRAY_SIZE(rk3588_code_table),
> > + .data_mask = TSADCV4_DATA_MASK,
> > + .mode = ADC_INCREMENT,
> > + },
> > +};
> > +
> > static const struct of_device_id of_rockchip_thermal_match[] = {
> > { .compatible = "rockchip,px30-tsadc",
> > .data = (void *)&px30_tsadc_data,
> > @@ -1180,6 +1352,10 @@ static const struct of_device_id of_rockchip_thermal_match[] = {
> > .compatible = "rockchip,rk3568-tsadc",
> > .data = (void *)&rk3568_tsadc_data,
> > },
> > + {
> > + .compatible = "rockchip,rk3588-tsadc",
> > + .data = (void *)&rk3588_tsadc_data,
> > + },
> > { /* end */ },
> > };
> > MODULE_DEVICE_TABLE(of, of_rockchip_thermal_match);
>
>
>
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
next prev parent reply other threads:[~2022-10-22 10:42 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-21 17:47 [PATCH 0/2] RK3588 Thermal Support Sebastian Reichel
2022-10-21 17:47 ` Sebastian Reichel
2022-10-21 17:47 ` [PATCH 1/2] thermal: rockchip: Support RK3588 SoC in the thermal driver Sebastian Reichel
2022-10-21 17:47 ` Sebastian Reichel
2022-10-21 19:12 ` Heiko Stübner
2022-10-21 19:12 ` Heiko Stübner
2022-10-21 19:59 ` Daniel Lezcano
2022-10-21 19:59 ` Daniel Lezcano
2022-10-22 8:43 ` Nicolas Frattaroli [this message]
2022-10-22 8:43 ` Nicolas Frattaroli
2022-10-22 11:12 ` Daniel Lezcano
2022-10-22 11:12 ` Daniel Lezcano
2022-10-22 18:18 ` Sebastian Reichel
2022-10-22 18:18 ` Sebastian Reichel
2022-10-21 17:47 ` [PATCH 2/2] dt-bindings: rockchip-thermal: Support the RK3588 SoC compatible Sebastian Reichel
2022-10-21 17:47 ` Sebastian Reichel
2022-10-21 19:13 ` Heiko Stübner
2022-10-21 19:13 ` Heiko Stübner
2022-10-22 16:24 ` Krzysztof Kozlowski
2022-10-22 16:24 ` Krzysztof Kozlowski
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=7276280.TLKafQO6qx@archbook \
--to=frattaroli.nicolas@gmail.com \
--cc=amitk@kernel.org \
--cc=daniel.lezcano@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=finley.xiao@rock-chips.com \
--cc=heiko@sntech.de \
--cc=kernel@collabora.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=rafael@kernel.org \
--cc=robh+dt@kernel.org \
--cc=rui.zhang@intel.com \
--cc=sebastian.reichel@collabora.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.