Lines Matching +full:spi +full:- +full:samsung

1 // SPDX-License-Identifier: GPL-2.0-only
3 * Samsung LSI S5C73M3 8M pixel camera driver
5 * Copyright (C) 2012, Samsung Electronics, Co., Ltd.
6 * Sylwester Nawrocki <s.nawrocki@samsung.com>
7 * Andrzej Hajda <a.hajda@samsung.com>
16 #include <linux/spi/spi.h>
20 #define S5C73M3_SPI_DRV_NAME "S5C73M3-SPI"
23 { .compatible = "samsung,s5c73m3" },
48 pr_err("SPI device is uninitialized\n"); in spi_xmit()
49 return -ENODEV; in spi_xmit()
57 dev_err(&spi_dev->dev, "%s spi_sync failed %d\n", __func__, r); in spi_xmit()
65 struct spi_device *spi_dev = state->spi_dev; in s5c73m3_spi_write()
93 struct spi_device *spi_dev = state->spi_dev; in s5c73m3_spi_read()
112 static int s5c73m3_spi_probe(struct spi_device *spi) in s5c73m3_spi_probe() argument
115 struct s5c73m3 *state = container_of(spi->dev.driver, struct s5c73m3, in s5c73m3_spi_probe()
117 spi->bits_per_word = 32; in s5c73m3_spi_probe()
119 r = spi_setup(spi); in s5c73m3_spi_probe()
121 dev_err(&spi->dev, "spi_setup() failed\n"); in s5c73m3_spi_probe()
125 mutex_lock(&state->lock); in s5c73m3_spi_probe()
126 state->spi_dev = spi; in s5c73m3_spi_probe()
127 mutex_unlock(&state->lock); in s5c73m3_spi_probe()
129 v4l2_info(&state->sensor_sd, "S5C73M3 SPI probed successfully\n"); in s5c73m3_spi_probe()
133 static int s5c73m3_spi_remove(struct spi_device *spi) in s5c73m3_spi_remove() argument
140 struct spi_driver *spidrv = &state->spidrv; in s5c73m3_register_spi_driver()
142 spidrv->remove = s5c73m3_spi_remove; in s5c73m3_register_spi_driver()
143 spidrv->probe = s5c73m3_spi_probe; in s5c73m3_register_spi_driver()
144 spidrv->driver.name = S5C73M3_SPI_DRV_NAME; in s5c73m3_register_spi_driver()
145 spidrv->driver.of_match_table = s5c73m3_spi_ids; in s5c73m3_register_spi_driver()
152 spi_unregister_driver(&state->spidrv); in s5c73m3_unregister_spi_driver()