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 | |
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')
-rw-r--r-- | arch/arm/mach-tegra/board-e1853.c | 30 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-p1852.c | 8 |
2 files changed, 36 insertions, 2 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(); } diff --git a/arch/arm/mach-tegra/board-p1852.c b/arch/arm/mach-tegra/board-p1852.c index aefc21774a7d..4ff3eaf47899 100644 --- a/arch/arm/mach-tegra/board-p1852.c +++ b/arch/arm/mach-tegra/board-p1852.c @@ -1,6 +1,4 @@ /* - * arch/arm/mach-tegra/board-p1852.c - * * Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify it @@ -15,6 +13,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * + * arch/arm/mach-tegra/board-p1852.c + * */ #include <linux/kernel.h> @@ -606,6 +606,10 @@ static struct tegra_nor_platform_data p1852_nor_data = { .width = 2, }, .chip_parms = { + .MuxMode = NorMuxMode_ADNonMux, + .ReadMode = NorReadMode_Page, + .PageLength = NorPageLength_8Word, + .ReadyActive = NorReadyActive_WithData, /* FIXME: Need to use characterized value */ .timing_default = { .timing0 = 0x30300263, |