Subject: [PATCH V2 0/8] ARM: OMAP3+: support cpufreq-cpu0 for device tree boot

From: [email-masked] (Benoit Cousson)
Date: Thu, 28 Mar 2013 12:03:44 +0100

Hi Nishanth,

The patches 1 to 6 looks good to me. Beside the pretty long Cc list,
that should not necessarily contain all the mailing list.

Since you are changing / renaming some DTS files, and to avoid any merge
conflict I will apply only these 6 patches.
DTS and driver changes are in theory orthogonal enough to allow merging
them separately and in any order.

I'll update my branch with these patches ASAP.

Regards,
Benoit

On 03/19/2013 06:53 PM, Nishanth Menon wrote:
> Hi,
> The following version 2 of the series arose from trying to use BeagleBoard-XM
> (OMAP3 variant) for doing CPU DVFS using cpufreq-cpu0. This series enables the
> generic cpufreq-cpu0 driver to be used in device tree enabled boot while
> maintaining support of the legacy omap-cpufreq driver when used in non device
> tree enabled boot.
> 
> However, in order to enable complete SoC entitlement for OMAP platforms, with
> this series, key features are still pending on device tree adaptation for OMAP:
> A) clock framework data transition to DT - this should happen soon, so this
> series hacks the clock node for the time being as suggested in review of
> original series[1].
> B) On processors that use voltage controller, voltage processor (VC/VP hardware
> loop using I2C_SR path) - we have started work on transitioning them to
> regulator framework driven by DT.
> C) Adaptive Body Bias and SmartReflex AVS conversion to DT.
> 
> As a result of these pending features:
> - OMAP4 TWL6030 and TPS62361 which set voltage ONLY over I2C_SR have no
> regulators associated at the moment - fortunately, we boot at highest voltage,
> so things still work.
> - Missing ABB and AVS implies that for few of the SoCs (3630, OMAP4), I have
> not added those OPPs in DT yet - this also needs alignment with iMX, AM series
> pending work, where certain OPPs need enabling based on efuse programmed
> bit sequences - since it is an add-on work, it is not addressed here.
> 
> Note: At this point in time, we do not have DT entries for clock on OMAP
> platforms. Common Clock Framework(CCF) could also control regulators[2].
> Once these conversions are complete, there will be minimal cleanup work to
> switch to the new data structure changes.
> 
> Key benefit of the series is to allow all relevant TI platforms now to use a
> single cpufreq driver and equivalent frameworks in addition be part of the
> transition to device tree.
> NOTE: As a result of this series:
> 1. omap-cpufreq will be used only in non device tree boot scenario. we should
>    delete this driver once the 100% DT conversion is complete.
> 2. Generic cpufreq-cpu0 will be used only in device tree boot scenario.
> boot systems.
> 
> Key changes in version 2:
> 	- series now rebased on Device tree patches queued for OMAP 3.10
> 	- cpufreq-cpu0 and omap_cpufreq will co-exist and used depending on
> 	  usage of device tree.
> 	- minor wording, cleanups for the same.
> 	- omap3.dtsi and omap4.dtsi now become common dtsi which is used by
> 	  omap34xx.dtsi, omap36xx.dtsi, omap443x.dtsi, omap4460.dtsi as needed.
> 
> version 1 of the series:
> 	http://marc.info/?t=136329485400005&r=1&w=2
> 	available at:
> 	https://github.com/nmenon/linux-2.6-playground/commits/push/cpufreq-cpu0-omap-all-v1
> 
> [1] Original discussion thread which triggered this series:
> 	http://marc.info/?l=linux-pm&m=136304313700602&w=2
> 	https://patchwork.kernel.org/patch/2251841/
> 	https://patchwork.kernel.org/patch/2251851/
> [2] CCF DVFS patches:
> https://patchwork.kernel.org/patch/2195431/
> https://patchwork.kernel.org/patch/2195421/
> https://patchwork.kernel.org/patch/2195451/
> https://patchwork.kernel.org/patch/2195441/
> https://patchwork.kernel.org/patch/2195461/
> 
> Version 2 is now based on for-3.10/dts branch from Benoit:
> 	http://git.kernel.org/cgit/linux/kernel/git/bcousson/linux-omap-dt.git/log/?h=for_3.10/dts
> 	44fab7a ARM: dts: omap3-devkit8000: Add NAND DT node
> 
> Version 2 is also available at:
> 	https://github.com/nmenon/linux-2.6-playground/commits/push/cpufreq-cpu0-omap-all-v2
> 	git link: git://github.com/nmenon/linux-2.6-playground.git
> 	branch: cpufreq-cpu0-omap-all-v2
> 
> Test coverage:
> 	test script: http://pastebin.com/zrr8ptge
> Platforms verified:
> 	beaglebone(rev A6a) - AM33xx compatible - http://pastebin.com/PUx5h6Jy
> 	beagleboard (rev C1D) - OMAP3430 compatible - http://pastebin.com/SycCinFb (DT) http://pastebin.com/qwJHw9Ev (no DT)
> 	omap3-beagle-xm -OMAP3630 compatible - http://pastebin.com/tVEXeVZC
> 	Pandaboard -(OMAP4430 ES2.2) verified with omapconf - http://pastebin.com/cAtytfW0
> 	Pandaboard-ES -(OMAP4460 ES1.1) verified with omapconf - http://pastebin.com/3EymNTMp
> 
> Nishanth Menon (8):
>   ARM: dts: OMAP34xx/35xx: Add CPU OPP table
>   ARM: dts: OMAP36xx: Add CPU OPP table
>   ARM: dts: OMAP3: use twl4030 vdd1 regulator for CPU
>   ARM: dts: OMAP443x: Add CPU OPP table
>   ARM: dts: omap4-panda: move generic sections to panda-common
>   ARM: dts: OMAP4460: Add CPU OPP table
>   ARM: OMAP3+: use cpu0-cpufreq driver in device tree supported boot
>   cpufreq: OMAP: donot allow to be used with device tree
> 
>  arch/arm/boot/dts/am3517-evm.dts          |    2 +-
>  arch/arm/boot/dts/am3517_mt_ventoux.dts   |    2 +-
>  arch/arm/boot/dts/omap3-beagle-xm.dts     |    6 +
>  arch/arm/boot/dts/omap3-beagle.dts        |    8 +-
>  arch/arm/boot/dts/omap3-devkit8000.dts    |    2 +-
>  arch/arm/boot/dts/omap3-evm.dts           |    8 +-
>  arch/arm/boot/dts/omap3-igep.dtsi         |    2 +-
>  arch/arm/boot/dts/omap3-overo.dtsi        |    2 +-
>  arch/arm/boot/dts/omap3430-sdp.dts        |    2 +-
>  arch/arm/boot/dts/omap34xx.dtsi           |   28 ++++
>  arch/arm/boot/dts/omap36xx.dtsi           |   13 ++
>  arch/arm/boot/dts/omap4-panda-a4.dts      |    5 +-
>  arch/arm/boot/dts/omap4-panda-common.dtsi |  251 +++++++++++++++++++++++++++++
>  arch/arm/boot/dts/omap4-panda-es.dts      |    3 +-
>  arch/arm/boot/dts/omap4-panda.dts         |  247 +---------------------------
>  arch/arm/boot/dts/omap4-sdp.dts           |    2 +-
>  arch/arm/boot/dts/omap4-var-som.dts       |    2 +-
>  arch/arm/boot/dts/omap443x.dtsi           |   27 ++++
>  arch/arm/boot/dts/omap4460.dtsi           |   14 ++
>  arch/arm/boot/dts/twl4030.dtsi            |    6 +
>  arch/arm/mach-omap2/board-generic.c       |    5 +
>  arch/arm/mach-omap2/cclock33xx_data.c     |    2 +-
>  arch/arm/mach-omap2/cclock3xxx_data.c     |    3 +-
>  arch/arm/mach-omap2/cclock44xx_data.c     |    3 +-
>  drivers/cpufreq/omap-cpufreq.c            |   14 ++
>  25 files changed, 399 insertions(+), 260 deletions(-)
>  create mode 100644 arch/arm/boot/dts/omap34xx.dtsi
>  create mode 100644 arch/arm/boot/dts/omap4-panda-common.dtsi
>  create mode 100644 arch/arm/boot/dts/omap443x.dtsi
> 
> vmlinux size change information (omap2plus_defconfig + CPUFREQ enabled):
> add/remove: 0/0 grow/shrink: 5/0 up/down: 208/0 (208)
> function                                     old     new   delta
> omap_cpu_init                                360     472    +112
> omap_generic_init                             96     140     +44
> omap44xx_clks                               5832    5856     +24
> omap3xxx_clks                               6720    6744     +24
> omap3xxx_clk_init                           1072    1076      +4
> 
> non-zero DTB size deltas(bytes):
> old	new	delta	 filename
> 10671	10898	+227	omap3-beagle-xm.dtb
> 9947	10190	+243	omap3-beagle.dtb
> 11399	11582	+183	omap3-devkit8000.dtb
> 9731	9974	+243	omap3-evm.dtb
> 10958	11141	+183	omap3-igep0020.dtb
> 10906	11089	+183	omap3-igep0030.dtb
> 10255	10438	+183	omap3-tobi.dtb
> 11361	11544	+183	omap3430-sdp.dtb
> 16270	16361	+91	omap4-panda-a4.dtb
> 16326	16409	+83	omap4-panda-es.dtb
> 16270	16361	+91	omap4-panda.dtb
> 19379	19470	+91	omap4-sdp.dtb
> 12943	13034	+91	omap4-var-som.dtb
> 
> Cc: Kevin Hilman <[email-masked]>
> Cc: Jon Hunter <[email-masked]>
> Cc: "Beno?t Cousson" <[email-masked]>
> Cc: Santosh Shilimkar <[email-masked]>
> Cc: Shawn Guo <[email-masked]>
> Cc: Keerthy <[email-masked]>
> Cc: linux-omap at vger.kernel.org
> Cc: devicetree-discuss at lists.ozlabs.org
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: cpufreq at vger.kernel.org
> Cc: linux-pm at vger.kernel.org
> 
> Regards,
> Nishanth Menon
>