summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorBob Johnston <bjohnston@nvidia.com>2012-08-16 10:52:14 -0400
committerSimone Willett <swillett@nvidia.com>2012-08-28 18:11:35 -0700
commite3d92859c4351847a98e48746fb19d12fac16c6d (patch)
tree695595408d56b52c34f46d11270f38be19bb624f /arch
parent1fecf8089ef4bc65e92f341684b3c541eecd5eab (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.c30
-rw-r--r--arch/arm/mach-tegra/board-p1852.c8
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,