summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorAnshul Jain <anshulj@nvidia.com>2013-04-24 19:16:03 -0700
committerSimone Willett <swillett@nvidia.com>2013-04-25 17:51:59 -0700
commitf8f07d54b9724ff456d085b849954c712db6cdfc (patch)
tree1bc559d58f88c5010c4be39b364491bf1ec57bdf /arch
parentbaf68e139f6e7f18c648d957bcf37e2a56a93d3f (diff)
ARM: tegra: roth: ISSP configs and FW change
This change separates issp device configuration for p2454 and p2560 boards. This change also downgrades the JS firmware P2454 from v37 to v30. Also, it creates a node for p2560 with v37. Bug 1266521 Bug 1270341 Bug 1276644 Change-Id: Ibb4b59d48146b71a8dec83c2460716299f38a0fc Signed-off-by: Anshul Jain <anshulj@nvidia.com> Reviewed-on: http://git-master/r/222599 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/board-roth.c37
1 files changed, 33 insertions, 4 deletions
diff --git a/arch/arm/mach-tegra/board-roth.c b/arch/arm/mach-tegra/board-roth.c
index 55e50cc18cf5..881c9eaca241 100644
--- a/arch/arm/mach-tegra/board-roth.c
+++ b/arch/arm/mach-tegra/board-roth.c
@@ -404,7 +404,7 @@ static struct platform_device tegra_camera = {
};
-static struct issp_platform_data roth_issp_pdata = {
+static struct issp_platform_data roth_issp_pdata_p2454 = {
.reset_gpio = TEGRA_GPIO_PH4,
.data_gpio = TEGRA_GPIO_PH6,
.clk_gpio = TEGRA_GPIO_PH7,
@@ -414,15 +414,44 @@ static struct issp_platform_data roth_issp_pdata = {
.blocks = 128,
.security_size = 64,
.version_addr = 0x0286,
+ .force_update = 1,
};
-static struct platform_device roth_issp_device = {
+static struct platform_device roth_issp_device_p2454 = {
.name = "issp",
.dev = {
- .platform_data = &roth_issp_pdata,
+ .platform_data = &roth_issp_pdata_p2454,
},
};
+static struct issp_platform_data roth_issp_pdata_p2560 = {
+ .reset_gpio = TEGRA_GPIO_PH4,
+ .data_gpio = TEGRA_GPIO_PH6,
+ .clk_gpio = TEGRA_GPIO_PH7,
+ .fw_name = "p2560-uc.fw",
+ .si_id = {0x00, 0xA2, 0x52, 0x21}, /* CY7C64345 */
+ .block_size = 128,
+ .blocks = 128,
+ .security_size = 64,
+ .version_addr = 0x0286,
+ .force_update = 0,
+};
+
+static struct platform_device roth_issp_device_p2560 = {
+ .name = "issp",
+ .dev = {
+ .platform_data = &roth_issp_pdata_p2560,
+ },
+};
+
+static void __init roth_issp_init(void)
+{
+ if (system_rev == P2454)
+ platform_device_register(&roth_issp_device_p2454);
+ else
+ platform_device_register(&roth_issp_device_p2560);
+}
+
static struct platform_device *roth_devices[] __initdata = {
&tegra_pmu_device,
&tegra_rtc_device,
@@ -453,7 +482,6 @@ static struct platform_device *roth_devices[] __initdata = {
#if defined(CONFIG_CRYPTO_DEV_TEGRA_AES)
&tegra_aes_device,
#endif
- &roth_issp_device,
};
#ifdef CONFIG_USB_SUPPORT
@@ -741,6 +769,7 @@ static void __init tegra_roth_init(void)
roth_soctherm_init();
roth_fan_init();
roth_revision_init();
+ roth_issp_init();
}
static void __init roth_ramconsole_reserve(unsigned long size)