2017-04-25 20:49:45

by Jon Mason

[permalink] [raw]
Subject: [PATCH 0/2] thermal: broadcom: Add NSP Thermal Support

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 (2):
thermal: broadcom: Allow for NSP to use ns-thermal driver
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


2017-04-25 20:49:58

by Jon Mason

[permalink] [raw]
Subject: [PATCH 2/2] ARM: dts: NSP: Add Thermal Support

Add thermal support via the ns-thermal driver and create a single
thermal zone for the entire SoC.

Signed-off-by: Jon Mason <[email protected]>
---
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

2017-04-25 20:50:16

by Jon Mason

[permalink] [raw]
Subject: [PATCH 1/2] thermal: broadcom: Allow for NSP to use ns-thermal driver

Change the iProc Kconfig to select THERMAL and THERMAL_OF, which allows
the ns-thermal driver to be selected via menuconfig. Also, change the
ns-thermal driver to work on any iProc based SoC. Finally, tweak the
Kconfig description to mention support for NSP and make the default on
for iProc based platforms.

Signed-off-by: Jon Mason <[email protected]>
---
arch/arm/mach-bcm/Kconfig | 2 ++
drivers/thermal/broadcom/Kconfig | 9 +++++----
2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
index a0e66d8..da2bfeb 100644
--- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig
@@ -19,6 +19,8 @@ config ARCH_BCM_IPROC
select GPIOLIB
select ARM_AMBA
select PINCTRL
+ select THERMAL
+ select THERMAL_OF
help
This enables support for systems based on Broadcom IPROC architected SoCs.
The IPROC complex contains one or more ARM CPUs along with common
diff --git a/drivers/thermal/broadcom/Kconfig b/drivers/thermal/broadcom/Kconfig
index f0dea8a..26d706c 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 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

2017-04-27 16:37:11

by Eduardo Valentin

[permalink] [raw]
Subject: Re: [PATCH 1/2] thermal: broadcom: Allow for NSP to use ns-thermal driver

Hey Jason,

On Tue, Apr 25, 2017 at 04:49:10PM -0400, Jon Mason wrote:
> Change the iProc Kconfig to select THERMAL and THERMAL_OF, which allows
> the ns-thermal driver to be selected via menuconfig. Also, change the
> ns-thermal driver to work on any iProc based SoC. Finally, tweak the
> Kconfig description to mention support for NSP and make the default on
> for iProc based platforms.


Thanks for the patch, but..
>
> Signed-off-by: Jon Mason <[email protected]>
> ---
> arch/arm/mach-bcm/Kconfig | 2 ++
> drivers/thermal/broadcom/Kconfig | 9 +++++----
> 2 files changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
> index a0e66d8..da2bfeb 100644
> --- a/arch/arm/mach-bcm/Kconfig
> +++ b/arch/arm/mach-bcm/Kconfig
> @@ -19,6 +19,8 @@ config ARCH_BCM_IPROC
> select GPIOLIB
> select ARM_AMBA
> select PINCTRL
> + select THERMAL
> + select THERMAL_OF
> help
> This enables support for systems based on Broadcom IPROC architected SoCs.
> The IPROC complex contains one or more ARM CPUs along with common

It would be better if this is split and sent through your arch tree, to
avoid conflicts. I could also pick it if you get an ack from one of your
maintainers. Still, first option is preferable.

> diff --git a/drivers/thermal/broadcom/Kconfig b/drivers/thermal/broadcom/Kconfig
> index f0dea8a..26d706c 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 ARCH_BCM_IPROC

Not sure if this is really what you wanted. Based on your commit log
message, you meant the following, perhaps?

+ 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

Did we look BCM47094 somehow on this patch?

> + Management Unit) block with a thermal sensor that allows checking CPU
> + temperature.
> --
> 2.7.4
>


Attachments:
(No filename) (2.31 kB)
signature.asc (819.00 B)
Digital signature
Download all attachments

2017-04-27 16:38:50

by Eduardo Valentin

[permalink] [raw]
Subject: Re: [PATCH 2/2] ARM: dts: NSP: Add Thermal Support

On Tue, Apr 25, 2017 at 04:49:11PM -0400, 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 <[email protected]>

Acked-by: Eduardo Valentin <[email protected]>

> ---
> 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
>


Attachments:
(No filename) (1.33 kB)
signature.asc (819.00 B)
Digital signature
Download all attachments

2017-04-27 17:42:34

by Jon Mason

[permalink] [raw]
Subject: Re: [PATCH 1/2] thermal: broadcom: Allow for NSP to use ns-thermal driver

On Thu, Apr 27, 2017 at 12:37 PM, Eduardo Valentin <[email protected]> wrote:
> Hey Jason,

It's Jon :)

>
> On Tue, Apr 25, 2017 at 04:49:10PM -0400, Jon Mason wrote:
>> Change the iProc Kconfig to select THERMAL and THERMAL_OF, which allows
>> the ns-thermal driver to be selected via menuconfig. Also, change the
>> ns-thermal driver to work on any iProc based SoC. Finally, tweak the
>> Kconfig description to mention support for NSP and make the default on
>> for iProc based platforms.
>
>
> Thanks for the patch, but..
>>
>> Signed-off-by: Jon Mason <[email protected]>
>> ---
>> arch/arm/mach-bcm/Kconfig | 2 ++
>> drivers/thermal/broadcom/Kconfig | 9 +++++----
>> 2 files changed, 7 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
>> index a0e66d8..da2bfeb 100644
>> --- a/arch/arm/mach-bcm/Kconfig
>> +++ b/arch/arm/mach-bcm/Kconfig
>> @@ -19,6 +19,8 @@ config ARCH_BCM_IPROC
>> select GPIOLIB
>> select ARM_AMBA
>> select PINCTRL
>> + select THERMAL
>> + select THERMAL_OF
>> help
>> This enables support for systems based on Broadcom IPROC architected SoCs.
>> The IPROC complex contains one or more ARM CPUs along with common
>
> It would be better if this is split and sent through your arch tree, to
> avoid conflicts. I could also pick it if you get an ack from one of your
> maintainers. Still, first option is preferable.

Sure, I'll be happy to split this off. I should've thought to split
it up before sending. Thanks for the suggestion.

>
>> diff --git a/drivers/thermal/broadcom/Kconfig b/drivers/thermal/broadcom/Kconfig
>> index f0dea8a..26d706c 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 ARCH_BCM_IPROC
>
> Not sure if this is really what you wanted. Based on your commit log
> message, you meant the following, perhaps?
>
> + default y if ARCH_BCM_IPROC

IIUC, my original default works, as we have used it frequently in
other places in the kernel.
grep -rI "default ARCH_BCM_IPROC" * | wc -l
15

However, if the above is preferred (or the other 15 massively broken),
I'll be happy to do it that way.


>> 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
>
> Did we look BCM47094 somehow on this patch?

Naa, just trying to be more concise, while adding the NSP products to
the list.. BCM47094 is a type of BCM4709. So, it is still there :)

>
>> + Management Unit) block with a thermal sensor that allows checking CPU
>> + temperature.
>> --
>> 2.7.4
>>

2017-04-28 13:07:16

by Eduardo Valentin

[permalink] [raw]
Subject: Re: [PATCH 1/2] thermal: broadcom: Allow for NSP to use ns-thermal driver

On Thu, Apr 27, 2017 at 01:42:25PM -0400, Jon Mason wrote:
> On Thu, Apr 27, 2017 at 12:37 PM, Eduardo Valentin <[email protected]> wrote:
> > Hey Jason,
>
> It's Jon :)

Apologies. I think I either read too fast, or my fingers were faster
than my brain. Sorry.

>
> >
> > On Tue, Apr 25, 2017 at 04:49:10PM -0400, Jon Mason wrote:
> >> Change the iProc Kconfig to select THERMAL and THERMAL_OF, which allows
> >> the ns-thermal driver to be selected via menuconfig. Also, change the
> >> ns-thermal driver to work on any iProc based SoC. Finally, tweak the
> >> Kconfig description to mention support for NSP and make the default on
> >> for iProc based platforms.
> >
> >
> > Thanks for the patch, but..
> >>
> >> Signed-off-by: Jon Mason <[email protected]>
> >> ---
> >> arch/arm/mach-bcm/Kconfig | 2 ++
> >> drivers/thermal/broadcom/Kconfig | 9 +++++----
> >> 2 files changed, 7 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
> >> index a0e66d8..da2bfeb 100644
> >> --- a/arch/arm/mach-bcm/Kconfig
> >> +++ b/arch/arm/mach-bcm/Kconfig
> >> @@ -19,6 +19,8 @@ config ARCH_BCM_IPROC
> >> select GPIOLIB
> >> select ARM_AMBA
> >> select PINCTRL
> >> + select THERMAL
> >> + select THERMAL_OF
> >> help
> >> This enables support for systems based on Broadcom IPROC architected SoCs.
> >> The IPROC complex contains one or more ARM CPUs along with common
> >
> > It would be better if this is split and sent through your arch tree, to
> > avoid conflicts. I could also pick it if you get an ack from one of your
> > maintainers. Still, first option is preferable.
>
> Sure, I'll be happy to split this off. I should've thought to split
> it up before sending. Thanks for the suggestion.

Cool!

>
> >
> >> diff --git a/drivers/thermal/broadcom/Kconfig b/drivers/thermal/broadcom/Kconfig
> >> index f0dea8a..26d706c 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 ARCH_BCM_IPROC
> >
> > Not sure if this is really what you wanted. Based on your commit log
> > message, you meant the following, perhaps?
> >
> > + default y if ARCH_BCM_IPROC
>
> IIUC, my original default works, as we have used it frequently in
> other places in the kernel.
> grep -rI "default ARCH_BCM_IPROC" * | wc -l
> 15

Yeah... Are you sure they are all correct?

>
> However, if the above is preferred (or the other 15 massively broken),
> I'll be happy to do it that way.

Your construction is syntactically correct. Maybe might still work (did
not check myself) for the purpose you describe, but the construction
mentioned in Documentation/kbuild/kconfig-language.txt is:
+ default y if BAR

So, please fix it.


>
>
> >> 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
> >
> > Did we look BCM47094 somehow on this patch?
>
> Naa, just trying to be more concise, while adding the NSP products to
> the list.. BCM47094 is a type of BCM4709. So, it is still there :)
>
> >
> >> + Management Unit) block with a thermal sensor that allows checking CPU
> >> + temperature.
> >> --
> >> 2.7.4
> >>


Attachments:
(No filename) (3.67 kB)
signature.asc (819.00 B)
Digital signature
Download all attachments

2017-04-28 18:04:11

by Jon Mason

[permalink] [raw]
Subject: Re: [PATCH 1/2] thermal: broadcom: Allow for NSP to use ns-thermal driver

On Fri, Apr 28, 2017 at 9:07 AM, Eduardo Valentin <[email protected]> wrote:
> On Thu, Apr 27, 2017 at 01:42:25PM -0400, Jon Mason wrote:
>> On Thu, Apr 27, 2017 at 12:37 PM, Eduardo Valentin <[email protected]> wrote:
>> > Hey Jason,
>>
>> It's Jon :)
>
> Apologies. I think I either read too fast, or my fingers were faster
> than my brain. Sorry.

NP, That exact error happens more frequently that you would think :)

>>
>> >
>> > On Tue, Apr 25, 2017 at 04:49:10PM -0400, Jon Mason wrote:
>> >> Change the iProc Kconfig to select THERMAL and THERMAL_OF, which allows
>> >> the ns-thermal driver to be selected via menuconfig. Also, change the
>> >> ns-thermal driver to work on any iProc based SoC. Finally, tweak the
>> >> Kconfig description to mention support for NSP and make the default on
>> >> for iProc based platforms.
>> >
>> >
>> > Thanks for the patch, but..
>> >>
>> >> Signed-off-by: Jon Mason <[email protected]>
>> >> ---
>> >> arch/arm/mach-bcm/Kconfig | 2 ++
>> >> drivers/thermal/broadcom/Kconfig | 9 +++++----
>> >> 2 files changed, 7 insertions(+), 4 deletions(-)
>> >>
>> >> diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
>> >> index a0e66d8..da2bfeb 100644
>> >> --- a/arch/arm/mach-bcm/Kconfig
>> >> +++ b/arch/arm/mach-bcm/Kconfig
>> >> @@ -19,6 +19,8 @@ config ARCH_BCM_IPROC
>> >> select GPIOLIB
>> >> select ARM_AMBA
>> >> select PINCTRL
>> >> + select THERMAL
>> >> + select THERMAL_OF
>> >> help
>> >> This enables support for systems based on Broadcom IPROC architected SoCs.
>> >> The IPROC complex contains one or more ARM CPUs along with common
>> >
>> > It would be better if this is split and sent through your arch tree, to
>> > avoid conflicts. I could also pick it if you get an ack from one of your
>> > maintainers. Still, first option is preferable.
>>
>> Sure, I'll be happy to split this off. I should've thought to split
>> it up before sending. Thanks for the suggestion.
>
> Cool!
>
>>
>> >
>> >> diff --git a/drivers/thermal/broadcom/Kconfig b/drivers/thermal/broadcom/Kconfig
>> >> index f0dea8a..26d706c 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 ARCH_BCM_IPROC
>> >
>> > Not sure if this is really what you wanted. Based on your commit log
>> > message, you meant the following, perhaps?
>> >
>> > + default y if ARCH_BCM_IPROC
>>
>> IIUC, my original default works, as we have used it frequently in
>> other places in the kernel.
>> grep -rI "default ARCH_BCM_IPROC" * | wc -l
>> 15
>
> Yeah... Are you sure they are all correct?
>
>>
>> However, if the above is preferred (or the other 15 massively broken),
>> I'll be happy to do it that way.
>
> Your construction is syntactically correct. Maybe might still work (did
> not check myself) for the purpose you describe, but the construction
> mentioned in Documentation/kbuild/kconfig-language.txt is:
> + default y if BAR
>
> So, please fix it.

Oh, thanks for the info. I was unaware of this, and we should
definitely follow the documentation.. I'll make the relevant changes
and do follow-on patches to correct the other places.

>
>>
>>
>> >> 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
>> >
>> > Did we look BCM47094 somehow on this patch?
>>
>> Naa, just trying to be more concise, while adding the NSP products to
>> the list.. BCM47094 is a type of BCM4709. So, it is still there :)
>>
>> >
>> >> + Management Unit) block with a thermal sensor that allows checking CPU
>> >> + temperature.
>> >> --
>> >> 2.7.4
>> >>