2023-06-12 06:45:33

by Maksim Kiselev

[permalink] [raw]
Subject: Add D1/T113s thermal sensor controller support

This series adds support for Allwinner D1/T113s thermal sensor controller.
THIS controller is similar to the one on H6, but with only one sensor and
uses a different scale and offset values.

v4:
- Dropeed DT bindings example

v3:
- Fixed SoB tag again

v2:
- Fixed SoB tag
- Moved binding patch before driver changes

v1:
- Initial version

Maxim Kiselev (3):
dt-bindings: thermal: sun8i: Add binding for D1/T113s THS controller
thermal: sun8i: Add D1/T113s THS controller support
riscv: dts: allwinner: d1: Add thermal sensor and thermal zone

.../thermal/allwinner,sun8i-a83t-ths.yaml | 7 ++++-
.../boot/dts/allwinner/sunxi-d1s-t113.dtsi | 26 +++++++++++++++++++
drivers/thermal/sun8i_thermal.c | 13 ++++++++++
3 files changed, 45 insertions(+), 1 deletion(-)

--
2.39.2



2023-06-12 06:46:39

by Maksim Kiselev

[permalink] [raw]
Subject: [PATCH v4 1/3] dt-bindings: thermal: sun8i: Add binding for D1/T113s THS controller

From: Maxim Kiselev <[email protected]>

Add a binding for D1/T113s thermal sensor controller.

Signed-off-by: Maxim Kiselev <[email protected]>
Reviewed-by: Conor Dooley <[email protected]>
---
.../bindings/thermal/allwinner,sun8i-a83t-ths.yaml | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/thermal/allwinner,sun8i-a83t-ths.yaml b/Documentation/devicetree/bindings/thermal/allwinner,sun8i-a83t-ths.yaml
index fbd4212285e2..9b2272a9ec15 100644
--- a/Documentation/devicetree/bindings/thermal/allwinner,sun8i-a83t-ths.yaml
+++ b/Documentation/devicetree/bindings/thermal/allwinner,sun8i-a83t-ths.yaml
@@ -16,6 +16,7 @@ properties:
- allwinner,sun8i-a83t-ths
- allwinner,sun8i-h3-ths
- allwinner,sun8i-r40-ths
+ - allwinner,sun20i-d1-ths
- allwinner,sun50i-a64-ths
- allwinner,sun50i-a100-ths
- allwinner,sun50i-h5-ths
@@ -61,6 +62,7 @@ allOf:
compatible:
contains:
enum:
+ - allwinner,sun20i-d1-ths
- allwinner,sun50i-a100-ths
- allwinner,sun50i-h6-ths

@@ -84,7 +86,9 @@ allOf:
properties:
compatible:
contains:
- const: allwinner,sun8i-h3-ths
+ enum:
+ - allwinner,sun8i-h3-ths
+ - allwinner,sun20i-d1-ths

then:
properties:
@@ -103,6 +107,7 @@ allOf:
enum:
- allwinner,sun8i-h3-ths
- allwinner,sun8i-r40-ths
+ - allwinner,sun20i-d1-ths
- allwinner,sun50i-a64-ths
- allwinner,sun50i-a100-ths
- allwinner,sun50i-h5-ths
--
2.39.2


2023-06-12 06:47:27

by Maksim Kiselev

[permalink] [raw]
Subject: [PATCH v4 2/3] thermal: sun8i: Add D1/T113s THS controller support

From: Maxim Kiselev <[email protected]>

This patch adds a thermal sensor controller support for the D1/T113s,
which is similar to the one on H6, but with only one sensor and
different scale and offset values.

Signed-off-by: Maxim Kiselev <[email protected]>
---
drivers/thermal/sun8i_thermal.c | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/drivers/thermal/sun8i_thermal.c b/drivers/thermal/sun8i_thermal.c
index 793ddce72132..01cc4e130892 100644
--- a/drivers/thermal/sun8i_thermal.c
+++ b/drivers/thermal/sun8i_thermal.c
@@ -628,6 +628,18 @@ static const struct ths_thermal_chip sun50i_h6_ths = {
.calc_temp = sun8i_ths_calc_temp,
};

+static const struct ths_thermal_chip sun20i_d1_ths = {
+ .sensor_num = 1,
+ .has_bus_clk_reset = true,
+ .offset = 188552,
+ .scale = 673,
+ .temp_data_base = SUN50I_H6_THS_TEMP_DATA,
+ .calibrate = sun50i_h6_ths_calibrate,
+ .init = sun50i_h6_thermal_init,
+ .irq_ack = sun50i_h6_irq_ack,
+ .calc_temp = sun8i_ths_calc_temp,
+};
+
static const struct of_device_id of_ths_match[] = {
{ .compatible = "allwinner,sun8i-a83t-ths", .data = &sun8i_a83t_ths },
{ .compatible = "allwinner,sun8i-h3-ths", .data = &sun8i_h3_ths },
@@ -636,6 +648,7 @@ static const struct of_device_id of_ths_match[] = {
{ .compatible = "allwinner,sun50i-a100-ths", .data = &sun50i_a100_ths },
{ .compatible = "allwinner,sun50i-h5-ths", .data = &sun50i_h5_ths },
{ .compatible = "allwinner,sun50i-h6-ths", .data = &sun50i_h6_ths },
+ { .compatible = "allwinner,sun20i-d1-ths", .data = &sun20i_d1_ths },
{ /* sentinel */ },
};
MODULE_DEVICE_TABLE(of, of_ths_match);
--
2.39.2


2023-06-12 08:01:23

by Maksim Kiselev

[permalink] [raw]
Subject: [PATCH v4 3/3] riscv: dts: allwinner: d1: Add thermal sensor and thermal zone

From: Maxim Kiselev <[email protected]>

This patch adds a thermal sensor controller node for the D1/T113s.
Also it adds a THS calibration data cell and thermal zone.

Signed-off-by: Maxim Kiselev <[email protected]>
---
.../boot/dts/allwinner/sunxi-d1s-t113.dtsi | 26 +++++++++++++++++++
1 file changed, 26 insertions(+)

diff --git a/arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi b/arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi
index 922e8e0e2c09..b893f3325554 100644
--- a/arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi
+++ b/arch/riscv/boot/dts/allwinner/sunxi-d1s-t113.dtsi
@@ -10,6 +10,7 @@
#include <dt-bindings/reset/sun8i-de2.h>
#include <dt-bindings/reset/sun20i-d1-ccu.h>
#include <dt-bindings/reset/sun20i-d1-r-ccu.h>
+#include <dt-bindings/thermal/thermal.h>

/ {
#address-cells = <1>;
@@ -138,6 +139,19 @@ ccu: clock-controller@2001000 {
#reset-cells = <1>;
};

+ ths: thermal-sensor@2009400 {
+ compatible = "allwinner,sun20i-d1-ths";
+ reg = <0x02009400 0x400>;
+ interrupts = <SOC_PERIPHERAL_IRQ(58) IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&ccu CLK_BUS_THS>;
+ clock-names = "bus";
+ resets = <&ccu RST_BUS_THS>;
+ nvmem-cells = <&ths_calibration>;
+ nvmem-cell-names = "calibration";
+ status = "disabled";
+ #thermal-sensor-cells = <0>;
+ };
+
dmic: dmic@2031000 {
compatible = "allwinner,sun20i-d1-dmic",
"allwinner,sun50i-h6-dmic";
@@ -365,6 +379,10 @@ sid: efuse@3006000 {
reg = <0x3006000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
+
+ ths_calibration: thermal-sensor-calibration@14 {
+ reg = <0x14 0x4>;
+ };
};

crypto: crypto@3040000 {
@@ -843,4 +861,12 @@ rtc: rtc@7090000 {
#clock-cells = <1>;
};
};
+
+ thermal-zones {
+ cpu_thermal: cpu-thermal {
+ polling-delay-passive = <0>;
+ polling-delay = <0>;
+ thermal-sensors = <&ths 0>;
+ };
+ };
};
--
2.39.2


2023-06-12 08:01:52

by Conor Dooley

[permalink] [raw]
Subject: Re: [PATCH v4 3/3] riscv: dts: allwinner: d1: Add thermal sensor and thermal zone

On Mon, Jun 12, 2023 at 09:34:19AM +0300, Maksim Kiselev wrote:
> From: Maxim Kiselev <[email protected]>
>
> This patch adds a thermal sensor controller node for the D1/T113s.
> Also it adds a THS calibration data cell and thermal zone.
>
> Signed-off-by: Maxim Kiselev <[email protected]>

The RISC-V patchwork automation is complaining about this patch while
running dtbs_check:
arch/riscv/boot/dts/allwinner/sun20i-d1s-mangopi-mq.dtb: thermal-zones: cpu-thermal: 'trips' is a required property
From schema: Documentation/devicetree/bindings/thermal/thermal-zones.yaml


Cheers,
Conor.


Attachments:
(No filename) (616.00 B)
signature.asc (235.00 B)
Download all attachments

2023-06-12 08:28:26

by Maksim Kiselev

[permalink] [raw]
Subject: Re: [PATCH v4 3/3] riscv: dts: allwinner: d1: Add thermal sensor and thermal zone

Hi, Conor

пн, 12 июн. 2023 г. в 10:55, Conor Dooley <[email protected]>:

...

> The RISC-V patchwork automation is complaining about this patch while
> running dtbs_check:
> arch/riscv/boot/dts/allwinner/sun20i-d1s-mangopi-mq.dtb: thermal-zones: cpu-thermal: 'trips' is a required property
> From schema: Documentation/devicetree/bindings/thermal/thermal-zones.yaml

I didn't add 'trips' because I'm not sure if they should be the same
for the D1 and the T113s.
Maybe it's better to drop 'thermal-zones' from this patch and add them
later in separate patches
for T113s and D1?

2023-06-12 17:38:08

by Conor Dooley

[permalink] [raw]
Subject: Re: [PATCH v4 3/3] riscv: dts: allwinner: d1: Add thermal sensor and thermal zone

On Mon, Jun 12, 2023 at 11:17:20AM +0300, Maxim Kiselev wrote:
> Hi, Conor
>
> пн, 12 июн. 2023 г. в 10:55, Conor Dooley <[email protected]>:
>
> ...
>
> > The RISC-V patchwork automation is complaining about this patch while
> > running dtbs_check:
> > arch/riscv/boot/dts/allwinner/sun20i-d1s-mangopi-mq.dtb: thermal-zones: cpu-thermal: 'trips' is a required property
> > From schema: Documentation/devicetree/bindings/thermal/thermal-zones.yaml
>
> I didn't add 'trips' because I'm not sure if they should be the same
> for the D1 and the T113s.

I'm sorry, but I am of no help there. Perhaps some of the Allwinner devs
can help you on that front.

> Maybe it's better to drop 'thermal-zones' from this patch and add them
> later in separate patches
> for T113s and D1?

Does it pass dtbs_check with the thermal-zones removed?

Cheers,
Conor.


Attachments:
(No filename) (902.00 B)
signature.asc (235.00 B)
Download all attachments

2023-06-12 19:58:25

by Maksim Kiselev

[permalink] [raw]
Subject: Re: [PATCH v4 3/3] riscv: dts: allwinner: d1: Add thermal sensor and thermal zone

пн, 12 июн. 2023 г. в 20:27, Conor Dooley <[email protected]>:
>
> On Mon, Jun 12, 2023 at 11:17:20AM +0300, Maxim Kiselev wrote:
> > Hi, Conor
> >
> > пн, 12 июн. 2023 г. в 10:55, Conor Dooley <[email protected]>:
> >
> > ...
> >
> > > The RISC-V patchwork automation is complaining about this patch while
> > > running dtbs_check:
> > > arch/riscv/boot/dts/allwinner/sun20i-d1s-mangopi-mq.dtb: thermal-zones: cpu-thermal: 'trips' is a required property
> > > From schema: Documentation/devicetree/bindings/thermal/thermal-zones.yaml
> >
> > I didn't add 'trips' because I'm not sure if they should be the same
> > for the D1 and the T113s.
>
> I'm sorry, but I am of no help there. Perhaps some of the Allwinner devs
> can help you on that front.
>
> > Maybe it's better to drop 'thermal-zones' from this patch and add them
> > later in separate patches
> > for T113s and D1?
>
> Does it pass dtbs_check with the thermal-zones removed?

Yes, it passes.