static int cyttsp_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct cyttsp *ts; if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { dev_err(&client->dev, "I2C functionality not Supported\n"); return -EIO; } ts = cyttsp_probe(&cyttsp_i2c_bus_ops, &client->dev, client->irq, CY_I2C_DATA_SIZE); if (IS_ERR(ts)) return PTR_ERR(ts); i2c_set_clientdata(client, ts); return 0; }
static int __devinit cyttsp_spi_probe(struct spi_device *spi) { struct cyttsp *ts; int error; spi->bits_per_word = CY_SPI_BITS_PER_WORD; spi->mode = SPI_MODE_0; error = spi_setup(spi); if (error < 0) { dev_err(&spi->dev, "%s: SPI setup error %d\n", __func__, error); return error; } ts = cyttsp_probe(&cyttsp_spi_bus_ops, &spi->dev, spi->irq, CY_SPI_DATA_BUF_SIZE * 2); if (IS_ERR(ts)) return PTR_ERR(ts); spi_set_drvdata(spi, ts); return 0; }