On Fri, Apr 27, 2012 at 8:24 AM, Santosh Shilimkar <santosh.shilimkar@xxxxxx> wrote: > Add a driver for the EMIF SDRAM controller used in Texas Instrument SoCs Hi Santosh, Can you send Greg a patch that adds proper dependencies to the Kconfig? I was going to simply add an ARM dependency, but perhaps you want to restrict it further to a subset of OMAP platforms? At the moment it is causing build failures in other architectures. http://kisskb.ellerman.id.au/kisskb/buildresult/6243036/ Thanks, Paul. -- > > 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@xxxxxx> > were immensely helpful in shaping up the interfaces. Vibhore Vardhan > <vvardhan@xxxxxxxxx> 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@xxxxxxxxx> > > v5: > - Moved the EMIF driver to drivers/memory as per discussion thread [2] > > 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 > > Regards > Santosh > > [1] http://thread.gmane.org/gmane.linux.ports.arm.omap/72855 > [2] https://lkml.org/lkml/2012/4/12/173 > > > Aneesh V (7): > ddr: add LPDDR2 data from JESD209-2 > memory: emif: add register definitions for EMIF > memory: emif: add basic infrastructure for EMIF driver > memory: emif: handle frequency and voltage change events > memory: emif: add interrupt and temperature handling > memory: emif: add one-time settings > memory: emif: add debugfs entries for emif > > Documentation/memory-devices/ti-emif.txt | 57 + > drivers/Kconfig | 4 + > drivers/Makefile | 3 + > drivers/memory/Kconfig | 22 + > drivers/memory/Makefile | 5 + > drivers/memory/emif.c | 1670 ++++++++++++++++++++++++++++++ > drivers/memory/emif.h | 589 +++++++++++ > include/linux/platform_data/emif_plat.h | 128 +++ > include/memory/jedec_ddr.h | 175 ++++ > lib/Kconfig | 8 + > lib/Makefile | 2 + > lib/jedec_ddr_data.c | 135 +++ > 12 files changed, 2798 insertions(+), 0 deletions(-) > create mode 100644 Documentation/memory-devices/ti-emif.txt > create mode 100644 drivers/memory/Kconfig > create mode 100644 drivers/memory/Makefile > create mode 100644 drivers/memory/emif.c > create mode 100644 drivers/memory/emif.h > create mode 100644 include/linux/platform_data/emif_plat.h > create mode 100644 include/memory/jedec_ddr.h > create mode 100644 lib/jedec_ddr_data.c > > -- > 1.7.5.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html