Changes in v3: * Enable THERMAL on NSP, not all iProc Chips (per Scott Branden) * Correct the Kconfig syntax in patch 2 (per Eduardo Valentin) Changes in v2: * Split SoC enablement into a separate patch (per Eduardo Valentin) * Added Eduardo Valentin's Acked-by to the DTS patch This adds support for NSP to the existing Northstar thermal driver. This code is based on patches currently in the Linux SoC Thermal git tree. Specfically, https://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal.git/commit/?h=linus&id=a94cb7eeecc4104a6874339f90c5d0647359c102 Jon Mason (3): ARM: BCM: Enable thermal support for NSP SoCs thermal: broadcom: ns-thermal: default on iProc SoCs ARM: dts: NSP: Add Thermal Support arch/arm/boot/dts/bcm-nsp.dtsi | 26 ++++++++++++++++++++++++++ arch/arm/mach-bcm/Kconfig | 2 ++ drivers/thermal/broadcom/Kconfig | 9 +++++---- 3 files changed, 33 insertions(+), 4 deletions(-) -- 2.7.4
Change the Northstar Plus Kconfig to select THERMAL and THERMAL_OF, which allows the ns-thermal driver to be selected via menuconfig. Signed-off-by: Jon Mason <jon.mason@broadcom.com> --- arch/arm/mach-bcm/Kconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig index a0e66d8..93a61d0 100644 --- a/arch/arm/mach-bcm/Kconfig +++ b/arch/arm/mach-bcm/Kconfig @@ -44,6 +44,8 @@ config ARCH_BCM_NSP select ARM_ERRATA_775420 select ARM_ERRATA_764369 if SMP select HAVE_SMP + select THERMAL + select THERMAL_OF help Support for Broadcom Northstar Plus SoC. Broadcom Northstar Plus family of SoCs are used for switching control -- 2.7.4
Tweak the Kconfig description to mention support for NSP and make the default on for iProc based platforms. Signed-off-by: Jon Mason <jon.mason@broadcom.com> --- drivers/thermal/broadcom/Kconfig | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/thermal/broadcom/Kconfig b/drivers/thermal/broadcom/Kconfig index f0dea8a..b6f4b85 100644 --- a/drivers/thermal/broadcom/Kconfig +++ b/drivers/thermal/broadcom/Kconfig @@ -1,8 +1,9 @@ config BCM_NS_THERMAL tristate "Northstar thermal driver" depends on ARCH_BCM_IPROC || COMPILE_TEST + default y if ARCH_BCM_IPROC help - Northstar is a family of SoCs that includes e.g. BCM4708, BCM47081, - BCM4709 and BCM47094. It contains DMU (Device Management Unit) block - with a thermal sensor that allows checking CPU temperature. This - driver provides support for it. + Support for the Northstar and Northstar Plus family of SoCs (e.g. + BCM4708, BCM4709, BCM5301x, BCM95852X, etc). It contains DMU (Device + Management Unit) block with a thermal sensor that allows checking CPU + temperature. -- 2.7.4
Add thermal support via the ns-thermal driver and create a single thermal zone for the entire SoC. Signed-off-by: Jon Mason <jon.mason@broadcom.com> Acked-by: Eduardo Valentin <edubezval@gmail.com> --- arch/arm/boot/dts/bcm-nsp.dtsi | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/arm/boot/dts/bcm-nsp.dtsi b/arch/arm/boot/dts/bcm-nsp.dtsi index 832795b..be6fcfb 100644 --- a/arch/arm/boot/dts/bcm-nsp.dtsi +++ b/arch/arm/boot/dts/bcm-nsp.dtsi @@ -383,6 +383,12 @@ <0x3f408 0x04>; }; + thermal: thermal@3f2c0 { + compatible = "brcm,ns-thermal"; + reg = <0x3f2c0 0x10>; + #thermal-sensor-cells = <0>; + }; + sata_phy: sata_phy@40100 { compatible = "brcm,iproc-nsp-sata-phy"; reg = <0x40100 0x340>; @@ -533,4 +539,24 @@ brcm,pcie-msi-inten; }; }; + + thermal-zones { + cpu-thermal { + polling-delay-passive = <0>; + polling-delay = <1000>; + coefficients = <(-556) 418000>; + thermal-sensors = <&thermal>; + + trips { + cpu-crit { + temperature = <125000>; + hysteresis = <0>; + type = "critical"; + }; + }; + + cooling-maps { + }; + }; + }; }; -- 2.7.4
On 17-04-28 01:11 PM, Jon Mason wrote: > Tweak the Kconfig description to mention support for NSP and make the > default on for iProc based platforms. > > Signed-off-by: Jon Mason <jon.mason@broadcom.com> > --- > drivers/thermal/broadcom/Kconfig | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/thermal/broadcom/Kconfig b/drivers/thermal/broadcom/Kconfig > index f0dea8a..b6f4b85 100644 > --- a/drivers/thermal/broadcom/Kconfig > +++ b/drivers/thermal/broadcom/Kconfig > @@ -1,8 +1,9 @@ > config BCM_NS_THERMAL > tristate "Northstar thermal driver" > depends on ARCH_BCM_IPROC || COMPILE_TEST If this driver is used on these SoCs then it: depends on ARCH_BCM_NSP || ARCH_BCM_5301X || COMPILE_TEST ? > + default y if ARCH_BCM_IPROC > help > - Northstar is a family of SoCs that includes e.g. BCM4708, BCM47081, > - BCM4709 and BCM47094. It contains DMU (Device Management Unit) block > - with a thermal sensor that allows checking CPU temperature. This > - driver provides support for it. > + Support for the Northstar and Northstar Plus family of SoCs (e.g. > + BCM4708, BCM4709, BCM5301x, BCM95852X, etc). It contains DMU (Device > + Management Unit) block with a thermal sensor that allows checking CPU > + temperature. >
On Fri, Apr 28, 2017 at 4:36 PM, Scott Branden <scott.branden@broadcom.com> wrote: > > > On 17-04-28 01:11 PM, Jon Mason wrote: >> >> Tweak the Kconfig description to mention support for NSP and make the >> default on for iProc based platforms. >> >> Signed-off-by: Jon Mason <jon.mason@broadcom.com> >> --- >> drivers/thermal/broadcom/Kconfig | 9 +++++---- >> 1 file changed, 5 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/thermal/broadcom/Kconfig >> b/drivers/thermal/broadcom/Kconfig >> index f0dea8a..b6f4b85 100644 >> --- a/drivers/thermal/broadcom/Kconfig >> +++ b/drivers/thermal/broadcom/Kconfig >> @@ -1,8 +1,9 @@ >> config BCM_NS_THERMAL >> tristate "Northstar thermal driver" >> depends on ARCH_BCM_IPROC || COMPILE_TEST > > If this driver is used on these SoCs then it: > depends on ARCH_BCM_NSP || ARCH_BCM_5301X || COMPILE_TEST > ? The code referenced is outside of this patch, as that code was already existing from when the driver was submitted. I did some checking and NS2 and Cygnus do not have the registers in use by this driver. So, you are correct in that this driver will never be used for them. So, this is slightly over-permissive in allowing a driver to be selected that could not ever be used on non-NS/NSP hardware. But barring an incorrect DT string, it would only result in an slightly larger kernel than necessary. I'll do a follow-on patch to correct this with your suggestion above, and push it separately (unless a v4 is needed on this series). Thanks, Jon >> + default y if ARCH_BCM_IPROC >> help >> - Northstar is a family of SoCs that includes e.g. BCM4708, >> BCM47081, >> - BCM4709 and BCM47094. It contains DMU (Device Management Unit) >> block >> - with a thermal sensor that allows checking CPU temperature. This >> - driver provides support for it. >> + Support for the Northstar and Northstar Plus family of SoCs >> (e.g. >> + BCM4708, BCM4709, BCM5301x, BCM95852X, etc). It contains DMU >> (Device >> + Management Unit) block with a thermal sensor that allows >> checking CPU >> + temperature. >> >
On 04/28/2017 01:11 PM, Jon Mason wrote:
> Change the Northstar Plus Kconfig to select THERMAL and THERMAL_OF,
> which allows the ns-thermal driver to be selected via menuconfig.
>
> Signed-off-by: Jon Mason <jon.mason@broadcom.com>
Applied, thanks Jon
--
Florian
On 04/28/2017 01:11 PM, Jon Mason wrote:
> Add thermal support via the ns-thermal driver and create a single
> thermal zone for the entire SoC.
>
> Signed-off-by: Jon Mason <jon.mason@broadcom.com>
> Acked-by: Eduardo Valentin <edubezval@gmail.com>
Applied. thanks Jon
--
Florian
On 04/28/2017 01:11 PM, Jon Mason wrote:
> Tweak the Kconfig description to mention support for NSP and make the
> default on for iProc based platforms.
>
> Signed-off-by: Jon Mason <jon.mason@broadcom.com>
Zhang, Eduardo, please apply, the Kconfig and DTS changes have been
queued for 4.13 in my ARM-SoC pull request for Broadcom SoCs.
Thanks!
--
Florian
Hi Jon, On 17-04-28 01:50 PM, Jon Mason wrote: > On Fri, Apr 28, 2017 at 4:36 PM, Scott Branden > <scott.branden@broadcom.com> wrote: >> >> On 17-04-28 01:11 PM, Jon Mason wrote: >>> Tweak the Kconfig description to mention support for NSP and make the >>> default on for iProc based platforms. >>> >>> Signed-off-by: Jon Mason <jon.mason@broadcom.com> >>> --- >>> drivers/thermal/broadcom/Kconfig | 9 +++++---- >>> 1 file changed, 5 insertions(+), 4 deletions(-) >>> >>> diff --git a/drivers/thermal/broadcom/Kconfig >>> b/drivers/thermal/broadcom/Kconfig >>> index f0dea8a..b6f4b85 100644 >>> --- a/drivers/thermal/broadcom/Kconfig >>> +++ b/drivers/thermal/broadcom/Kconfig >>> @@ -1,8 +1,9 @@ >>> config BCM_NS_THERMAL >>> tristate "Northstar thermal driver" >>> depends on ARCH_BCM_IPROC || COMPILE_TEST >> If this driver is used on these SoCs then it: >> depends on ARCH_BCM_NSP || ARCH_BCM_5301X || COMPILE_TEST >> ? > The code referenced is outside of this patch, as that code was already > existing from when the driver was submitted. > > I did some checking and NS2 and Cygnus do not have the registers in > use by this driver. So, you are correct in that this driver will > never be used for them. So, this is slightly over-permissive in > allowing a driver to be selected that could not ever be used on > non-NS/NSP hardware. But barring an incorrect DT string, it would > only result in an slightly larger kernel than necessary. > > I'll do a follow-on patch to correct this with your suggestion above, > and push it separately (unless a v4 is needed on this series). Please submit the follow on patch. > > Thanks, > Jon Thanks, Scott