thermal: Add support for thermal sensor for Kirkwood SoC
Subsystems (3)
PATCH 1/2 thermal: Add support for thermal sensor for Kirkwood SoC
Some kirkwood SoC has thermal sensor.
This patch adds support for 88F6282 and 88F6283.
--- drivers/thermal/Kconfig | 7 ++ drivers/thermal/Makefile | 1 + drivers/thermal/kirkwood_thermal.c | 131 ++++++++++++++++++++++++++++++++++++ 3 files changed, 139 insertions(+) create mode 100644 drivers/thermal/kirkwood_thermal.c
drivers/thermal/Kconfig +7 -0
@@ -55,3 +55,10 @@ config EXYNOS_THERMAL help If you say yes here you get support for TMU (Thermal Managment Unit) on SAMSUNG EXYNOS series of SoC. + +config KIRKWOOD_THERMAL + tristate "Temperature sensor on Marvel Kirkwood" + depends on ARCH_KIRKWOOD && THERMAL + help + Support for the Kirkwood thermal sensor driver into the Linux thermal + framework. This supports only 88F6282 and 88F6283.
drivers/thermal/Makefile +1 -0
@@ -6,4 +6,5 @@ obj-$(CONFIG_THERMAL) += thermal_sys.o obj-$(CONFIG_CPU_THERMAL) += cpu_cooling.o obj-$(CONFIG_SPEAR_THERMAL) += spear_thermal.o obj-$(CONFIG_RCAR_THERMAL) += rcar_thermal.o +obj-$(CONFIG_KIRKWOOD_THERMAL) += kirkwood_thermal.o obj-$(CONFIG_EXYNOS_THERMAL) += exynos_thermal.o
drivers/thermal/kirkwood_thermal.c new file +131 -0
131 lines not on this page · raw message
Signature · 1 line
1.7.10.4
PATCH 2/2 ARM: Kirkwood: Add support thermal sensor for 88F6282 and 88F6283
88F6282 and 88F6283 has thermal sensor.
This patch enables DT and kernel config.
--- arch/arm/boot/dts/kirkwood-6282.dtsi | 6 ++++++ arch/arm/configs/kirkwood_defconfig | 2 ++ 2 files changed, 8 insertions(+)
arch/arm/boot/dts/kirkwood-6282.dtsi +6 -0
@@ -41,5 +41,11 @@ clock-frequency = <100000>; status = "disabled"; }; + + thermal@10078 { + compatible = "marvel,thermal-kirkwood"; + reg = <0x10078 0x4>; + status = "okay"; + }; }; };
arch/arm/configs/kirkwood_defconfig +2 -0
@@ -118,6 +118,8 @@ CONFIG_SPI=y CONFIG_SPI_ORION=y CONFIG_GPIO_SYSFS=y # CONFIG_HWMON is not set +CONFIG_THERMAL=y +CONFIG_KIRKWOOD_THERMAL=y CONFIG_WATCHDOG=y CONFIG_ORION_WATCHDOG=y CONFIG_HID_DRAGONRISE=y
Signature · 1 line
1.7.10.4
PATCH 1/2 thermal: Add support for thermal sensor for Kirkwood SoC
In reply to Nobuhiro IwamatsuQuoted 2 lines · Nobuhiro Iwamatsu
Some kirkwood SoC has thermal sensor.
This patch adds support for 88F6282 and 88F6283.
Thanks! I was just about to write this.. Looks good here.
Jason
PATCH 1/2 thermal: Add support for thermal sensor for Kirkwood SoC
Quoted 5 lines · Jason Gunthorpe
Quoted 2 lines · Nobuhiro Iwamatsu
Some kirkwood SoC has thermal sensor.
This patch adds support for 88F6282 and 88F6283.Thanks! I was just about to write this.. Looks good here.
Ah, looking closer:
$ cat /sys/class/thermal/thermal_zone0/temp 37
That should be 37000, the value out of the driver should be in milli-Celsius.
I'd use this equation instead:
*temp = ((322 - reg) * 10000 * 1000) / 13625;
Regards,
Jason
PATCH 1/2 thermal: Add support for thermal sensor for Kirkwood SoC
Quoted 12 lines · Jason Gunthorpe
Quoted 5 lines · Jason Gunthorpe
Quoted 2 lines · Nobuhiro Iwamatsu
Some kirkwood SoC has thermal sensor.
This patch adds support for 88F6282 and 88F6283.Thanks! I was just about to write this.. Looks good here.
Ah, looking closer:
$ cat /sys/class/thermal/thermal_zone0/temp 37
Quoted 6 lines
That should be 37000, the value out of the driver should be in milli-Celsius.
I'd use this equation instead:
*temp = ((322 - reg) * 10000 * 1000) / 13625;
Be careful of math overflows... make sure you do this calculation using unsigned arithmetic as temperatures above 157 degress will cause this to look like a negative number using signed math... However, that probably won't ever be noticed because at 157 degrees, you'll definitely be outside the operating limits of the device.
PATCH 1/2 thermal: Add support for thermal sensor for Kirkwood SoC
Hi,
Quoted 18 lines · Russell King - ARM Linux
Quoted 17 lines · Jason Gunthorpe
Quoted 5 lines · Jason Gunthorpe
Quoted 2 lines · Nobuhiro Iwamatsu
Some kirkwood SoC has thermal sensor.
This patch adds support for 88F6282 and 88F6283.Thanks! I was just about to write this.. Looks good here.
Ah, looking closer:
$ cat /sys/class/thermal/thermal_zone0/temp 37That should be 37000, the value out of the driver should be in milli-Celsius.
I'd use this equation instead:
Quoted 7 lines
Quoted 1 line
*temp = ((322 - reg) * 10000 * 1000) / 13625;Be careful of math overflows... make sure you do this calculation using unsigned arithmetic as temperatures above 157 degress will cause this to look like a negative number using signed math... However, that probably won't ever be noticed because at 157 degrees, you'll definitely be outside the operating limits of the device.
Oh, OK. I would like to thank you pointed out.
I will fix.
Best regards,
Nobuhiro
Signature · 3 lines
Nobuhiro Iwamatsu
iwamatsu at {nigauri.org / debian.org}
GPG ID: 40AD1FA6PATCH 1/2 thermal: Add support for thermal sensor for Kirkwood SoC
In reply to Jason GunthorpeQuoted 12 lines · Jason Gunthorpe
Quoted 5 lines · Jason Gunthorpe
Quoted 2 lines · Nobuhiro Iwamatsu
Some kirkwood SoC has thermal sensor.
This patch adds support for 88F6282 and 88F6283.Thanks! I was just about to write this.. Looks good here.
Ah, looking closer:
$ cat /sys/class/thermal/thermal_zone0/temp 37
Quoted 7 lines
That should be 37000, the value out of the driver should be in milli-Celsius.
I'd use this equation instead:
*temp = ((322 - reg) * 10000 * 1000) / 13625;
OK, I will fix this.
Thanks for your review.
Best regards,
Nobuhiro
Signature · 3 lines
Nobuhiro Iwamatsu
iwamatsu at {nigauri.org / debian.org}
GPG ID: 40AD1FA6PATCH 1/2 thermal: Add support for thermal sensor for Kirkwood SoC
In reply to Nobuhiro IwamatsuHello,
drivers/thermal/Kconfig config EXYNOS_THERMAL · line 60
Quoted 2 lines · Nobuhiro Iwamatsu
drivers/thermal/Kconfig +2
-0+config KIRKWOOD_THERMAL + tristate "Temperature sensor on Marvel Kirkwood"
Marvell
drivers/thermal/kirkwood_thermal.c line 45
Quoted 3 lines
drivers/thermal/kirkwood_thermal.c new file +3
-0+/* Valid check */ +if (!(reg >>THERMAL_VALID_OFFSET ) &THERMAL_VALID_MASK ) { +dev_info (&thermal->device,"Reading temperature is not valid\n" );
"Temperature read is not valid" maybe? An native english speaker could say.
drivers/thermal/kirkwood_thermal.c line 73
Quoted 2 lines
drivers/thermal/kirkwood_thermal.c new file +2
-0+ thermal_dev + =devm_kzalloc (&pdev->dev,sizeof (*thermal_dev),GFP_KERNEL );
I think the usual coding style is to have the = on the first line.
drivers/thermal/kirkwood_thermal.c line 103
Quoted 4 lines
drivers/thermal/kirkwood_thermal.c new file +4
-0+static int kirkwood_thermal_exit (struct platform_device *pdev) +{ +struct thermal_zone_device *kirkwood_thermal + =platform_get_drvdata (pdev);
Ditto.
drivers/thermal/kirkwood_thermal.c line 112
Quoted 2 lines
drivers/thermal/kirkwood_thermal.c new file +2
-0+static const struct of_device_id kirkwood_thermal_id_table[] = { + { .compatible ="marvel,thermal-kirkwood" },
marvel -> marvell
Also, I think it should be marvell,kirkwood-thermal, since most other DT compatible strings that we have for Marvell SoCs are marvell,<soc>-<function>.
Also, the Device Tree binding documentation is missing (even though it is admittedly going to be a very short documentation).
Thanks!
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 1/2 thermal: Add support for thermal sensor for Kirkwood SoC
Quoted 8 lines · Thomas Petazzoni
Hello,
drivers/thermal/kirkwood_thermal.c line 112
Quoted 2 lines · Nobuhiro Iwamatsu
drivers/thermal/kirkwood_thermal.c new file +2
-0+static const struct of_device_id kirkwood_thermal_id_table[] = { + { .compatible ="marvel,thermal-kirkwood" },marvel -> marvell
Quoted 6 lines
Also, I think it should be marvell,kirkwood-thermal, since most other DT compatible strings that we have for Marvell SoCs are marvell,<soc>-<function>.
Also, the Device Tree binding documentation is missing (even though it is admittedly going to be a very short documentation).
Is this in any way compatible with the thermal monitoring found on Dove (510) stuff? If so, should it have the SoC prefix in there, or should it be "armada-thermal" for the SoC family?
PATCH 1/2 thermal: Add support for thermal sensor for Kirkwood SoC
Quoted 13 lines · Russell King - ARM Linux
Quoted 12 lines · Thomas Petazzoni
Hello,
drivers/thermal/kirkwood_thermal.c line 112
Quoted 2 lines · Nobuhiro Iwamatsu
drivers/thermal/kirkwood_thermal.c new file +2
-0+static const struct of_device_id kirkwood_thermal_id_table[] = { + { .compatible ="marvel,thermal-kirkwood" },marvel -> marvell
Also, I think it should be marvell,kirkwood-thermal, since most other DT compatible strings that we have for Marvell SoCs are marvell,<soc>-<function>.
Quoted 6 lines
Quoted 2 lines
Also, the Device Tree binding documentation is missing (even though it is admittedly going to be a very short documentation).
Is this in any way compatible with the thermal monitoring found on Dove (510) stuff? If so, should it have the SoC prefix in there, or should it be "armada-thermal" for the SoC family?
I haven't checked the driver in detail but at least register offsets and the register-to-temperature function are different for Dove. This is no big deal and can be handled with compatible strings.
But more important, "kirkwood" includes 88f618x, 88f619x, and 88f6281 that have no thermal diode - at least it is not mentioned in the public datasheet. So, finally for Nobuhiro's patch I suggest to have two compatible strings, one for marvell,88f6282-thermal and one for marvell,88f6282-thermal. Numbering scheme of Marvell SoCs is a mess..
For the driver, the name should be either orion_thermal.c (as we will reuse it for Dove), or mvebu_thermal.c if there is also a thermal diode on Armada 370/XP. Using "armada" alone is not a good idea, as it also includes some pxa-based SoCs - naming scheme of Marvell SoCs is even more broken than numbering scheme ;)
Sebastian
PATCH 1/2 thermal: Add support for thermal sensor for Kirkwood SoC
In reply to Russell King - ARM LinuxHi,
Quoted 13 lines · Russell King - ARM Linux
Quoted 12 lines · Thomas Petazzoni
Hello,
drivers/thermal/kirkwood_thermal.c line 112
Quoted 2 lines · Nobuhiro Iwamatsu
drivers/thermal/kirkwood_thermal.c new file +2
-0+static const struct of_device_id kirkwood_thermal_id_table[] = { + { .compatible ="marvel,thermal-kirkwood" },marvel -> marvell
Also, I think it should be marvell,kirkwood-thermal, since most other DT compatible strings that we have for Marvell SoCs are marvell,<soc>-<function>.
Quoted 6 lines
Quoted 2 lines
Also, the Device Tree binding documentation is missing (even though it is admittedly going to be a very short documentation).
Is this in any way compatible with the thermal monitoring found on Dove (510) stuff? If so, should it have the SoC prefix in there, or should it be "armada-thermal" for the SoC family?
I have document of armada and kirkwood only.
I dont know about Dove. if Dove has same device, we had better change it is a good idea.
Best regards,
Nobuhiro
Signature · 3 lines
Nobuhiro Iwamatsu
iwamatsu at {nigauri.org / debian.org}
GPG ID: 40AD1FA6PATCH 1/2 thermal: Add support for thermal sensor for Kirkwood SoC
In reply to Thomas PetazzoniHi,
Quoted 8 lines · Thomas Petazzoni
Hello,
drivers/thermal/Kconfig config EXYNOS_THERMAL · line 60
Quoted 2 lines · Nobuhiro Iwamatsu
drivers/thermal/Kconfig +2
-0+config KIRKWOOD_THERMAL + tristate "Temperature sensor on Marvel Kirkwood"Marvell
Thanks, I will fix.
Quoted 7 lines
drivers/thermal/kirkwood_thermal.c line 45
Quoted 4 lines
drivers/thermal/kirkwood_thermal.c new file +3
-0+/* Valid check */ +if (!(reg >>THERMAL_VALID_OFFSET ) &THERMAL_VALID_MASK ) { +dev_info (&thermal->device,"Reading temperature is not valid\n" );"Temperature read is not valid" maybe? An native english speaker could say.
I will fix.
Quoted 4 lines
drivers/thermal/kirkwood_thermal.c line 73
Quoted 3 lines
drivers/thermal/kirkwood_thermal.c new file +2
-0+ thermal_dev + =devm_kzalloc (&pdev->dev,sizeof (*thermal_dev),GFP_KERNEL );
Quoted 9 lines
I think the usual coding style is to have the = on the first line.
drivers/thermal/kirkwood_thermal.c line 103
Quoted 4 lines
drivers/thermal/kirkwood_thermal.c new file +4
-0+static int kirkwood_thermal_exit (struct platform_device *pdev) +{ +struct thermal_zone_device *kirkwood_thermal + =platform_get_drvdata (pdev);Ditto.
I will fix.
Quoted 4 lines
drivers/thermal/kirkwood_thermal.c line 112
Quoted 2 lines
drivers/thermal/kirkwood_thermal.c new file +2
-0+static const struct of_device_id kirkwood_thermal_id_table[] = { + { .compatible ="marvel,thermal-kirkwood" },marvel -> marvell
Thanks, I will fix.
Quoted 8 lines
Also, I think it should be marvell,kirkwood-thermal, since most other DT compatible strings that we have for Marvell SoCs are marvell,<soc>-<function>.
Also, the Device Tree binding documentation is missing (even though it is admittedly going to be a very short documentation).
OK, I forgot this.
I will write documentation.
Quoted 8 lines
Thanks!
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
Best regards,
Nobuhiro
Signature · 3 lines
Nobuhiro Iwamatsu
iwamatsu at {nigauri.org / debian.org}
GPG ID: 40AD1FA6