Lines Matching +full:spi +full:- +full:compatible
1 // SPDX-License-Identifier: GPL-2.0-only
3 * ST Microelectronics MFD: stmpe's spi client specific driver
10 #include <linux/spi/spi.h>
22 struct spi_device *spi = stmpe->client;
23 int status = spi_w8r16(spi, reg | READ_CMD);
30 struct spi_device *spi = stmpe->client;
33 return spi_write(spi, (const u8 *)&cmd, 2);
55 for (i = length; i > 0; i--, reg++) {
56 ret = spi_reg_write(stmpe, reg, *(values + i - 1));
66 struct spi_device *spi = stmpe->client;
68 spi->bits_per_word = 8;
71 if (stmpe->variant->id_val == 0x0811)
72 spi_reg_write(stmpe, STMPE811_REG_SPI_CFG, spi->mode);
74 if (spi_setup(spi) < 0)
75 dev_dbg(&spi->dev, "spi_setup failed\n");
87 stmpe_spi_probe(struct spi_device *spi)
89 const struct spi_device_id *id = spi_get_device_id(spi);
91 /* don't exceed max specified rate - 1MHz - Limitation of STMPE */
92 if (spi->max_speed_hz > 1000000) {
93 dev_dbg(&spi->dev, "f(sample) %d KHz?\n",
94 (spi->max_speed_hz/1000));
95 return -EINVAL;
98 spi_ci.irq = spi->irq;
99 spi_ci.client = spi;
100 spi_ci.dev = &spi->dev;
102 return stmpe_probe(&spi_ci, id->driver_data);
105 static void stmpe_spi_remove(struct spi_device *spi)
107 struct stmpe *stmpe = spi_get_drvdata(spi);
113 { .compatible = "st,stmpe610", },
114 { .compatible = "st,stmpe801", },
115 { .compatible = "st,stmpe811", },
116 { .compatible = "st,stmpe1601", },
117 { .compatible = "st,stmpe2401", },
118 { .compatible = "st,stmpe2403", },
132 MODULE_DEVICE_TABLE(spi, stmpe_spi_id);
136 .name = "stmpe-spi",
157 MODULE_DESCRIPTION("STMPE MFD SPI Interface Driver");