From: Aneesh V <aneesh@ti.com> To: linux-kernel@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org, Aneesh V <aneesh@ti.com>, Greg KH <greg@kroah.com> Subject: [PATCH v4 0/7] Add TI EMIF SDRAM controller driver Date: Sat, 17 Mar 2012 03:21:40 +0530 [thread overview] Message-ID: <1331934707-29487-1-git-send-email-aneesh@ti.com> (raw) 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
WARNING: multiple messages have this Message-ID (diff)
From: aneesh@ti.com (Aneesh V) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 0/7] Add TI EMIF SDRAM controller driver Date: Sat, 17 Mar 2012 03:21:40 +0530 [thread overview] Message-ID: <1331934707-29487-1-git-send-email-aneesh@ti.com> (raw) 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
next reply other threads:[~2012-03-16 21:52 UTC|newest] Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-03-16 21:51 Aneesh V [this message] 2012-03-16 21:51 ` [PATCH v4 0/7] Add TI EMIF SDRAM controller driver 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
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1331934707-29487-1-git-send-email-aneesh@ti.com \ --to=aneesh@ti.com \ --cc=greg@kroah.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-omap@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.