* [PATCH v3 0/8] Add Renesas RZ/G3L TSU support
@ 2026-09-22 4:26 Biju Das
2026-09-22 4:26 ` [PATCH v3 2/8] dt-bindings: thermal: r9a08g045-tsu: Document RZ/G3L TSU Biju Das
` (6 more replies)
0 siblings, 7 replies; 18+ messages in thread
From: Biju Das @ 2026-09-22 4:26 UTC (permalink / raw)
To: Claudiu Beznea, Rafael J. Wysocki, Daniel Lezcano,
Jonathan Cameron, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Geert Uytterhoeven, Magnus Damm
Cc: Biju Das, Zhang Rui, Lukasz Luba, linux-pm, devicetree, linux-iio,
linux-renesas-soc, Chris Paterson, Biju Das,
Prabhakar Mahadev Lad
The Thermal sensor unit (a.k.a TSU) IP found on the RZ/G3L SoC is similar
to the RZ/G3S, but it has different calibration constants. Moreover, the
TSU is connected to A/D converter of TSU (a.k.a ADC1) on the RZ/G3L,
whereas it is connected to ADC0 on the RZ/G3S.
Compared to ADC0, there are no A/D conversion result registers(ADCR0 to
ADCR7) on the RZ/G3L, and the INTEN bits in the A/D converter interrupt
control register(a.k.a ADINT) are also different.
This patch series aims to add support for TSU along with ADC1.
Merge strategy:
* patch #1 clk subsystem
* patch #2-#4 thermal subsystem
* patch #5-#7 iio subsystem
* patch #8 SoC subsystem
v2->v3:
* Collected tags
* Dropped required property '#io-channel-cells' from bindings.
* Renamed num_channels to max_channels in struct rzg2l_adc_hw_params
v1->v2:
* Merged TSU and ADC1 series together.
* Moved the clk patch.
Biju Das (8):
clk: renesas: r9a08g046: Add TSU,ADC1 clocks and reset
dt-bindings: thermal: r9a08g045-tsu: Document RZ/G3L TSU
thermal/drivers/renesas/rzg3s: Convert calibration defaults to per-SoC
match data
thermal/drivers/renesas/rzg3s: Add RZ/G3L TSU support
dt-bindings: iio: adc: renesas,rzg2l-adc: Document RZ/G3L ADC for TSU
iio: adc: rzg2l_adc: Rename num_channels to max_channels
iio: adc: rzg2l_adc: Add RZ/G3L ADC support for TSU
arm64: dts: renesas: r9a08g046: Enable TSU
.../bindings/iio/adc/renesas,rzg2l-adc.yaml | 17 ++++-
.../thermal/renesas,r9a08g045-tsu.yaml | 4 +-
arch/arm64/boot/dts/renesas/r9a08g046.dtsi | 66 +++++++++++++++++++
drivers/clk/renesas/r9a08g046-cpg.c | 10 +++
drivers/iio/adc/rzg2l_adc.c | 29 +++++---
drivers/thermal/renesas/rzg3s_thermal.c | 38 ++++++++---
6 files changed, 143 insertions(+), 21 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH v3 2/8] dt-bindings: thermal: r9a08g045-tsu: Document RZ/G3L TSU
2026-09-22 4:26 [PATCH v3 0/8] Add Renesas RZ/G3L TSU support Biju Das
@ 2026-09-22 4:26 ` Biju Das
2026-09-22 4:26 ` [PATCH v3 3/8] thermal/drivers/renesas/rzg3s: Convert calibration defaults to per-SoC match data Biju Das
` (5 subsequent siblings)
6 siblings, 0 replies; 18+ messages in thread
From: Biju Das @ 2026-09-22 4:26 UTC (permalink / raw)
To: Claudiu Beznea, Rafael J. Wysocki, Daniel Lezcano,
Jonathan Cameron, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Geert Uytterhoeven, Magnus Damm
Cc: Biju Das, Zhang Rui, Lukasz Luba, linux-pm, devicetree, linux-iio,
linux-renesas-soc, Chris Paterson, Biju Das,
Prabhakar Mahadev Lad, Jonathan Cameron
Add the renesas,r9a08g046-tsu compatible string for the RZ/G3L Thermal
Sensor Unit (a.k.a TSU), which is similar to the RZ/G3S TSU but uses
different calibration constants. TSU is connected to a dedicated ADC IP
(a.k.a ADC1) on RZ/G3L.
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v2->v3:
* Collected tags
v1->v2:
* Updated commit description.
---
.../devicetree/bindings/thermal/renesas,r9a08g045-tsu.yaml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/thermal/renesas,r9a08g045-tsu.yaml b/Documentation/devicetree/bindings/thermal/renesas,r9a08g045-tsu.yaml
index 573e2b9d3752..20fc1a8000e3 100644
--- a/Documentation/devicetree/bindings/thermal/renesas,r9a08g045-tsu.yaml
+++ b/Documentation/devicetree/bindings/thermal/renesas,r9a08g045-tsu.yaml
@@ -17,7 +17,9 @@ $ref: thermal-sensor.yaml#
properties:
compatible:
- const: renesas,r9a08g045-tsu
+ enum:
+ - renesas,r9a08g045-tsu
+ - renesas,r9a08g046-tsu
reg:
maxItems: 1
--
2.43.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 3/8] thermal/drivers/renesas/rzg3s: Convert calibration defaults to per-SoC match data
2026-09-22 4:26 [PATCH v3 0/8] Add Renesas RZ/G3L TSU support Biju Das
2026-09-22 4:26 ` [PATCH v3 2/8] dt-bindings: thermal: r9a08g045-tsu: Document RZ/G3L TSU Biju Das
@ 2026-09-22 4:26 ` Biju Das
2026-09-22 4:26 ` [PATCH v3 4/8] thermal/drivers/renesas/rzg3s: Add RZ/G3L TSU support Biju Das
` (4 subsequent siblings)
6 siblings, 0 replies; 18+ messages in thread
From: Biju Das @ 2026-09-22 4:26 UTC (permalink / raw)
To: Claudiu Beznea, Rafael J. Wysocki, Daniel Lezcano,
Jonathan Cameron, Geert Uytterhoeven, Magnus Damm
Cc: Biju Das, Zhang Rui, Lukasz Luba, linux-pm, linux-iio,
linux-renesas-soc, Chris Paterson, Biju Das,
Prabhakar Mahadev Lad, Jonathan Cameron
Move the default (software) calibration values SW_CALIB0_VAL and
SW_CALIB1_VAL, used when FUSE values are missing, into a new
struct rzg3s_thermal_info retrieved via of_device_get_match_data().
This allows different SoCs sharing this driver to provide their own
default calibration constants, which is needed as RZ/G3L uses
different values than RZ/G3S.
No functional change intended for RZ/G3S.
Reviewed-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v2->v3:
* Collected tag
v1->v2:
* No Change.
---
drivers/thermal/renesas/rzg3s_thermal.c | 32 ++++++++++++++++++-------
1 file changed, 23 insertions(+), 9 deletions(-)
diff --git a/drivers/thermal/renesas/rzg3s_thermal.c b/drivers/thermal/renesas/rzg3s_thermal.c
index 7ced8f76a0ec..146b73a1b751 100644
--- a/drivers/thermal/renesas/rzg3s_thermal.c
+++ b/drivers/thermal/renesas/rzg3s_thermal.c
@@ -12,6 +12,7 @@
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
+#include <linux/property.h>
#include <linux/reset.h>
#include <linux/thermal.h>
#include <linux/units.h>
@@ -27,10 +28,6 @@
#define TSU_READ_STEPS 8
-/* Default calibration values, if FUSE values are missing. */
-#define SW_CALIB0_VAL 1297
-#define SW_CALIB1_VAL 751
-
#define MCELSIUS(temp) ((temp) * MILLIDEGREE_PER_DEGREE)
/**
@@ -55,6 +52,16 @@ struct rzg3s_thermal_priv {
u16 calib1;
};
+/**
+ * struct rzg3s_thermal_info - RZ/G3S thermal information
+ * @calib0: calibration value if FUSE value is missing
+ * @calib1: calibration value if FUSE value is missing
+ */
+struct rzg3s_thermal_info {
+ u16 calib0;
+ u16 calib1;
+};
+
static int rzg3s_thermal_get_temp(struct thermal_zone_device *tz, int *temp)
{
struct rzg3s_thermal_priv *priv = thermal_zone_device_priv(tz);
@@ -149,7 +156,8 @@ static const struct thermal_zone_device_ops rzg3s_tz_of_ops = {
.change_mode = rzg3s_thermal_change_mode,
};
-static int rzg3s_thermal_read_calib(struct rzg3s_thermal_priv *priv)
+static int rzg3s_thermal_read_calib(struct rzg3s_thermal_priv *priv,
+ const struct rzg3s_thermal_info *info)
{
struct device *dev = priv->dev;
u32 val;
@@ -163,13 +171,13 @@ static int rzg3s_thermal_read_calib(struct rzg3s_thermal_priv *priv)
if (val & OTPTSUTRIM_EN_MASK)
priv->calib0 = FIELD_GET(OTPTSUTRIM_MASK, val);
else
- priv->calib0 = SW_CALIB0_VAL;
+ priv->calib0 = info->calib0;
val = readl(priv->base + OTPTSUTRIM_REG(1));
if (val & OTPTSUTRIM_EN_MASK)
priv->calib1 = FIELD_GET(OTPTSUTRIM_MASK, val);
else
- priv->calib1 = SW_CALIB1_VAL;
+ priv->calib1 = info->calib1;
pm_runtime_put_autosuspend(dev);
@@ -178,6 +186,7 @@ static int rzg3s_thermal_read_calib(struct rzg3s_thermal_priv *priv)
static int rzg3s_thermal_probe(struct platform_device *pdev)
{
+ const struct rzg3s_thermal_info *info = device_get_match_data(&pdev->dev);
struct rzg3s_thermal_priv *priv;
struct device *dev = &pdev->dev;
int ret;
@@ -208,7 +217,7 @@ static int rzg3s_thermal_probe(struct platform_device *pdev)
if (ret)
return dev_err_probe(dev, ret, "Failed to enable runtime PM!\n");
- ret = rzg3s_thermal_read_calib(priv);
+ ret = rzg3s_thermal_read_calib(priv, info);
if (ret)
return dev_err_probe(dev, ret, "Failed to read calibration data!\n");
@@ -251,8 +260,13 @@ static const struct dev_pm_ops rzg3s_thermal_pm_ops = {
SYSTEM_SLEEP_PM_OPS(rzg3s_thermal_suspend, rzg3s_thermal_resume)
};
+static const struct rzg3s_thermal_info rzg3s_info = {
+ .calib0 = 1297,
+ .calib1 = 751,
+};
+
static const struct of_device_id rzg3s_thermal_dt_ids[] = {
- { .compatible = "renesas,r9a08g045-tsu" },
+ { .compatible = "renesas,r9a08g045-tsu", .data = &rzg3s_info },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, rzg3s_thermal_dt_ids);
--
2.43.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 4/8] thermal/drivers/renesas/rzg3s: Add RZ/G3L TSU support
2026-09-22 4:26 [PATCH v3 0/8] Add Renesas RZ/G3L TSU support Biju Das
2026-09-22 4:26 ` [PATCH v3 2/8] dt-bindings: thermal: r9a08g045-tsu: Document RZ/G3L TSU Biju Das
2026-09-22 4:26 ` [PATCH v3 3/8] thermal/drivers/renesas/rzg3s: Convert calibration defaults to per-SoC match data Biju Das
@ 2026-09-22 4:26 ` Biju Das
2026-09-22 4:26 ` [PATCH v3 5/8] dt-bindings: iio: adc: renesas,rzg2l-adc: Document RZ/G3L ADC for TSU Biju Das
` (3 subsequent siblings)
6 siblings, 0 replies; 18+ messages in thread
From: Biju Das @ 2026-09-22 4:26 UTC (permalink / raw)
To: Claudiu Beznea, Rafael J. Wysocki, Daniel Lezcano,
Jonathan Cameron, Geert Uytterhoeven, Magnus Damm
Cc: Biju Das, Zhang Rui, Lukasz Luba, linux-pm, linux-iio,
linux-renesas-soc, Chris Paterson, Biju Das,
Prabhakar Mahadev Lad
Add the renesas,r9a08g046-tsu compatible string and its default
(software) calibration constants for RZ/G3L, used when FUSE
calibration values are missing.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v2->v3:
* No change.
v1->v2:
* No change.
---
drivers/thermal/renesas/rzg3s_thermal.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/thermal/renesas/rzg3s_thermal.c b/drivers/thermal/renesas/rzg3s_thermal.c
index 146b73a1b751..a8716da7fcd2 100644
--- a/drivers/thermal/renesas/rzg3s_thermal.c
+++ b/drivers/thermal/renesas/rzg3s_thermal.c
@@ -265,8 +265,14 @@ static const struct rzg3s_thermal_info rzg3s_info = {
.calib1 = 751,
};
+static const struct rzg3s_thermal_info rzg3l_info = {
+ .calib0 = 1322,
+ .calib1 = 772,
+};
+
static const struct of_device_id rzg3s_thermal_dt_ids[] = {
{ .compatible = "renesas,r9a08g045-tsu", .data = &rzg3s_info },
+ { .compatible = "renesas,r9a08g046-tsu", .data = &rzg3l_info },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, rzg3s_thermal_dt_ids);
--
2.43.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 5/8] dt-bindings: iio: adc: renesas,rzg2l-adc: Document RZ/G3L ADC for TSU
2026-09-22 4:26 [PATCH v3 0/8] Add Renesas RZ/G3L TSU support Biju Das
` (2 preceding siblings ...)
2026-09-22 4:26 ` [PATCH v3 4/8] thermal/drivers/renesas/rzg3s: Add RZ/G3L TSU support Biju Das
@ 2026-09-22 4:26 ` Biju Das
2026-09-28 6:05 ` Krzysztof Kozlowski
2026-09-28 7:53 ` Krzysztof Kozlowski
2026-09-22 4:26 ` [PATCH v3 6/8] iio: adc: rzg2l_adc: Rename num_channels to max_channels Biju Das
` (2 subsequent siblings)
6 siblings, 2 replies; 18+ messages in thread
From: Biju Das @ 2026-09-22 4:26 UTC (permalink / raw)
To: Lad Prabhakar, Jonathan Cameron, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Rafael J. Wysocki, Daniel Lezcano,
Geert Uytterhoeven, Magnus Damm
Cc: Biju Das, David Lechner, Nuno Sá, Andy Shevchenko,
Claudiu Beznea, linux-pm, linux-iio, linux-renesas-soc,
devicetree, Chris Paterson, Biju Das
Add the renesas,r9a08g046-adc1 compatible string for the ADC1
instance on RZ/G3L, which is dedicated to the on-chip TSU (thermal
sensor unit). Unlike the other ADC instances, this one only exposes
a single channel (channel@8), so restrict the allowed channel nodes
accordingly.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v2->v3:
* Dropped required property '#io-channel-cells'.
v1->v2:
* No Change.
---
.../bindings/iio/adc/renesas,rzg2l-adc.yaml | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml b/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
index 40341d541726..f08f5439d127 100644
--- a/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
@@ -25,7 +25,9 @@ properties:
- renesas,r9a07g054-adc # RZ/V2L
- const: renesas,rzg2l-adc
- items:
- - const: renesas,r9a08g045-adc # RZ/G3S
+ - enum:
+ - renesas,r9a08g045-adc # RZ/G3S
+ - renesas,r9a08g046-adc1 # RZ/G3L ADC for TSU
reg:
maxItems: 1
@@ -121,6 +123,19 @@ allOf:
reg:
maximum: 7
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: renesas,r9a08g046-adc1
+ then:
+ patternProperties:
+ "^channel@[0-7]$": false
+ "^channel@[8]$":
+ properties:
+ reg:
+ const: 8
+
additionalProperties: false
examples:
--
2.43.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 6/8] iio: adc: rzg2l_adc: Rename num_channels to max_channels
2026-09-22 4:26 [PATCH v3 0/8] Add Renesas RZ/G3L TSU support Biju Das
` (3 preceding siblings ...)
2026-09-22 4:26 ` [PATCH v3 5/8] dt-bindings: iio: adc: renesas,rzg2l-adc: Document RZ/G3L ADC for TSU Biju Das
@ 2026-09-22 4:26 ` Biju Das
2026-09-22 14:33 ` Geert Uytterhoeven
2026-09-22 4:26 ` [PATCH v3 7/8] iio: adc: rzg2l_adc: Add RZ/G3L ADC support for TSU Biju Das
2026-09-22 4:27 ` [PATCH v3 8/8] arm64: dts: renesas: r9a08g046: Enable TSU Biju Das
6 siblings, 1 reply; 18+ messages in thread
From: Biju Das @ 2026-09-22 4:26 UTC (permalink / raw)
To: Lad Prabhakar, Jonathan Cameron, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Rafael J. Wysocki, Daniel Lezcano,
Geert Uytterhoeven, Magnus Damm
Cc: Biju Das, David Lechner, Nuno Sá, Andy Shevchenko,
Claudiu Beznea, linux-iio, linux-renesas-soc, linux-pm,
devicetree, Chris Paterson, Biju Das
Rename the num_channels member of struct rzg2l_adc_hw_params to
max_channels, as it represents the maximum channel supported by
the ADC hardware rather than a count of channels currently in use.
No functional change intended.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v3:
* New patch.
---
drivers/iio/adc/rzg2l_adc.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/drivers/iio/adc/rzg2l_adc.c b/drivers/iio/adc/rzg2l_adc.c
index 408fbf8c29cc..aaf7e2ceff8a 100644
--- a/drivers/iio/adc/rzg2l_adc.c
+++ b/drivers/iio/adc/rzg2l_adc.c
@@ -62,7 +62,7 @@
* @adsmp_mask: ADC sampling period mask (see ADM3 register)
* @adint_inten_mask: conversion end interrupt mask (see ADINT register)
* @default_adcmp: default ADC cmp (see ADM3 register)
- * @num_channels: number of supported channels
+ * @max_channels: the maximum channel for the ADC
* @adivc: specifies if ADVIC register is available
*/
struct rzg2l_adc_hw_params {
@@ -70,7 +70,7 @@ struct rzg2l_adc_hw_params {
u16 adsmp_mask;
u16 adint_inten_mask;
u8 default_adcmp;
- u8 num_channels;
+ u8 max_channels;
bool adivc;
};
@@ -196,7 +196,7 @@ static int rzg2l_adc_conversion_setup(struct rzg2l_adc *adc, u8 ch)
/* Select analog input channel subjected to conversion. */
reg = rzg2l_adc_readl(adc, RZG2L_ADM(2));
- reg &= ~GENMASK(hw_params->num_channels - 1, 0);
+ reg &= ~GENMASK(hw_params->max_channels - 1, 0);
reg |= BIT(ch);
rzg2l_adc_writel(adc, RZG2L_ADM(2), reg);
@@ -307,11 +307,11 @@ static irqreturn_t rzg2l_adc_isr(int irq, void *dev_id)
return IRQ_HANDLED;
}
- intst = reg & GENMASK(hw_params->num_channels - 1, 0);
+ intst = reg & GENMASK(hw_params->max_channels - 1, 0);
if (!intst)
return IRQ_NONE;
- for_each_set_bit(ch, &intst, hw_params->num_channels)
+ for_each_set_bit(ch, &intst, hw_params->max_channels)
adc->last_val[ch] = rzg2l_adc_readl(adc, RZG2L_ADCR(ch)) & RZG2L_ADCR_AD_MASK;
/* clear the channel interrupt */
@@ -341,12 +341,12 @@ static int rzg2l_adc_parse_properties(struct platform_device *pdev, struct rzg2l
num_channels = devm_iio_adc_device_alloc_chaninfo_se(&pdev->dev,
&rzg2l_adc_chan_template,
- hw_params->num_channels - 1,
+ hw_params->max_channels - 1,
&chan_array);
if (num_channels < 0)
return num_channels;
- if (num_channels > hw_params->num_channels)
+ if (num_channels > hw_params->max_channels)
return dev_err_probe(&pdev->dev, -EINVAL,
"num of channel children out of range\n");
@@ -429,7 +429,7 @@ static int rzg2l_adc_probe(struct platform_device *pdev)
adc = iio_priv(indio_dev);
adc->hw_params = device_get_match_data(dev);
- if (!adc->hw_params || adc->hw_params->num_channels > RZG2L_ADC_MAX_CHANNELS)
+ if (!adc->hw_params || adc->hw_params->max_channels > RZG2L_ADC_MAX_CHANNELS)
return -EINVAL;
ret = rzg2l_adc_parse_properties(pdev, adc);
@@ -484,7 +484,7 @@ static int rzg2l_adc_probe(struct platform_device *pdev)
}
static const struct rzg2l_adc_hw_params rzg2l_hw_params = {
- .num_channels = 8,
+ .max_channels = 8,
.default_adcmp = 0xe,
.default_adsmp = { 0x578 },
.adsmp_mask = GENMASK(15, 0),
@@ -493,7 +493,7 @@ static const struct rzg2l_adc_hw_params rzg2l_hw_params = {
};
static const struct rzg2l_adc_hw_params rzg3s_hw_params = {
- .num_channels = 9,
+ .max_channels = 9,
.default_adcmp = 0x1d,
.default_adsmp = { 0x7f, 0xff },
.adsmp_mask = GENMASK(7, 0),
--
2.43.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 7/8] iio: adc: rzg2l_adc: Add RZ/G3L ADC support for TSU
2026-09-22 4:26 [PATCH v3 0/8] Add Renesas RZ/G3L TSU support Biju Das
` (4 preceding siblings ...)
2026-09-22 4:26 ` [PATCH v3 6/8] iio: adc: rzg2l_adc: Rename num_channels to max_channels Biju Das
@ 2026-09-22 4:26 ` Biju Das
2026-09-22 4:27 ` [PATCH v3 8/8] arm64: dts: renesas: r9a08g046: Enable TSU Biju Das
6 siblings, 0 replies; 18+ messages in thread
From: Biju Das @ 2026-09-22 4:26 UTC (permalink / raw)
To: Lad Prabhakar, Jonathan Cameron, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Rafael J. Wysocki, Daniel Lezcano,
Geert Uytterhoeven, Magnus Damm
Cc: Biju Das, David Lechner, Nuno Sá, Andy Shevchenko,
Claudiu Beznea, linux-iio, linux-renesas-soc, linux-pm,
devicetree, Chris Paterson, Biju Das
Add renesas,r9a08g046-adc1 compatible string and its hardware
parameters for the ADC1 IP on RZ/G3L, which is dedicated to
the on-chip TSU (thermal sensor unit).
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v2->v3:
* No Change.
v1->v2:
* No Change.
---
drivers/iio/adc/rzg2l_adc.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/iio/adc/rzg2l_adc.c b/drivers/iio/adc/rzg2l_adc.c
index aaf7e2ceff8a..c892e355b739 100644
--- a/drivers/iio/adc/rzg2l_adc.c
+++ b/drivers/iio/adc/rzg2l_adc.c
@@ -500,8 +500,17 @@ static const struct rzg2l_adc_hw_params rzg3s_hw_params = {
.adint_inten_mask = GENMASK(11, 0),
};
+static const struct rzg2l_adc_hw_params rzg3l_adc1_hw_params = {
+ .max_channels = 9,
+ .default_adcmp = 0x1d,
+ .default_adsmp = { 0x7f, 0xff },
+ .adsmp_mask = GENMASK(7, 0),
+ .adint_inten_mask = BIT(8),
+};
+
static const struct of_device_id rzg2l_adc_match[] = {
{ .compatible = "renesas,r9a08g045-adc", .data = &rzg3s_hw_params },
+ { .compatible = "renesas,r9a08g046-adc1", .data = &rzg3l_adc1_hw_params },
{ .compatible = "renesas,rzg2l-adc", .data = &rzg2l_hw_params },
{ }
};
--
2.43.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v3 8/8] arm64: dts: renesas: r9a08g046: Enable TSU
2026-09-22 4:26 [PATCH v3 0/8] Add Renesas RZ/G3L TSU support Biju Das
` (5 preceding siblings ...)
2026-09-22 4:26 ` [PATCH v3 7/8] iio: adc: rzg2l_adc: Add RZ/G3L ADC support for TSU Biju Das
@ 2026-09-22 4:27 ` Biju Das
6 siblings, 0 replies; 18+ messages in thread
From: Biju Das @ 2026-09-22 4:27 UTC (permalink / raw)
To: Geert Uytterhoeven, Magnus Damm, Rafael J. Wysocki,
Daniel Lezcano, Jonathan Cameron, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Biju Das, linux-renesas-soc, devicetree, linux-iio, linux-pm,
Chris Paterson, Biju Das, Prabhakar Mahadev Lad
Add #cooling-cells to the CPU nodes, and describe the ADC1 (used
exclusively by the TSU) and TSU nodes along with a CPU thermal zone
using passive and critical trip points, with CPU frequency cooling
maps for thermal mitigation.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v2->v3:
* No Change.
v1->v2:
* No Change.
---
arch/arm64/boot/dts/renesas/r9a08g046.dtsi | 66 ++++++++++++++++++++++
1 file changed, 66 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/r9a08g046.dtsi b/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
index 53e68b1c3258..29ce1ab2a57f 100644
--- a/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
@@ -179,6 +179,7 @@ cpu0: cpu@0 {
next-level-cache = <&L3_CA55>;
enable-method = "psci";
clocks = <&cpg CPG_CORE R9A08G046_CLK_IC0>;
+ #cooling-cells = <2>;
operating-points-v2 = <&cluster0_opp>;
};
@@ -189,6 +190,7 @@ cpu1: cpu@100 {
next-level-cache = <&L3_CA55>;
enable-method = "psci";
clocks = <&cpg CPG_CORE R9A08G046_CLK_IC1>;
+ #cooling-cells = <2>;
operating-points-v2 = <&cluster0_opp>;
};
@@ -199,6 +201,7 @@ cpu2: cpu@200 {
next-level-cache = <&L3_CA55>;
enable-method = "psci";
clocks = <&cpg CPG_CORE R9A08G046_CLK_IC2>;
+ #cooling-cells = <2>;
operating-points-v2 = <&cluster0_opp>;
};
@@ -209,6 +212,7 @@ cpu3: cpu@300 {
next-level-cache = <&L3_CA55>;
enable-method = "psci";
clocks = <&cpg CPG_CORE R9A08G046_CLK_IC3>;
+ #cooling-cells = <2>;
operating-points-v2 = <&cluster0_opp>;
};
@@ -374,6 +378,37 @@ scif5: serial@1004e000 {
status = "disabled";
};
+ adc1: adc@108c0000 {
+ compatible = "renesas,r9a08g046-adc1";
+ reg = <0 0x108c0000 0 0x10000>;
+ interrupts = <GIC_SPI 378 IRQ_TYPE_EDGE_RISING>;
+ clocks = <&cpg CPG_MOD R9A08G046_ADC1_ADCLK>,
+ <&cpg CPG_MOD R9A08G046_ADC1_PCLK>;
+ clock-names = "adclk", "pclk";
+ resets = <&cpg R9A08G046_ADC1_PRESETN>,
+ <&cpg R9A08G046_ADC1_ADRST_N>;
+ reset-names = "presetn", "adrst-n";
+ power-domains = <&cpg>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ #io-channel-cells = <1>;
+
+ channel@8 {
+ reg = <8>;
+ };
+ };
+
+ tsu: thermal@108d0000 {
+ compatible = "renesas,r9a08g046-tsu";
+ reg = <0 0x108d0000 0 0x10000>;
+ clocks = <&cpg CPG_MOD R9A08G046_TSU_PCLK>;
+ resets = <&cpg R9A08G046_TSU_PRESETN>;
+ power-domains = <&cpg>;
+ #thermal-sensor-cells = <0>;
+ io-channels = <&adc1 0>;
+ io-channel-names = "tsu";
+ };
+
i2c0: i2c@100ae000 {
compatible = "renesas,riic-r9a08g046", "renesas,riic-r9a09g057";
reg = <0 0x100ae000 0 0x400>;
@@ -1570,6 +1605,37 @@ stmmac_axi_setup: stmmac-axi-config {
snps,blen = <16 8 4 0 0 0 0>;
};
+ thermal-zones {
+ cpu-thermal {
+ polling-delay = <1000>;
+ polling-delay-passive = <250>;
+ thermal-sensors = <&tsu>;
+
+ cooling-maps {
+ map0 {
+ trip = <&target>;
+ cooling-device = <&cpu0 0 3>, <&cpu1 0 3>,
+ <&cpu2 0 3>, <&cpu3 0 3>;
+ contribution = <1024>;
+ };
+ };
+
+ trips {
+ sensor_crit: sensor-crit {
+ temperature = <120000>;
+ hysteresis = <1000>;
+ type = "critical";
+ };
+
+ target: trip-point {
+ temperature = <95000>;
+ hysteresis = <1000>;
+ type = "passive";
+ };
+ };
+ };
+ };
+
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
--
2.43.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH v3 6/8] iio: adc: rzg2l_adc: Rename num_channels to max_channels
2026-09-22 4:26 ` [PATCH v3 6/8] iio: adc: rzg2l_adc: Rename num_channels to max_channels Biju Das
@ 2026-09-22 14:33 ` Geert Uytterhoeven
2026-09-23 8:21 ` Biju Das
2026-09-27 18:06 ` Jonathan Cameron
0 siblings, 2 replies; 18+ messages in thread
From: Geert Uytterhoeven @ 2026-09-22 14:33 UTC (permalink / raw)
To: Biju Das
Cc: Lad Prabhakar, Jonathan Cameron, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Rafael J. Wysocki, Daniel Lezcano,
Geert Uytterhoeven, Magnus Damm, David Lechner, Nuno Sá,
Andy Shevchenko, Claudiu Beznea, linux-iio, linux-renesas-soc,
linux-pm, devicetree, Chris Paterson, Biju Das
Hi Biju,
Thanks for your patch!
On Tue, 22 Sept 2026 at 06:28, Biju Das <biju.das.jz@bp.renesas.com> wrote:
> Rename the num_channels member of struct rzg2l_adc_hw_params to
> max_channels, as it represents the maximum channel supported by
... maximum number of channels...
"the maximum channel" (aka singular "max_channel") would be equal to
the maximum number of channels minus one.
> the ADC hardware rather than a count of channels currently in use.
>
> No functional change intended.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> --- a/drivers/iio/adc/rzg2l_adc.c
> +++ b/drivers/iio/adc/rzg2l_adc.c
> @@ -62,7 +62,7 @@
> * @adsmp_mask: ADC sampling period mask (see ADM3 register)
> * @adint_inten_mask: conversion end interrupt mask (see ADINT register)
> * @default_adcmp: default ADC cmp (see ADM3 register)
> - * @num_channels: number of supported channels
> + * @max_channels: the maximum channel for the ADC
"maximum number of channels", to avoid confusion.
> * @adivc: specifies if ADVIC register is available
> */
> struct rzg2l_adc_hw_params {
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 18+ messages in thread
* RE: [PATCH v3 6/8] iio: adc: rzg2l_adc: Rename num_channels to max_channels
2026-09-22 14:33 ` Geert Uytterhoeven
@ 2026-09-23 8:21 ` Biju Das
2026-09-25 2:55 ` Jonathan Cameron
2026-09-27 18:06 ` Jonathan Cameron
1 sibling, 1 reply; 18+ messages in thread
From: Biju Das @ 2026-09-23 8:21 UTC (permalink / raw)
To: geert
Cc: Prabhakar Mahadev Lad, Jonathan Cameron, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Rafael J. Wysocki,
Daniel Lezcano, Geert Uytterhoeven, magnus.damm, David Lechner,
Nuno Sá, Andy Shevchenko, Claudiu Beznea,
linux-iio@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
linux-pm@vger.kernel.org, devicetree@vger.kernel.org,
Chris Paterson
Hi Geert,
Thanks for the feedback.
> -----Original Message-----
> From: Geert Uytterhoeven <geert@linux-m68k.org>
> Sent: 22 September 2026 15:34
> Subject: Re: [PATCH v3 6/8] iio: adc: rzg2l_adc: Rename num_channels to max_channels
>
> Hi Biju,
>
> Thanks for your patch!
>
> On Tue, 22 Sept 2026 at 06:28, Biju Das <biju.das.jz@bp.renesas.com> wrote:
> > Rename the num_channels member of struct rzg2l_adc_hw_params to
> > max_channels, as it represents the maximum channel supported by
>
> ... maximum number of channels...
Ok.
>
> "the maximum channel" (aka singular "max_channel") would be equal to the maximum number of channels minus
> one.
>
> > the ADC hardware rather than a count of channels currently in use.
> >
> > No functional change intended.
> >
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
>
> > --- a/drivers/iio/adc/rzg2l_adc.c
> > +++ b/drivers/iio/adc/rzg2l_adc.c
> > @@ -62,7 +62,7 @@
> > * @adsmp_mask: ADC sampling period mask (see ADM3 register)
> > * @adint_inten_mask: conversion end interrupt mask (see ADINT register)
> > * @default_adcmp: default ADC cmp (see ADM3 register)
> > - * @num_channels: number of supported channels
> > + * @max_channels: the maximum channel for the ADC
>
> "maximum number of channels", to avoid confusion.
Agreed. Will fix this in next version.
Cheers,
Biju
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v3 6/8] iio: adc: rzg2l_adc: Rename num_channels to max_channels
2026-09-23 8:21 ` Biju Das
@ 2026-09-25 2:55 ` Jonathan Cameron
2026-09-25 3:55 ` Biju Das
0 siblings, 1 reply; 18+ messages in thread
From: Jonathan Cameron @ 2026-09-25 2:55 UTC (permalink / raw)
To: Biju Das
Cc: geert, Prabhakar Mahadev Lad, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Rafael J. Wysocki, Daniel Lezcano,
Geert Uytterhoeven, magnus.damm, David Lechner, Nuno Sá,
Andy Shevchenko, Claudiu Beznea, linux-iio@vger.kernel.org,
linux-renesas-soc@vger.kernel.org, linux-pm@vger.kernel.org,
devicetree@vger.kernel.org, Chris Paterson
On Wed, 23 Sep 2026 08:21:29 +0000
Biju Das <biju.das.jz@bp.renesas.com> wrote:
> Hi Geert,
>
> Thanks for the feedback.
FWIW other than fixing this up, the ADC parts of this series
look good to me. I'm assuming they can go through IIO whilst
the rest goes through whatever tree makes sense?
Jonathan
^ permalink raw reply [flat|nested] 18+ messages in thread
* RE: [PATCH v3 6/8] iio: adc: rzg2l_adc: Rename num_channels to max_channels
2026-09-25 2:55 ` Jonathan Cameron
@ 2026-09-25 3:55 ` Biju Das
0 siblings, 0 replies; 18+ messages in thread
From: Biju Das @ 2026-09-25 3:55 UTC (permalink / raw)
To: Jonathan Cameron
Cc: geert, Prabhakar Mahadev Lad, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Rafael J. Wysocki, Daniel Lezcano,
Geert Uytterhoeven, magnus.damm, David Lechner, Nuno Sá,
Andy Shevchenko, Claudiu Beznea, linux-iio@vger.kernel.org,
linux-renesas-soc@vger.kernel.org, linux-pm@vger.kernel.org,
devicetree@vger.kernel.org, Chris Paterson
Hi Jonathan Cameron,
> -----Original Message-----
> From: Jonathan Cameron <jic23@kernel.org>
> Sent: 25 September 2026 03:55
> Subject: Re: [PATCH v3 6/8] iio: adc: rzg2l_adc: Rename num_channels to max_channels
>
> On Wed, 23 Sep 2026 08:21:29 +0000
> Biju Das <biju.das.jz@bp.renesas.com> wrote:
>
> > Hi Geert,
> >
> > Thanks for the feedback.
> FWIW other than fixing this up, the ADC parts of this series look good to me. I'm assuming they can go
> through IIO whilst the rest goes through whatever tree makes sense?
I think so. Binding + driver patches can go via IIO.
I will send v4 with fixing driver + Rob' Rb tag for binding[1].
[1] https://lore.kernel.org/all/TY3PR01MB11346568D44110BCA1CDD146D86802@TY3PR01MB11346.jpnprd01.prod.outlook.com/
Cheers,
Biju
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v3 6/8] iio: adc: rzg2l_adc: Rename num_channels to max_channels
2026-09-22 14:33 ` Geert Uytterhoeven
2026-09-23 8:21 ` Biju Das
@ 2026-09-27 18:06 ` Jonathan Cameron
1 sibling, 0 replies; 18+ messages in thread
From: Jonathan Cameron @ 2026-09-27 18:06 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Biju Das, Lad Prabhakar, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Rafael J. Wysocki, Daniel Lezcano,
Geert Uytterhoeven, Magnus Damm, David Lechner, Nuno Sá,
Andy Shevchenko, Claudiu Beznea, linux-iio, linux-renesas-soc,
linux-pm, devicetree, Chris Paterson, Biju Das
On Tue, 22 Sep 2026 16:33:51 +0200
Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> Hi Biju,
>
> Thanks for your patch!
>
> On Tue, 22 Sept 2026 at 06:28, Biju Das <biju.das.jz@bp.renesas.com> wrote:
> > Rename the num_channels member of struct rzg2l_adc_hw_params to
> > max_channels, as it represents the maximum channel supported by
>
> ... maximum number of channels...
>
> "the maximum channel" (aka singular "max_channel") would be equal to
> the maximum number of channels minus one.
Ah. I just looked at v4 and realised I'd not been paying attention.
The number isn't the maximum number of channels because it's a sparse
set for the new part being added. It is the oddity of maximum channel
number and as such. Ah well. I think at this stage this distinction
doesn't really matter.
Jonathan
>
> > the ADC hardware rather than a count of channels currently in use.
> >
> > No functional change intended.
> >
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
>
> > --- a/drivers/iio/adc/rzg2l_adc.c
> > +++ b/drivers/iio/adc/rzg2l_adc.c
> > @@ -62,7 +62,7 @@
> > * @adsmp_mask: ADC sampling period mask (see ADM3 register)
> > * @adint_inten_mask: conversion end interrupt mask (see ADINT register)
> > * @default_adcmp: default ADC cmp (see ADM3 register)
> > - * @num_channels: number of supported channels
> > + * @max_channels: the maximum channel for the ADC
>
> "maximum number of channels", to avoid confusion.
>
> > * @adivc: specifies if ADVIC register is available
> > */
> > struct rzg2l_adc_hw_params {
>
> Gr{oetje,eeting}s,
>
> Geert
>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v3 5/8] dt-bindings: iio: adc: renesas,rzg2l-adc: Document RZ/G3L ADC for TSU
2026-09-22 4:26 ` [PATCH v3 5/8] dt-bindings: iio: adc: renesas,rzg2l-adc: Document RZ/G3L ADC for TSU Biju Das
@ 2026-09-28 6:05 ` Krzysztof Kozlowski
2026-09-28 6:25 ` Biju Das
2026-09-28 7:53 ` Krzysztof Kozlowski
1 sibling, 1 reply; 18+ messages in thread
From: Krzysztof Kozlowski @ 2026-09-28 6:05 UTC (permalink / raw)
To: Biju Das
Cc: Lad Prabhakar, Jonathan Cameron, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Rafael J. Wysocki, Daniel Lezcano,
Geert Uytterhoeven, Magnus Damm, David Lechner, Nuno Sá,
Andy Shevchenko, Claudiu Beznea, linux-pm, linux-iio,
linux-renesas-soc, devicetree, Chris Paterson, Biju Das
On Tue, Sep 22, 2026 at 05:26:57AM +0100, Biju Das wrote:
> Add the renesas,r9a08g046-adc1 compatible string for the ADC1
> instance on RZ/G3L, which is dedicated to the on-chip TSU (thermal
Is there ADC2 instance?
> sensor unit). Unlike the other ADC instances, this one only exposes
> a single channel (channel@8), so restrict the allowed channel nodes
> accordingly.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> v2->v3:
> * Dropped required property '#io-channel-cells'.
> v1->v2:
> * No Change.
> ---
> .../bindings/iio/adc/renesas,rzg2l-adc.yaml | 17 ++++++++++++++++-
> 1 file changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml b/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
> index 40341d541726..f08f5439d127 100644
> --- a/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
> +++ b/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
> @@ -25,7 +25,9 @@ properties:
> - renesas,r9a07g054-adc # RZ/V2L
> - const: renesas,rzg2l-adc
> - items:
> - - const: renesas,r9a08g045-adc # RZ/G3S
> + - enum:
> + - renesas,r9a08g045-adc # RZ/G3S
> + - renesas,r9a08g046-adc1 # RZ/G3L ADC for TSU
>
> reg:
> maxItems: 1
> @@ -121,6 +123,19 @@ allOf:
> reg:
> maximum: 7
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: renesas,r9a08g046-adc1
> + then:
> + patternProperties:
> + "^channel@[0-7]$": false
> + "^channel@[8]$":
Why number 8? Does datasheet actually calls it that way?
> + properties:
> + reg:
> + const: 8
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 18+ messages in thread
* RE: [PATCH v3 5/8] dt-bindings: iio: adc: renesas,rzg2l-adc: Document RZ/G3L ADC for TSU
2026-09-28 6:05 ` Krzysztof Kozlowski
@ 2026-09-28 6:25 ` Biju Das
2026-09-28 6:27 ` Krzysztof Kozlowski
0 siblings, 1 reply; 18+ messages in thread
From: Biju Das @ 2026-09-28 6:25 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Prabhakar Mahadev Lad, Jonathan Cameron, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Rafael J. Wysocki,
Daniel Lezcano, Geert Uytterhoeven, magnus.damm, David Lechner,
Nuno Sá, Andy Shevchenko, Claudiu Beznea,
linux-pm@vger.kernel.org, linux-iio@vger.kernel.org,
linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org,
Chris Paterson
Hi Krzysztof Kozlowski,
Thanks for the feedback.
> -----Original Message-----
> From: Krzysztof Kozlowski <krzk@kernel.org>
> Sent: 28 September 2026 07:05
> Subject: Re: [PATCH v3 5/8] dt-bindings: iio: adc: renesas,rzg2l-adc: Document RZ/G3L ADC for TSU
>
> On Tue, Sep 22, 2026 at 05:26:57AM +0100, Biju Das wrote:
> > Add the renesas,r9a08g046-adc1 compatible string for the ADC1 instance
> > on RZ/G3L, which is dedicated to the on-chip TSU (thermal
>
> Is there ADC2 instance?
There is no ADC2 IP on RZ/G3L SoC.
>
> > sensor unit). Unlike the other ADC instances, this one only exposes a
> > single channel (channel@8), so restrict the allowed channel nodes
> > accordingly.
> >
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > ---
> > v2->v3:
> > * Dropped required property '#io-channel-cells'.
> > v1->v2:
> > * No Change.
> > ---
> > .../bindings/iio/adc/renesas,rzg2l-adc.yaml | 17 ++++++++++++++++-
> > 1 file changed, 16 insertions(+), 1 deletion(-)
> >
> > diff --git
> > a/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
> > b/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
> > index 40341d541726..f08f5439d127 100644
> > --- a/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
> > +++ b/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
> > @@ -25,7 +25,9 @@ properties:
> > - renesas,r9a07g054-adc # RZ/V2L
> > - const: renesas,rzg2l-adc
> > - items:
> > - - const: renesas,r9a08g045-adc # RZ/G3S
> > + - enum:
> > + - renesas,r9a08g045-adc # RZ/G3S
> > + - renesas,r9a08g046-adc1 # RZ/G3L ADC for TSU
> >
> > reg:
> > maxItems: 1
> > @@ -121,6 +123,19 @@ allOf:
> > reg:
> > maximum: 7
> >
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + const: renesas,r9a08g046-adc1
> > + then:
> > + patternProperties:
> > + "^channel@[0-7]$": false
> > + "^channel@[8]$":
>
> Why number 8? Does datasheet actually calls it that way?
Yes , Hardware manual mentions it.
For ADC1 IP, the source is ADC_CH8(TSU) for the Analog Input Channel.
Cheers,
Biju
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v3 5/8] dt-bindings: iio: adc: renesas,rzg2l-adc: Document RZ/G3L ADC for TSU
2026-09-28 6:25 ` Biju Das
@ 2026-09-28 6:27 ` Krzysztof Kozlowski
2026-09-28 6:32 ` Biju Das
0 siblings, 1 reply; 18+ messages in thread
From: Krzysztof Kozlowski @ 2026-09-28 6:27 UTC (permalink / raw)
To: Biju Das
Cc: Prabhakar Mahadev Lad, Jonathan Cameron, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Rafael J. Wysocki,
Daniel Lezcano, Geert Uytterhoeven, magnus.damm, David Lechner,
Nuno Sá, Andy Shevchenko, Claudiu Beznea,
linux-pm@vger.kernel.org, linux-iio@vger.kernel.org,
linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org,
Chris Paterson
On 28/09/2026 08:25, Biju Das wrote:
> Hi Krzysztof Kozlowski,
>
> Thanks for the feedback.
>
>> -----Original Message-----
>> From: Krzysztof Kozlowski <krzk@kernel.org>
>> Sent: 28 September 2026 07:05
>> Subject: Re: [PATCH v3 5/8] dt-bindings: iio: adc: renesas,rzg2l-adc: Document RZ/G3L ADC for TSU
>>
>> On Tue, Sep 22, 2026 at 05:26:57AM +0100, Biju Das wrote:
>>> Add the renesas,r9a08g046-adc1 compatible string for the ADC1 instance
>>> on RZ/G3L, which is dedicated to the on-chip TSU (thermal
>>
>> Is there ADC2 instance?
>
> There is no ADC2 IP on RZ/G3L SoC.
Then I am a bit confused calling it ADC1 here and in the compatible.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 18+ messages in thread
* RE: [PATCH v3 5/8] dt-bindings: iio: adc: renesas,rzg2l-adc: Document RZ/G3L ADC for TSU
2026-09-28 6:27 ` Krzysztof Kozlowski
@ 2026-09-28 6:32 ` Biju Das
0 siblings, 0 replies; 18+ messages in thread
From: Biju Das @ 2026-09-28 6:32 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Prabhakar Mahadev Lad, Jonathan Cameron, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Rafael J. Wysocki,
Daniel Lezcano, Geert Uytterhoeven, magnus.damm, David Lechner,
Nuno Sá, Andy Shevchenko, Claudiu Beznea,
linux-pm@vger.kernel.org, linux-iio@vger.kernel.org,
linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org,
Chris Paterson
Hi Krzysztof Kozlowski,
> -----Original Message-----
> From: Krzysztof Kozlowski <krzk@kernel.org>
> Sent: 28 September 2026 07:27
> Subject: Re: [PATCH v3 5/8] dt-bindings: iio: adc: renesas,rzg2l-adc: Document RZ/G3L ADC for TSU
>
> On 28/09/2026 08:25, Biju Das wrote:
> > Hi Krzysztof Kozlowski,
> >
> > Thanks for the feedback.
> >
> >> -----Original Message-----
> >> From: Krzysztof Kozlowski <krzk@kernel.org>
> >> Sent: 28 September 2026 07:05
> >> Subject: Re: [PATCH v3 5/8] dt-bindings: iio: adc: renesas,rzg2l-adc:
> >> Document RZ/G3L ADC for TSU
> >>
> >> On Tue, Sep 22, 2026 at 05:26:57AM +0100, Biju Das wrote:
> >>> Add the renesas,r9a08g046-adc1 compatible string for the ADC1
> >>> instance on RZ/G3L, which is dedicated to the on-chip TSU (thermal
> >>
> >> Is there ADC2 instance?
> >
> > There is no ADC2 IP on RZ/G3L SoC.
>
> Then I am a bit confused calling it ADC1 here and in the compatible.
Hardware manual mentions this IP as "A/D Converter for TSU (ADC1)"
that is the reason compatible has adc1.
Cheers,
Biju
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v3 5/8] dt-bindings: iio: adc: renesas,rzg2l-adc: Document RZ/G3L ADC for TSU
2026-09-22 4:26 ` [PATCH v3 5/8] dt-bindings: iio: adc: renesas,rzg2l-adc: Document RZ/G3L ADC for TSU Biju Das
2026-09-28 6:05 ` Krzysztof Kozlowski
@ 2026-09-28 7:53 ` Krzysztof Kozlowski
1 sibling, 0 replies; 18+ messages in thread
From: Krzysztof Kozlowski @ 2026-09-28 7:53 UTC (permalink / raw)
To: Biju Das, Lad Prabhakar, Jonathan Cameron, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Rafael J. Wysocki,
Daniel Lezcano, Geert Uytterhoeven, Magnus Damm
Cc: David Lechner, Nuno Sá, Andy Shevchenko, Claudiu Beznea,
linux-pm, linux-iio, linux-renesas-soc, devicetree,
Chris Paterson, Biju Das
On 22/09/2026 06:26, Biju Das wrote:
> Add the renesas,r9a08g046-adc1 compatible string for the ADC1
> instance on RZ/G3L, which is dedicated to the on-chip TSU (thermal
> sensor unit). Unlike the other ADC instances, this one only exposes
> a single channel (channel@8), so restrict the allowed channel nodes
> accordingly.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2026-09-28 7:53 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-22 4:26 [PATCH v3 0/8] Add Renesas RZ/G3L TSU support Biju Das
2026-09-22 4:26 ` [PATCH v3 2/8] dt-bindings: thermal: r9a08g045-tsu: Document RZ/G3L TSU Biju Das
2026-09-22 4:26 ` [PATCH v3 3/8] thermal/drivers/renesas/rzg3s: Convert calibration defaults to per-SoC match data Biju Das
2026-09-22 4:26 ` [PATCH v3 4/8] thermal/drivers/renesas/rzg3s: Add RZ/G3L TSU support Biju Das
2026-09-22 4:26 ` [PATCH v3 5/8] dt-bindings: iio: adc: renesas,rzg2l-adc: Document RZ/G3L ADC for TSU Biju Das
2026-09-28 6:05 ` Krzysztof Kozlowski
2026-09-28 6:25 ` Biju Das
2026-09-28 6:27 ` Krzysztof Kozlowski
2026-09-28 6:32 ` Biju Das
2026-09-28 7:53 ` Krzysztof Kozlowski
2026-09-22 4:26 ` [PATCH v3 6/8] iio: adc: rzg2l_adc: Rename num_channels to max_channels Biju Das
2026-09-22 14:33 ` Geert Uytterhoeven
2026-09-23 8:21 ` Biju Das
2026-09-25 2:55 ` Jonathan Cameron
2026-09-25 3:55 ` Biju Das
2026-09-27 18:06 ` Jonathan Cameron
2026-09-22 4:26 ` [PATCH v3 7/8] iio: adc: rzg2l_adc: Add RZ/G3L ADC support for TSU Biju Das
2026-09-22 4:27 ` [PATCH v3 8/8] arm64: dts: renesas: r9a08g046: Enable TSU Biju Das
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox