ARM: tegra: pluto: add support for bcm2079x nfc
Rakesh Goyal [Wed, 19 Dec 2012 02:11:29 +0000 (07:11 +0530)]
wifi don't use GPIO_PX7, this GPIO is used by NFC.
correction in GPIO assignment.

Bug 1190304

Reviewed-on: http://git-master/r/172575

Change-Id: I8c7c7a06172a665905f203b213452f31a81364ae
Signed-off-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-on: http://git-master/r/187414
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User

arch/arm/mach-tegra/board-pluto-sdhci.c
arch/arm/mach-tegra/board-pluto.c

index cd5d23d..c93713e 100644 (file)
@@ -35,7 +35,6 @@
 #include "board-pluto.h"
 
 #define PLUTO_WLAN_PWR TEGRA_GPIO_PCC5
-#define PLUTO_WLAN_RST TEGRA_GPIO_PX7
 #define PLUTO_WLAN_WOW TEGRA_GPIO_PU5
 #define PLUTO_SD_CD    TEGRA_GPIO_PV2
 static void (*wifi_status_cb)(int card_present, void *dev_id);
@@ -229,8 +228,6 @@ static int pluto_wifi_power(int on)
 
        gpio_set_value(PLUTO_WLAN_PWR, on);
        mdelay(100);
-       gpio_set_value(PLUTO_WLAN_RST, on);
-       mdelay(200);
 
        return 0;
 }
@@ -248,9 +245,6 @@ static int __init pluto_wifi_init(void)
        rc = gpio_request(PLUTO_WLAN_PWR, "wlan_power");
        if (rc)
                pr_err("WLAN_PWR gpio request failed:%d\n", rc);
-       rc = gpio_request(PLUTO_WLAN_RST, "wlan_rst");
-       if (rc)
-               pr_err("WLAN_RST gpio request failed:%d\n", rc);
        rc = gpio_request(PLUTO_WLAN_WOW, "bcmsdh_sdmmc");
        if (rc)
                pr_err("WLAN_WOW gpio request failed:%d\n", rc);
@@ -258,9 +252,6 @@ static int __init pluto_wifi_init(void)
        rc = gpio_direction_output(PLUTO_WLAN_PWR, 0);
        if (rc)
                pr_err("WLAN_PWR gpio direction configuration failed:%d\n", rc);
-       gpio_direction_output(PLUTO_WLAN_RST, 0);
-       if (rc)
-               pr_err("WLAN_RST gpio direction configuration failed:%d\n", rc);
        rc = gpio_direction_input(PLUTO_WLAN_WOW);
        if (rc)
                pr_err("WLAN_WOW gpio direction configuration failed:%d\n", rc);
index 921429b..6c8f9ef 100644 (file)
@@ -37,6 +37,7 @@
 #include <linux/memblock.h>
 #include <linux/spi-tegra.h>
 #include <linux/nfc/pn544.h>
+#include <linux/nfc/bcm2079x.h>
 #include <linux/rfkill-gpio.h>
 #include <linux/skbuff.h>
 #include <linux/ti_wilink_st.h>
@@ -223,6 +224,19 @@ static __initdata struct tegra_clk_init_table pluto_clk_init_table[] = {
        { NULL,         NULL,           0,              0},
 };
 
+static struct bcm2079x_platform_data nfc_pdata = {
+       .irq_gpio = TEGRA_GPIO_PW2,
+       .en_gpio = TEGRA_GPIO_PU4,
+       .wake_gpio = TEGRA_GPIO_PX7,
+       };
+
+static struct i2c_board_info __initdata pluto_i2c_bus3_board_info[] = {
+       {
+               I2C_BOARD_INFO("bcm2079x-i2c", 0x77),
+               .platform_data = &nfc_pdata,
+       },
+};
+
 static struct tegra_i2c_platform_data pluto_i2c1_platform_data = {
        .adapter_nr     = 0,
        .bus_count      = 1,
@@ -338,6 +352,8 @@ static void pluto_i2c_init(void)
        i2c_register_board_info(0, &pluto_codec_a2220_info, 1);
        i2c_register_board_info(0, &cs42l73_board_info, 1);
        i2c_register_board_info(0, &pluto_codec_aic326x_info, 1);
+       pluto_i2c_bus3_board_info[0].irq = gpio_to_irq(TEGRA_GPIO_PW2);
+       i2c_register_board_info(0, pluto_i2c_bus3_board_info, 1);
 }
 
 static struct platform_device *pluto_uart_devices[] __initdata = {