linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 00/11] OMAP System Control Module
@ 2012-05-25  8:25 Eduardo Valentin
  2012-05-25  8:25 ` [RFC PATCH 01/11] ARM: OMAP4: Remove un-used control module headers and defines Eduardo Valentin
                   ` (22 more replies)
  0 siblings, 23 replies; 99+ messages in thread
From: Eduardo Valentin @ 2012-05-25  8:25 UTC (permalink / raw)
  To: b-cousson, kishon, kbaidarov, santosh.shilimkar, tony, paul
  Cc: amit.kucheria, balbi, linux-pm, linux-omap, linux-arm-kernel

Hello Paul and Tony,

This is a series of patches adding a basic support for system control module,
on OMAP4+ context. It is a working in progress, but I wanted to share already
to get your feedback.

I've modeled the driver as an MFD. You will see in this series:
. A rework of the system control module header (patch from Santosh, picked from the list)
. Device creation for control module core
. Early device creation for control module core
. The MFD core driver for system control module
. The MFD child for usb-phy pin control
. The MFD child for bandgap sensor
. Very early exposure of OMAP4 thermal zone
. All added drivers are only supporting DT probing
. The series is based on linux-omap master, as it has the hwmod entries for SCM.

The overall idea of this series is to put in place the infrastructure. It is
not touching nor removing the existing APIs under mach-omap2/control.c for now.
But the target is to have these APIs moved to the MFD core driver.

For early access, like ID checking, I have written the platform driver
as an early platform driver and you will see also early device addition
and probing under device.c for this case. This is of course a proposal.
I see that there are people that thing this is a bit of an overkill.
Konstantin (CCd) was proposing a simpler solution by having
APIs with early_* prefixes, and solve the IO address mapping with
a DT entry, for instance. But feel free to propose better ways.

This code has been ripped off from the Android 3.1 branch. I have rewritten
a couple of things, but the major driver functions and API's entries are kept.

So, based on this series, I see as a TODO list, for system control core driver:
- Start to move all the existing APIs under mach-omap2/control.c to the mfd core.
- Rewrite the users of the existing APIs, mentioned on previous item
Once we decide the API and agree on how to deal with early calls.
- Add remaining children (from top of my head, the CAM is one of them,
but I also think we should prob have one for HWOBS for instance)
- Test on boards that use the existing APIs.

TODO list for bandgap driver:
- Improve thermal zone definition for OMAP4
- Introduce the thermal zones for OMAP5

Amit, due to hwmod dep, I didn't include any cooling binding in this series,
based on the generic CPU cooling device.

Overall series has been tested only with panda board OMAP4460.

Your comments are welcome.

All best,

Eduardo Valentin (9):
  ARM: OMAP: expose control.h to mach area
  OMAP: Add early device for system control module
  mfd: omap: control: core system control driver
  OMAP2+: use control module mfd driver in omap_type
  mfd: omap: control: usb-phy: introduce the ctrl-module usb driver
  ARM: OMAP4+: Adding the temperature sensor register set bit fields
  ARM: OMAP4+: thermal: introduce bandgap temperature sensor
  omap4: thermal: add basic CPU thermal zone
  ARM: DT: Add support to system control module for OMAP4

Kishon Vijay Abraham I (1):
  arm: omap: device: create a device for system control module

Santosh Shilimkar (1):
  ARM: OMAP4: Remove un-used control module headers and defines.

 .../devicetree/bindings/mfd/omap_control.txt       |   44 +
 .../devicetree/bindings/thermal/omap_bandgap.txt   |   27 +
 arch/arm/boot/dts/omap4.dtsi                       |   13 +
 arch/arm/mach-omap2/Kconfig                        |    1 +
 arch/arm/mach-omap2/am35xx-emac.c                  |    2 +-
 arch/arm/mach-omap2/board-3430sdp.c                |    2 +-
 arch/arm/mach-omap2/board-4430sdp.c                |    2 +-
 arch/arm/mach-omap2/board-am3517crane.c            |    2 +-
 arch/arm/mach-omap2/board-am3517evm.c              |    2 +-
 arch/arm/mach-omap2/board-apollon.c                |    2 +-
 arch/arm/mach-omap2/board-cm-t3517.c               |    2 +-
 arch/arm/mach-omap2/board-h4.c                     |    2 +-
 arch/arm/mach-omap2/board-igep0020.c               |    2 +-
 arch/arm/mach-omap2/board-ldp.c                    |    2 +-
 arch/arm/mach-omap2/board-omap3logic.c             |    2 +-
 arch/arm/mach-omap2/board-omap4panda.c             |    2 +-
 arch/arm/mach-omap2/board-omap4pcm049.c            |    2 +-
 arch/arm/mach-omap2/clock2420_data.c               |    2 +-
 arch/arm/mach-omap2/clock2430_data.c               |    2 +-
 arch/arm/mach-omap2/clock3xxx_data.c               |    2 +-
 arch/arm/mach-omap2/clock44xx_data.c               |    2 +-
 arch/arm/mach-omap2/common.c                       |    2 +-
 arch/arm/mach-omap2/control.c                      |    2 +-
 arch/arm/mach-omap2/cpuidle34xx.c                  |    2 +-
 arch/arm/mach-omap2/devices.c                      |   57 +-
 arch/arm/mach-omap2/display.c                      |    2 +-
 arch/arm/mach-omap2/hsmmc.c                        |    2 +-
 arch/arm/mach-omap2/id.c                           |   18 +-
 arch/arm/mach-omap2/{ => include/mach}/control.h   |  163 ++-
 .../include/mach/ctrl_module_core_44xx.h           |  391 -----
 .../include/mach/ctrl_module_pad_core_44xx.h       | 1409 -----------------
 .../include/mach/ctrl_module_pad_wkup_44xx.h       |  236 ---
 .../include/mach/ctrl_module_wkup_44xx.h           |   92 --
 arch/arm/mach-omap2/mcbsp.c                        |    2 +-
 arch/arm/mach-omap2/mux.c                          |    2 +-
 arch/arm/mach-omap2/omap_phy_internal.c            |    2 +-
 arch/arm/mach-omap2/opp3xxx_data.c                 |    2 +-
 arch/arm/mach-omap2/opp4xxx_data.c                 |    2 +-
 arch/arm/mach-omap2/pm24xx.c                       |    2 +-
 arch/arm/mach-omap2/pm34xx.c                       |    2 +-
 arch/arm/mach-omap2/prcm.c                         |    2 +-
 arch/arm/mach-omap2/serial.c                       |    2 +-
 arch/arm/mach-omap2/sleep34xx.S                    |    2 +-
 arch/arm/mach-omap2/sr_device.c                    |    2 +-
 arch/arm/mach-omap2/usb-fs.c                       |    2 +-
 arch/arm/mach-omap2/voltage.c                      |    2 +-
 arch/arm/plat-omap/Kconfig                         |    3 +
 drivers/mfd/Kconfig                                |    9 +
 drivers/mfd/Makefile                               |    1 +
 drivers/mfd/omap-control-core.c                    |  211 +++
 drivers/thermal/Kconfig                            |   25 +
 drivers/thermal/Makefile                           |    5 +-
 drivers/thermal/omap-bandgap.c                     | 1602 ++++++++++++++++++++
 drivers/thermal/omap-bandgap.h                     |   75 +
 drivers/thermal/omap4-thermal.c                    |   72 +
 drivers/usb/otg/Kconfig                            |   13 +
 drivers/usb/otg/Makefile                           |    1 +
 drivers/usb/otg/omap4-usb-phy.c                    |  130 ++
 include/linux/mfd/omap_control.h                   |   69 +
 include/linux/usb/omap4_usb_phy.h                  |   53 +
 60 files changed, 2617 insertions(+), 2173 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/mfd/omap_control.txt
 create mode 100644 Documentation/devicetree/bindings/thermal/omap_bandgap.txt
 rename arch/arm/mach-omap2/{ => include/mach}/control.h (75%)
 delete mode 100644 arch/arm/mach-omap2/include/mach/ctrl_module_core_44xx.h
 delete mode 100644 arch/arm/mach-omap2/include/mach/ctrl_module_pad_core_44xx.h
 delete mode 100644 arch/arm/mach-omap2/include/mach/ctrl_module_pad_wkup_44xx.h
 delete mode 100644 arch/arm/mach-omap2/include/mach/ctrl_module_wkup_44xx.h
 create mode 100644 drivers/mfd/omap-control-core.c
 create mode 100644 drivers/thermal/omap-bandgap.c
 create mode 100644 drivers/thermal/omap-bandgap.h
 create mode 100644 drivers/thermal/omap4-thermal.c
 create mode 100644 drivers/usb/otg/omap4-usb-phy.c
 create mode 100644 include/linux/mfd/omap_control.h
 create mode 100644 include/linux/usb/omap4_usb_phy.h

-- 
1.7.7.1.488.ge8e1c

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

end of thread, other threads:[~2012-06-26 11:17 UTC | newest]

Thread overview: 99+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-25  8:25 [RFC PATCH 00/11] OMAP System Control Module Eduardo Valentin
2012-05-25  8:25 ` [RFC PATCH 01/11] ARM: OMAP4: Remove un-used control module headers and defines Eduardo Valentin
2012-05-28  9:12   ` Shilimkar, Santosh
2012-05-25  8:25 ` [RFC PATCH 02/11] ARM: OMAP: expose control.h to mach area Eduardo Valentin
2012-05-28  9:25   ` Shilimkar, Santosh
2012-05-28 10:30     ` Valentin, Eduardo
2012-06-01 11:19       ` Tony Lindgren
2012-05-25  8:25 ` [RFC PATCH 03/11] arm: omap: device: create a device for system control module Eduardo Valentin
2012-05-25 12:30   ` Cousson, Benoit
2012-05-29  9:44     ` Eduardo Valentin
2012-06-14 13:50       ` Konstantin Baydarov
2012-06-15  9:22         ` Valentin, Eduardo
2012-05-29 13:39   ` Konstantin Baydarov
2012-05-25  8:25 ` [RFC PATCH 04/11] OMAP: Add early " Eduardo Valentin
2012-05-25 11:32   ` Konstantin Baydarov
2012-05-25 11:44     ` Valentin, Eduardo
2012-05-25 11:54   ` Konstantin Baydarov
2012-05-25 12:32   ` Cousson, Benoit
2012-05-28  9:58   ` Shilimkar, Santosh
2012-05-25  8:25 ` [RFC PATCH 05/11] mfd: omap: control: core system control driver Eduardo Valentin
2012-05-25 12:52   ` Cousson, Benoit
2012-05-28 11:35     ` Eduardo Valentin
2012-05-29 13:25       ` Cousson, Benoit
2012-06-01 11:29         ` Tony Lindgren
2012-06-01 12:30           ` Shilimkar, Santosh
2012-06-01 12:43             ` Cousson, Benoit
2012-06-01 17:19               ` Eduardo Valentin
2012-06-01 13:40           ` Konstantin Baydarov
2012-06-01 14:13             ` Tony Lindgren
2012-06-01 14:26               ` Konstantin Baydarov
2012-05-28  9:54   ` Shilimkar, Santosh
2012-05-28 11:42     ` Eduardo Valentin
2012-05-28 13:15       ` Shilimkar, Santosh
2012-05-29 13:31         ` Cousson, Benoit
2012-05-25  8:25 ` [RFC PATCH 06/11] OMAP2+: use control module mfd driver in omap_type Eduardo Valentin
2012-05-25 12:53   ` Cousson, Benoit
2012-05-28 10:02     ` Shilimkar, Santosh
2012-05-28 11:24       ` Eduardo Valentin
2012-06-01 11:35         ` Tony Lindgren
2012-05-25  8:25 ` [RFC PATCH 07/11] mfd: omap: control: usb-phy: introduce the ctrl-module usb driver Eduardo Valentin
2012-05-25 13:35   ` Shubhrajyoti Datta
2012-05-25 15:06   ` Cousson, Benoit
2012-06-01 11:38   ` Tony Lindgren
2012-06-01 13:20     ` [linux-pm] " Tony Lindgren
2012-06-01 14:07       ` Kevin Hilman
2012-06-01 14:15         ` Tony Lindgren
2012-05-25  8:25 ` [RFC PATCH 08/11] ARM: OMAP4+: Adding the temperature sensor register set bit fields Eduardo Valentin
2012-05-25 15:13   ` Cousson, Benoit
2012-05-28 11:17     ` Eduardo Valentin
2012-05-28 10:04   ` Shilimkar, Santosh
2012-05-28 11:18     ` Eduardo Valentin
2012-05-25  8:25 ` [RFC PATCH 09/11] ARM: OMAP4+: thermal: introduce bandgap temperature sensor Eduardo Valentin
2012-05-25 15:49   ` Cousson, Benoit
2012-05-28 11:06     ` Eduardo Valentin
2012-05-28 11:16     ` Eduardo Valentin
2012-05-29 13:14       ` Cousson, Benoit
2012-05-29 17:51         ` Mike Turquette
2012-05-25 16:39   ` Konstantin Baydarov
2012-05-28 10:55     ` Eduardo Valentin
2012-06-01 11:42   ` Tony Lindgren
2012-05-25  8:26 ` [RFC PATCH 10/11] omap4: thermal: add basic CPU thermal zone Eduardo Valentin
2012-05-28  9:33   ` Shilimkar, Santosh
2012-05-28  9:48     ` Felipe Balbi
2012-05-28 10:26       ` Valentin, Eduardo
2012-05-29 12:54         ` Cousson, Benoit
2012-05-25  8:26 ` [RFC PATCH 11/11] ARM: DT: Add support to system control module for OMAP4 Eduardo Valentin
2012-05-29  9:49   ` Konstantin Baydarov
2012-05-30  8:38     ` Cousson, Benoit
2012-05-30  9:05       ` Konstantin Baydarov
2012-05-30  9:26         ` Cousson, Benoit
2012-05-30 10:17           ` Konstantin Baydarov
2012-05-30 10:22             ` Cousson, Benoit
2012-05-30 10:42               ` Eduardo Valentin
2012-05-30 12:16                 ` Cousson, Benoit
2012-05-31 12:06           ` Konstantin Baydarov
2012-05-31 12:49             ` Eduardo Valentin
2012-05-31 12:52               ` Cousson, Benoit
2012-05-31 14:51                 ` Konstantin Baydarov
2012-05-25  8:35 ` [RFC PATCH 00/11] OMAP System Control Module Eduardo Valentin
2012-05-25 10:50 ` Konstantin Baydarov
2012-05-25 11:11   ` Valentin, Eduardo
2012-05-25 12:21     ` Konstantin Baydarov
2012-06-01  0:12 ` [linux-pm] " Kevin Hilman
2012-06-18 11:32 ` [RFC PATCH v2 01/11] ARM: OMAP4: Remove un-used control module headers and defines Konstantin Baydarov
2012-06-18 11:32 ` [RFC PATCH v2 02/11] ARM: OMAP: expose control.h to mach area Konstantin Baydarov
2012-06-20 10:17   ` Tony Lindgren
2012-06-18 11:32 ` [RFC PATCH v2 03/11] mfd: omap: control: core system control driver Konstantin Baydarov
2012-06-20 10:22   ` Tony Lindgren
2012-06-20 14:13     ` Konstantin Baydarov
2012-06-26 11:17       ` Tony Lindgren
2012-06-18 11:32 ` [RFC PATCH v2 04/11] OMAP2+: use control module mfd driver in omap_type Konstantin Baydarov
2012-06-20 10:24   ` Tony Lindgren
2012-06-18 11:32 ` [RFC PATCH v2 05/11] mfd: omap: control: usb-phy: introduce the ctrl-module usb driver Konstantin Baydarov
2012-06-18 11:32 ` [RFC PATCH v2 06/11] ARM: OMAP4+: Adding the temperature sensor register set bit fields Konstantin Baydarov
2012-06-20 10:25   ` Tony Lindgren
2012-06-18 11:32 ` [RFC PATCH v2 07/11] ARM: OMAP4+: thermal: introduce bandgap temperature sensor Konstantin Baydarov
2012-06-18 11:32 ` [RFC PATCH v2 08/11] omap4: thermal: add basic CPU thermal zone Konstantin Baydarov
2012-06-18 11:32 ` [RFC PATCH v2 09/11] ARM: DT: Add support to system control module for OMAP4 Konstantin Baydarov
2012-06-18 12:13   ` Sergei Shtylyov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).