All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/7] Add TI EMIF SDRAM controller driver
@ 2012-03-16 21:51 ` Aneesh V
  0 siblings, 0 replies; 84+ messages in thread
From: Aneesh V @ 2012-03-16 21:51 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-arm-kernel, linux-omap, Aneesh V, Greg KH

Add a driver for the EMIF SDRAM controller used in TI SoCs

EMIF is an SDRAM controller that supports, based on its revision,
one or more of LPDDR2/DDR2/DDR3 protocols.This driver adds support
for LPDDR2.

The driver supports the following features:
- Calculates the DDR AC timing parameters to be set in EMIF
  registers using data from the device data-sheets and based
  on the DDR frequency. If data from data-sheets is not available
  default timing values from the JEDEC spec are used. These
  will be safe, but not necessarily optimal
- API for changing timings during DVFS or at boot-up
- Temperature alert configuration and handling of temperature
  alerts, if any for LPDDR2 devices
  * temperature alert is based on periodic polling of MR4 mode
    register in DDR devices automatically performed by hardware
  * timings are de-rated and brought back to nominal when
    temperature raises and falls respectively
- Cache of calculated register values to avoid re-calculating
  them

The driver will need some minor updates when it is eventually
integrated with Dynamic Voltage and Frequency Scaling (DVFS).
This can not be done now as DVFS support is not available in
the mainline yet.

Discussions with Santosh Shilimkar <santosh.shilimkar@ti.com>
were immensely helpful in shaping up the interfaces. Vibhore Vardhan
<vvardhan@gmail.com> did the initial code snippet for thermal
handling.

Testing: 
- The driver is tested on OMAP4430 SDP.
- The driver in a slightly adapted form is also tested on OMAP5.
- Since mainline kernel doesn't have DVFS support yet,
  testing was done using a test module.
- Temperature alert handling was tested with simulated interrupts
  and faked temperature values as testing all cases in real-life
  scenarios is difficult.
- Tested the driver as a module

Cc: Greg KH <greg@kroah.com>

v4:
- Converted instances of EXPORT_SYMBOL to EXPORT_SYMBOL_GPL
- Removed un-necessary "#ifndef __ASSEMBLY__'
- Minor formatting fix

v2:
- Fixed a bug found in the implementation of errata i728
  workaround
- Fixed the value of frequency printed in debugfs
- Dropped the hwmod patch as Paul has already posted a
  a hwmod series [1] that adds hwmod for EMIF
- Converted instances of __init to __init_or_module

[1] http://thread.gmane.org/gmane.linux.ports.arm.omap/72855

Aneesh V (7):
  misc: ddr: add LPDDR2 data from JESD209-2
  misc: emif: add register definitions for EMIF
  misc: emif: add basic infrastructure for EMIF driver
  misc: emif: handle frequency and voltage change events
  misc: emif: add interrupt and temperature handling
  misc: emif: add one-time settings
  misc: emif: add debugfs entries for emif

 Documentation/misc-devices/ti-emif.txt  |   58 ++
 drivers/misc/Kconfig                    |   12 +
 drivers/misc/Makefile                   |    1 +
 drivers/misc/emif.c                     | 1670 +++++++++++++++++++++++++++++++
 drivers/misc/emif.h                     |  589 +++++++++++
 include/linux/platform_data/emif_plat.h |  128 +++
 include/misc/jedec_ddr.h                |  175 ++++
 lib/Kconfig                             |    8 +
 lib/Makefile                            |    2 +
 lib/jedec_ddr_data.c                    |  135 +++
 10 files changed, 2778 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/misc-devices/ti-emif.txt
 create mode 100644 drivers/misc/emif.c
 create mode 100644 drivers/misc/emif.h
 create mode 100644 include/linux/platform_data/emif_plat.h
 create mode 100644 include/misc/jedec_ddr.h
 create mode 100644 lib/jedec_ddr_data.c


^ permalink raw reply	[flat|nested] 84+ messages in thread
* Re: Re: [PATCH v4 0/7] Add TI EMIF SDRAM controller driver
@ 2012-03-19  1:08 함명주
  2012-03-19  7:07 ` Shilimkar, Santosh
  0 siblings, 1 reply; 84+ messages in thread
From: 함명주 @ 2012-03-19  1:08 UTC (permalink / raw)
  To: Kyungmin Park, Aneesh V
  Cc: linux-kernel, Greg KH, linux-omap, linux-arm-kernel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=euc-kr, Size: 4974 bytes --]


Kyungmin Park<kmpark@infradead.org> 2012-03-17 15:10 (GMT+09:00)
> Hi,
> On 3/17/12, Aneesh V wrote:
> > Add a driver for the EMIF SDRAM controller used in TI SoCs
> >
> > EMIF is an SDRAM controller that supports, based on its revision,
> > one or more of LPDDR2/DDR2/DDR3 protocols.This driver adds support
> > for LPDDR2.
> >
> > The driver supports the following features:
> > - Calculates the DDR AC timing parameters to be set in EMIF
> >   registers using data from the device data-sheets and based
> >   on the DDR frequency. If data from data-sheets is not available
> >   default timing values from the JEDEC spec are used. These
> >   will be safe, but not necessarily optimal
> > - API for changing timings during DVFS or at boot-up

This means that you alreeady have callbacks to create a devfreq device driver that supports DVFS on the device. This doesn't need to be a misc device driver then.

> > - Temperature alert configuration and handling of temperature
> >   alerts, if any for LPDDR2 devices
> >   * temperature alert is based on periodic polling of MR4 mode
> >     register in DDR devices automatically performed by hardware
> >   * timings are de-rated and brought back to nominal when
> >     temperature raises and falls respectively

This can be a feature overriding "max_freq" inside the Omap EMIF devfreq device driver though it maybe (or not.. I just don't sure) be better to use thermal framework as well.


Cheers!
MyungJoo

> > - Cache of calculated register values to avoid re-calculating
> >   them
> >
> > The driver will need some minor updates when it is eventually
> > integrated with Dynamic Voltage and Frequency Scaling (DVFS).
> > This can not be done now as DVFS support is not available in
> > the mainline yet.
> Do you see the devfreq? it's designed for non-cpu device frequency.
> It's role is similar with cpufreq.
> 
> Now samsung exynos uses devfreq for DRAM bus frequency.
> 
> Thank you,
> Kyungmin Park
> >
> > Discussions with Santosh Shilimkar 
> > were immensely helpful in shaping up the interfaces. Vibhore Vardhan
> > did the initial code snippet for thermal
> > handling.
> >
> > Testing:
> > - The driver is tested on OMAP4430 SDP.
> > - The driver in a slightly adapted form is also tested on OMAP5.
> > - Since mainline kernel doesn't have DVFS support yet,
> >   testing was done using a test module.
> > - Temperature alert handling was tested with simulated interrupts
> >   and faked temperature values as testing all cases in real-life
> >   scenarios is difficult.
> > - Tested the driver as a module
> >
> > Cc: Greg KH 
> >
> > v4:
> > - Converted instances of EXPORT_SYMBOL to EXPORT_SYMBOL_GPL
> > - Removed un-necessary "#ifndef __ASSEMBLY__'
> > - Minor formatting fix
> >
> > v2:
> > - Fixed a bug found in the implementation of errata i728
> >   workaround
> > - Fixed the value of frequency printed in debugfs
> > - Dropped the hwmod patch as Paul has already posted a
> >   a hwmod series [1] that adds hwmod for EMIF
> > - Converted instances of __init to __init_or_module
> >
> > [1] http://thread.gmane.org/gmane.linux.ports.arm.omap/72855
> >
> > Aneesh V (7):
> >   misc: ddr: add LPDDR2 data from JESD209-2
> >   misc: emif: add register definitions for EMIF
> >   misc: emif: add basic infrastructure for EMIF driver
> >   misc: emif: handle frequency and voltage change events
> >   misc: emif: add interrupt and temperature handling
> >   misc: emif: add one-time settings
> >   misc: emif: add debugfs entries for emif
> >
> >  Documentation/misc-devices/ti-emif.txt  |   58 ++
> >  drivers/misc/Kconfig                    |   12 +
> >  drivers/misc/Makefile                   |    1 +
> >  drivers/misc/emif.c                     | 1670
> > +++++++++++++++++++++++++++++++
> >  drivers/misc/emif.h                     |  589 +++++++++++
> >  include/linux/platform_data/emif_plat.h |  128 +++
> >  include/misc/jedec_ddr.h                |  175 ++++
> >  lib/Kconfig                             |    8 +
> >  lib/Makefile                            |    2 +
> >  lib/jedec_ddr_data.c                    |  135 +++
> >  10 files changed, 2778 insertions(+), 0 deletions(-)
> >  create mode 100644 Documentation/misc-devices/ti-emif.txt
> >  create mode 100644 drivers/misc/emif.c
> >  create mode 100644 drivers/misc/emif.h
> >  create mode 100644 include/linux/platform_data/emif_plat.h
> >  create mode 100644 include/misc/jedec_ddr.h
> >  create mode 100644 lib/jedec_ddr_data.c
> >
> >
> > _______________________________________________
> > linux-arm-kernel mailing list
> > linux-arm-kernel@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> >
> 

--
MyungJoo Ham (ÇÔ¸íÁÖ), PHD
System S/W Lab, S/W Platform Team, Software Center
Samsung Electronics
Cell: +82-10-6714-2858



 

ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

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

end of thread, other threads:[~2012-04-27 13:16 UTC | newest]

Thread overview: 84+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-16 21:51 [PATCH v4 0/7] Add TI EMIF SDRAM controller driver Aneesh V
2012-03-16 21:51 ` Aneesh V
2012-03-16 21:51 ` [PATCH v4 1/7] misc: ddr: add LPDDR2 data from JESD209-2 Aneesh V
2012-03-16 21:51   ` Aneesh V
2012-03-16 21:51 ` [PATCH v4 2/7] misc: emif: add register definitions for EMIF Aneesh V
2012-03-16 21:51   ` Aneesh V
2012-03-16 21:51 ` [PATCH v4 3/7] misc: emif: add basic infrastructure for EMIF driver Aneesh V
2012-03-16 21:51   ` Aneesh V
2012-03-16 21:51 ` [PATCH v4 4/7] misc: emif: handle frequency and voltage change events Aneesh V
2012-03-16 21:51   ` Aneesh V
2012-03-16 21:51 ` [PATCH v4 5/7] misc: emif: add interrupt and temperature handling Aneesh V
2012-03-16 21:51   ` Aneesh V
2012-03-16 21:51 ` [PATCH v4 6/7] misc: emif: add one-time settings Aneesh V
2012-03-16 21:51   ` Aneesh V
2012-03-16 21:51 ` [PATCH v4 7/7] misc: emif: add debugfs entries for emif Aneesh V
2012-03-16 21:51   ` Aneesh V
2012-03-17  6:10 ` [PATCH v4 0/7] Add TI EMIF SDRAM controller driver Kyungmin Park
2012-03-17  6:10   ` Kyungmin Park
2012-03-17  6:10   ` Kyungmin Park
2012-04-12  2:44 ` Paul Walmsley
2012-04-12  2:44   ` Paul Walmsley
2012-04-12  2:57   ` Aneesh V
2012-04-12  2:57     ` Aneesh V
2012-04-12  2:57     ` Aneesh V
2012-04-12  3:00   ` Greg KH
2012-04-12  3:00     ` Greg KH
2012-04-12  3:12     ` Paul Walmsley
2012-04-12  3:12       ` Paul Walmsley
2012-04-12  6:47     ` Santosh Shilimkar
2012-04-12  6:47       ` Santosh Shilimkar
2012-04-12 13:10       ` Greg KH
2012-04-12 13:10         ` Greg KH
2012-04-12 13:34         ` Mohammed, Afzal
2012-04-12 13:34           ` Mohammed, Afzal
2012-04-12 13:34           ` Mohammed, Afzal
2012-04-12 14:10           ` Greg KH
2012-04-12 14:10             ` Greg KH
2012-04-12 14:10             ` Greg KH
2012-04-12 14:15             ` Mohammed, Afzal
2012-04-12 14:15               ` Mohammed, Afzal
2012-04-12 14:15               ` Mohammed, Afzal
2012-04-12 14:21           ` Kevin Hilman
2012-04-12 14:21             ` Kevin Hilman
2012-04-12 14:21             ` Kevin Hilman
2012-04-12 17:00           ` Paul Walmsley
2012-04-12 17:00             ` Paul Walmsley
2012-04-12 17:00             ` Paul Walmsley
2012-04-12 18:50             ` Cousson, Benoit
2012-04-12 18:50               ` Cousson, Benoit
2012-04-12 18:50               ` Cousson, Benoit
2012-04-12 19:15               ` Paul Walmsley
2012-04-12 19:15                 ` Paul Walmsley
2012-04-12 19:15                 ` Paul Walmsley
2012-04-12 19:24                 ` Cousson, Benoit
2012-04-12 19:24                   ` Cousson, Benoit
2012-04-12 19:24                   ` Cousson, Benoit
2012-04-13  9:07               ` Felipe Balbi
2012-04-13  9:07                 ` Felipe Balbi
2012-04-13  9:07                 ` Felipe Balbi
2012-04-12 14:14         ` Shilimkar, Santosh
2012-04-12 14:14           ` Shilimkar, Santosh
2012-04-12 19:58     ` V, Aneesh
2012-04-12 19:58       ` V, Aneesh
2012-04-23 10:56       ` Mohammed, Afzal
2012-04-23 10:56         ` Mohammed, Afzal
2012-04-23 10:56         ` Mohammed, Afzal
2012-04-23 11:04         ` Shilimkar, Santosh
2012-04-23 11:04           ` Shilimkar, Santosh
2012-04-23 11:04           ` Shilimkar, Santosh
2012-04-23 11:09           ` Mohammed, Afzal
2012-04-23 11:09             ` Mohammed, Afzal
2012-04-23 11:09             ` Mohammed, Afzal
2012-04-23 14:27           ` Greg KH
2012-04-23 14:27             ` Greg KH
2012-04-23 14:27             ` Greg KH
2012-04-23 14:44             ` Shilimkar, Santosh
2012-04-23 14:44               ` Shilimkar, Santosh
2012-04-23 14:44               ` Shilimkar, Santosh
2012-04-27 13:16               ` Santosh Shilimkar
2012-04-27 13:16                 ` Santosh Shilimkar
2012-04-27 13:16                 ` Santosh Shilimkar
2012-04-13 14:15   ` Mark Salter
2012-04-13 14:15     ` Mark Salter
2012-03-19  1:08 함명주
2012-03-19  7:07 ` Shilimkar, Santosh

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.