Lines Matching +full:spi +full:- +full:device
1 // SPDX-License-Identifier: GPL-2.0
3 #include <linux/device.h>
5 #include <linux/spi/spi.h>
10 #include "panel-samsung-s6e63m0.h"
14 static int s6e63m0_spi_dcs_read(struct device *dev, const u8 cmd, u8 *data) in s6e63m0_spi_dcs_read()
17 * FIXME: implement reading DCS commands over SPI so we can in s6e63m0_spi_dcs_read()
25 static int s6e63m0_spi_write_word(struct device *dev, u16 data) in s6e63m0_spi_write_word()
27 struct spi_device *spi = to_spi_device(dev); in s6e63m0_spi_write_word() local
37 return spi_sync(spi, &msg); in s6e63m0_spi_write_word()
40 static int s6e63m0_spi_dcs_write(struct device *dev, const u8 *data, size_t len) in s6e63m0_spi_dcs_write()
44 dev_dbg(dev, "SPI writing dcs seq: %*ph\n", (int)len, data); in s6e63m0_spi_dcs_write()
47 while (!ret && --len) { in s6e63m0_spi_dcs_write()
53 dev_err(dev, "SPI error %d writing dcs seq: %*ph\n", ret, in s6e63m0_spi_dcs_write()
62 static int s6e63m0_spi_probe(struct spi_device *spi) in s6e63m0_spi_probe() argument
64 struct device *dev = &spi->dev; in s6e63m0_spi_probe()
67 spi->bits_per_word = 9; in s6e63m0_spi_probe()
68 spi->mode = SPI_MODE_3; in s6e63m0_spi_probe()
69 ret = spi_setup(spi); in s6e63m0_spi_probe()
71 dev_err(dev, "spi setup failed.\n"); in s6e63m0_spi_probe()
78 static int s6e63m0_spi_remove(struct spi_device *spi) in s6e63m0_spi_remove() argument
80 return s6e63m0_remove(&spi->dev); in s6e63m0_spi_remove()
93 .name = "panel-samsung-s6e63m0",
100 MODULE_DESCRIPTION("s6e63m0 LCD SPI Driver");