Revert "input: atmel_mxt_ts: Allow bootloader address to be set"

This reverts commit 71b8f029e7,
which causes touchscreen to not function on 8974 mtp devices.
This commit is contained in:
Steve Muckle
2013-02-14 10:51:39 -08:00
committed by Jay Chokshi
parent 172c2b3b40
commit e153354f9c
3 changed files with 36 additions and 54 deletions
@@ -22,8 +22,6 @@ Required properties:
- atmel,fw-name : firmware name to used for flashing firmware
Optional property:
- atmel,bl-addr : bootloader address, by default is looked up
in mxt_slave_addresses structure
- atmel,config : configuration parameter for the controller
- atmel,i2c-pull-up : specify to indicate pull up is needed
- vcc_i2c-supply : Power source required to pull up i2c bus
+35 -48
View File
@@ -3,7 +3,7 @@
*
* Copyright (C) 2010 Samsung Electronics Co.Ltd
* Author: Joonyoung Shim <jy0922.shim@samsung.com>
* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved.
* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -356,7 +356,6 @@ struct mxt_data {
struct regulator *vcc_ana;
struct regulator *vcc_dig;
struct regulator *vcc_i2c;
struct mxt_address_pair addr_pair;
#if defined(CONFIG_HAS_EARLYSUSPEND)
struct early_suspend early_suspend;
#endif
@@ -471,27 +470,9 @@ static void mxt_dump_message(struct device *dev,
dev_dbg(dev, "checksum:\t0x%x\n", message->checksum);
}
static int mxt_lookup_bootloader_address(struct mxt_data *data)
{
int i;
for (i = 0; mxt_slave_addresses[i].application != 0; i++) {
if (mxt_slave_addresses[i].application ==
data->client->addr) {
data->addr_pair.bootloader =
mxt_slave_addresses[i].bootloader;
return 0;
}
}
dev_err(&data->client->dev, "Address 0x%02x not found in address table",
data->client->addr);
return -EINVAL;
};
static int mxt_switch_to_bootloader_address(struct mxt_data *data)
{
int i;
struct i2c_client *client = data->client;
if (data->state == BOOTLOADER) {
@@ -499,16 +480,27 @@ static int mxt_switch_to_bootloader_address(struct mxt_data *data)
return -EINVAL;
}
dev_info(&client->dev, "Changing to bootloader address: 0x%02x -> 0x%02x",
client->addr, data->addr_pair.bootloader);
for (i = 0; mxt_slave_addresses[i].application != 0; i++) {
if (mxt_slave_addresses[i].application == client->addr) {
dev_info(&client->dev, "Changing to bootloader address: "
"%02x -> %02x",
client->addr,
mxt_slave_addresses[i].bootloader);
client->addr = data->addr_pair.bootloader;
data->state = BOOTLOADER;
return 0;
client->addr = mxt_slave_addresses[i].bootloader;
data->state = BOOTLOADER;
return 0;
}
}
dev_err(&client->dev, "Address 0x%02x not found in address table",
client->addr);
return -EINVAL;
}
static int mxt_switch_to_appmode_address(struct mxt_data *data)
{
int i;
struct i2c_client *client = data->client;
if (data->state == APPMODE) {
@@ -516,13 +508,23 @@ static int mxt_switch_to_appmode_address(struct mxt_data *data)
return -EINVAL;
}
dev_info(&client->dev, "Changing to application mode address: " \
"0x%02x -> 0x%02x", client->addr,
data->addr_pair.application);
for (i = 0; mxt_slave_addresses[i].application != 0; i++) {
if (mxt_slave_addresses[i].bootloader == client->addr) {
dev_info(&client->dev,
"Changing to application mode address: "
"0x%02x -> 0x%02x",
client->addr,
mxt_slave_addresses[i].application);
client->addr = data->addr_pair.application;
data->state = APPMODE;
return 0;
client->addr = mxt_slave_addresses[i].application;
data->state = APPMODE;
return 0;
}
}
dev_err(&client->dev, "Address 0x%02x not found in address table",
client->addr);
return -EINVAL;
}
static int mxt_get_bootloader_version(struct i2c_client *client, u8 val)
@@ -1653,11 +1655,9 @@ static int mxt_load_fw(struct device *dev, const char *fn)
switch (data->info.family_id) {
case MXT224_ID:
case MXT224E_ID:
case MXT336S_ID:
max_frame_size = MXT_SINGLE_FW_MAX_FRAME_SIZE;
break;
case MXT1386_ID:
case MXT1664S_ID:
max_frame_size = MXT_CHIPSET_FW_MAX_FRAME_SIZE;
break;
default:
@@ -2564,12 +2564,6 @@ static int mxt_parse_dt(struct device *dev, struct mxt_platform_data *pdata)
return -ENOMEM;
}
rc = of_property_read_u32(np, "atmel,bl-addr", &temp_val);
if (rc && (rc != -EINVAL))
dev_err(dev, "Unable to read bootloader address\n");
else if (rc != -EINVAL)
pdata->bl_addr = (u8) temp_val;
pdata->config_array = info;
for_each_child_of_node(np, temp) {
@@ -2608,7 +2602,7 @@ static int mxt_parse_dt(struct device *dev, struct mxt_platform_data *pdata)
} else
info->build = (u8) temp_val;
rc = of_property_read_u32(temp,
info->bootldr_id = of_property_read_u32(temp,
"atmel,bootldr-id", &temp_val);
if (rc) {
dev_err(dev, "Unable to read bootldr-id\n");
@@ -2773,13 +2767,6 @@ static int __devinit mxt_probe(struct i2c_client *client,
mxt_power_on_delay(data);
data->addr_pair.application = data->client->addr;
if (pdata->bl_addr)
data->addr_pair.bootloader = pdata->bl_addr;
else
mxt_lookup_bootloader_address(data);
error = mxt_initialize(data);
if (error)
goto err_reset_gpio_req;
+1 -4
View File
@@ -3,7 +3,7 @@
*
* Copyright (C) 2010 Samsung Electronics Co.Ltd
* Author: Joonyoung Shim <jy0922.shim@samsung.com>
* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved.
* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -32,10 +32,8 @@
/* Bootoader IDs */
#define MXT_BOOTLOADER_ID_224 0x0A
#define MXT_BOOTLOADER_ID_224E 0x06
#define MXT_BOOTLOADER_ID_336S 0x1A
#define MXT_BOOTLOADER_ID_1386 0x01
#define MXT_BOOTLOADER_ID_1386E 0x10
#define MXT_BOOTLOADER_ID_1664S 0x14
/* Config data for a given maXTouch controller with a specific firmware */
struct mxt_config_info {
@@ -77,7 +75,6 @@ struct mxt_platform_data {
int *key_codes;
bool need_calibration;
bool no_force_update;
u8 bl_addr;
u8(*read_chg) (void);
int (*init_hw) (bool);