Lines Matching +full:- +full:spi

1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * v4l2-spi - SPI helpers for Video4Linux2
7 #include <linux/spi/spi.h>
8 #include <media/v4l2-common.h>
9 #include <media/v4l2-device.h>
13 struct spi_device *spi = v4l2_get_subdevdata(sd); in v4l2_spi_subdev_unregister() local
15 if (spi && !spi->dev.of_node && !spi->dev.fwnode) in v4l2_spi_subdev_unregister()
16 spi_unregister_device(spi); in v4l2_spi_subdev_unregister()
19 void v4l2_spi_subdev_init(struct v4l2_subdev *sd, struct spi_device *spi, in v4l2_spi_subdev_init() argument
23 sd->flags |= V4L2_SUBDEV_FL_IS_SPI; in v4l2_spi_subdev_init()
25 sd->owner = spi->dev.driver->owner; in v4l2_spi_subdev_init()
26 sd->dev = &spi->dev; in v4l2_spi_subdev_init()
28 v4l2_set_subdevdata(sd, spi); in v4l2_spi_subdev_init()
29 spi_set_drvdata(spi, sd); in v4l2_spi_subdev_init()
31 snprintf(sd->name, sizeof(sd->name), "%s %s", in v4l2_spi_subdev_init()
32 spi->dev.driver->name, dev_name(&spi->dev)); in v4l2_spi_subdev_init()
41 struct spi_device *spi = NULL; in v4l2_spi_new_subdev() local
45 if (info->modalias[0]) in v4l2_spi_new_subdev()
46 request_module(info->modalias); in v4l2_spi_new_subdev()
48 spi = spi_new_device(master, info); in v4l2_spi_new_subdev()
50 if (!spi || !spi->dev.driver) in v4l2_spi_new_subdev()
53 if (!try_module_get(spi->dev.driver->owner)) in v4l2_spi_new_subdev()
56 sd = spi_get_drvdata(spi); in v4l2_spi_new_subdev()
66 module_put(spi->dev.driver->owner); in v4l2_spi_new_subdev()
74 spi_unregister_device(spi); in v4l2_spi_new_subdev()