diff options
author | Anshul Jain <anshulj@nvidia.com> | 2013-04-24 19:16:03 -0700 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2013-04-25 17:51:59 -0700 |
commit | f8f07d54b9724ff456d085b849954c712db6cdfc (patch) | |
tree | 1bc559d58f88c5010c4be39b364491bf1ec57bdf /arch | |
parent | baf68e139f6e7f18c648d957bcf37e2a56a93d3f (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.c | 37 |
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) |