2019-12-13 03:10:23

by Dave Gerlach

[permalink] [raw]
Subject: [PATCH 0/5] ARM: OMAP2+: Introduce cpuidle for am335x/am437x

Hi,
This series adds support for cpuidle on am335x and am437x using the
cpuidle_arm driver. When testing on am335x-evm and am437x-gp-evm the
follow power consumption reductions are seen on v5.5-rc1 baseline:


Idling at command line, CPUFreq userspace governor to 300MHz:
am335x-evm:
VDD_MPU: 48 mW -> 5 mW

am437x-gp-evm:
VDD_MPU: 32 mW -> 3 mW


Idling at command line, CPUFreq userspace governor to 1GHz:
am335x-evm:
VDD_MPU: 313 mW -> 18 mW

am437x-gp-evm:
VDD_MPU: 208 mW -> 10 mW

A forthcoming series will add idle states to the device tree for each
am335x and am437x to add C1 state for MPU Gate which gates the clock to
the main CPU. am335x makes use of the wkup_m3_ipc driver for this to
use the same wkup_m3 to gate the cpu clock that is used for suspend, so
the same firmware found here is required [1] to be placed in
/lib/firmware.

First patch adds dt-binding for enable-method for each SoC which is needed
for cpuidle-arm driver to probe, second patch adds platform code for cpuidle,
third patch modifies both platform code and pm33xx soc driver to add needed
flags and callback for idling, fourth patch actually enables cpuidle in the
soc pm33xx driver, and then that last patch enables the needed CONFIG options
in omap2plus_defconfig.

Regards,
Dave

[1] https://git.ti.com/cgit/processor-firmware/ti-amx3-cm3-pm-firmware/tree/bin/am335x-pm-firmware.elf?h=ti-v4.1.y

Dave Gerlach (5):
dt-bindings: arm: cpu: Add TI AM335x and AM437x enable method
ARM: OMAP2+: pm33xx-core: Add cpuidle_ops for am335x/am437x
ARM: OMAP2+: pm33xx-core: Extend platform_data ops for cpuidle
soc: ti: pm33xx: Add base cpuidle support
ARM: omap2plus_defconfig: Add CONFIG_ARM_CPUIDLE

.../devicetree/bindings/arm/cpus.yaml | 2 +
arch/arm/configs/omap2plus_defconfig | 2 +
arch/arm/mach-omap2/pm33xx-core.c | 137 +++++++++++++++++-
drivers/soc/ti/pm33xx.c | 21 ++-
include/linux/platform_data/pm33xx.h | 6 +-
5 files changed, 160 insertions(+), 8 deletions(-)

--
2.20.1


2019-12-13 03:10:55

by Dave Gerlach

[permalink] [raw]
Subject: [PATCH 1/5] dt-bindings: arm: cpu: Add TI AM335x and AM437x enable method

Add enable-method binding for "ti,am3352" and "ti,am4372".

Signed-off-by: Dave Gerlach <[email protected]>
---
CC: Rob Herring <[email protected]>
---
Documentation/devicetree/bindings/arm/cpus.yaml | 2 ++
1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/cpus.yaml b/Documentation/devicetree/bindings/arm/cpus.yaml
index c23c24ff7575..428b6b55b5da 100644
--- a/Documentation/devicetree/bindings/arm/cpus.yaml
+++ b/Documentation/devicetree/bindings/arm/cpus.yaml
@@ -201,6 +201,8 @@ properties:
- rockchip,rk3066-smp
- socionext,milbeaut-m10v-smp
- ste,dbx500-smp
+ - ti,am3352
+ - ti,am4372

cpu-release-addr:
$ref: '/schemas/types.yaml#/definitions/uint64'
--
2.20.1

2019-12-13 15:05:13

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH 0/5] ARM: OMAP2+: Introduce cpuidle for am335x/am437x

* Dave Gerlach <[email protected]> [191212 19:07]:
> Hi,
> This series adds support for cpuidle on am335x and am437x using the
> cpuidle_arm driver. When testing on am335x-evm and am437x-gp-evm the
> follow power consumption reductions are seen on v5.5-rc1 baseline:
>
>
> Idling at command line, CPUFreq userspace governor to 300MHz:
> am335x-evm:
> VDD_MPU: 48 mW -> 5 mW
>
> am437x-gp-evm:
> VDD_MPU: 32 mW -> 3 mW
>
>
> Idling at command line, CPUFreq userspace governor to 1GHz:
> am335x-evm:
> VDD_MPU: 313 mW -> 18 mW
>
> am437x-gp-evm:
> VDD_MPU: 208 mW -> 10 mW

Hey this is great! A beverage on me when we get a chance :)

For merging, looks like I should take the series after folks are happy
with it. Santosh, care to review and ack if it looks OK?

Regards,

Tony

2019-12-19 23:18:46

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 1/5] dt-bindings: arm: cpu: Add TI AM335x and AM437x enable method

On Thu, 12 Dec 2019 21:07:51 -0600, Dave Gerlach wrote:
> Add enable-method binding for "ti,am3352" and "ti,am4372".
>
> Signed-off-by: Dave Gerlach <[email protected]>
> ---
> CC: Rob Herring <[email protected]>
> ---
> Documentation/devicetree/bindings/arm/cpus.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>

Acked-by: Rob Herring <[email protected]>

2020-02-26 18:43:59

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH 0/5] ARM: OMAP2+: Introduce cpuidle for am335x/am437x

Santosh,

* Tony Lindgren <[email protected]> [191213 15:04]:
> * Dave Gerlach <[email protected]> [191212 19:07]:
> > Hi,
> > This series adds support for cpuidle on am335x and am437x using the
> > cpuidle_arm driver. When testing on am335x-evm and am437x-gp-evm the
> > follow power consumption reductions are seen on v5.5-rc1 baseline:
> >
> >
> > Idling at command line, CPUFreq userspace governor to 300MHz:
> > am335x-evm:
> > VDD_MPU: 48 mW -> 5 mW
> >
> > am437x-gp-evm:
> > VDD_MPU: 32 mW -> 3 mW
> >
> >
> > Idling at command line, CPUFreq userspace governor to 1GHz:
> > am335x-evm:
> > VDD_MPU: 313 mW -> 18 mW
> >
> > am437x-gp-evm:
> > VDD_MPU: 208 mW -> 10 mW
>
> Hey this is great! A beverage on me when we get a chance :)
>
> For merging, looks like I should take the series after folks are happy
> with it. Santosh, care to review and ack if it looks OK?

Looks like this series of changes is still pending. Care
to ack?

Regards,

Tony

2020-02-26 19:56:06

by Santosh Shilimkar

[permalink] [raw]
Subject: Re: [PATCH 0/5] ARM: OMAP2+: Introduce cpuidle for am335x/am437x

On 2/26/20 10:43 AM, Tony Lindgren wrote:
> Santosh,
>
> * Tony Lindgren <[email protected]> [191213 15:04]:
>> * Dave Gerlach <[email protected]> [191212 19:07]:
>>> Hi,
>>> This series adds support for cpuidle on am335x and am437x using the
>>> cpuidle_arm driver. When testing on am335x-evm and am437x-gp-evm the
>>> follow power consumption reductions are seen on v5.5-rc1 baseline:
>>>
>>>
>>> Idling at command line, CPUFreq userspace governor to 300MHz:
>>> am335x-evm:
>>> VDD_MPU: 48 mW -> 5 mW
>>>
>>> am437x-gp-evm:
>>> VDD_MPU: 32 mW -> 3 mW
>>>
>>>
>>> Idling at command line, CPUFreq userspace governor to 1GHz:
>>> am335x-evm:
>>> VDD_MPU: 313 mW -> 18 mW
>>>
>>> am437x-gp-evm:
>>> VDD_MPU: 208 mW -> 10 mW
>>
>> Hey this is great! A beverage on me when we get a chance :)
>>
>> For merging, looks like I should take the series after folks are happy
>> with it. Santosh, care to review and ack if it looks OK?
>
> Looks like this series of changes is still pending. Care
> to ack?
>
Was scanning this series today. It looks good to me Tony.

Acked-by: Santosh Shilimkar <[email protected]>

2020-02-27 17:34:42

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH 0/5] ARM: OMAP2+: Introduce cpuidle for am335x/am437x

* [email protected] <[email protected]> [200226 19:56]:
> On 2/26/20 10:43 AM, Tony Lindgren wrote:
> > Santosh,
> >
> > * Tony Lindgren <[email protected]> [191213 15:04]:
> > > * Dave Gerlach <[email protected]> [191212 19:07]:
> > > > Hi,
> > > > This series adds support for cpuidle on am335x and am437x using the
> > > > cpuidle_arm driver. When testing on am335x-evm and am437x-gp-evm the
> > > > follow power consumption reductions are seen on v5.5-rc1 baseline:
> > > >
> > > >
> > > > Idling at command line, CPUFreq userspace governor to 300MHz:
> > > > am335x-evm:
> > > > VDD_MPU: 48 mW -> 5 mW
> > > >
> > > > am437x-gp-evm:
> > > > VDD_MPU: 32 mW -> 3 mW
> > > >
> > > >
> > > > Idling at command line, CPUFreq userspace governor to 1GHz:
> > > > am335x-evm:
> > > > VDD_MPU: 313 mW -> 18 mW
> > > >
> > > > am437x-gp-evm:
> > > > VDD_MPU: 208 mW -> 10 mW
> > >
> > > Hey this is great! A beverage on me when we get a chance :)
> > >
> > > For merging, looks like I should take the series after folks are happy
> > > with it. Santosh, care to review and ack if it looks OK?
> >
> > Looks like this series of changes is still pending. Care
> > to ack?
> >
> Was scanning this series today. It looks good to me Tony.
>
> Acked-by: Santosh Shilimkar <[email protected]>

Thanks applying this series into omap-for-v5.7/pm33xx.

Regards,

Tony