All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] power: enable cpufreq-dt support for i.MX23/i.MX28
@ 2015-03-22  0:29 ` Stefan Wahren
  0 siblings, 0 replies; 45+ messages in thread
From: Stefan Wahren @ 2015-03-22  0:29 UTC (permalink / raw)
  To: shawn.guo, sre, dbaryshkov, dwmw2, broonie, lgirdwood,
	mark.rutland, pawel.moll, ijc+devicetree, robh+dt, galak
  Cc: fabio.estevam, marex, kernel, rjw, viresh.kumar,
	sebastien.szymanski, devicetree, linux-arm-kernel, linux-pm,
	Stefan Wahren

This patch series adds cpufreq-dt support to Freescale i.MX23 and i.MX28.
It's the result of some discussions since August 2014 [1],[2],[3].

Summary
=======

Patch 1,2 - add driver for mxs power subsystem
Patch 3,4,5 - enable regulator support for i.MX23/i.MX28
Patch 6,7 - enable cpufreq-dt support for i.MX23/i.MX28

The main use of mxs_power driver is to trigger probing of the underlying DT
child nodes like the on-chip regulators. The mxs-regulator driver provides
for instance the voltage scaling support.

A detailed description of the MXS power subsystem is in the reference manual 
[4],[5].

Known issue
===========

The mxs clock driver provide the clock rate in Hz (454736842), but the 
operating points must be specified in kHz with less precision (454737).

So we get the following warning on boot [4]:

cpufreq: __cpufreq_add_dev: CPU0: Running at unlisted freq: 454736 KHz
cpufreq: __cpufreq_add_dev: CPU0: Unlisted initial frequency changed to: 454737 KHz

Changes
=======
- rebase on next-20150320
- complete rewrite of regulator ops based on helper functions and imx-bootlets
- move DC-DC handling from mxs_power into mxs-regulator
- make DC-DC switching frequency a device tree property
- fix NULL pointer dereference in mxs_power_remove()
- add i.MX23 support
- add cpufreq-dt support

[1] - http://www.spinics.net/lists/arm-kernel/msg356455.html
[2] - https://lkml.org/lkml/2014/9/26/932
[3] - http://lists.infradead.org/pipermail/linux-arm-kernel/2014-November/304688.html
[4] - http://cache.freescale.com/files/dsp/doc/ref_manual/IMX23RM.pdf
[5] - http://cache.freescale.com/files/dsp/doc/ref_manual/MCIMX28RM.pdf
[6] - http://marc.info/?l=linux-pm&m=141225587213505&w=2

Stefan Wahren (7):
  DT: add binding for mxs power subsystem
  power: mxs_power: add driver for mxs power subsystem
  DT: add binding for MXS regulator
  regulator: add mxs regulator driver
  ARM: dts: enable regulator support for i.MX23/i.MX28
  ARM: mxs: register cpufreq-dt in pm init
  ARM: dts: add OPPs for i.MX23/i.MX28

 .../devicetree/bindings/power/mxs_power.txt        |   23 +
 .../bindings/regulator/mxs-regulator.txt           |   70 +++
 arch/arm/boot/dts/imx23.dtsi                       |   82 ++-
 arch/arm/boot/dts/imx28.dtsi                       |   82 ++-
 arch/arm/mach-mxs/pm.c                             |    6 +
 drivers/power/Kconfig                              |    8 +
 drivers/power/Makefile                             |    1 +
 drivers/power/mxs_power.c                          |  146 +++++
 drivers/regulator/Kconfig                          |    8 +
 drivers/regulator/Makefile                         |    1 +
 drivers/regulator/mxs-regulator.c                  |  624 ++++++++++++++++++++
 11 files changed, 1045 insertions(+), 6 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/power/mxs_power.txt
 create mode 100644 Documentation/devicetree/bindings/regulator/mxs-regulator.txt
 create mode 100644 drivers/power/mxs_power.c
 create mode 100644 drivers/regulator/mxs-regulator.c

-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 45+ messages in thread
* Re: [PATCH 7/7] ARM: dts: add OPPs for i.MX23/i.MX28
@ 2015-03-28 17:53 Stefan Wahren
  2015-03-29 14:40   ` Juergen Borleis
  0 siblings, 1 reply; 45+ messages in thread
From: Stefan Wahren @ 2015-03-28 17:53 UTC (permalink / raw)
  To: Juergen Borleis, viresh.kumar, Lucas Stach
  Cc: kernel, rjw, dbaryshkov, pawel.moll, galak, robh+dt,
	ijc+devicetree, lgirdwood, shawn.guo, sre, linux-pm,
	fabio.estevam, dwmw2, mark.rutland, sebastien.szymanski, broonie,
	marex, devicetree, linux-arm-kernel

Hi,

> Juergen Borleis <juergen@kreuzholzen.de> hat am 24. März 2015 um 21:45
> geschrieben:
>
>
> Stefan Wahren wrote:
> > [...]
> > diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi
> > index 98c1be6..21c1921 100644
> > --- a/arch/arm/boot/dts/imx28.dtsi
> > +++ b/arch/arm/boot/dts/imx28.dtsi
> > @@ -38,12 +38,23 @@
> > };
> >
> > cpus {
> > - #address-cells = <0>;
> > + #address-cells = <1>;
> > #size-cells = <0>;
> >
> > - cpu {
> > + cpu@0 {
> > compatible = "arm,arm926ej-s";
> > device_type = "cpu";
> > + reg = <0x0>;
> > + operating-points = <
> > + /* kHz uV */
> > + 261819 1350000
> > + 360000 1350000
> > + 392728 1450000
> > + 454737 1550000
> > + >;
> > + clocks = <&clks 4>;
> > + clock-latency = <61036>; /* two CLK32 periods */
> > + cpu-supply = <&reg_vddd>;
> > };
> > };
>
> Maybe you should take into account not to reduce VDD below 1.55 V if the SDRAM
> controller runs above 196 MHz. The i.MX28 datasheet[1] lists these
> restrictions. VDD powers the SDRAM controller as well. From the datasheet the
> table "Frequency versus Voltage for EMICLK" shows:
>
> EMICLK Fmax (MHz)
> VDDD (V) DDR2 mDDR
> --------------------------------
> 1.550 205.71 205.71
> 1.450 196.36 196.36
> 1.350 196.36 196.36
>
> jbe
>
> [1]
> i.MX28 Applications
> Processors for Consumer
> Products
> Silicon Version 1.2
>
> Document Number: IMX28CEC
> Rev. 3, 07/2012

the only chance that i see to meet this constraint without introducing a new
cpufreq driver is to change clock ref_cpu
and ref_emi.

Do you think this solution of a virtual clock [1] can be applied here, too?

Best regards
Stefan

[1] -
http://lists.infradead.org/pipermail/linux-arm-kernel/2014-September/290822.html

^ permalink raw reply	[flat|nested] 45+ messages in thread

end of thread, other threads:[~2015-03-29 19:09 UTC | newest]

Thread overview: 45+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-22  0:29 [PATCH 0/7] power: enable cpufreq-dt support for i.MX23/i.MX28 Stefan Wahren
2015-03-22  0:29 ` Stefan Wahren
2015-03-22  0:29 ` [PATCH 1/7] DT: add binding for mxs power subsystem Stefan Wahren
2015-03-22  0:29   ` Stefan Wahren
2015-03-22  0:29 ` [PATCH 2/7] power: mxs_power: add driver " Stefan Wahren
2015-03-22  0:29   ` Stefan Wahren
2015-03-22 10:40   ` Sebastian Reichel
2015-03-22 10:40     ` Sebastian Reichel
     [not found] ` <1426984203-9133-1-git-send-email-stefan.wahren-eS4NqCHxEME@public.gmane.org>
2015-03-22  0:29   ` [PATCH 3/7] DT: add binding for MXS regulator Stefan Wahren
2015-03-22  0:29     ` Stefan Wahren
2015-03-22  0:30 ` [PATCH 4/7] regulator: add mxs regulator driver Stefan Wahren
2015-03-22  0:30   ` Stefan Wahren
2015-03-22 16:14   ` Mark Brown
2015-03-22 16:14     ` Mark Brown
2015-03-23 17:45     ` Stefan Wahren
2015-03-23 17:45       ` Stefan Wahren
2015-03-23 18:39       ` Mark Brown
2015-03-23 18:39         ` Mark Brown
2015-03-22  0:30 ` [PATCH 5/7] ARM: dts: enable regulator support for i.MX23/i.MX28 Stefan Wahren
2015-03-22  0:30   ` Stefan Wahren
2015-03-23  6:07   ` Sascha Hauer
2015-03-23  6:07     ` Sascha Hauer
2015-03-23 17:54     ` Stefan Wahren
2015-03-23 17:54       ` Stefan Wahren
2015-03-23 18:37       ` Mark Brown
2015-03-23 18:37         ` Mark Brown
     [not found]         ` <20150323183740.GI14954-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-03-24  6:45           ` Stefan Wahren
2015-03-24  6:45             ` Stefan Wahren
2015-03-24 17:01             ` Mark Brown
2015-03-24 17:01               ` Mark Brown
2015-03-24  6:12       ` Sascha Hauer
2015-03-24  6:12         ` Sascha Hauer
2015-03-22  0:30 ` [PATCH 6/7] ARM: mxs: register cpufreq-dt in pm init Stefan Wahren
2015-03-22  0:30   ` Stefan Wahren
2015-03-22  0:30 ` [PATCH 7/7] ARM: dts: add OPPs for i.MX23/i.MX28 Stefan Wahren
2015-03-22  0:30   ` Stefan Wahren
2015-03-24 20:45   ` Juergen Borleis
2015-03-24 20:45     ` Juergen Borleis
     [not found]     ` <201503242145.26370.juergen-vozXLyro3r7AVMDmWPUVSw@public.gmane.org>
2015-03-25 20:20       ` Stefan Wahren
2015-03-25 20:20         ` Stefan Wahren
2015-03-28 17:53 Stefan Wahren
2015-03-29 14:40 ` Juergen Borleis
2015-03-29 14:40   ` Juergen Borleis
2015-03-29 19:09   ` Stefan Wahren
2015-03-29 19:09     ` Stefan Wahren

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.