public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: dudl@cypress.com (dudl at cypress.com)
To: linux-arm-kernel@lists.infradead.org
Subject: CHROMIUM: arm: tegra: Add platfrom devices for Cypress trackpad (issue6623011)
Date: Fri, 04 Mar 2011 11:42:54 +0000	[thread overview]
Message-ID: <20cf3005123492db71049da6a54a@google.com> (raw)

Reviewers: ccross_android.com, konkers_android.com, olof_lixom.net,  
linux_arm.linux.org.uk, linux-tegra_vger.kernel.org,  
linux-arm-kernel_lists.infradead.org, linux-kernel_vger.kernel.org, Micah  
C, dudl,

Description:
CHROMIUM: arm: tegra: Add platfrom devices for Cypress trackpad

1. Add platfrom data strcuture cyapa_platfrom_data.
2. Add trackpad device into platfrom I2C bus 0.
3. Initialize platfrom data for cyapa_platfrom_data.
4. This code is merged based kernel version 2.7.37-rc5.


Change-Id: I3591317ac9c3b7d5328a9c617d662ad6be6065a2
Signed-off-by: Du, Dudley <dudl@cypress.com>

BUG=None
TEST=Test on arm tegra2 seaborad and kaen platform

Please review this at http://codereview.chromium.org/6623011/

SVN Base: http://git.chromium.org/git/kernel-next.git at chromeos-2.6.37-rc5

Affected files:
   M arch/arm/mach-tegra/board-seaboard.h
   M arch/arm/mach-tegra/board-seaboard.c


Index: arch/arm/mach-tegra/board-seaboard.c
diff --git a/arch/arm/mach-tegra/board-seaboard.c  
b/arch/arm/mach-tegra/board-seaboard.c
index  
75fbab68ef61c0c117bb8dafa2aaca90947a860b..de272cc73794c6600994af3c0e834dd884f6b56b  
100644
--- a/arch/arm/mach-tegra/board-seaboard.c
+++ b/arch/arm/mach-tegra/board-seaboard.c
@@ -303,6 +303,36 @@ static struct tegra_i2c_platform_data  
seaboard_dvc_platform_data = {
  	.is_dvc		= true,
  };

+/* for Cypress Trackpad. */
+#include <linux/cyapa.h>
+
+static int cyapa_i2c_platform_init(void)
+{
+	return 0;
+}
+
+static int cyapa_i2c_platform_wakeup(void)
+{
+	return 0;
+}
+
+static struct cyapa_platform_data cyapa_i2c_platform_data = {
+	.flag = 0,
+	.gen = CYAPA_GEN2,
+	.power_state = CYAPA_PWR_ACTIVE,
+	.use_absolute_mode = false,
+	.use_polling_mode = false,
+	.polling_interval_time_active = CYAPA_ACTIVE_POLLING_INTVAL_TIME,
+	.polling_interval_time_lowpower = CYAPA_LOWPOWER_POLLING_INTVAL_TIME,
+	.active_touch_timeout = CYAPA_ACTIVE_TOUCH_TIMEOUT,
+	.name = CYAPA_I2C_NAME,
+	.irq_gpio = TEGRA_GPIO_CYTP_INT,
+	.report_rate = CYAPA_REPORT_RATE,
+
+	.wakeup = cyapa_i2c_platform_wakeup,
+	.init = cyapa_i2c_platform_init,
+};
+
  static struct i2c_board_info __initdata seaboard_i2c0_devices[] = {
  	{
  		I2C_BOARD_INFO("wm8903", 0x1a),
@@ -311,6 +341,11 @@ static struct i2c_board_info __initdata  
seaboard_i2c0_devices[] = {
  		I2C_BOARD_INFO("isl29018", 0x44),
  		.irq = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_ISL29018_IRQ),
  	},
+	{
+		I2C_BOARD_INFO(CYAPA_I2C_NAME, 0x67),
+		.irq = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_CYTP_INT),
+		.platform_data = &cyapa_i2c_platform_data,
+	},
  };

  static struct i2c_board_info __initdata seaboard_i2c4_devices[] = {
@@ -549,6 +584,11 @@ static void __init tegra_seaboard_init(void)

  	tegra_gpio_enable(TEGRA_GPIO_LIDSWITCH);
  	tegra_gpio_enable(TEGRA_GPIO_POWERKEY);
+
+	/* for Cypress trackpad. */
+	tegra_gpio_enable(TEGRA_GPIO_CYTP_INT);
+	gpio_request(TEGRA_GPIO_CYTP_INT, "gpio_cytp_int");
+	gpio_direction_input(TEGRA_GPIO_CYTP_INT);
  }

  MACHINE_START(SEABOARD, "seaboard")
Index: arch/arm/mach-tegra/board-seaboard.h
diff --git a/arch/arm/mach-tegra/board-seaboard.h  
b/arch/arm/mach-tegra/board-seaboard.h
index  
5e1fc48bfa940056f2fd8e4c3bee5124d1398da4..4a38c4163ac338e90433a95afb90ec57a456ed1b  
100644
--- a/arch/arm/mach-tegra/board-seaboard.h
+++ b/arch/arm/mach-tegra/board-seaboard.h
@@ -28,6 +28,9 @@
  #define TEGRA_GPIO_ISL29018_IRQ		TEGRA_GPIO_PZ2
  #define TEGRA_GPIO_AC_ONLINE		TEGRA_GPIO_PV3

+/* for Cypress Trackpad gpio interrupt. */
+#define TEGRA_GPIO_CYTP_INT		TEGRA_GPIO_PW2
+
  void seaboard_pinmux_init(void);
  int seaboard_panel_init(void);
  int seaboard_sdhci_init(void);

             reply	other threads:[~2011-03-04 11:42 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-04 11:42 dudl at cypress.com [this message]
2011-03-04 11:49 ` CHROMIUM: arm: tegra: Add platfrom devices for Cypress trackpad (issue6623011) Ben Dooks
2011-03-04 12:01   ` Dudley Du

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20cf3005123492db71049da6a54a@google.com \
    --to=dudl@cypress.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox