Home
last modified time | relevance | path

Searched full:spi (Results 1 – 25 of 2180) sorted by relevance

12345678910>>...88

/linux/drivers/spi/
H A Dspi-stm32.c3 // STMicroelectronics STM32 SPI Controller driver
23 #include <linux/spi/spi.h>
27 /* STM32F4/7 SPI registers */
83 /* STM32F4 SPI Baud Rate min/max divisor */
87 /* STM32H7 SPI registers */
162 /* STM32MP25 SPI registers bit fields */
176 /* STM32H7 SPI Master Baud Rate min/max divisor */
180 /* STM32H7 SPI Communication mode */
186 /* SPI Communication type */
201 /* STM32 SPI driver helpers */
[all …]
H A Dspi-atcspi200.c3 * Driver for Andes ATCSPI200 SPI Controller
21 #include <linux/spi/spi.h>
22 #include <linux/spi/spi-mem.h>
25 #define ATCSPI_TRANS_FMT 0x10 /* SPI transfer format register */
26 #define ATCSPI_TRANS_CTRL 0x20 /* SPI transfer control register */
27 #define ATCSPI_CMD 0x24 /* SPI command register */
28 #define ATCSPI_ADDR 0x28 /* SPI address register */
29 #define ATCSPI_DATA 0x2C /* SPI data register */
30 #define ATCSPI_CTRL 0x30 /* SPI control register */
31 #define ATCSPI_STATUS 0x34 /* SPI status register */
[all …]
H A Dspi-gpio.c3 * SPI host driver using generic bitbanged GPIO
14 #include <linux/spi/spi.h>
15 #include <linux/spi/spi_bitbang.h>
16 #include <linux/spi/spi_gpio.h>
19 * This bitbanging SPI host driver should help make systems usable
20 * when a native hardware SPI engine is not available, perhaps because
26 * spi->controller_state ... reserved for bitbang framework code
28 * spi->controller->dev.driver_data ... points to spi_gpio->bitbang
46 spi_to_spi_gpio(const struct spi_device *spi) in spi_to_spi_gpio() argument
51 bang = spi_controller_get_devdata(spi->controller); in spi_to_spi_gpio()
[all …]
H A Dspi.c2 // SPI init/core code
34 #include <linux/spi/offload/types.h>
35 #include <linux/spi/spi.h>
36 #include <linux/spi/spi-mem.h>
40 #include <trace/events/spi.h>
46 static int __spi_setup(struct spi_device *spi, bool initial_setup);
47 static int __spi_add_device(struct spi_device *spi, struct spi_device *parent);
53 struct spi_device *spi = to_spi_device(dev); in spidev_release() local
55 spi_controller_put(spi->controller); in spidev_release()
56 free_percpu(spi->pcpu_statistics); in spidev_release()
[all …]
/linux/drivers/video/backlight/
H A Dili922x.c7 * controller. The interface to the display is SPI and the display's
19 #include <linux/spi/spi.h>
104 * for the SPI transfer. According to the datasheet, the controller
109 * @s: pointer to an SPI device
138 struct spi_device *spi; member
145 * @spi: spi device
148 static int ili922x_read_status(struct spi_device *spi, u16 *rs) in ili922x_read_status() argument
161 CHECK_FREQ_REG(spi, &xfer); in ili922x_read_status()
175 ret = spi_sync(spi, &msg); in ili922x_read_status()
177 dev_dbg(&spi->dev, "Error sending SPI message 0x%x", ret); in ili922x_read_status()
[all …]
H A Dl4f00242t03.c21 #include <linux/spi/spi.h>
24 struct spi_device *spi; member
46 static void l4f00242t03_lcd_init(struct spi_device *spi) in l4f00242t03_lcd_init() argument
48 struct l4f00242t03_priv *priv = spi_get_drvdata(spi); in l4f00242t03_lcd_init()
52 dev_dbg(&spi->dev, "initializing LCD\n"); in l4f00242t03_lcd_init()
56 dev_err(&spi->dev, "failed to set the IO regulator voltage.\n"); in l4f00242t03_lcd_init()
61 dev_err(&spi->dev, "failed to enable the IO regulator.\n"); in l4f00242t03_lcd_init()
67 dev_err(&spi->dev, "failed to set the core regulator voltage.\n"); in l4f00242t03_lcd_init()
73 dev_err(&spi->dev, "failed to enable the core regulator.\n"); in l4f00242t03_lcd_init()
82 spi_write(spi, (const u8 *)cmd, ARRAY_SIZE(cmd) * sizeof(u16)); in l4f00242t03_lcd_init()
[all …]
/linux/drivers/net/wan/
H A Dslic_ds26522.c16 #include <linux/spi/spi.h>
38 static void slic_write(struct spi_device *spi, u16 addr, in slic_write() argument
49 /* write spi addr and value */ in slic_write()
50 spi_write(spi, &temp[0], SLIC_THREE_LEN); in slic_write()
53 static u8 slic_read(struct spi_device *spi, u16 addr) in slic_read() argument
62 spi_write_then_read(spi, &temp[0], SLIC_TWO_LEN, &data, in slic_read()
69 static bool get_slic_product_code(struct spi_device *spi) in get_slic_product_code() argument
73 device_id = slic_read(spi, DS26522_IDR_ADDR); in get_slic_product_code()
80 static void ds26522_e1_spec_config(struct spi_device *spi) in ds26522_e1_spec_config() argument
83 slic_write(spi, DS26522_RMMR_ADDR, DS26522_RMMR_E1); in ds26522_e1_spec_config()
[all …]
/linux/Documentation/devicetree/bindings/spi/
H A Dmediatek,spi-mt65xx.yaml4 $id: http://devicetree.org/schemas/spi/mediatek,spi-mt65xx.yaml#
7 title: SPI Bus controller for MediaTek ARM SoCs
13 - $ref: /schemas/spi/spi-controller.yaml#
20 - mediatek,mt7629-spi
21 - mediatek,mt8365-spi
22 - const: mediatek,mt7622-spi
25 - mediatek,mt8516-spi
26 - const: mediatek,mt2712-spi
29 - mediatek,mt6779-spi
30 - mediatek,mt8186-spi
[all …]
H A Dbrcm,spi-bcm-qspi.yaml4 $id: http://devicetree.org/schemas/spi/brcm,spi-bcm-qspi.yaml#
7 title: Broadcom SPI controller
14 The Broadcom SPI controller is a SPI master found on various SOCs, including
15 BRCMSTB (BCM7XXX), Cygnus, NSP and NS2. The Broadcom Master SPI hw IP consists
17 MSPI : SPI master controller can read and write to a SPI slave device
18 BSPI : Broadcom SPI in combination with the MSPI hw IP provides acceleration
25 use SPI protocol.
28 - $ref: spi-controller.yaml#
36 - brcm,spi-bcm7425-qspi
37 - brcm,spi-bcm7429-qspi
[all …]
H A Dspi-rockchip.yaml4 $id: http://devicetree.org/schemas/spi/spi-rockchip.yaml#
7 title: Rockchip SPI Controller
10 The Rockchip SPI controller is used to interface with various devices such
11 as flash and display controllers using the SPI communication interface.
14 - $ref: spi-controller.yaml#
23 - const: rockchip,rk3036-spi
24 - const: rockchip,rk3066-spi
25 - const: rockchip,rk3228-spi
26 - const: rockchip,rv1108-spi
29 - rockchip,px30-spi
[all …]
H A Dsnps,dw-apb-ssi.yaml4 $id: http://devicetree.org/schemas/spi/snps,dw-apb-ssi.yaml#
13 - $ref: spi-controller.yaml#
19 - mscc,ocelot-spi
20 - mscc,jaguar2-spi
29 const: amd,pensando-elba-spi
51 - description: Generic DW SPI Controller
55 - description: Microchip Sparx5 SoC SPI Controller
56 const: microchip,sparx5-spi
57 - description: Amazon Alpine SPI Controller
62 - mscc,ocelot-spi
[all …]
H A Dbrcm,bcm63xx-spi.yaml4 $id: http://devicetree.org/schemas/spi/brcm,bcm63xx-spi.yaml#
7 title: Broadcom BCM6348/BCM6358 SPI controller
13 Broadcom "Low Speed" SPI controller found in many older MIPS based Broadband
17 between the SPI transfers within the same SPI message. This can terminate the
18 transaction to some SPI devices prematurely. The issue can be worked around by
22 - $ref: spi-controller.yaml#
29 - brcm,bcm6368-spi
30 - brcm,bcm6362-spi
31 - brcm,bcm63268-spi
32 - const: brcm,bcm6358-spi
[all …]
H A Dnvidia,tegra114-spi.yaml4 $id: http://devicetree.org/schemas/spi/nvidia,tegra114-spi.yaml#
7 title: NVIDIA Tegra114 SPI controller
16 - const: nvidia,tegra114-spi
19 - nvidia,tegra210-spi
20 - nvidia,tegra124-spi
21 - const: nvidia,tegra114-spi
31 - description: SPI module clock
35 - const: spi
39 - description: SPI module reset
43 - const: spi
[all …]
/linux/drivers/net/can/spi/
H A Dmcp251x.c2 /* CAN bus driver for Microchip 251x/25625 CAN Controller with SPI Interface
42 #include <linux/spi/spi.h>
45 /* SPI interface instruction set */
196 /* Buffer size required for the largest SPI transfer (i.e., reading a
230 struct spi_device *spi; member
233 struct mutex mcp_lock; /* SPI device lock */
263 static inline int mcp251x_is_##_model(struct spi_device *spi) \
265 struct mcp251x_priv *priv = spi_get_drvdata(spi); \
285 * registers via SPI is not really different conceptually than using
296 static int mcp251x_spi_trans(struct spi_device *spi, int len) in mcp251x_spi_trans() argument
[all …]
H A Dhi311x.c2 /* CAN bus driver for Holt HI3110 CAN Controller with SPI Interface
34 #include <linux/spi/spi.h>
146 struct spi_device *spi; member
149 struct mutex hi3110_lock; /* SPI device lock */
188 * registers via SPI is not really different conceptually than using
199 static int hi3110_spi_trans(struct spi_device *spi, int len) in hi3110_spi_trans() argument
201 struct hi3110_priv *priv = spi_get_drvdata(spi); in hi3110_spi_trans()
214 ret = spi_sync(spi, &m); in hi3110_spi_trans()
217 dev_err(&spi->dev, "spi transfer failed: ret = %d\n", ret); in hi3110_spi_trans()
221 static int hi3110_cmd(struct spi_device *spi, u8 command) in hi3110_cmd() argument
[all …]
/linux/drivers/media/dvb-frontends/cxd2880/
H A Dcxd2880_spi_device.c5 * SPI access functions
10 #include <linux/spi/spi.h>
14 static int cxd2880_spi_device_write(struct cxd2880_spi *spi, in cxd2880_spi_device_write() argument
22 if (!spi || !spi->user || !data || size == 0) in cxd2880_spi_device_write()
25 spi_device = spi->user; in cxd2880_spi_device_write()
33 result = spi_sync(spi_device->spi, &msg); in cxd2880_spi_device_write()
41 static int cxd2880_spi_device_write_read(struct cxd2880_spi *spi, in cxd2880_spi_device_write_read() argument
50 if (!spi || !spi->user || !tx_data || in cxd2880_spi_device_write_read()
54 spi_device = spi->user; in cxd2880_spi_device_write_read()
56 result = spi_write_then_read(spi_device->spi, tx_data, in cxd2880_spi_device_write_read()
[all …]
/linux/drivers/video/fbdev/omap2/omapfb/displays/
H A Dpanel-lgphilips-lb035q02.c12 #include <linux/spi/spi.h>
43 struct spi_device *spi; member
54 static int lb035q02_write_reg(struct spi_device *spi, u8 reg, u16 val) in lb035q02_write_reg() argument
82 return spi_sync(spi, &msg); in lb035q02_write_reg()
85 static void init_lb035q02_panel(struct spi_device *spi) in init_lb035q02_panel() argument
88 lb035q02_write_reg(spi, 0x01, 0x6300); in init_lb035q02_panel()
89 lb035q02_write_reg(spi, 0x02, 0x0200); in init_lb035q02_panel()
90 lb035q02_write_reg(spi, 0x03, 0x0177); in init_lb035q02_panel()
91 lb035q02_write_reg(spi, 0x04, 0x04c7); in init_lb035q02_panel()
92 lb035q02_write_reg(spi, 0x05, 0xffc0); in init_lb035q02_panel()
[all …]
/linux/drivers/iio/common/st_sensors/
H A Dst_sensors_spi.c3 * STMicroelectronics sensors spi library driver
15 #include <linux/spi/spi.h>
33 * st_sensors_is_spi_3_wire() - check if SPI 3-wire mode has been selected
34 * @spi: spi device reference.
36 * Return: true if SPI 3-wire mode is selected, false otherwise.
38 static bool st_sensors_is_spi_3_wire(struct spi_device *spi) in st_sensors_is_spi_3_wire() argument
41 struct device *dev = &spi->dev; in st_sensors_is_spi_3_wire()
43 if (device_property_read_bool(dev, "spi-3wire")) in st_sensors_is_spi_3_wire()
54 * st_sensors_configure_spi_3_wire() - configure SPI 3-wire if needed
55 * @spi: spi device reference.
[all …]
/linux/drivers/media/v4l2-core/
H A Dv4l2-spi.c3 * v4l2-spi - SPI helpers for Video4Linux2
7 #include <linux/spi/spi.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
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()
[all …]
/linux/drivers/net/dsa/b53/
H A Db53_spi.c2 * B53 register access through SPI
24 #include <linux/spi/spi.h>
42 static inline int b53_spi_read_reg(struct spi_device *spi, u8 reg, u8 *val, in b53_spi_read_reg() argument
50 return spi_write_then_read(spi, txbuf, 2, val, len); in b53_spi_read_reg()
53 static inline int b53_spi_clear_status(struct spi_device *spi) in b53_spi_clear_status() argument
60 ret = b53_spi_read_reg(spi, B53_SPI_STATUS, &rxbuf, 1); in b53_spi_clear_status()
76 static inline int b53_spi_set_page(struct spi_device *spi, u8 page) in b53_spi_set_page() argument
84 return spi_write(spi, txbuf, sizeof(txbuf)); in b53_spi_set_page()
87 static inline int b53_prepare_reg_access(struct spi_device *spi, u8 page) in b53_prepare_reg_access() argument
89 int ret = b53_spi_clear_status(spi); in b53_prepare_reg_access()
[all …]
/linux/drivers/iio/chemical/
H A Dbme680_spi.c3 * BME680 - SPI Driver
9 #include <linux/spi/spi.h>
14 struct spi_device *spi; member
19 * In SPI mode there are only 7 address bits, a "page" register determines
26 struct spi_device *spi = ctx->spi; in bme680_regmap_spi_select_page() local
39 ret = spi_write_then_read(spi, buf, 1, buf + 1, 1); in bme680_regmap_spi_select_page()
41 dev_err(&spi->dev, "failed to set page %u\n", page); in bme680_regmap_spi_select_page()
51 ret = spi_write(spi, buf, 2); in bme680_regmap_spi_select_page()
53 dev_err(&spi->dev, "failed to set page %u\n", page); in bme680_regmap_spi_select_page()
66 struct spi_device *spi = ctx->spi; in bme680_regmap_spi_write() local
[all …]
/linux/Documentation/devicetree/bindings/rtc/
H A Depson,rx6110.yaml10 The Epson RX6110 can be used with SPI or I2C busses. The kind of bus depends
18 - $ref: /schemas/spi/spi-peripheral-props.yaml#
27 spi-cs-high: true
28 spi-cpha: true
29 spi-cpol: true
36 spi-cs-high: [ spi-cpha, spi-cpol ]
37 spi-cpha: [ spi-cs-high, spi-cpol ]
38 spi-cpol: [ spi-cs-high, spi-cpha ]
55 # SPI mode
57 spi {
[all …]
/linux/drivers/tty/serial/
H A Dsc16is7xx_spi.c2 /* SC16IS7xx SPI interface driver */
7 #include <linux/spi/spi.h>
13 /* SPI definitions */
16 static int sc16is7xx_spi_probe(struct spi_device *spi) in sc16is7xx_spi_probe() argument
24 /* Setup SPI bus */ in sc16is7xx_spi_probe()
25 spi->bits_per_word = 8; in sc16is7xx_spi_probe()
27 if ((spi->mode & SPI_MODE_X_MASK) != SPI_MODE_0) in sc16is7xx_spi_probe()
28 return dev_err_probe(&spi->dev, -EINVAL, "Unsupported SPI mode\n"); in sc16is7xx_spi_probe()
30 spi->mode = spi->mode ? : SPI_MODE_0; in sc16is7xx_spi_probe()
31 spi->max_speed_hz = spi->max_speed_hz ? : 4 * HZ_PER_MHZ; in sc16is7xx_spi_probe()
[all …]
/linux/net/ipv6/
H A Dxfrm6_tunnel.c31 u32 spi; member
41 * xfrm_tunnel_spi things are for allocating unique id ("spi")
48 u32 spi; member
69 static inline unsigned int xfrm6_tunnel_spi_hash_byspi(u32 spi) in xfrm6_tunnel_spi_hash_byspi() argument
71 return spi % XFRM6_TUNNEL_SPI_BYSPI_HSIZE; in xfrm6_tunnel_spi_hash_byspi()
92 u32 spi; in xfrm6_tunnel_spi_lookup() local
96 spi = x6spi ? x6spi->spi : 0; in xfrm6_tunnel_spi_lookup()
98 return htonl(spi); in xfrm6_tunnel_spi_lookup()
102 static int __xfrm6_tunnel_spi_check(struct net *net, u32 spi) in __xfrm6_tunnel_spi_check() argument
106 int index = xfrm6_tunnel_spi_hash_byspi(spi); in __xfrm6_tunnel_spi_check()
[all …]
/linux/drivers/fpga/
H A Dlattice-sysconfig-spi.c3 * Lattice FPGA programming over slave SPI sysCONFIG interface.
11 #include <linux/spi/spi.h>
22 struct spi_device *spi = to_spi_device(priv->dev); in sysconfig_spi_cmd_transfer() local
24 return spi_write_then_read(spi, tx_buf, tx_len, rx_buf, rx_len); in sysconfig_spi_cmd_transfer()
30 struct spi_device *spi = to_spi_device(priv->dev); in sysconfig_spi_bitstream_burst_init() local
50 * Lock SPI bus for exclusive usage until FPGA programming is done. in sysconfig_spi_bitstream_burst_init()
51 * SPI bus will be released in sysconfig_spi_bitstream_burst_complete(). in sysconfig_spi_bitstream_burst_init()
53 spi_bus_lock(spi->controller); in sysconfig_spi_bitstream_burst_init()
55 ret = spi_sync_locked(spi, &msg); in sysconfig_spi_bitstream_burst_init()
57 spi_bus_unlock(spi->controller); in sysconfig_spi_bitstream_burst_init()
[all …]

12345678910>>...88