* [PATCH V7 0/6] thermal: bcm2835: add thermal driver @ 2016-09-21 8:23 ` kernel at martin.sperl.org 0 siblings, 0 replies; 30+ messages in thread From: kernel-TqfNSX0MhmxHKSADF0wUEw @ 2016-09-21 8:23 UTC (permalink / raw) To: Zhang Rui, Eduardo Valentin, Rob Herring, Pawel Moll, Mark Rutland, Stephen Warren, Lee Jones, Eric Anholt, Russell King, Florian Fainelli, Catalin Marinas, Will Deacon, Stefan Wahren, linux-pm-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-rpi-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r Cc: Martin Sperl From: Martin Sperl <kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org> Add a thermal driver for the TSENSE device of the bcm2835/6/7 SOC. If the firmware enables the HW, then the configuration is not touched. In case the firmware has not enabled the device, then we try to set it up correctly (which unfortunately can not get tested). It exposes temperature and a critical trip point (using a hardcoded default of 80C or the temperature configured in the control register by the firmware, which reads as 407C currently) The calibrations are (potentially) different for bcm2835, bcm2836 and bcm2837 and can get selected by the compatible property in the device tree. The driver also exposes the registers via debugfs. Possible future enhancements: * the device has the ability to trigger interrupts on reaching the programmed critical temperature. I have no knowledge which interrupt could be responsible for this on the ARM side, so if we get to know which irq it is we can implement that. Instead the driver right now implements polling in 1 second intervals * the device can also reset the HW after the trip point has been reached (also with some delay, so that corrective actions can get taken) - this is currently not enabled by the firmware, but could. * we could define more trip points for THERMAL_TRIP_HOT * make the trip point limits modifiable (ops.set_trip_temp) Note: No support for 32-bit arm bcm2837, as there is no arch/arm/boot/dts/bcm2836.dtsi upstream as of now. 64-bit arm support is not tested Changelog: V1 -> V2: renamed dt-binding documentation file added specific settings depending on compatible added trip point based on register setting up ctrl-register if HW is not enabled by firmware as per recommendation of Eric (untested) check that clock frequency is in range (1.9 - 5MHz - as per comment in clk-bcm2835.c) added driver to multi_v7_defconfig V2 -> V3: made a module in multi_v7_defconfig fixed typo in dt-binding document V3 -> V4: moved driver back to thermal (not using bcm sub-directory) set polling interval to 1second (was 0ms, so interrupt driven) V4 -> V5: use correct compatiblity for different soc versions in dt support ARM64 for bcm2837 in devicetree and defconfig V5 -> V6: incorporated changes recommended by Stefan Wahren V6 -> V7: removed depends on ARCH_BCM2836 || ARCH_BCM2837 in Kconfig Martin Sperl (6): dt: bindings: add thermal device driver for bcm2835 thermal: bcm2835: add thermal driver for bcm2835 soc ARM: bcm2835: dts: add thermal node to device-tree of bcm283x ARM64: bcm2835: dts: add thermal node to device-tree of bcm2837 ARM: bcm2835: add thermal driver to default_config ARM64: bcm2835: add thermal driver to default_config .../bindings/thermal/brcm,bcm2835-thermal.txt | 17 ++ arch/arm/boot/dts/bcm2835.dtsi | 6 + arch/arm/boot/dts/bcm2836.dtsi | 6 + arch/arm/boot/dts/bcm283x.dtsi | 7 + arch/arm/configs/bcm2835_defconfig | 2 + arch/arm64/boot/dts/broadcom/bcm2837.dtsi | 6 + arch/arm64/configs/defconfig | 1 + drivers/thermal/Kconfig | 8 + drivers/thermal/Makefile | 1 + drivers/thermal/bcm2835_thermal.c | 340 +++++++++++++++++++++ 10 files changed, 394 insertions(+) create mode 100644 Documentation/devicetree/bindings/thermal/brcm,bcm2835-thermal.txt create mode 100644 drivers/thermal/bcm2835_thermal.c -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH V7 0/6] thermal: bcm2835: add thermal driver @ 2016-09-21 8:23 ` kernel at martin.sperl.org 0 siblings, 0 replies; 30+ messages in thread From: kernel at martin.sperl.org @ 2016-09-21 8:23 UTC (permalink / raw) To: linux-arm-kernel From: Martin Sperl <kernel@martin.sperl.org> Add a thermal driver for the TSENSE device of the bcm2835/6/7 SOC. If the firmware enables the HW, then the configuration is not touched. In case the firmware has not enabled the device, then we try to set it up correctly (which unfortunately can not get tested). It exposes temperature and a critical trip point (using a hardcoded default of 80C or the temperature configured in the control register by the firmware, which reads as 407C currently) The calibrations are (potentially) different for bcm2835, bcm2836 and bcm2837 and can get selected by the compatible property in the device tree. The driver also exposes the registers via debugfs. Possible future enhancements: * the device has the ability to trigger interrupts on reaching the programmed critical temperature. I have no knowledge which interrupt could be responsible for this on the ARM side, so if we get to know which irq it is we can implement that. Instead the driver right now implements polling in 1 second intervals * the device can also reset the HW after the trip point has been reached (also with some delay, so that corrective actions can get taken) - this is currently not enabled by the firmware, but could. * we could define more trip points for THERMAL_TRIP_HOT * make the trip point limits modifiable (ops.set_trip_temp) Note: No support for 32-bit arm bcm2837, as there is no arch/arm/boot/dts/bcm2836.dtsi upstream as of now. 64-bit arm support is not tested Changelog: V1 -> V2: renamed dt-binding documentation file added specific settings depending on compatible added trip point based on register setting up ctrl-register if HW is not enabled by firmware as per recommendation of Eric (untested) check that clock frequency is in range (1.9 - 5MHz - as per comment in clk-bcm2835.c) added driver to multi_v7_defconfig V2 -> V3: made a module in multi_v7_defconfig fixed typo in dt-binding document V3 -> V4: moved driver back to thermal (not using bcm sub-directory) set polling interval to 1second (was 0ms, so interrupt driven) V4 -> V5: use correct compatiblity for different soc versions in dt support ARM64 for bcm2837 in devicetree and defconfig V5 -> V6: incorporated changes recommended by Stefan Wahren V6 -> V7: removed depends on ARCH_BCM2836 || ARCH_BCM2837 in Kconfig Martin Sperl (6): dt: bindings: add thermal device driver for bcm2835 thermal: bcm2835: add thermal driver for bcm2835 soc ARM: bcm2835: dts: add thermal node to device-tree of bcm283x ARM64: bcm2835: dts: add thermal node to device-tree of bcm2837 ARM: bcm2835: add thermal driver to default_config ARM64: bcm2835: add thermal driver to default_config .../bindings/thermal/brcm,bcm2835-thermal.txt | 17 ++ arch/arm/boot/dts/bcm2835.dtsi | 6 + arch/arm/boot/dts/bcm2836.dtsi | 6 + arch/arm/boot/dts/bcm283x.dtsi | 7 + arch/arm/configs/bcm2835_defconfig | 2 + arch/arm64/boot/dts/broadcom/bcm2837.dtsi | 6 + arch/arm64/configs/defconfig | 1 + drivers/thermal/Kconfig | 8 + drivers/thermal/Makefile | 1 + drivers/thermal/bcm2835_thermal.c | 340 +++++++++++++++++++++ 10 files changed, 394 insertions(+) create mode 100644 Documentation/devicetree/bindings/thermal/brcm,bcm2835-thermal.txt create mode 100644 drivers/thermal/bcm2835_thermal.c -- 2.1.4 ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH V7 1/6] dt: bindings: add thermal device driver for bcm2835 2016-09-21 8:23 ` kernel at martin.sperl.org @ 2016-09-21 8:23 ` kernel at martin.sperl.org -1 siblings, 0 replies; 30+ messages in thread From: kernel @ 2016-09-21 8:23 UTC (permalink / raw) To: Zhang Rui, Eduardo Valentin, Rob Herring, Pawel Moll, Mark Rutland, Stephen Warren, Lee Jones, Eric Anholt, Russell King, Florian Fainelli, Catalin Marinas, Will Deacon, Stefan Wahren, linux-pm, devicetree, linux-rpi-kernel, linux-arm-kernel Cc: Martin Sperl From: Martin Sperl <kernel@martin.sperl.org> Add dt-binding documentation for bcm2835 SOC thermal sensor. Signed-off-by: Martin Sperl <kernel@martin.sperl.org> Acked-by: Eric Anholt <eric@anholt.net> Acked-by: Rob Herring <robh@kernel.org> Changelog: V1 -> V2: renamed file to follow naming conventions V2 -> V3: removed 0x in node name --- .../bindings/thermal/brcm,bcm2835-thermal.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 Documentation/devicetree/bindings/thermal/brcm,bcm2835-thermal.txt diff --git a/Documentation/devicetree/bindings/thermal/brcm,bcm2835-thermal.txt b/Documentation/devicetree/bindings/thermal/brcm,bcm2835-thermal.txt new file mode 100644 index 0000000..474531d --- /dev/null +++ b/Documentation/devicetree/bindings/thermal/brcm,bcm2835-thermal.txt @@ -0,0 +1,17 @@ +Binding for Thermal Sensor driver for BCM2835 SoCs. + +Required parameters: +------------------- + +compatible: should be one of: "brcm,bcm2835-thermal", + "brcm,bcm2836-thermal" or "brcm,bcm2837-thermal" +reg: Address range of the thermal registers. +clocks: Phandle of the clock used by the thermal sensor. + +Example: + +thermal: thermal@7e212000 { + compatible = "brcm,bcm2835-thermal"; + reg = <0x7e212000 0x8>; + clocks = <&clocks BCM2835_CLOCK_TSENS>; +}; -- 2.1.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH V7 1/6] dt: bindings: add thermal device driver for bcm2835 @ 2016-09-21 8:23 ` kernel at martin.sperl.org 0 siblings, 0 replies; 30+ messages in thread From: kernel at martin.sperl.org @ 2016-09-21 8:23 UTC (permalink / raw) To: linux-arm-kernel From: Martin Sperl <kernel@martin.sperl.org> Add dt-binding documentation for bcm2835 SOC thermal sensor. Signed-off-by: Martin Sperl <kernel@martin.sperl.org> Acked-by: Eric Anholt <eric@anholt.net> Acked-by: Rob Herring <robh@kernel.org> Changelog: V1 -> V2: renamed file to follow naming conventions V2 -> V3: removed 0x in node name --- .../bindings/thermal/brcm,bcm2835-thermal.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 Documentation/devicetree/bindings/thermal/brcm,bcm2835-thermal.txt diff --git a/Documentation/devicetree/bindings/thermal/brcm,bcm2835-thermal.txt b/Documentation/devicetree/bindings/thermal/brcm,bcm2835-thermal.txt new file mode 100644 index 0000000..474531d --- /dev/null +++ b/Documentation/devicetree/bindings/thermal/brcm,bcm2835-thermal.txt @@ -0,0 +1,17 @@ +Binding for Thermal Sensor driver for BCM2835 SoCs. + +Required parameters: +------------------- + +compatible: should be one of: "brcm,bcm2835-thermal", + "brcm,bcm2836-thermal" or "brcm,bcm2837-thermal" +reg: Address range of the thermal registers. +clocks: Phandle of the clock used by the thermal sensor. + +Example: + +thermal: thermal at 7e212000 { + compatible = "brcm,bcm2835-thermal"; + reg = <0x7e212000 0x8>; + clocks = <&clocks BCM2835_CLOCK_TSENS>; +}; -- 2.1.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
[parent not found: <1474446227-1147-1-git-send-email-kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org>]
* [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc 2016-09-21 8:23 ` kernel at martin.sperl.org @ 2016-09-21 8:23 ` kernel at martin.sperl.org -1 siblings, 0 replies; 30+ messages in thread From: kernel-TqfNSX0MhmxHKSADF0wUEw @ 2016-09-21 8:23 UTC (permalink / raw) To: Zhang Rui, Eduardo Valentin, Rob Herring, Pawel Moll, Mark Rutland, Stephen Warren, Lee Jones, Eric Anholt, Russell King, Florian Fainelli, Catalin Marinas, Will Deacon, Stefan Wahren, linux-pm-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-rpi-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r Cc: Martin Sperl From: Martin Sperl <kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org> Add basic thermal driver for bcm2835 SOC. This driver currently relies on the firmware setting up the tsense HW block and does not set it up itself. Signed-off-by: Martin Sperl <kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org> Acked-by: Eric Anholt <eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org> Acked-by: Stefan Wahren <stefan.wahren-eS4NqCHxEME@public.gmane.org> ChangeLog: V1 -> V2: added specific settings depending on compatiblity added trip point based on register setting up ctrl-register if HW is not enabled by firmware as per recommendation of Eric (untested) check that clock frequency is in range (1.9 - 5MHz - as per comment in clk-bcm2835.c) V2 -> V4: moved back to thermal (not using bcm sub-directory) set polling interval to 1second (was 0ms, so interrupt driven) V5 -> V6: added correct depends in KConfig removed defined default for RESET_DELAY removed obvious comments clarify HW setup comments if not set up by FW already move clk_prepare_enable to an earlier stage and add error handling clarify warning when TS-clock runs out of recommended range clk_disable_unprepare added in bcm2835_thermal_remove added comment on recommended temperature ranges for SOC V6 -> V7: removed depends on ARCH_BCM2836 || ARCH_BCM2837 in Kconfig --- drivers/thermal/Kconfig | 8 + drivers/thermal/Makefile | 1 + drivers/thermal/bcm2835_thermal.c | 340 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 349 insertions(+) create mode 100644 drivers/thermal/bcm2835_thermal.c diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig index 2d702ca..1bc8b14 100644 --- a/drivers/thermal/Kconfig +++ b/drivers/thermal/Kconfig @@ -399,4 +399,12 @@ config GENERIC_ADC_THERMAL to this driver. This driver reports the temperature by reading ADC channel and converts it to temperature based on lookup table. +config BCM2835_THERMAL + tristate "Thermal sensors on bcm2835 SoC" + depends on ARCH_BCM2835 || COMPILE_TEST + depends on HAS_IOMEM + depends on OF + help + Support for thermal sensors on Broadcom bcm2835 SoCs. + endif diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile index 10b07c1..c26343e 100644 --- a/drivers/thermal/Makefile +++ b/drivers/thermal/Makefile @@ -51,3 +51,4 @@ obj-$(CONFIG_TEGRA_SOCTHERM) += tegra/ obj-$(CONFIG_HISI_THERMAL) += hisi_thermal.o obj-$(CONFIG_MTK_THERMAL) += mtk_thermal.o obj-$(CONFIG_GENERIC_ADC_THERMAL) += thermal-generic-adc.o +obj-$(CONFIG_BCM2835_THERMAL) += bcm2835_thermal.o diff --git a/drivers/thermal/bcm2835_thermal.c b/drivers/thermal/bcm2835_thermal.c new file mode 100644 index 0000000..3468c7b --- /dev/null +++ b/drivers/thermal/bcm2835_thermal.c @@ -0,0 +1,340 @@ +/* + * Driver for Broadcom BCM2835 soc temperature sensor + * + * Copyright (C) 2016 Martin Sperl + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <linux/clk.h> +#include <linux/debugfs.h> +#include <linux/device.h> +#include <linux/err.h> +#include <linux/io.h> +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/of.h> +#include <linux/of_address.h> +#include <linux/of_device.h> +#include <linux/platform_device.h> +#include <linux/thermal.h> + +#define BCM2835_TS_TSENSCTL 0x00 +#define BCM2835_TS_TSENSSTAT 0x04 + +#define BCM2835_TS_TSENSCTL_PRWDW BIT(0) +#define BCM2835_TS_TSENSCTL_RSTB BIT(1) +#define BCM2835_TS_TSENSCTL_CTRL_BITS 3 +#define BCM2835_TS_TSENSCTL_CTRL_SHIFT 2 +#define BCM2835_TS_TSENSCTL_CTRL_MASK \ + GENMASK(BCM2835_TS_TSENSCTL_CTRL_BITS + \ + BCM2835_TS_TSENSCTL_CTRL_SHIFT - 1, \ + BCM2835_TS_TSENSCTL_CTRL_SHIFT) +#define BCM2835_TS_TSENSCTL_CTRL_DEFAULT 1 +#define BCM2835_TS_TSENSCTL_EN_INT BIT(5) +#define BCM2835_TS_TSENSCTL_DIRECT BIT(6) +#define BCM2835_TS_TSENSCTL_CLR_INT BIT(7) +#define BCM2835_TS_TSENSCTL_THOLD_SHIFT 8 +#define BCM2835_TS_TSENSCTL_THOLD_BITS 10 +#define BCM2835_TS_TSENSCTL_THOLD_MASK \ + GENMASK(BCM2835_TS_TSENSCTL_THOLD_BITS + \ + BCM2835_TS_TSENSCTL_THOLD_SHIFT - 1, \ + BCM2835_TS_TSENSCTL_THOLD_SHIFT) +#define BCM2835_TS_TSENSCTL_RSTDELAY_SHIFT 18 +#define BCM2835_TS_TSENSCTL_RSTDELAY_BITS 8 +#define BCM2835_TS_TSENSCTL_REGULEN BIT(26) + +#define BCM2835_TS_TSENSSTAT_DATA_BITS 10 +#define BCM2835_TS_TSENSSTAT_DATA_SHIFT 0 +#define BCM2835_TS_TSENSSTAT_DATA_MASK \ + GENMASK(BCM2835_TS_TSENSSTAT_DATA_BITS + \ + BCM2835_TS_TSENSSTAT_DATA_SHIFT - 1, \ + BCM2835_TS_TSENSSTAT_DATA_SHIFT) +#define BCM2835_TS_TSENSSTAT_VALID BIT(10) +#define BCM2835_TS_TSENSSTAT_INTERRUPT BIT(11) + +struct bcm2835_thermal_info { + int offset; + int slope; + int trip_temp; +}; + +struct bcm2835_thermal_data { + const struct bcm2835_thermal_info *info; + void __iomem *regs; + struct clk *clk; + struct dentry *debugfsdir; +}; + +static int bcm2835_thermal_adc2temp( + const struct bcm2835_thermal_info *info, u32 adc) +{ + return info->offset + (adc * info->slope); +} + +static int bcm2835_thermal_temp2adc( + const struct bcm2835_thermal_info *info, int temp) +{ + temp -= info->offset; + temp /= info->slope; + + if (temp < 0) + temp = 0; + if (temp >= BIT(BCM2835_TS_TSENSSTAT_DATA_BITS)) + temp = BIT(BCM2835_TS_TSENSSTAT_DATA_BITS) - 1; + + return temp; +} + +static int bcm2835_thermal_get_trip_type( + struct thermal_zone_device *tz, int trip, + enum thermal_trip_type *type) +{ + *type = THERMAL_TRIP_CRITICAL; + return 0; +} + +static int bcm2835_thermal_get_trip_temp( + struct thermal_zone_device *tz, int trip, int *temp) +{ + struct bcm2835_thermal_data *data = tz->devdata; + u32 val = readl(data->regs + BCM2835_TS_TSENSCTL); + + /* get the THOLD bits */ + val &= BCM2835_TS_TSENSCTL_THOLD_MASK; + val >>= BCM2835_TS_TSENSCTL_THOLD_SHIFT; + + /* if it is zero then use the info value */ + if (val) + *temp = bcm2835_thermal_adc2temp(data->info, val); + else + *temp = data->info->trip_temp; + + return 0; +} + +static int bcm2835_thermal_get_temp(struct thermal_zone_device *tz, + int *temp) +{ + struct bcm2835_thermal_data *data = tz->devdata; + u32 val = readl(data->regs + BCM2835_TS_TSENSSTAT); + + if (!(val & BCM2835_TS_TSENSSTAT_VALID)) + return -EIO; + + val &= BCM2835_TS_TSENSSTAT_DATA_MASK; + + *temp = bcm2835_thermal_adc2temp(data->info, val); + + return 0; +} + +static const struct debugfs_reg32 bcm2835_thermal_regs[] = { + { + .name = "ctl", + .offset = 0 + }, + { + .name = "stat", + .offset = 4 + } +}; + +static void bcm2835_thermal_debugfs(struct platform_device *pdev) +{ + struct thermal_zone_device *tz = platform_get_drvdata(pdev); + struct bcm2835_thermal_data *data = tz->devdata; + struct debugfs_regset32 *regset; + + data->debugfsdir = debugfs_create_dir("bcm2835_thermal", NULL); + if (!data->debugfsdir) + return; + + regset = devm_kzalloc(&pdev->dev, sizeof(*regset), GFP_KERNEL); + if (!regset) + return; + + regset->regs = bcm2835_thermal_regs; + regset->nregs = ARRAY_SIZE(bcm2835_thermal_regs); + regset->base = data->regs; + + debugfs_create_regset32("regset", S_IRUGO, + data->debugfsdir, regset); +} + +static struct thermal_zone_device_ops bcm2835_thermal_ops = { + .get_temp = bcm2835_thermal_get_temp, + .get_trip_temp = bcm2835_thermal_get_trip_temp, + .get_trip_type = bcm2835_thermal_get_trip_type, +}; + +static const struct of_device_id bcm2835_thermal_of_match_table[]; +static int bcm2835_thermal_probe(struct platform_device *pdev) +{ + const struct of_device_id *match; + struct thermal_zone_device *tz; + struct bcm2835_thermal_data *data; + struct resource *res; + int err; + u32 val; + unsigned long rate; + + data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); + if (!data) + return -ENOMEM; + + match = of_match_device(bcm2835_thermal_of_match_table, + &pdev->dev); + if (!match) + return -EINVAL; + data->info = match->data; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + data->regs = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(data->regs)) { + err = PTR_ERR(data->regs); + dev_err(&pdev->dev, "Could not get registers: %d\n", err); + return err; + } + + data->clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(data->clk)) { + err = PTR_ERR(data->clk); + if (err != -EPROBE_DEFER) + dev_err(&pdev->dev, "Could not get clk: %d\n", err); + return err; + } + + err = clk_prepare_enable(data->clk); + if (err) + return err; + + rate = clk_get_rate(data->clk); + if ((rate < 1920000) || (rate > 5000000)) + dev_warn(&pdev->dev, + "Clock %pCn running at %pCr Hz is outside of the recommended range: 1.92 to 5MHz\n", + data->clk, data->clk); + + /* + * right now the FW does set up the HW-block, so we are not + * touching the configuration registers. + * But if the HW is not enabled, then set it up + * using "sane" values used by the firmware right now. + */ + val = readl(data->regs + BCM2835_TS_TSENSCTL); + if (!(val & BCM2835_TS_TSENSCTL_RSTB)) { + /* the basic required flags */ + val = (BCM2835_TS_TSENSCTL_CTRL_DEFAULT << + BCM2835_TS_TSENSCTL_CTRL_SHIFT) | + BCM2835_TS_TSENSCTL_REGULEN; + + /* + * reset delay using the current firmware value of 14 + * - units of time are unknown. + */ + val |= (14 << BCM2835_TS_TSENSCTL_RSTDELAY_SHIFT); + + /* trip_adc value from info */ + val |= bcm2835_thermal_temp2adc(data->info, + data->info->trip_temp) << + BCM2835_TS_TSENSCTL_THOLD_SHIFT; + + /* write the value back to the register as 2 steps */ + writel(val, data->regs + BCM2835_TS_TSENSCTL); + val |= BCM2835_TS_TSENSCTL_RSTB; + writel(val, data->regs + BCM2835_TS_TSENSCTL); + } + + /* register thermal zone with 1 trip point an 1s polling */ + tz = thermal_zone_device_register("bcm2835_thermal", + 1, 0, data, + &bcm2835_thermal_ops, + NULL, + 0, 1000); + if (IS_ERR(tz)) { + clk_disable_unprepare(data->clk); + err = PTR_ERR(tz); + dev_err(&pdev->dev, + "Failed to register the thermal device: %d\n", + err); + return err; + } + + platform_set_drvdata(pdev, tz); + + bcm2835_thermal_debugfs(pdev); + + return 0; +} + +static int bcm2835_thermal_remove(struct platform_device *pdev) +{ + struct thermal_zone_device *tz = platform_get_drvdata(pdev); + struct bcm2835_thermal_data *data = tz->devdata; + + debugfs_remove_recursive(data->debugfsdir); + thermal_zone_device_unregister(tz); + clk_disable_unprepare(data->clk); + + return 0; +} + +/* + * Note: as per Raspberry Foundation FAQ + * (https://www.raspberrypi.org/help/faqs/#performanceOperatingTemperature) + * the recommended temperature range for the SOC -40C to +85C + * so the trip limit is set to 80C. + * this applies to all the BCM283X SOC + */ + +static const struct of_device_id bcm2835_thermal_of_match_table[] = { + { + .compatible = "brcm,bcm2835-thermal", + .data = &(struct bcm2835_thermal_info) { + .offset = 407000, + .slope = -538, + .trip_temp = 80000 + } + }, + { + .compatible = "brcm,bcm2836-thermal", + .data = &(struct bcm2835_thermal_info) { + .offset = 407000, + .slope = -538, + .trip_temp = 80000 + } + }, + { + .compatible = "brcm,bcm2837-thermal", + .data = &(struct bcm2835_thermal_info) { + /* the bcm2837 needs adjustment of +5C */ + .offset = 407000 + 5000, + .slope = -538, + .trip_temp = 80000 + } + }, + {}, +}; +MODULE_DEVICE_TABLE(of, bcm2835_thermal_of_match_table); + +static struct platform_driver bcm2835_thermal_driver = { + .probe = bcm2835_thermal_probe, + .remove = bcm2835_thermal_remove, + .driver = { + .name = "bcm2835_thermal", + .of_match_table = bcm2835_thermal_of_match_table, + }, +}; +module_platform_driver(bcm2835_thermal_driver); + +MODULE_AUTHOR("Martin Sperl"); +MODULE_DESCRIPTION("Thermal driver for bcm2835 chip"); +MODULE_LICENSE("GPL"); -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc @ 2016-09-21 8:23 ` kernel at martin.sperl.org 0 siblings, 0 replies; 30+ messages in thread From: kernel at martin.sperl.org @ 2016-09-21 8:23 UTC (permalink / raw) To: linux-arm-kernel From: Martin Sperl <kernel@martin.sperl.org> Add basic thermal driver for bcm2835 SOC. This driver currently relies on the firmware setting up the tsense HW block and does not set it up itself. Signed-off-by: Martin Sperl <kernel@martin.sperl.org> Acked-by: Eric Anholt <eric@anholt.net> Acked-by: Stefan Wahren <stefan.wahren@i2se.com> ChangeLog: V1 -> V2: added specific settings depending on compatiblity added trip point based on register setting up ctrl-register if HW is not enabled by firmware as per recommendation of Eric (untested) check that clock frequency is in range (1.9 - 5MHz - as per comment in clk-bcm2835.c) V2 -> V4: moved back to thermal (not using bcm sub-directory) set polling interval to 1second (was 0ms, so interrupt driven) V5 -> V6: added correct depends in KConfig removed defined default for RESET_DELAY removed obvious comments clarify HW setup comments if not set up by FW already move clk_prepare_enable to an earlier stage and add error handling clarify warning when TS-clock runs out of recommended range clk_disable_unprepare added in bcm2835_thermal_remove added comment on recommended temperature ranges for SOC V6 -> V7: removed depends on ARCH_BCM2836 || ARCH_BCM2837 in Kconfig --- drivers/thermal/Kconfig | 8 + drivers/thermal/Makefile | 1 + drivers/thermal/bcm2835_thermal.c | 340 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 349 insertions(+) create mode 100644 drivers/thermal/bcm2835_thermal.c diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig index 2d702ca..1bc8b14 100644 --- a/drivers/thermal/Kconfig +++ b/drivers/thermal/Kconfig @@ -399,4 +399,12 @@ config GENERIC_ADC_THERMAL to this driver. This driver reports the temperature by reading ADC channel and converts it to temperature based on lookup table. +config BCM2835_THERMAL + tristate "Thermal sensors on bcm2835 SoC" + depends on ARCH_BCM2835 || COMPILE_TEST + depends on HAS_IOMEM + depends on OF + help + Support for thermal sensors on Broadcom bcm2835 SoCs. + endif diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile index 10b07c1..c26343e 100644 --- a/drivers/thermal/Makefile +++ b/drivers/thermal/Makefile @@ -51,3 +51,4 @@ obj-$(CONFIG_TEGRA_SOCTHERM) += tegra/ obj-$(CONFIG_HISI_THERMAL) += hisi_thermal.o obj-$(CONFIG_MTK_THERMAL) += mtk_thermal.o obj-$(CONFIG_GENERIC_ADC_THERMAL) += thermal-generic-adc.o +obj-$(CONFIG_BCM2835_THERMAL) += bcm2835_thermal.o diff --git a/drivers/thermal/bcm2835_thermal.c b/drivers/thermal/bcm2835_thermal.c new file mode 100644 index 0000000..3468c7b --- /dev/null +++ b/drivers/thermal/bcm2835_thermal.c @@ -0,0 +1,340 @@ +/* + * Driver for Broadcom BCM2835 soc temperature sensor + * + * Copyright (C) 2016 Martin Sperl + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <linux/clk.h> +#include <linux/debugfs.h> +#include <linux/device.h> +#include <linux/err.h> +#include <linux/io.h> +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/of.h> +#include <linux/of_address.h> +#include <linux/of_device.h> +#include <linux/platform_device.h> +#include <linux/thermal.h> + +#define BCM2835_TS_TSENSCTL 0x00 +#define BCM2835_TS_TSENSSTAT 0x04 + +#define BCM2835_TS_TSENSCTL_PRWDW BIT(0) +#define BCM2835_TS_TSENSCTL_RSTB BIT(1) +#define BCM2835_TS_TSENSCTL_CTRL_BITS 3 +#define BCM2835_TS_TSENSCTL_CTRL_SHIFT 2 +#define BCM2835_TS_TSENSCTL_CTRL_MASK \ + GENMASK(BCM2835_TS_TSENSCTL_CTRL_BITS + \ + BCM2835_TS_TSENSCTL_CTRL_SHIFT - 1, \ + BCM2835_TS_TSENSCTL_CTRL_SHIFT) +#define BCM2835_TS_TSENSCTL_CTRL_DEFAULT 1 +#define BCM2835_TS_TSENSCTL_EN_INT BIT(5) +#define BCM2835_TS_TSENSCTL_DIRECT BIT(6) +#define BCM2835_TS_TSENSCTL_CLR_INT BIT(7) +#define BCM2835_TS_TSENSCTL_THOLD_SHIFT 8 +#define BCM2835_TS_TSENSCTL_THOLD_BITS 10 +#define BCM2835_TS_TSENSCTL_THOLD_MASK \ + GENMASK(BCM2835_TS_TSENSCTL_THOLD_BITS + \ + BCM2835_TS_TSENSCTL_THOLD_SHIFT - 1, \ + BCM2835_TS_TSENSCTL_THOLD_SHIFT) +#define BCM2835_TS_TSENSCTL_RSTDELAY_SHIFT 18 +#define BCM2835_TS_TSENSCTL_RSTDELAY_BITS 8 +#define BCM2835_TS_TSENSCTL_REGULEN BIT(26) + +#define BCM2835_TS_TSENSSTAT_DATA_BITS 10 +#define BCM2835_TS_TSENSSTAT_DATA_SHIFT 0 +#define BCM2835_TS_TSENSSTAT_DATA_MASK \ + GENMASK(BCM2835_TS_TSENSSTAT_DATA_BITS + \ + BCM2835_TS_TSENSSTAT_DATA_SHIFT - 1, \ + BCM2835_TS_TSENSSTAT_DATA_SHIFT) +#define BCM2835_TS_TSENSSTAT_VALID BIT(10) +#define BCM2835_TS_TSENSSTAT_INTERRUPT BIT(11) + +struct bcm2835_thermal_info { + int offset; + int slope; + int trip_temp; +}; + +struct bcm2835_thermal_data { + const struct bcm2835_thermal_info *info; + void __iomem *regs; + struct clk *clk; + struct dentry *debugfsdir; +}; + +static int bcm2835_thermal_adc2temp( + const struct bcm2835_thermal_info *info, u32 adc) +{ + return info->offset + (adc * info->slope); +} + +static int bcm2835_thermal_temp2adc( + const struct bcm2835_thermal_info *info, int temp) +{ + temp -= info->offset; + temp /= info->slope; + + if (temp < 0) + temp = 0; + if (temp >= BIT(BCM2835_TS_TSENSSTAT_DATA_BITS)) + temp = BIT(BCM2835_TS_TSENSSTAT_DATA_BITS) - 1; + + return temp; +} + +static int bcm2835_thermal_get_trip_type( + struct thermal_zone_device *tz, int trip, + enum thermal_trip_type *type) +{ + *type = THERMAL_TRIP_CRITICAL; + return 0; +} + +static int bcm2835_thermal_get_trip_temp( + struct thermal_zone_device *tz, int trip, int *temp) +{ + struct bcm2835_thermal_data *data = tz->devdata; + u32 val = readl(data->regs + BCM2835_TS_TSENSCTL); + + /* get the THOLD bits */ + val &= BCM2835_TS_TSENSCTL_THOLD_MASK; + val >>= BCM2835_TS_TSENSCTL_THOLD_SHIFT; + + /* if it is zero then use the info value */ + if (val) + *temp = bcm2835_thermal_adc2temp(data->info, val); + else + *temp = data->info->trip_temp; + + return 0; +} + +static int bcm2835_thermal_get_temp(struct thermal_zone_device *tz, + int *temp) +{ + struct bcm2835_thermal_data *data = tz->devdata; + u32 val = readl(data->regs + BCM2835_TS_TSENSSTAT); + + if (!(val & BCM2835_TS_TSENSSTAT_VALID)) + return -EIO; + + val &= BCM2835_TS_TSENSSTAT_DATA_MASK; + + *temp = bcm2835_thermal_adc2temp(data->info, val); + + return 0; +} + +static const struct debugfs_reg32 bcm2835_thermal_regs[] = { + { + .name = "ctl", + .offset = 0 + }, + { + .name = "stat", + .offset = 4 + } +}; + +static void bcm2835_thermal_debugfs(struct platform_device *pdev) +{ + struct thermal_zone_device *tz = platform_get_drvdata(pdev); + struct bcm2835_thermal_data *data = tz->devdata; + struct debugfs_regset32 *regset; + + data->debugfsdir = debugfs_create_dir("bcm2835_thermal", NULL); + if (!data->debugfsdir) + return; + + regset = devm_kzalloc(&pdev->dev, sizeof(*regset), GFP_KERNEL); + if (!regset) + return; + + regset->regs = bcm2835_thermal_regs; + regset->nregs = ARRAY_SIZE(bcm2835_thermal_regs); + regset->base = data->regs; + + debugfs_create_regset32("regset", S_IRUGO, + data->debugfsdir, regset); +} + +static struct thermal_zone_device_ops bcm2835_thermal_ops = { + .get_temp = bcm2835_thermal_get_temp, + .get_trip_temp = bcm2835_thermal_get_trip_temp, + .get_trip_type = bcm2835_thermal_get_trip_type, +}; + +static const struct of_device_id bcm2835_thermal_of_match_table[]; +static int bcm2835_thermal_probe(struct platform_device *pdev) +{ + const struct of_device_id *match; + struct thermal_zone_device *tz; + struct bcm2835_thermal_data *data; + struct resource *res; + int err; + u32 val; + unsigned long rate; + + data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); + if (!data) + return -ENOMEM; + + match = of_match_device(bcm2835_thermal_of_match_table, + &pdev->dev); + if (!match) + return -EINVAL; + data->info = match->data; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + data->regs = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(data->regs)) { + err = PTR_ERR(data->regs); + dev_err(&pdev->dev, "Could not get registers: %d\n", err); + return err; + } + + data->clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(data->clk)) { + err = PTR_ERR(data->clk); + if (err != -EPROBE_DEFER) + dev_err(&pdev->dev, "Could not get clk: %d\n", err); + return err; + } + + err = clk_prepare_enable(data->clk); + if (err) + return err; + + rate = clk_get_rate(data->clk); + if ((rate < 1920000) || (rate > 5000000)) + dev_warn(&pdev->dev, + "Clock %pCn running at %pCr Hz is outside of the recommended range: 1.92 to 5MHz\n", + data->clk, data->clk); + + /* + * right now the FW does set up the HW-block, so we are not + * touching the configuration registers. + * But if the HW is not enabled, then set it up + * using "sane" values used by the firmware right now. + */ + val = readl(data->regs + BCM2835_TS_TSENSCTL); + if (!(val & BCM2835_TS_TSENSCTL_RSTB)) { + /* the basic required flags */ + val = (BCM2835_TS_TSENSCTL_CTRL_DEFAULT << + BCM2835_TS_TSENSCTL_CTRL_SHIFT) | + BCM2835_TS_TSENSCTL_REGULEN; + + /* + * reset delay using the current firmware value of 14 + * - units of time are unknown. + */ + val |= (14 << BCM2835_TS_TSENSCTL_RSTDELAY_SHIFT); + + /* trip_adc value from info */ + val |= bcm2835_thermal_temp2adc(data->info, + data->info->trip_temp) << + BCM2835_TS_TSENSCTL_THOLD_SHIFT; + + /* write the value back to the register as 2 steps */ + writel(val, data->regs + BCM2835_TS_TSENSCTL); + val |= BCM2835_TS_TSENSCTL_RSTB; + writel(val, data->regs + BCM2835_TS_TSENSCTL); + } + + /* register thermal zone with 1 trip point an 1s polling */ + tz = thermal_zone_device_register("bcm2835_thermal", + 1, 0, data, + &bcm2835_thermal_ops, + NULL, + 0, 1000); + if (IS_ERR(tz)) { + clk_disable_unprepare(data->clk); + err = PTR_ERR(tz); + dev_err(&pdev->dev, + "Failed to register the thermal device: %d\n", + err); + return err; + } + + platform_set_drvdata(pdev, tz); + + bcm2835_thermal_debugfs(pdev); + + return 0; +} + +static int bcm2835_thermal_remove(struct platform_device *pdev) +{ + struct thermal_zone_device *tz = platform_get_drvdata(pdev); + struct bcm2835_thermal_data *data = tz->devdata; + + debugfs_remove_recursive(data->debugfsdir); + thermal_zone_device_unregister(tz); + clk_disable_unprepare(data->clk); + + return 0; +} + +/* + * Note: as per Raspberry Foundation FAQ + * (https://www.raspberrypi.org/help/faqs/#performanceOperatingTemperature) + * the recommended temperature range for the SOC -40C to +85C + * so the trip limit is set to 80C. + * this applies to all the BCM283X SOC + */ + +static const struct of_device_id bcm2835_thermal_of_match_table[] = { + { + .compatible = "brcm,bcm2835-thermal", + .data = &(struct bcm2835_thermal_info) { + .offset = 407000, + .slope = -538, + .trip_temp = 80000 + } + }, + { + .compatible = "brcm,bcm2836-thermal", + .data = &(struct bcm2835_thermal_info) { + .offset = 407000, + .slope = -538, + .trip_temp = 80000 + } + }, + { + .compatible = "brcm,bcm2837-thermal", + .data = &(struct bcm2835_thermal_info) { + /* the bcm2837 needs adjustment of +5C */ + .offset = 407000 + 5000, + .slope = -538, + .trip_temp = 80000 + } + }, + {}, +}; +MODULE_DEVICE_TABLE(of, bcm2835_thermal_of_match_table); + +static struct platform_driver bcm2835_thermal_driver = { + .probe = bcm2835_thermal_probe, + .remove = bcm2835_thermal_remove, + .driver = { + .name = "bcm2835_thermal", + .of_match_table = bcm2835_thermal_of_match_table, + }, +}; +module_platform_driver(bcm2835_thermal_driver); + +MODULE_AUTHOR("Martin Sperl"); +MODULE_DESCRIPTION("Thermal driver for bcm2835 chip"); +MODULE_LICENSE("GPL"); -- 2.1.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc 2016-09-21 8:23 ` kernel at martin.sperl.org @ 2016-09-28 21:10 ` Eric Anholt -1 siblings, 0 replies; 30+ messages in thread From: Eric Anholt @ 2016-09-28 21:10 UTC (permalink / raw) To: Zhang Rui, Eduardo Valentin, Rob Herring, Pawel Moll, Mark Rutland, Stephen Warren, Lee Jones, Russell King, Florian Fainelli, Catalin Marinas, Will Deacon, Stefan Wahren, linux-pm, devicetree, linux-rpi-kernel, linux-arm-kernel Cc: Martin Sperl [-- Attachment #1: Type: text/plain, Size: 468 bytes --] kernel@martin.sperl.org writes: > From: Martin Sperl <kernel@martin.sperl.org> > > Add basic thermal driver for bcm2835 SOC. > > This driver currently relies on the firmware setting up the > tsense HW block and does not set it up itself. > > Signed-off-by: Martin Sperl <kernel@martin.sperl.org> > Acked-by: Eric Anholt <eric@anholt.net> > Acked-by: Stefan Wahren <stefan.wahren@i2se.com> What's the status of merging this one? I'd like to merge the other patches. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 800 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc @ 2016-09-28 21:10 ` Eric Anholt 0 siblings, 0 replies; 30+ messages in thread From: Eric Anholt @ 2016-09-28 21:10 UTC (permalink / raw) To: linux-arm-kernel kernel at martin.sperl.org writes: > From: Martin Sperl <kernel@martin.sperl.org> > > Add basic thermal driver for bcm2835 SOC. > > This driver currently relies on the firmware setting up the > tsense HW block and does not set it up itself. > > Signed-off-by: Martin Sperl <kernel@martin.sperl.org> > Acked-by: Eric Anholt <eric@anholt.net> > Acked-by: Stefan Wahren <stefan.wahren@i2se.com> What's the status of merging this one? I'd like to merge the other patches. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 800 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160928/23e2792a/attachment.sig> ^ permalink raw reply [flat|nested] 30+ messages in thread
[parent not found: <87twczg27x.fsf-omZaPlIz5HhaEpDpdNBo/KxOck334EZe@public.gmane.org>]
* Re: [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc 2016-09-28 21:10 ` Eric Anholt @ 2016-10-20 18:57 ` Stefan Wahren -1 siblings, 0 replies; 30+ messages in thread From: Stefan Wahren @ 2016-10-20 18:57 UTC (permalink / raw) To: Zhang Rui, Eduardo Valentin Cc: Lee Jones, Will Deacon, kernel-TqfNSX0MhmxHKSADF0wUEw, Eric Anholt, Stephen Warren, Pawel Moll, Rob Herring, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Mark Rutland, Catalin Marinas, linux-pm-u79uwXL29TY76Z2rM5mHXA, Russell King, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-rpi-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Florian Fainelli > Eric Anholt <eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org> hat am 28. September 2016 um 23:10 geschrieben: > > > kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org writes: > > > From: Martin Sperl <kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org> > > > > Add basic thermal driver for bcm2835 SOC. > > > > This driver currently relies on the firmware setting up the > > tsense HW block and does not set it up itself. > > > > Signed-off-by: Martin Sperl <kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org> > > Acked-by: Eric Anholt <eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org> > > Acked-by: Stefan Wahren <stefan.wahren-eS4NqCHxEME@public.gmane.org> > > What's the status of merging this one? I'd like to merge the other > patches. gently ping ... -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc @ 2016-10-20 18:57 ` Stefan Wahren 0 siblings, 0 replies; 30+ messages in thread From: Stefan Wahren @ 2016-10-20 18:57 UTC (permalink / raw) To: linux-arm-kernel > Eric Anholt <eric@anholt.net> hat am 28. September 2016 um 23:10 geschrieben: > > > kernel at martin.sperl.org writes: > > > From: Martin Sperl <kernel@martin.sperl.org> > > > > Add basic thermal driver for bcm2835 SOC. > > > > This driver currently relies on the firmware setting up the > > tsense HW block and does not set it up itself. > > > > Signed-off-by: Martin Sperl <kernel@martin.sperl.org> > > Acked-by: Eric Anholt <eric@anholt.net> > > Acked-by: Stefan Wahren <stefan.wahren@i2se.com> > > What's the status of merging this one? I'd like to merge the other > patches. gently ping ... ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc 2016-09-28 21:10 ` Eric Anholt @ 2016-10-24 16:21 ` Stefan Wahren -1 siblings, 0 replies; 30+ messages in thread From: Stefan Wahren @ 2016-10-24 16:21 UTC (permalink / raw) To: kernel Cc: Mark Rutland, devicetree, Florian Fainelli, Russell King, Pawel Moll, Stephen Warren, Catalin Marinas, linux-pm, Lee Jones, Will Deacon, Eduardo Valentin, Eric Anholt, Rob Herring, linux-rpi-kernel, Zhang Rui, linux-arm-kernel Hi Martin, Am 28.09.2016 um 23:10 schrieb Eric Anholt: > kernel@martin.sperl.org writes: > >> From: Martin Sperl <kernel@martin.sperl.org> >> >> Add basic thermal driver for bcm2835 SOC. >> >> This driver currently relies on the firmware setting up the >> tsense HW block and does not set it up itself. >> >> Signed-off-by: Martin Sperl <kernel@martin.sperl.org> >> Acked-by: Eric Anholt <eric@anholt.net> >> Acked-by: Stefan Wahren <stefan.wahren@i2se.com> > What's the status of merging this one? I'd like to merge the other > patches. i think it's necessary to rebase the whole series. Maybe we could get it into 4.10. Stefan ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc @ 2016-10-24 16:21 ` Stefan Wahren 0 siblings, 0 replies; 30+ messages in thread From: Stefan Wahren @ 2016-10-24 16:21 UTC (permalink / raw) To: linux-arm-kernel Hi Martin, Am 28.09.2016 um 23:10 schrieb Eric Anholt: > kernel at martin.sperl.org writes: > >> From: Martin Sperl <kernel@martin.sperl.org> >> >> Add basic thermal driver for bcm2835 SOC. >> >> This driver currently relies on the firmware setting up the >> tsense HW block and does not set it up itself. >> >> Signed-off-by: Martin Sperl <kernel@martin.sperl.org> >> Acked-by: Eric Anholt <eric@anholt.net> >> Acked-by: Stefan Wahren <stefan.wahren@i2se.com> > What's the status of merging this one? I'd like to merge the other > patches. i think it's necessary to rebase the whole series. Maybe we could get it into 4.10. Stefan ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc 2016-10-24 16:21 ` Stefan Wahren @ 2016-10-24 16:38 ` Eric Anholt -1 siblings, 0 replies; 30+ messages in thread From: Eric Anholt @ 2016-10-24 16:38 UTC (permalink / raw) To: Stefan Wahren, kernel Cc: Zhang Rui, Eduardo Valentin, Rob Herring, Pawel Moll, Mark Rutland, Stephen Warren, Lee Jones, Russell King, Florian Fainelli, Catalin Marinas, Will Deacon, linux-pm, devicetree, linux-rpi-kernel, linux-arm-kernel [-- Attachment #1: Type: text/plain, Size: 831 bytes --] Stefan Wahren <stefan.wahren@i2se.com> writes: > Hi Martin, > > Am 28.09.2016 um 23:10 schrieb Eric Anholt: >> kernel@martin.sperl.org writes: >> >>> From: Martin Sperl <kernel@martin.sperl.org> >>> >>> Add basic thermal driver for bcm2835 SOC. >>> >>> This driver currently relies on the firmware setting up the >>> tsense HW block and does not set it up itself. >>> >>> Signed-off-by: Martin Sperl <kernel@martin.sperl.org> >>> Acked-by: Eric Anholt <eric@anholt.net> >>> Acked-by: Stefan Wahren <stefan.wahren@i2se.com> >> What's the status of merging this one? I'd like to merge the other >> patches. > > i think it's necessary to rebase the whole series. Maybe we could get it > into 4.10. Why would it need to be rebased? The status, as far as I know, is that we're still waiting for the subsystem maintainer to respond. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 800 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc @ 2016-10-24 16:38 ` Eric Anholt 0 siblings, 0 replies; 30+ messages in thread From: Eric Anholt @ 2016-10-24 16:38 UTC (permalink / raw) To: linux-arm-kernel Stefan Wahren <stefan.wahren@i2se.com> writes: > Hi Martin, > > Am 28.09.2016 um 23:10 schrieb Eric Anholt: >> kernel at martin.sperl.org writes: >> >>> From: Martin Sperl <kernel@martin.sperl.org> >>> >>> Add basic thermal driver for bcm2835 SOC. >>> >>> This driver currently relies on the firmware setting up the >>> tsense HW block and does not set it up itself. >>> >>> Signed-off-by: Martin Sperl <kernel@martin.sperl.org> >>> Acked-by: Eric Anholt <eric@anholt.net> >>> Acked-by: Stefan Wahren <stefan.wahren@i2se.com> >> What's the status of merging this one? I'd like to merge the other >> patches. > > i think it's necessary to rebase the whole series. Maybe we could get it > into 4.10. Why would it need to be rebased? The status, as far as I know, is that we're still waiting for the subsystem maintainer to respond. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 800 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161024/5f37774f/attachment.sig> ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc 2016-10-24 16:38 ` Eric Anholt @ 2016-10-24 18:25 ` Stefan Wahren -1 siblings, 0 replies; 30+ messages in thread From: Stefan Wahren @ 2016-10-24 18:25 UTC (permalink / raw) To: kernel, Eric Anholt Cc: Will Deacon, Lee Jones, Pawel Moll, Rob Herring, linux-arm-kernel, linux-pm, Eduardo Valentin, Russell King, Zhang Rui, Catalin Marinas, Stephen Warren, Mark Rutland, Florian Fainelli, linux-rpi-kernel, devicetree > Eric Anholt <eric@anholt.net> hat am 24. Oktober 2016 um 18:38 geschrieben: > > > Stefan Wahren <stefan.wahren@i2se.com> writes: > > > Hi Martin, > > > > Am 28.09.2016 um 23:10 schrieb Eric Anholt: > >> kernel@martin.sperl.org writes: > >> > >>> From: Martin Sperl <kernel@martin.sperl.org> > >>> > >>> Add basic thermal driver for bcm2835 SOC. > >>> > >>> This driver currently relies on the firmware setting up the > >>> tsense HW block and does not set it up itself. > >>> > >>> Signed-off-by: Martin Sperl <kernel@martin.sperl.org> > >>> Acked-by: Eric Anholt <eric@anholt.net> > >>> Acked-by: Stefan Wahren <stefan.wahren@i2se.com> > >> What's the status of merging this one? I'd like to merge the other > >> patches. > > > > i think it's necessary to rebase the whole series. Maybe we could get it > > into 4.10. > > Why would it need to be rebased? The status, as far as I know, is that > we're still waiting for the subsystem maintainer to respond. Since at least this patch won't apply anymore, but feedback from maintainer is still good :-) Sorry for this impatience, but i'm afraid that we possibly miss 4.10. ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc @ 2016-10-24 18:25 ` Stefan Wahren 0 siblings, 0 replies; 30+ messages in thread From: Stefan Wahren @ 2016-10-24 18:25 UTC (permalink / raw) To: linux-arm-kernel > Eric Anholt <eric@anholt.net> hat am 24. Oktober 2016 um 18:38 geschrieben: > > > Stefan Wahren <stefan.wahren@i2se.com> writes: > > > Hi Martin, > > > > Am 28.09.2016 um 23:10 schrieb Eric Anholt: > >> kernel at martin.sperl.org writes: > >> > >>> From: Martin Sperl <kernel@martin.sperl.org> > >>> > >>> Add basic thermal driver for bcm2835 SOC. > >>> > >>> This driver currently relies on the firmware setting up the > >>> tsense HW block and does not set it up itself. > >>> > >>> Signed-off-by: Martin Sperl <kernel@martin.sperl.org> > >>> Acked-by: Eric Anholt <eric@anholt.net> > >>> Acked-by: Stefan Wahren <stefan.wahren@i2se.com> > >> What's the status of merging this one? I'd like to merge the other > >> patches. > > > > i think it's necessary to rebase the whole series. Maybe we could get it > > into 4.10. > > Why would it need to be rebased? The status, as far as I know, is that > we're still waiting for the subsystem maintainer to respond. Since at least this patch won't apply anymore, but feedback from maintainer is still good :-) Sorry for this impatience, but i'm afraid that we possibly miss 4.10. ^ permalink raw reply [flat|nested] 30+ messages in thread
[parent not found: <1190898538.120930.02d69662-0b1a-447d-9c29-782aec7a1189.open-xchange-7tX72C7vayboQLBSYMtkGA@public.gmane.org>]
* Re: [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc 2016-10-24 18:25 ` Stefan Wahren @ 2016-10-25 2:47 ` Zhang Rui -1 siblings, 0 replies; 30+ messages in thread From: Zhang Rui @ 2016-10-25 2:47 UTC (permalink / raw) To: Stefan Wahren, kernel-TqfNSX0MhmxHKSADF0wUEw, Eric Anholt Cc: Will Deacon, Lee Jones, Pawel Moll, Rob Herring, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-pm-u79uwXL29TY76Z2rM5mHXA, Eduardo Valentin, Russell King, Catalin Marinas, Stephen Warren, Mark Rutland, Florian Fainelli, linux-rpi-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree-u79uwXL29TY76Z2rM5mHXA On Mon, 2016-10-24 at 20:25 +0200, Stefan Wahren wrote: > > > > Eric Anholt <eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org> hat am 24. Oktober 2016 um 18:38 > > geschrieben: > > > > > > Stefan Wahren <stefan.wahren-eS4NqCHxEME@public.gmane.org> writes: > > > > > > > > Hi Martin, > > > > > > Am 28.09.2016 um 23:10 schrieb Eric Anholt: > > > > > > > > kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org writes: > > > > > > > > > > > > > > From: Martin Sperl <kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org> > > > > > > > > > > Add basic thermal driver for bcm2835 SOC. > > > > > > > > > > This driver currently relies on the firmware setting up the > > > > > tsense HW block and does not set it up itself. > > > > > > > > > > Signed-off-by: Martin Sperl <kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org> > > > > > Acked-by: Eric Anholt <eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org> > > > > > Acked-by: Stefan Wahren <stefan.wahren-eS4NqCHxEME@public.gmane.org> > > > > What's the status of merging this one? I'd like to merge the > > > > other > > > > patches. > > > i think it's necessary to rebase the whole series. Maybe we could > > > get it > > > into 4.10. > > Why would it need to be rebased? The status, as far as I know, is > > that > > we're still waiting for the subsystem maintainer to respond. > Since at least this patch won't apply anymore, but feedback from > maintainer is > still good :-) > > Sorry for this impatience, but i'm afraid that we possibly miss 4.10. Eduardo, any comments on this patchset? thanks, rui -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc @ 2016-10-25 2:47 ` Zhang Rui 0 siblings, 0 replies; 30+ messages in thread From: Zhang Rui @ 2016-10-25 2:47 UTC (permalink / raw) To: linux-arm-kernel On Mon, 2016-10-24 at 20:25 +0200, Stefan Wahren wrote: > > > > Eric Anholt <eric@anholt.net> hat am 24. Oktober 2016 um 18:38 > > geschrieben: > > > > > > Stefan Wahren <stefan.wahren@i2se.com> writes: > > > > > > > > Hi Martin, > > > > > > Am 28.09.2016 um 23:10 schrieb Eric Anholt: > > > > > > > > kernel at martin.sperl.org writes: > > > > > > > > > > > > > > From: Martin Sperl <kernel@martin.sperl.org> > > > > > > > > > > Add basic thermal driver for bcm2835 SOC. > > > > > > > > > > This driver currently relies on the firmware setting up the > > > > > tsense HW block and does not set it up itself. > > > > > > > > > > Signed-off-by: Martin Sperl <kernel@martin.sperl.org> > > > > > Acked-by: Eric Anholt <eric@anholt.net> > > > > > Acked-by: Stefan Wahren <stefan.wahren@i2se.com> > > > > What's the status of merging this one???I'd like to merge the > > > > other > > > > patches. > > > i think it's necessary to rebase the whole series. Maybe we could > > > get it > > > into 4.10. > > Why would it need to be rebased???The status, as far as I know, is > > that > > we're still waiting for the subsystem maintainer to respond. > Since at least this patch won't apply anymore, but feedback from > maintainer is > still good :-) > > Sorry for this impatience, but i'm afraid that we possibly miss 4.10. Eduardo, any comments on this patchset? thanks, rui ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc 2016-10-25 2:47 ` Zhang Rui @ 2016-10-31 21:06 ` Eric Anholt -1 siblings, 0 replies; 30+ messages in thread From: Eric Anholt @ 2016-10-31 21:06 UTC (permalink / raw) To: Zhang Rui, Stefan Wahren, kernel Cc: Will Deacon, Lee Jones, Pawel Moll, Rob Herring, linux-arm-kernel, linux-pm, Eduardo Valentin, Russell King, Catalin Marinas, Stephen Warren, Mark Rutland, Florian Fainelli, linux-rpi-kernel, devicetree [-- Attachment #1: Type: text/plain, Size: 1571 bytes --] Zhang Rui <rui.zhang@intel.com> writes: > On Mon, 2016-10-24 at 20:25 +0200, Stefan Wahren wrote: >> > >> > Eric Anholt <eric@anholt.net> hat am 24. Oktober 2016 um 18:38 >> > geschrieben: >> > >> > >> > Stefan Wahren <stefan.wahren@i2se.com> writes: >> > >> > > >> > > Hi Martin, >> > > >> > > Am 28.09.2016 um 23:10 schrieb Eric Anholt: >> > > > >> > > > kernel@martin.sperl.org writes: >> > > > >> > > > > >> > > > > From: Martin Sperl <kernel@martin.sperl.org> >> > > > > >> > > > > Add basic thermal driver for bcm2835 SOC. >> > > > > >> > > > > This driver currently relies on the firmware setting up the >> > > > > tsense HW block and does not set it up itself. >> > > > > >> > > > > Signed-off-by: Martin Sperl <kernel@martin.sperl.org> >> > > > > Acked-by: Eric Anholt <eric@anholt.net> >> > > > > Acked-by: Stefan Wahren <stefan.wahren@i2se.com> >> > > > What's the status of merging this one? I'd like to merge the >> > > > other >> > > > patches. >> > > i think it's necessary to rebase the whole series. Maybe we could >> > > get it >> > > into 4.10. >> > Why would it need to be rebased? The status, as far as I know, is >> > that >> > we're still waiting for the subsystem maintainer to respond. >> Since at least this patch won't apply anymore, but feedback from >> maintainer is >> still good :-) >> >> Sorry for this impatience, but i'm afraid that we possibly miss 4.10. > > Eduardo, > > any comments on this patchset? It's been a month on v7 of this patch. Can we please merge it? [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 800 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc @ 2016-10-31 21:06 ` Eric Anholt 0 siblings, 0 replies; 30+ messages in thread From: Eric Anholt @ 2016-10-31 21:06 UTC (permalink / raw) To: linux-arm-kernel Zhang Rui <rui.zhang@intel.com> writes: > On Mon, 2016-10-24 at 20:25 +0200, Stefan Wahren wrote: >> > >> > Eric Anholt <eric@anholt.net> hat am 24. Oktober 2016 um 18:38 >> > geschrieben: >> > >> > >> > Stefan Wahren <stefan.wahren@i2se.com> writes: >> > >> > > >> > > Hi Martin, >> > > >> > > Am 28.09.2016 um 23:10 schrieb Eric Anholt: >> > > > >> > > > kernel at martin.sperl.org writes: >> > > > >> > > > > >> > > > > From: Martin Sperl <kernel@martin.sperl.org> >> > > > > >> > > > > Add basic thermal driver for bcm2835 SOC. >> > > > > >> > > > > This driver currently relies on the firmware setting up the >> > > > > tsense HW block and does not set it up itself. >> > > > > >> > > > > Signed-off-by: Martin Sperl <kernel@martin.sperl.org> >> > > > > Acked-by: Eric Anholt <eric@anholt.net> >> > > > > Acked-by: Stefan Wahren <stefan.wahren@i2se.com> >> > > > What's the status of merging this one???I'd like to merge the >> > > > other >> > > > patches. >> > > i think it's necessary to rebase the whole series. Maybe we could >> > > get it >> > > into 4.10. >> > Why would it need to be rebased???The status, as far as I know, is >> > that >> > we're still waiting for the subsystem maintainer to respond. >> Since at least this patch won't apply anymore, but feedback from >> maintainer is >> still good :-) >> >> Sorry for this impatience, but i'm afraid that we possibly miss 4.10. > > Eduardo, > > any comments on this patchset? It's been a month on v7 of this patch. Can we please merge it? -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 800 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161031/4847b7b1/attachment.sig> ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc 2016-10-24 16:38 ` Eric Anholt @ 2016-11-02 10:14 ` kernel at martin.sperl.org -1 siblings, 0 replies; 30+ messages in thread From: kernel @ 2016-11-02 10:14 UTC (permalink / raw) To: Eric Anholt Cc: Stefan Wahren, Mark Rutland, Florian Fainelli, Russell King, Pawel Moll, Stephen Warren, Catalin Marinas, linux-pm, Lee Jones, Will Deacon, Eduardo Valentin, devicetree, Rob Herring, linux-rpi-kernel, Zhang Rui, linux-arm-kernel > On 24.10.2016, at 18:38, Eric Anholt <eric@anholt.net> wrote: > > Stefan Wahren <stefan.wahren@i2se.com> writes: > >> Hi Martin, >> >> i think it's necessary to rebase the whole series. Maybe we could get it >> into 4.10. > > Why would it need to be rebased? The status, as far as I know, is that > we're still waiting for the subsystem maintainer to respond. Sending out a rebased version 8 (specifically needed for patch 2 and 6). Martin ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc @ 2016-11-02 10:14 ` kernel at martin.sperl.org 0 siblings, 0 replies; 30+ messages in thread From: kernel at martin.sperl.org @ 2016-11-02 10:14 UTC (permalink / raw) To: linux-arm-kernel > On 24.10.2016, at 18:38, Eric Anholt <eric@anholt.net> wrote: > > Stefan Wahren <stefan.wahren@i2se.com> writes: > >> Hi Martin, >> >> i think it's necessary to rebase the whole series. Maybe we could get it >> into 4.10. > > Why would it need to be rebased? The status, as far as I know, is that > we're still waiting for the subsystem maintainer to respond. Sending out a rebased version 8 (specifically needed for patch 2 and 6). Martin ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH V7 6/6] ARM64: bcm2835: add thermal driver to default_config 2016-09-21 8:23 ` kernel at martin.sperl.org @ 2016-09-21 8:23 ` kernel at martin.sperl.org -1 siblings, 0 replies; 30+ messages in thread From: kernel-TqfNSX0MhmxHKSADF0wUEw @ 2016-09-21 8:23 UTC (permalink / raw) To: Zhang Rui, Eduardo Valentin, Rob Herring, Pawel Moll, Mark Rutland, Stephen Warren, Lee Jones, Eric Anholt, Russell King, Florian Fainelli, Catalin Marinas, Will Deacon, Stefan Wahren, linux-pm-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-rpi-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r Cc: Martin Sperl From: Martin Sperl <kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org> Add the thermal driver for bcm2837 to list of compiled modules in the default config. Signed-off-by: Martin Sperl <kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org> --- arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index eadf485..372f981 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -252,6 +252,7 @@ CONFIG_SENSORS_INA2XX=m CONFIG_SENSORS_ARM_SCPI=y CONFIG_THERMAL=y CONFIG_THERMAL_EMULATION=y +CONFIG_BCM2835_THERMAL=y CONFIG_EXYNOS_THERMAL=y CONFIG_WATCHDOG=y CONFIG_RENESAS_WDT=y -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH V7 6/6] ARM64: bcm2835: add thermal driver to default_config @ 2016-09-21 8:23 ` kernel at martin.sperl.org 0 siblings, 0 replies; 30+ messages in thread From: kernel at martin.sperl.org @ 2016-09-21 8:23 UTC (permalink / raw) To: linux-arm-kernel From: Martin Sperl <kernel@martin.sperl.org> Add the thermal driver for bcm2837 to list of compiled modules in the default config. Signed-off-by: Martin Sperl <kernel@martin.sperl.org> --- arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index eadf485..372f981 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -252,6 +252,7 @@ CONFIG_SENSORS_INA2XX=m CONFIG_SENSORS_ARM_SCPI=y CONFIG_THERMAL=y CONFIG_THERMAL_EMULATION=y +CONFIG_BCM2835_THERMAL=y CONFIG_EXYNOS_THERMAL=y CONFIG_WATCHDOG=y CONFIG_RENESAS_WDT=y -- 2.1.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH V7 3/6] ARM: bcm2835: dts: add thermal node to device-tree of bcm283x 2016-09-21 8:23 ` kernel at martin.sperl.org @ 2016-09-21 8:23 ` kernel at martin.sperl.org -1 siblings, 0 replies; 30+ messages in thread From: kernel @ 2016-09-21 8:23 UTC (permalink / raw) To: Zhang Rui, Eduardo Valentin, Rob Herring, Pawel Moll, Mark Rutland, Stephen Warren, Lee Jones, Eric Anholt, Russell King, Florian Fainelli, Catalin Marinas, Will Deacon, Stefan Wahren, linux-pm, devicetree, linux-rpi-kernel, linux-arm-kernel Cc: Martin Sperl From: Martin Sperl <kernel@martin.sperl.org> Add the node for the thermal sensor of the bcm2835-soc to the device tree. Signed-off-by: Martin Sperl <kernel@martin.sperl.org> Reviewed-by: Eric Anholt <eric@anholt.net> Acked-by: Stefan Wahren <stefan.wahren@i2se.com> Changelog: V1 -> V5: generic settings is shared in bcm283x.dtsi, but disabled moved the compatible string to the SOC specific dtsi for arm and arm64 V5 -> V6: fix remove 0x prefix from thermal@0x7e212000 Note: there is no arm/boot/dts/bcm2837.dtsi as of now, so the 32-bit rpi3 dt is not modified. --- arch/arm/boot/dts/bcm2835.dtsi | 6 ++++++ arch/arm/boot/dts/bcm2836.dtsi | 6 ++++++ arch/arm/boot/dts/bcm283x.dtsi | 7 +++++++ 3 files changed, 19 insertions(+) diff --git a/arch/arm/boot/dts/bcm2835.dtsi b/arch/arm/boot/dts/bcm2835.dtsi index a78759e..0890d97 100644 --- a/arch/arm/boot/dts/bcm2835.dtsi +++ b/arch/arm/boot/dts/bcm2835.dtsi @@ -23,3 +23,9 @@ }; }; }; + +/* enable thermal sensor with the correct compatible property set */ +&thermal { + compatible = "brcm,bcm2835-thermal"; + status = "okay"; +}; diff --git a/arch/arm/boot/dts/bcm2836.dtsi b/arch/arm/boot/dts/bcm2836.dtsi index 9d0651d..519a44f 100644 --- a/arch/arm/boot/dts/bcm2836.dtsi +++ b/arch/arm/boot/dts/bcm2836.dtsi @@ -76,3 +76,9 @@ interrupt-parent = <&local_intc>; interrupts = <8>; }; + +/* enable thermal sensor with the correct compatible property set */ +&thermal { + compatible = "brcm,bcm2836-thermal"; + status = "okay"; +}; diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi index b982522..d9acf21 100644 --- a/arch/arm/boot/dts/bcm283x.dtsi +++ b/arch/arm/boot/dts/bcm283x.dtsi @@ -186,6 +186,13 @@ interrupts = <2 14>; /* pwa1 */ }; + thermal: thermal@7e212000 { + compatible = "brcm,bcm2835-thermal"; + reg = <0x7e212000 0x8>; + clocks = <&clocks BCM2835_CLOCK_TSENS>; + status = "disabled"; + }; + aux: aux@0x7e215000 { compatible = "brcm,bcm2835-aux"; #clock-cells = <1>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH V7 3/6] ARM: bcm2835: dts: add thermal node to device-tree of bcm283x @ 2016-09-21 8:23 ` kernel at martin.sperl.org 0 siblings, 0 replies; 30+ messages in thread From: kernel at martin.sperl.org @ 2016-09-21 8:23 UTC (permalink / raw) To: linux-arm-kernel From: Martin Sperl <kernel@martin.sperl.org> Add the node for the thermal sensor of the bcm2835-soc to the device tree. Signed-off-by: Martin Sperl <kernel@martin.sperl.org> Reviewed-by: Eric Anholt <eric@anholt.net> Acked-by: Stefan Wahren <stefan.wahren@i2se.com> Changelog: V1 -> V5: generic settings is shared in bcm283x.dtsi, but disabled moved the compatible string to the SOC specific dtsi for arm and arm64 V5 -> V6: fix remove 0x prefix from thermal at 0x7e212000 Note: there is no arm/boot/dts/bcm2837.dtsi as of now, so the 32-bit rpi3 dt is not modified. --- arch/arm/boot/dts/bcm2835.dtsi | 6 ++++++ arch/arm/boot/dts/bcm2836.dtsi | 6 ++++++ arch/arm/boot/dts/bcm283x.dtsi | 7 +++++++ 3 files changed, 19 insertions(+) diff --git a/arch/arm/boot/dts/bcm2835.dtsi b/arch/arm/boot/dts/bcm2835.dtsi index a78759e..0890d97 100644 --- a/arch/arm/boot/dts/bcm2835.dtsi +++ b/arch/arm/boot/dts/bcm2835.dtsi @@ -23,3 +23,9 @@ }; }; }; + +/* enable thermal sensor with the correct compatible property set */ +&thermal { + compatible = "brcm,bcm2835-thermal"; + status = "okay"; +}; diff --git a/arch/arm/boot/dts/bcm2836.dtsi b/arch/arm/boot/dts/bcm2836.dtsi index 9d0651d..519a44f 100644 --- a/arch/arm/boot/dts/bcm2836.dtsi +++ b/arch/arm/boot/dts/bcm2836.dtsi @@ -76,3 +76,9 @@ interrupt-parent = <&local_intc>; interrupts = <8>; }; + +/* enable thermal sensor with the correct compatible property set */ +&thermal { + compatible = "brcm,bcm2836-thermal"; + status = "okay"; +}; diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi index b982522..d9acf21 100644 --- a/arch/arm/boot/dts/bcm283x.dtsi +++ b/arch/arm/boot/dts/bcm283x.dtsi @@ -186,6 +186,13 @@ interrupts = <2 14>; /* pwa1 */ }; + thermal: thermal at 7e212000 { + compatible = "brcm,bcm2835-thermal"; + reg = <0x7e212000 0x8>; + clocks = <&clocks BCM2835_CLOCK_TSENS>; + status = "disabled"; + }; + aux: aux at 0x7e215000 { compatible = "brcm,bcm2835-aux"; #clock-cells = <1>; -- 2.1.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH V7 4/6] ARM64: bcm2835: dts: add thermal node to device-tree of bcm2837 2016-09-21 8:23 ` kernel at martin.sperl.org @ 2016-09-21 8:23 ` kernel at martin.sperl.org -1 siblings, 0 replies; 30+ messages in thread From: kernel @ 2016-09-21 8:23 UTC (permalink / raw) To: Zhang Rui, Eduardo Valentin, Rob Herring, Pawel Moll, Mark Rutland, Stephen Warren, Lee Jones, Eric Anholt, Russell King, Florian Fainelli, Catalin Marinas, Will Deacon, Stefan Wahren, linux-pm, devicetree, linux-rpi-kernel, linux-arm-kernel Cc: Martin Sperl From: Martin Sperl <kernel@martin.sperl.org> Add the node for the thermal sensor of the bcm2837-soc to the device tree. Signed-off-by: Martin Sperl <kernel@martin.sperl.org> --- arch/arm64/boot/dts/broadcom/bcm2837.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi index f2a31d0..2b0cfc7 100644 --- a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi @@ -74,3 +74,9 @@ interrupt-parent = <&local_intc>; interrupts = <8>; }; + +/* enable thermal sensor with the correct compatible property set */ +&thermal { + compatible = "brcm,bcm2837-thermal"; + status = "okay"; +}; -- 2.1.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH V7 4/6] ARM64: bcm2835: dts: add thermal node to device-tree of bcm2837 @ 2016-09-21 8:23 ` kernel at martin.sperl.org 0 siblings, 0 replies; 30+ messages in thread From: kernel at martin.sperl.org @ 2016-09-21 8:23 UTC (permalink / raw) To: linux-arm-kernel From: Martin Sperl <kernel@martin.sperl.org> Add the node for the thermal sensor of the bcm2837-soc to the device tree. Signed-off-by: Martin Sperl <kernel@martin.sperl.org> --- arch/arm64/boot/dts/broadcom/bcm2837.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi index f2a31d0..2b0cfc7 100644 --- a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi @@ -74,3 +74,9 @@ interrupt-parent = <&local_intc>; interrupts = <8>; }; + +/* enable thermal sensor with the correct compatible property set */ +&thermal { + compatible = "brcm,bcm2837-thermal"; + status = "okay"; +}; -- 2.1.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH V7 5/6] ARM: bcm2835: add thermal driver to default_config 2016-09-21 8:23 ` kernel at martin.sperl.org @ 2016-09-21 8:23 ` kernel at martin.sperl.org -1 siblings, 0 replies; 30+ messages in thread From: kernel @ 2016-09-21 8:23 UTC (permalink / raw) To: Zhang Rui, Eduardo Valentin, Rob Herring, Pawel Moll, Mark Rutland, Stephen Warren, Lee Jones, Eric Anholt, Russell King, Florian Fainelli, Catalin Marinas, Will Deacon, Stefan Wahren, linux-pm, devicetree, linux-rpi-kernel, linux-arm-kernel Cc: Martin Sperl From: Martin Sperl <kernel@martin.sperl.org> Add the thermal driver to list of compiled modules in the default config for bcm2835. Signed-off-by: Martin Sperl <kernel@martin.sperl.org> Reviewed-by: Eric Anholt <eric@anholt.net> --- arch/arm/configs/bcm2835_defconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/configs/bcm2835_defconfig b/arch/arm/configs/bcm2835_defconfig index 79de828..4b89f4e 100644 --- a/arch/arm/configs/bcm2835_defconfig +++ b/arch/arm/configs/bcm2835_defconfig @@ -73,6 +73,8 @@ CONFIG_SPI_BCM2835=y CONFIG_SPI_BCM2835AUX=y CONFIG_GPIO_SYSFS=y # CONFIG_HWMON is not set +CONFIG_THERMAL=y +CONFIG_BCM2835_THERMAL=y CONFIG_WATCHDOG=y CONFIG_BCM2835_WDT=y CONFIG_DRM=y -- 2.1.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [PATCH V7 5/6] ARM: bcm2835: add thermal driver to default_config @ 2016-09-21 8:23 ` kernel at martin.sperl.org 0 siblings, 0 replies; 30+ messages in thread From: kernel at martin.sperl.org @ 2016-09-21 8:23 UTC (permalink / raw) To: linux-arm-kernel From: Martin Sperl <kernel@martin.sperl.org> Add the thermal driver to list of compiled modules in the default config for bcm2835. Signed-off-by: Martin Sperl <kernel@martin.sperl.org> Reviewed-by: Eric Anholt <eric@anholt.net> --- arch/arm/configs/bcm2835_defconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/configs/bcm2835_defconfig b/arch/arm/configs/bcm2835_defconfig index 79de828..4b89f4e 100644 --- a/arch/arm/configs/bcm2835_defconfig +++ b/arch/arm/configs/bcm2835_defconfig @@ -73,6 +73,8 @@ CONFIG_SPI_BCM2835=y CONFIG_SPI_BCM2835AUX=y CONFIG_GPIO_SYSFS=y # CONFIG_HWMON is not set +CONFIG_THERMAL=y +CONFIG_BCM2835_THERMAL=y CONFIG_WATCHDOG=y CONFIG_BCM2835_WDT=y CONFIG_DRM=y -- 2.1.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
end of thread, other threads:[~2016-11-02 10:14 UTC | newest] Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-09-21 8:23 [PATCH V7 0/6] thermal: bcm2835: add thermal driver kernel-TqfNSX0MhmxHKSADF0wUEw 2016-09-21 8:23 ` kernel at martin.sperl.org 2016-09-21 8:23 ` [PATCH V7 1/6] dt: bindings: add thermal device driver for bcm2835 kernel 2016-09-21 8:23 ` kernel at martin.sperl.org [not found] ` <1474446227-1147-1-git-send-email-kernel-TqfNSX0MhmxHKSADF0wUEw@public.gmane.org> 2016-09-21 8:23 ` [PATCH V7 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc kernel-TqfNSX0MhmxHKSADF0wUEw 2016-09-21 8:23 ` kernel at martin.sperl.org 2016-09-28 21:10 ` Eric Anholt 2016-09-28 21:10 ` Eric Anholt [not found] ` <87twczg27x.fsf-omZaPlIz5HhaEpDpdNBo/KxOck334EZe@public.gmane.org> 2016-10-20 18:57 ` Stefan Wahren 2016-10-20 18:57 ` Stefan Wahren 2016-10-24 16:21 ` Stefan Wahren 2016-10-24 16:21 ` Stefan Wahren 2016-10-24 16:38 ` Eric Anholt 2016-10-24 16:38 ` Eric Anholt 2016-10-24 18:25 ` Stefan Wahren 2016-10-24 18:25 ` Stefan Wahren [not found] ` <1190898538.120930.02d69662-0b1a-447d-9c29-782aec7a1189.open-xchange-7tX72C7vayboQLBSYMtkGA@public.gmane.org> 2016-10-25 2:47 ` Zhang Rui 2016-10-25 2:47 ` Zhang Rui 2016-10-31 21:06 ` Eric Anholt 2016-10-31 21:06 ` Eric Anholt 2016-11-02 10:14 ` kernel 2016-11-02 10:14 ` kernel at martin.sperl.org 2016-09-21 8:23 ` [PATCH V7 6/6] ARM64: bcm2835: add thermal driver to default_config kernel-TqfNSX0MhmxHKSADF0wUEw 2016-09-21 8:23 ` kernel at martin.sperl.org 2016-09-21 8:23 ` [PATCH V7 3/6] ARM: bcm2835: dts: add thermal node to device-tree of bcm283x kernel 2016-09-21 8:23 ` kernel at martin.sperl.org 2016-09-21 8:23 ` [PATCH V7 4/6] ARM64: bcm2835: dts: add thermal node to device-tree of bcm2837 kernel 2016-09-21 8:23 ` kernel at martin.sperl.org 2016-09-21 8:23 ` [PATCH V7 5/6] ARM: bcm2835: add thermal driver to default_config kernel 2016-09-21 8:23 ` kernel at martin.sperl.org
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.