* [PATCH v4 1/5] dt-bindings: nvmem: Add compatible for IPQ5018
[not found] <20250221065219.17036-1-george.moussalem@outlook.com>
@ 2025-02-21 6:52 ` George Moussalem
2025-02-21 8:29 ` Krzysztof Kozlowski
2025-02-21 10:06 ` George Moussalem
2025-02-21 6:52 ` [PATCH v4 2/5] dt-bindings: thermal: qcom-tsens: Add ipq5018 compatible George Moussalem
` (3 subsequent siblings)
4 siblings, 2 replies; 15+ messages in thread
From: George Moussalem @ 2025-02-21 6:52 UTC (permalink / raw)
To: linux-arm-msm, linux-pm, devicetree, amitk, thara.gopinath,
dmitry.baryshkov, robh, krzk+dt, quic_srichara
Cc: Krzysztof Kozlowski, George Moussalem
From: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Document the QFPROM block found on IPQ5018
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
[v4] Documented ipq5018 in qcom,qfprom bindings
Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml b/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml
index 39c209249c9c..de262f3153ed 100644
--- a/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml
+++ b/Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml
@@ -19,6 +19,7 @@ properties:
- enum:
- qcom,apq8064-qfprom
- qcom,apq8084-qfprom
+ - qcom,ipq5018-qfprom
- qcom,ipq5332-qfprom
- qcom,ipq5424-qfprom
- qcom,ipq6018-qfprom
--
2.39.5
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 2/5] dt-bindings: thermal: qcom-tsens: Add ipq5018 compatible
[not found] <20250221065219.17036-1-george.moussalem@outlook.com>
2025-02-21 6:52 ` [PATCH v4 1/5] dt-bindings: nvmem: Add compatible for IPQ5018 George Moussalem
@ 2025-02-21 6:52 ` George Moussalem
2025-02-21 6:52 ` [PATCH v4 3/5] thermal: drivers: qcom: Add new feat for soc without rpm George Moussalem
` (2 subsequent siblings)
4 siblings, 0 replies; 15+ messages in thread
From: George Moussalem @ 2025-02-21 6:52 UTC (permalink / raw)
To: linux-arm-msm, linux-pm, devicetree, amitk, thara.gopinath,
dmitry.baryshkov, robh, krzk+dt, quic_srichara
Cc: George Moussalem
From: Sricharan Ramabadhran <quic_srichara@quicinc.com>
IPQ5018 has tsens v1.0 block with 4 sensors and 1 interrupt.
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
[v4] Constrained ipq5018-tsens to one interrupt with description
Added Rob's Acked-by tag
Documentation/devicetree/bindings/thermal/qcom-tsens.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml b/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
index b9829bb22cc0..8bc468e44f85 100644
--- a/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
+++ b/Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
@@ -39,6 +39,7 @@ properties:
- description: v1 of TSENS
items:
- enum:
+ - qcom,ipq5018-tsens
- qcom,msm8937-tsens
- qcom,msm8956-tsens
- qcom,msm8976-tsens
@@ -237,6 +238,7 @@ allOf:
compatible:
contains:
enum:
+ - qcom,ipq5018-tsens
- qcom,ipq8064-tsens
- qcom,msm8960-tsens
- qcom,tsens-v0_1
--
2.39.5
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 3/5] thermal: drivers: qcom: Add new feat for soc without rpm
[not found] <20250221065219.17036-1-george.moussalem@outlook.com>
2025-02-21 6:52 ` [PATCH v4 1/5] dt-bindings: nvmem: Add compatible for IPQ5018 George Moussalem
2025-02-21 6:52 ` [PATCH v4 2/5] dt-bindings: thermal: qcom-tsens: Add ipq5018 compatible George Moussalem
@ 2025-02-21 6:52 ` George Moussalem
2025-02-21 6:52 ` [PATCH v4 4/5] thermal: qcom: tsens: Add support for IPQ5018 tsens George Moussalem
2025-02-21 6:52 ` [PATCH v4 5/5] arm64: dts: qcom: ipq5018: Add tsens node George Moussalem
4 siblings, 0 replies; 15+ messages in thread
From: George Moussalem @ 2025-02-21 6:52 UTC (permalink / raw)
To: linux-arm-msm, linux-pm, devicetree, amitk, thara.gopinath,
dmitry.baryshkov, robh, krzk+dt, quic_srichara
Cc: George Moussalem
From: Sricharan Ramabadhran <quic_srichara@quicinc.com>
In IPQ5018, Tsens IP doesn't have RPM. Hence the early init to
enable tsens would not be done. So add a flag for that in feat
and skip enable checks. Without this, tsens probe fails.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
drivers/thermal/qcom/tsens.c | 2 +-
drivers/thermal/qcom/tsens.h | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/thermal/qcom/tsens.c b/drivers/thermal/qcom/tsens.c
index 3aa3736181aa..a25ca17adf1a 100644
--- a/drivers/thermal/qcom/tsens.c
+++ b/drivers/thermal/qcom/tsens.c
@@ -975,7 +975,7 @@ int __init init_common(struct tsens_priv *priv)
ret = regmap_field_read(priv->rf[TSENS_EN], &enabled);
if (ret)
goto err_put_device;
- if (!enabled) {
+ if (!enabled && !(priv->feat->ignore_enable)) {
dev_err(dev, "%s: device not enabled\n", __func__);
ret = -ENODEV;
goto err_put_device;
diff --git a/drivers/thermal/qcom/tsens.h b/drivers/thermal/qcom/tsens.h
index 7b36a0318fa6..90bf11fba563 100644
--- a/drivers/thermal/qcom/tsens.h
+++ b/drivers/thermal/qcom/tsens.h
@@ -505,6 +505,8 @@ enum regfield_ids {
* @srot_split: does the IP neatly splits the register space into SROT and TM,
* with SROT only being available to secure boot firmware?
* @has_watchdog: does this IP support watchdog functionality?
+ * @ignore_enable: does this IP reside in a soc that does not have rpm to
+ * do pre-init.
* @max_sensors: maximum sensors supported by this version of the IP
* @trip_min_temp: minimum trip temperature supported by this version of the IP
* @trip_max_temp: maximum trip temperature supported by this version of the IP
@@ -516,6 +518,7 @@ struct tsens_features {
unsigned int adc:1;
unsigned int srot_split:1;
unsigned int has_watchdog:1;
+ unsigned int ignore_enable:1;
unsigned int max_sensors;
int trip_min_temp;
int trip_max_temp;
--
2.39.5
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 4/5] thermal: qcom: tsens: Add support for IPQ5018 tsens
[not found] <20250221065219.17036-1-george.moussalem@outlook.com>
` (2 preceding siblings ...)
2025-02-21 6:52 ` [PATCH v4 3/5] thermal: drivers: qcom: Add new feat for soc without rpm George Moussalem
@ 2025-02-21 6:52 ` George Moussalem
2025-02-21 13:59 ` Dmitry Baryshkov
2025-02-21 6:52 ` [PATCH v4 5/5] arm64: dts: qcom: ipq5018: Add tsens node George Moussalem
4 siblings, 1 reply; 15+ messages in thread
From: George Moussalem @ 2025-02-21 6:52 UTC (permalink / raw)
To: linux-arm-msm, linux-pm, devicetree, amitk, thara.gopinath,
dmitry.baryshkov, robh, krzk+dt, quic_srichara
Cc: George Moussalem
From: Sricharan Ramabadhran <quic_srichara@quicinc.com>
IPQ5018 has tsens IP V1.0, 4 sensors and 1 interrupt.
The soc does not have a RPM, hence tsens has to be reset and
enabled in the driver init. Adding the driver support for same.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
[v4] Added Dmitry's Reviewed-by tag
Fixed modpost warning: added __init to init_common
drivers/thermal/qcom/tsens-v1.c | 60 +++++++++++++++++++++++++++++++++
drivers/thermal/qcom/tsens.c | 3 ++
drivers/thermal/qcom/tsens.h | 2 +-
3 files changed, 64 insertions(+), 1 deletion(-)
diff --git a/drivers/thermal/qcom/tsens-v1.c b/drivers/thermal/qcom/tsens-v1.c
index 1a7874676f68..1f955acbc2cf 100644
--- a/drivers/thermal/qcom/tsens-v1.c
+++ b/drivers/thermal/qcom/tsens-v1.c
@@ -79,6 +79,18 @@ static struct tsens_features tsens_v1_feat = {
.trip_max_temp = 120000,
};
+static struct tsens_features tsens_v1_ipq5018_feat = {
+ .ver_major = VER_1_X,
+ .crit_int = 0,
+ .combo_int = 0,
+ .adc = 1,
+ .srot_split = 1,
+ .max_sensors = 11,
+ .trip_min_temp = -40000,
+ .trip_max_temp = 120000,
+ .ignore_enable = 1,
+};
+
static const struct reg_field tsens_v1_regfields[MAX_REGFIELDS] = {
/* ----- SROT ------ */
/* VERSION */
@@ -150,6 +162,41 @@ static int __init init_8956(struct tsens_priv *priv) {
return init_common(priv);
}
+static int __init init_ipq5018(struct tsens_priv *priv)
+{
+ int ret;
+ u32 mask;
+
+ ret = init_common(priv);
+ if (ret < 0) {
+ dev_err(priv->dev, "Init common failed %d\n", ret);
+ return ret;
+ }
+
+ ret = regmap_field_write(priv->rf[TSENS_SW_RST], 1);
+ if (ret) {
+ dev_err(priv->dev, "Reset failed\n");
+ return ret;
+ }
+
+ mask = GENMASK(priv->num_sensors, 0);
+ ret = regmap_field_update_bits(priv->rf[SENSOR_EN], mask, mask);
+ if (ret) {
+ dev_err(priv->dev, "Sensor Enable failed\n");
+ return ret;
+ }
+
+ ret = regmap_field_write(priv->rf[TSENS_EN], 1);
+ if (ret) {
+ dev_err(priv->dev, "Enable failed\n");
+ return ret;
+ }
+
+ ret = regmap_field_write(priv->rf[TSENS_SW_RST], 0);
+
+ return ret;
+}
+
static const struct tsens_ops ops_generic_v1 = {
.init = init_common,
.calibrate = calibrate_v1,
@@ -194,3 +241,16 @@ struct tsens_plat_data data_8976 = {
.feat = &tsens_v1_feat,
.fields = tsens_v1_regfields,
};
+
+const struct tsens_ops ops_ipq5018 = {
+ .init = init_ipq5018,
+ .calibrate = tsens_calibrate_common,
+ .get_temp = get_temp_tsens_valid,
+};
+
+struct tsens_plat_data data_ipq5018 = {
+ .num_sensors = 5,
+ .ops = &ops_ipq5018,
+ .feat = &tsens_v1_ipq5018_feat,
+ .fields = tsens_v1_regfields,
+};
diff --git a/drivers/thermal/qcom/tsens.c b/drivers/thermal/qcom/tsens.c
index a25ca17adf1a..5ccaa297d16d 100644
--- a/drivers/thermal/qcom/tsens.c
+++ b/drivers/thermal/qcom/tsens.c
@@ -1102,6 +1102,9 @@ static SIMPLE_DEV_PM_OPS(tsens_pm_ops, tsens_suspend, tsens_resume);
static const struct of_device_id tsens_table[] = {
{
+ .compatible = "qcom,ipq5018-tsens",
+ .data = &data_ipq5018,
+ }, {
.compatible = "qcom,ipq8064-tsens",
.data = &data_8960,
}, {
diff --git a/drivers/thermal/qcom/tsens.h b/drivers/thermal/qcom/tsens.h
index 90bf11fba563..f5c87facb552 100644
--- a/drivers/thermal/qcom/tsens.h
+++ b/drivers/thermal/qcom/tsens.h
@@ -650,7 +650,7 @@ extern struct tsens_plat_data data_8960;
extern struct tsens_plat_data data_8226, data_8909, data_8916, data_8939, data_8974, data_9607;
/* TSENS v1 targets */
-extern struct tsens_plat_data data_tsens_v1, data_8937, data_8976, data_8956;
+extern struct tsens_plat_data data_tsens_v1, data_8937, data_8976, data_8956, data_ipq5018;
/* TSENS v2 targets */
extern struct tsens_plat_data data_8996, data_ipq8074, data_tsens_v2;
--
2.39.5
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 5/5] arm64: dts: qcom: ipq5018: Add tsens node
[not found] <20250221065219.17036-1-george.moussalem@outlook.com>
` (3 preceding siblings ...)
2025-02-21 6:52 ` [PATCH v4 4/5] thermal: qcom: tsens: Add support for IPQ5018 tsens George Moussalem
@ 2025-02-21 6:52 ` George Moussalem
4 siblings, 0 replies; 15+ messages in thread
From: George Moussalem @ 2025-02-21 6:52 UTC (permalink / raw)
To: linux-arm-msm, linux-pm, devicetree, amitk, thara.gopinath,
dmitry.baryshkov, robh, krzk+dt, quic_srichara
Cc: George Moussalem
From: Sricharan Ramabadhran <quic_srichara@quicinc.com>
IPQ5018 has tsens V1.0 IP with 4 sensors.
There is no RPM, so tsens has to be manually enabled. Adding the tsens
and nvmem node and IPQ5018 has 4 thermal sensors (zones). With the
critical temperature being 120'C and action is to reboot. Adding all
the 4 zones here.
Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
[v4] Sorted tsens nodes by address
Sorted thermal-zones nodes by name
arch/arm64/boot/dts/qcom/ipq5018.dtsi | 169 ++++++++++++++++++++++++++
1 file changed, 169 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
index 8914f2ef0bc4..a15078f85ecf 100644
--- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
@@ -147,6 +147,117 @@ usbphy0: phy@5b000 {
status = "disabled";
};
+ qfprom: qfprom@a0000 {
+ compatible = "qcom,ipq5018-qfprom", "qcom,qfprom";
+ reg = <0xa0000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ tsens_mode: mode@249 {
+ reg = <0x249 1>;
+ bits = <0 3>;
+ };
+
+ tsens_base1: base1@249 {
+ reg = <0x249 2>;
+ bits = <3 8>;
+ };
+
+ tsens_base2: base2@24a {
+ reg = <0x24a 2>;
+ bits = <3 8>;
+ };
+
+ tsens_s0_p1: s0-p1@24b {
+ reg = <0x24b 0x2>;
+ bits = <2 6>;
+ };
+
+ tsens_s0_p2: s0-p2@24c {
+ reg = <0x24c 0x1>;
+ bits = <1 6>;
+ };
+
+ tsens_s1_p1: s1-p1@24c {
+ reg = <0x24c 0x2>;
+ bits = <7 6>;
+ };
+
+ tsens_s1_p2: s1-p2@24d {
+ reg = <0x24d 0x2>;
+ bits = <5 6>;
+ };
+
+ tsens_s2_p1: s2-p1@24e {
+ reg = <0x24e 0x2>;
+ bits = <3 6>;
+ };
+
+ tsens_s2_p2: s2-p2@24f {
+ reg = <0x24f 0x1>;
+ bits = <1 6>;
+ };
+
+ tsens_s3_p1: s3-p1@24f {
+ reg = <0x24f 0x2>;
+ bits = <7 6>;
+ };
+
+ tsens_s3_p2: s3-p2@250 {
+ reg = <0x250 0x2>;
+ bits = <5 6>;
+ };
+
+ tsens_s4_p1: s4-p1@251 {
+ reg = <0x251 0x2>;
+ bits = <3 6>;
+ };
+
+ tsens_s4_p2: s4-p2@254 {
+ reg = <0x254 0x1>;
+ bits = <0 6>;
+ };
+ };
+
+ tsens: thermal-sensor@4a9000 {
+ compatible = "qcom,ipq5018-tsens";
+ reg = <0x4a9000 0x1000>, /* TM */
+ <0x4a8000 0x1000>; /* SROT */
+
+ nvmem-cells = <&tsens_mode>,
+ <&tsens_base1>,
+ <&tsens_base2>,
+ <&tsens_s0_p1>,
+ <&tsens_s0_p2>,
+ <&tsens_s1_p1>,
+ <&tsens_s1_p2>,
+ <&tsens_s2_p1>,
+ <&tsens_s2_p2>,
+ <&tsens_s3_p1>,
+ <&tsens_s3_p2>,
+ <&tsens_s4_p1>,
+ <&tsens_s4_p2>;
+
+ nvmem-cell-names = "mode",
+ "base1",
+ "base2",
+ "s0_p1",
+ "s0_p2",
+ "s1_p1",
+ "s1_p2",
+ "s2_p1",
+ "s2_p2",
+ "s3_p1",
+ "s3_p2",
+ "s4_p1",
+ "s4_p2";
+
+ interrupts = <GIC_SPI 184 IRQ_TYPE_EDGE_RISING>;
+ interrupt-names = "uplow";
+ #qcom,sensors = <5>;
+ #thermal-sensor-cells = <1>;
+ };
+
tlmm: pinctrl@1000000 {
compatible = "qcom,ipq5018-tlmm";
reg = <0x01000000 0x300000>;
@@ -389,6 +500,64 @@ frame@b128000 {
};
};
+ thermal-zones {
+ cpu-thermal {
+ polling-delay-passive = <0>;
+ polling-delay = <0>;
+ thermal-sensors = <&tsens 2>;
+
+ trips {
+ cpu-critical {
+ temperature = <120000>;
+ hysteresis = <2>;
+ type = "critical";
+ };
+ };
+ };
+
+ gephy-thermal {
+ polling-delay-passive = <0>;
+ polling-delay = <0>;
+ thermal-sensors = <&tsens 4>;
+
+ trips {
+ gephy-critical {
+ temperature = <120000>;
+ hysteresis = <2>;
+ type = "critical";
+ };
+ };
+ };
+
+ top-glue-thermal {
+ polling-delay-passive = <0>;
+ polling-delay = <0>;
+ thermal-sensors = <&tsens 3>;
+
+ trips {
+ top_glue-critical {
+ temperature = <120000>;
+ hysteresis = <2>;
+ type = "critical";
+ };
+ };
+ };
+
+ ubi32-thermal {
+ polling-delay-passive = <0>;
+ polling-delay = <0>;
+ thermal-sensors = <&tsens 1>;
+
+ trips {
+ ubi32-critical {
+ temperature = <120000>;
+ hysteresis = <2>;
+ type = "critical";
+ };
+ };
+ };
+ };
+
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
--
2.39.5
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v4 1/5] dt-bindings: nvmem: Add compatible for IPQ5018
2025-02-21 6:52 ` [PATCH v4 1/5] dt-bindings: nvmem: Add compatible for IPQ5018 George Moussalem
@ 2025-02-21 8:29 ` Krzysztof Kozlowski
2025-02-21 10:08 ` George Moussalem
2025-02-21 10:06 ` George Moussalem
1 sibling, 1 reply; 15+ messages in thread
From: Krzysztof Kozlowski @ 2025-02-21 8:29 UTC (permalink / raw)
To: George Moussalem, linux-arm-msm, linux-pm, devicetree, amitk,
thara.gopinath, dmitry.baryshkov, robh, krzk+dt, quic_srichara
Cc: Krzysztof Kozlowski
On 21/02/2025 07:52, George Moussalem wrote:
> From: Sricharan Ramabadhran <quic_srichara@quicinc.com>
>
> Document the QFPROM block found on IPQ5018
>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Any explanation why you are sending this? Why there is no cover letter?
This is 1.5 year old work, so I assume Qualcomm is abandoning this chip
and maybe there is no point in merging this in the first place?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 1/5] dt-bindings: nvmem: Add compatible for IPQ5018
2025-02-21 6:52 ` [PATCH v4 1/5] dt-bindings: nvmem: Add compatible for IPQ5018 George Moussalem
2025-02-21 8:29 ` Krzysztof Kozlowski
@ 2025-02-21 10:06 ` George Moussalem
1 sibling, 0 replies; 15+ messages in thread
From: George Moussalem @ 2025-02-21 10:06 UTC (permalink / raw)
To: george.moussalem
Cc: amitk, devicetree, dmitry.baryshkov, krzk+dt, krzysztof.kozlowski,
linux-arm-msm, linux-pm, quic_srichara, robh, thara.gopinath
I can't speak on behalf of Qualcomm as to whether they've abandoned this chip.
However, there are plenty of routers/APs that use this chip and support for it and some IPQ5018 based devices has recently been added to OpenWrt.
Hence, I'm picking up where Qualcomm has left off and would like to send as much as possible upstream for mainline support.
I've included a cover letter here: https://lore.kernel.org/all/DS7PR19MB8883BE38C2B500D03213747A9DC72@DS7PR19MB8883.namprd19.prod.outlook.com/
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 1/5] dt-bindings: nvmem: Add compatible for IPQ5018
2025-02-21 8:29 ` Krzysztof Kozlowski
@ 2025-02-21 10:08 ` George Moussalem
2025-02-21 10:49 ` Krzysztof Kozlowski
0 siblings, 1 reply; 15+ messages in thread
From: George Moussalem @ 2025-02-21 10:08 UTC (permalink / raw)
To: krzk
Cc: amitk, devicetree, dmitry.baryshkov, george.moussalem, krzk+dt,
krzysztof.kozlowski, linux-arm-msm, linux-pm, quic_srichara, robh,
thara.gopinath
I can't speak on behalf of Qualcomm as to whether they've abandoned this chip.
However, there are plenty of routers/APs that use this chip and support for it and some IPQ5018 based devices has recently been added to OpenWrt.
Hence, I'm picking up where Qualcomm has left off and would like to send as much as possible upstream for mainline support.
I've included a cover letter here: https://lore.kernel.org/all/DS7PR19MB8883BE38C2B500D03213747A9DC72@DS7PR19MB8883.namprd19.prod.outlook.com/
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 1/5] dt-bindings: nvmem: Add compatible for IPQ5018
2025-02-21 10:08 ` George Moussalem
@ 2025-02-21 10:49 ` Krzysztof Kozlowski
0 siblings, 0 replies; 15+ messages in thread
From: Krzysztof Kozlowski @ 2025-02-21 10:49 UTC (permalink / raw)
To: George Moussalem
Cc: amitk, devicetree, dmitry.baryshkov, krzk+dt, krzysztof.kozlowski,
linux-arm-msm, linux-pm, quic_srichara, robh, thara.gopinath
On 21/02/2025 11:08, George Moussalem wrote:
> I can't speak on behalf of Qualcomm as to whether they've abandoned this chip.
> However, there are plenty of routers/APs that use this chip and support for it and some IPQ5018 based devices has recently been added to OpenWrt.
> Hence, I'm picking up where Qualcomm has left off and would like to send as much as possible upstream for mainline support.
That's fine, but should be mentioned in cover letter. Anytime you take
someone else's patchset, please say shortly why, so maintainers won't
deal with duplicated submissions for example.
>
> I've included a cover letter here: https://lore.kernel.org/all/DS7PR19MB8883BE38C2B500D03213747A9DC72@DS7PR19MB8883.namprd19.prod.outlook.com/
Wasn't in this thread, so that's another issue.
Anyway, no need to resend just for any of the above.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 4/5] thermal: qcom: tsens: Add support for IPQ5018 tsens
2025-02-21 6:52 ` [PATCH v4 4/5] thermal: qcom: tsens: Add support for IPQ5018 tsens George Moussalem
@ 2025-02-21 13:59 ` Dmitry Baryshkov
2025-02-21 14:13 ` George Moussalem
0 siblings, 1 reply; 15+ messages in thread
From: Dmitry Baryshkov @ 2025-02-21 13:59 UTC (permalink / raw)
To: George Moussalem
Cc: linux-arm-msm, linux-pm, devicetree, amitk, thara.gopinath, robh,
krzk+dt, quic_srichara
On Fri, Feb 21, 2025 at 10:52:18AM +0400, George Moussalem wrote:
> From: Sricharan Ramabadhran <quic_srichara@quicinc.com>
>
> IPQ5018 has tsens IP V1.0, 4 sensors and 1 interrupt.
> The soc does not have a RPM, hence tsens has to be reset and
> enabled in the driver init. Adding the driver support for same.
>
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
> [v4] Added Dmitry's Reviewed-by tag
> Fixed modpost warning: added __init to init_common
>
> drivers/thermal/qcom/tsens-v1.c | 60 +++++++++++++++++++++++++++++++++
> drivers/thermal/qcom/tsens.c | 3 ++
> drivers/thermal/qcom/tsens.h | 2 +-
> 3 files changed, 64 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/thermal/qcom/tsens-v1.c b/drivers/thermal/qcom/tsens-v1.c
> index 1a7874676f68..1f955acbc2cf 100644
> --- a/drivers/thermal/qcom/tsens-v1.c
> +++ b/drivers/thermal/qcom/tsens-v1.c
> @@ -79,6 +79,18 @@ static struct tsens_features tsens_v1_feat = {
> .trip_max_temp = 120000,
> };
>
> +static struct tsens_features tsens_v1_ipq5018_feat = {
> + .ver_major = VER_1_X,
> + .crit_int = 0,
> + .combo_int = 0,
> + .adc = 1,
> + .srot_split = 1,
> + .max_sensors = 11,
> + .trip_min_temp = -40000,
> + .trip_max_temp = 120000,
> + .ignore_enable = 1,
> +};
> +
> static const struct reg_field tsens_v1_regfields[MAX_REGFIELDS] = {
> /* ----- SROT ------ */
> /* VERSION */
> @@ -150,6 +162,41 @@ static int __init init_8956(struct tsens_priv *priv) {
> return init_common(priv);
> }
>
> +static int __init init_ipq5018(struct tsens_priv *priv)
> +{
> + int ret;
> + u32 mask;
> +
> + ret = init_common(priv);
> + if (ret < 0) {
> + dev_err(priv->dev, "Init common failed %d\n", ret);
> + return ret;
> + }
> +
> + ret = regmap_field_write(priv->rf[TSENS_SW_RST], 1);
> + if (ret) {
> + dev_err(priv->dev, "Reset failed\n");
> + return ret;
> + }
> +
> + mask = GENMASK(priv->num_sensors, 0);
> + ret = regmap_field_update_bits(priv->rf[SENSOR_EN], mask, mask);
> + if (ret) {
> + dev_err(priv->dev, "Sensor Enable failed\n");
> + return ret;
> + }
> +
> + ret = regmap_field_write(priv->rf[TSENS_EN], 1);
> + if (ret) {
> + dev_err(priv->dev, "Enable failed\n");
> + return ret;
> + }
> +
> + ret = regmap_field_write(priv->rf[TSENS_SW_RST], 0);
> +
> + return ret;
> +}
> +
> static const struct tsens_ops ops_generic_v1 = {
> .init = init_common,
> .calibrate = calibrate_v1,
> @@ -194,3 +241,16 @@ struct tsens_plat_data data_8976 = {
> .feat = &tsens_v1_feat,
> .fields = tsens_v1_regfields,
> };
> +
> +const struct tsens_ops ops_ipq5018 = {
> + .init = init_ipq5018,
> + .calibrate = tsens_calibrate_common,
> + .get_temp = get_temp_tsens_valid,
> +};
> +
> +struct tsens_plat_data data_ipq5018 = {
> + .num_sensors = 5,
Commit message suggests that this should be '4'.
> + .ops = &ops_ipq5018,
> + .feat = &tsens_v1_ipq5018_feat,
> + .fields = tsens_v1_regfields,
> +};
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 4/5] thermal: qcom: tsens: Add support for IPQ5018 tsens
2025-02-21 13:59 ` Dmitry Baryshkov
@ 2025-02-21 14:13 ` George Moussalem
2025-02-21 14:29 ` Dmitry Baryshkov
0 siblings, 1 reply; 15+ messages in thread
From: George Moussalem @ 2025-02-21 14:13 UTC (permalink / raw)
To: dmitry.baryshkov
Cc: amitk, devicetree, george.moussalem, krzk+dt, linux-arm-msm,
linux-pm, quic_srichara, robh, thara.gopinath
Good catch, thanks! Will fix and send a v5 after a quick test.
Also found that the addresses in the tsens and qfprom nodes in patch 5 need
padding.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 4/5] thermal: qcom: tsens: Add support for IPQ5018 tsens
2025-02-21 14:13 ` George Moussalem
@ 2025-02-21 14:29 ` Dmitry Baryshkov
2025-02-21 14:41 ` George Moussalem
0 siblings, 1 reply; 15+ messages in thread
From: Dmitry Baryshkov @ 2025-02-21 14:29 UTC (permalink / raw)
To: George Moussalem
Cc: amitk, devicetree, krzk+dt, linux-arm-msm, linux-pm,
quic_srichara, robh, thara.gopinath
On Fri, Feb 21, 2025 at 06:13:12PM +0400, George Moussalem wrote:
> Good catch, thanks! Will fix and send a v5 after a quick test.
> Also found that the addresses in the tsens and qfprom nodes in patch 5 need
> padding.
Well... DT suggests that there are 5 sensors. So maybe the code is
correct, but the commit message isn't.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 4/5] thermal: qcom: tsens: Add support for IPQ5018 tsens
2025-02-21 14:29 ` Dmitry Baryshkov
@ 2025-02-21 14:41 ` George Moussalem
2025-02-21 14:51 ` Dmitry Baryshkov
0 siblings, 1 reply; 15+ messages in thread
From: George Moussalem @ 2025-02-21 14:41 UTC (permalink / raw)
To: dmitry.baryshkov
Cc: amitk, devicetree, george.moussalem, krzk+dt, linux-arm-msm,
linux-pm, quic_srichara, robh, thara.gopinath
I've just checked the downstream dts and driver, it contains 5 sensors,
but only 4 are used. So I propose we leave the number of sensors to 5 and
adjust the commit message. Thoughts?
Best regards,
George
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 4/5] thermal: qcom: tsens: Add support for IPQ5018 tsens
2025-02-21 14:41 ` George Moussalem
@ 2025-02-21 14:51 ` Dmitry Baryshkov
2025-02-24 5:43 ` Sricharan Ramabadhran
0 siblings, 1 reply; 15+ messages in thread
From: Dmitry Baryshkov @ 2025-02-21 14:51 UTC (permalink / raw)
To: George Moussalem
Cc: amitk, devicetree, krzk+dt, linux-arm-msm, linux-pm,
quic_srichara, robh, thara.gopinath
On Fri, Feb 21, 2025 at 06:41:44PM +0400, George Moussalem wrote:
> I've just checked the downstream dts and driver, it contains 5 sensors,
> but only 4 are used. So I propose we leave the number of sensors to 5 and
> adjust the commit message. Thoughts?
SGTM
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 4/5] thermal: qcom: tsens: Add support for IPQ5018 tsens
2025-02-21 14:51 ` Dmitry Baryshkov
@ 2025-02-24 5:43 ` Sricharan Ramabadhran
0 siblings, 0 replies; 15+ messages in thread
From: Sricharan Ramabadhran @ 2025-02-24 5:43 UTC (permalink / raw)
To: Dmitry Baryshkov, George Moussalem
Cc: amitk, devicetree, krzk+dt, linux-arm-msm, linux-pm, robh,
thara.gopinath
On 2/21/2025 8:21 PM, Dmitry Baryshkov wrote:
> On Fri, Feb 21, 2025 at 06:41:44PM +0400, George Moussalem wrote:
>> I've just checked the downstream dts and driver, it contains 5 sensors,
>> but only 4 are used. So I propose we leave the number of sensors to 5 and
>> adjust the commit message. Thoughts?
>
> SGTM
>
Agree, thanks George for re-posting this. Infact, chip is still active,
but there are few other priority ones that took over. So should be
good to get this merged.
Regards,
Sricharan
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2025-02-24 5:43 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20250221065219.17036-1-george.moussalem@outlook.com>
2025-02-21 6:52 ` [PATCH v4 1/5] dt-bindings: nvmem: Add compatible for IPQ5018 George Moussalem
2025-02-21 8:29 ` Krzysztof Kozlowski
2025-02-21 10:08 ` George Moussalem
2025-02-21 10:49 ` Krzysztof Kozlowski
2025-02-21 10:06 ` George Moussalem
2025-02-21 6:52 ` [PATCH v4 2/5] dt-bindings: thermal: qcom-tsens: Add ipq5018 compatible George Moussalem
2025-02-21 6:52 ` [PATCH v4 3/5] thermal: drivers: qcom: Add new feat for soc without rpm George Moussalem
2025-02-21 6:52 ` [PATCH v4 4/5] thermal: qcom: tsens: Add support for IPQ5018 tsens George Moussalem
2025-02-21 13:59 ` Dmitry Baryshkov
2025-02-21 14:13 ` George Moussalem
2025-02-21 14:29 ` Dmitry Baryshkov
2025-02-21 14:41 ` George Moussalem
2025-02-21 14:51 ` Dmitry Baryshkov
2025-02-24 5:43 ` Sricharan Ramabadhran
2025-02-21 6:52 ` [PATCH v4 5/5] arm64: dts: qcom: ipq5018: Add tsens node George Moussalem
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).