diff options
author | Bob Johnston <bjohnston@nvidia.com> | 2012-08-16 10:52:14 -0400 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-08-28 18:11:35 -0700 |
commit | e3d92859c4351847a98e48746fb19d12fac16c6d (patch) | |
tree | 695595408d56b52c34f46d11270f38be19bb624f /arch/arm/mach-tegra/board-e1853.c | |
parent | 1fecf8089ef4bc65e92f341684b3c541eecd5eab (diff) |
E1853 BRINGUP Linux Snor: Micron Support
Expanding NOR functionality to work with ADMUX and Burst mode for Micron
Support in E1853.
Bug 989919
Bug 966833
- Adding fields for picking MUX vs NONMUX and picking Async, Paging,
Burst mode for reads
- Added run time decision between them
- 1853 specific settings for Async NOR
- 1852 specific settings for NOR
- 1853 NOR timings changed
Reviewed-on: http://git-master/r/122286
(cherry picked from commit a242e7194c7de559d22fe5b275a8782086f10e50)
Change-Id: I79de1d52d4c7199c83b380c2fa6d8cae6b35f09d
Signed-off-by: Bob Johnston <BJohnston@nvidia.com>
Reviewed-on: http://git-master/r/124946
Tested-by: Bob Johnston <bjohnston@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-e1853.c')
-rw-r--r-- | arch/arm/mach-tegra/board-e1853.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-e1853.c b/arch/arm/mach-tegra/board-e1853.c index cec5667fb95b..3b6d2bfc3d4c 100644 --- a/arch/arm/mach-tegra/board-e1853.c +++ b/arch/arm/mach-tegra/board-e1853.c @@ -355,6 +355,35 @@ static void e1853_usb_init(void) platform_device_register(&tegra_ehci3_device); } +static struct tegra_nor_platform_data e1853_nor_data = { + .flash = { + .map_name = "cfi_probe", + .width = 2, + }, + .chip_parms = { + .MuxMode = NorMuxMode_ADMux, + .BurstLength = NorBurstLength_CntBurst, + .ReadMode = NorReadMode_Async, + .ReadyActive = NorReadyActive_BeforeData, + /* FIXME: Need to use characterized value */ + .timing_default = { + .timing0 = 0xA0A05585, + .timing1 = 0x200A0406, + }, + .timing_read = { + .timing0 = 0xA0A05585, + .timing1 = 0x00050406, + }, + }, +}; + +static void e1853_nor_init(void) +{ + tegra_nor_device.resource[2].end = TEGRA_NOR_FLASH_BASE + SZ_64M - 1; + tegra_nor_device.dev.platform_data = &e1853_nor_data; + platform_device_register(&tegra_nor_device); +} + static void __init tegra_e1853_init(void) { tegra_init_board_info(); @@ -368,6 +397,7 @@ static void __init tegra_e1853_init(void) e1853_spi_init(); platform_add_devices(e1853_devices, ARRAY_SIZE(e1853_devices)); e1853_panel_init(); + e1853_nor_init(); e1853_pcie_init(); } |