diff --git a/drivers/nfc/bcm2079x-i2c.c b/drivers/nfc/bcm2079x-i2c.c index 2059e4a9558..44186452962 100644 --- a/drivers/nfc/bcm2079x-i2c.c +++ b/drivers/nfc/bcm2079x-i2c.c @@ -89,60 +89,6 @@ static void bcm2079x_enable_irq(struct bcm2079x_dev *bcm2079x_dev) spin_unlock_irqrestore(&bcm2079x_dev->irq_enabled_lock, flags); } -/* - The alias address 0x79, when sent as a 7-bit address from the host processor - will match the first byte (highest 2 bits) of the default client address - (0x1FA) that is programmed in bcm20791. - When used together with the first byte (0xFA) of the byte sequence below, - it can be used to address the bcm20791 in a system that does not support - 10-bit address and change the default address to 0x38. - the new address can be changed by changing the CLIENT_ADDRESS below if 0x38 - conflicts with other device on the same i2c bus. - */ -#define ALIAS_ADDRESS 0x79 - -static int change_client_addr(struct bcm2079x_dev *bcm2079x_dev, int addr) -{ - struct i2c_client *client; - int ret; - int i; - char addr_data[] = { - 0xFA, 0xF2, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x2A - }; - client = bcm2079x_dev->client; - client->addr = ALIAS_ADDRESS; - client->flags &= ~I2C_CLIENT_TEN; - - addr_data[5] = addr & 0xFF; - ret = 0; - for (i = 1; i < sizeof(addr_data) - 1; ++i) - ret += addr_data[i]; - addr_data[sizeof(addr_data) - 1] = (ret & 0xFF); - dev_info(&client->dev, - "Change client device from (0x%04X) flag = "\ - "%04x, addr_data[%d] = %02x\n", - client->addr, client->flags, sizeof(addr_data) - 1, - addr_data[sizeof(addr_data) - 1]); - ret = i2c_master_send(client, addr_data, sizeof(addr_data)); - if (ret != sizeof(addr_data)) { - client->addr = ALIAS_ADDRESS; - client->flags &= ~I2C_CLIENT_TEN; - dev_info(&client->dev, - "Change client device from (0x%04X) flag = "\ - "%04x, addr_data[%d] = %02x\n", - client->addr, client->flags, sizeof(addr_data) - 1, - addr_data[sizeof(addr_data) - 1]); - ret = i2c_master_send(client, addr_data, sizeof(addr_data)); - } - client->addr = addr_data[5]; - - dev_info(&client->dev, - "Change client device changed to (0x%04X) flag = %04x, ret = %d\n", - client->addr, client->flags, ret); - - return (ret == sizeof(addr_data) ? 0 : -EIO); -} - static irqreturn_t bcm2079x_dev_irq_handler(int irq, void *dev_id) { struct bcm2079x_dev *bcm2079x_dev = dev_id; @@ -295,11 +241,9 @@ static long bcm2079x_dev_unlocked_ioctl(struct file *filp, break; case BCMNFC_READ_MULTI_PACKETS: break; + /* Remove a workaround since BCM20793 chip default is 7 bits address */ case BCMNFC_CHANGE_ADDR: - dev_info(&bcm2079x_dev->client->dev, - "%s, BCMNFC_CHANGE_ADDR (%x, %lx):\n", __func__, cmd, - arg); - return change_client_addr(bcm2079x_dev, arg); + break; case BCMNFC_POWER_CTL: gpio_set_value(bcm2079x_dev->en_gpio, arg); break;