summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorRichard Zhao <rizhao@nvidia.com>2013-03-14 16:40:58 -0700
committerSimone Willett <swillett@nvidia.com>2013-04-04 18:50:40 -0700
commitcb617fec6c3e7a3d99dae7c72c8ddae5bbf64340 (patch)
tree43cd1ec41c62f709d13f5599c5dbb6789f231dd3 /arch
parentb8ce6f703a8cae74ba2e63dcfc197a5e317d3a03 (diff)
ARM: tegra: roth: add issp device
issp is used to program roth on-board joystick micro controller. This driver adds: - issp platform device - firmware for micro controller P2560_v0_34_not_readprotect_0280.hex - add issp to tegra11_android_defconfig Bug 1245803 Change-Id: Idaddbbe8e853744da7f09bb846f47374ebe841b9 Signed-off-by: Richard Zhao <rizhao@nvidia.com> Reviewed-on: http://git-master/r/209785 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/configs/tegra11_android_defconfig2
-rw-r--r--arch/arm/mach-tegra/board-roth-pinmux.c4
-rw-r--r--arch/arm/mach-tegra/board-roth.c21
3 files changed, 25 insertions, 2 deletions
diff --git a/arch/arm/configs/tegra11_android_defconfig b/arch/arm/configs/tegra11_android_defconfig
index f5c16810b074..bbb85fe87ce9 100644
--- a/arch/arm/configs/tegra11_android_defconfig
+++ b/arch/arm/configs/tegra11_android_defconfig
@@ -188,7 +188,6 @@ CONFIG_CAIF=y
CONFIG_NFC=y
CONFIG_BCM2079X_NFC=y
CONFIG_PN544_NFC=y
-# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_AD525X_DPOT=y
CONFIG_AD525X_DPOT_I2C=y
@@ -208,6 +207,7 @@ CONFIG_ST_HOST_WAKE=y
CONFIG_TEGRA_BB_SUPPORT=y
CONFIG_TEGRA_BB_POWER=y
CONFIG_TEGRA_BB_OEM1=y
+CONFIG_ISSP=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
diff --git a/arch/arm/mach-tegra/board-roth-pinmux.c b/arch/arm/mach-tegra/board-roth-pinmux.c
index 272d627ca9ca..65c6b405f765 100644
--- a/arch/arm/mach-tegra/board-roth-pinmux.c
+++ b/arch/arm/mach-tegra/board-roth-pinmux.c
@@ -209,7 +209,9 @@ static __initdata struct tegra_pingroup_config roth_pinmux_set_nontristate[] = {
DEFAULT_PINMUX(GMI_AD1, GMI, NORMAL, NORMAL, OUTPUT),
DEFAULT_PINMUX(GMI_AD10, GMI, PULL_UP, NORMAL, OUTPUT),
DEFAULT_PINMUX(GMI_AD11, GMI, PULL_DOWN, NORMAL, OUTPUT),
- DEFAULT_PINMUX(GMI_AD12, GMI, PULL_UP, NORMAL, INPUT),
+ DEFAULT_PINMUX(GMI_AD12, GMI, PULL_UP, NORMAL, OUTPUT),
+ DEFAULT_PINMUX(GMI_AD14, GMI, PULL_UP, NORMAL, INPUT),
+ DEFAULT_PINMUX(GMI_AD15, GMI, PULL_UP, NORMAL, OUTPUT),
DEFAULT_PINMUX(GMI_AD13, GMI, PULL_DOWN, NORMAL, OUTPUT),
DEFAULT_PINMUX(GMI_AD2, GMI, NORMAL, NORMAL, INPUT),
DEFAULT_PINMUX(GMI_AD3, GMI, NORMAL, NORMAL, INPUT),
diff --git a/arch/arm/mach-tegra/board-roth.c b/arch/arm/mach-tegra/board-roth.c
index 2356e9df1e54..61a8d538e2cf 100644
--- a/arch/arm/mach-tegra/board-roth.c
+++ b/arch/arm/mach-tegra/board-roth.c
@@ -44,6 +44,7 @@
#include <linux/leds.h>
#include <linux/leds_pwm.h>
#include <linux/i2c/at24.h>
+#include <linux/issp.h>
#include <linux/of_platform.h>
#include <asm/system_info.h>
#include <asm/hardware/gic.h>
@@ -453,6 +454,25 @@ static struct platform_device roth_leds_gpio_device = {
};
#endif
+static struct issp_platform_data roth_issp_pdata = {
+ .reset_gpio = TEGRA_GPIO_PH4,
+ .data_gpio = TEGRA_GPIO_PH6,
+ .clk_gpio = TEGRA_GPIO_PH7,
+ .fw_name = "p2454-uc.fw",
+ .si_id = {0x00, 0xA2, 0x52, 0x21}, /* CY7C64345 */
+ .block_size = 128,
+ .blocks = 128,
+ .security_size = 64,
+ .version_addr = 0x0286,
+};
+
+static struct platform_device roth_issp_device = {
+ .name = "issp",
+ .dev = {
+ .platform_data = &roth_issp_pdata,
+ },
+};
+
static struct platform_device *roth_devices[] __initdata = {
&tegra_pmu_device,
&tegra_rtc_device,
@@ -490,6 +510,7 @@ static struct platform_device *roth_devices[] __initdata = {
#else
&roth_leds_gpio_device,
#endif
+ &roth_issp_device,
};
#ifdef CONFIG_USB_SUPPORT