diff options
author | Richard Zhao <rizhao@nvidia.com> | 2013-03-14 16:40:58 -0700 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2013-04-04 18:50:40 -0700 |
commit | cb617fec6c3e7a3d99dae7c72c8ddae5bbf64340 (patch) | |
tree | 43cd1ec41c62f709d13f5599c5dbb6789f231dd3 /arch | |
parent | b8ce6f703a8cae74ba2e63dcfc197a5e317d3a03 (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_defconfig | 2 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-roth-pinmux.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-roth.c | 21 |
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 |