Aneesh V | 7ec9445 | 2012-04-27 17:54:05 +0530 | [diff] [blame] | 1 | TI EMIF SDRAM Controller Driver: |
| 2 | |
| 3 | Author |
| 4 | ======== |
| 5 | Aneesh V <aneesh@ti.com> |
| 6 | |
| 7 | Location |
| 8 | ============ |
| 9 | driver/memory/emif.c |
| 10 | |
| 11 | Supported SoCs: |
| 12 | =================== |
| 13 | TI OMAP44xx |
| 14 | TI OMAP54xx |
| 15 | |
| 16 | Menuconfig option: |
| 17 | ========================== |
| 18 | Device Drivers |
| 19 | Memory devices |
| 20 | Texas Instruments EMIF driver |
| 21 | |
| 22 | Description |
| 23 | =========== |
| 24 | This driver is for the EMIF module available in Texas Instruments |
| 25 | SoCs. EMIF is an SDRAM controller that, based on its revision, |
| 26 | supports one or more of DDR2, DDR3, and LPDDR2 SDRAM protocols. |
| 27 | This driver takes care of only LPDDR2 memories presently. The |
| 28 | functions of the driver includes re-configuring AC timing |
| 29 | parameters and other settings during frequency, voltage and |
| 30 | temperature changes |
| 31 | |
| 32 | Platform Data (see include/linux/platform_data/emif_plat.h): |
| 33 | ===================================================================== |
| 34 | DDR device details and other board dependent and SoC dependent |
| 35 | information can be passed through platform data (struct emif_platform_data) |
| 36 | - DDR device details: 'struct ddr_device_info' |
| 37 | - Device AC timings: 'struct lpddr2_timings' and 'struct lpddr2_min_tck' |
| 38 | - Custom configurations: customizable policy options through |
| 39 | 'struct emif_custom_configs' |
| 40 | - IP revision |
| 41 | - PHY type |
| 42 | |
| 43 | Interface to the external world: |
| 44 | ================================ |
| 45 | EMIF driver registers notifiers for voltage and frequency changes |
| 46 | affecting EMIF and takes appropriate actions when these are invoked. |
| 47 | - freq_pre_notify_handling() |
| 48 | - freq_post_notify_handling() |
| 49 | - volt_notify_handling() |
| 50 | |
| 51 | Debugfs |
| 52 | ======== |
| 53 | The driver creates two debugfs entries per device. |
| 54 | - regcache_dump : dump of register values calculated and saved for all |
| 55 | frequencies used so far. |
| 56 | - mr4 : last polled value of MR4 register in the LPDDR2 device. MR4 |
| 57 | indicates the current temperature level of the device. |