| /linux/drivers/spi/ |
| H A D | spi-stm32.c | 3 // 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 D | spi-atcspi200.c | 3 * 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 D | spi-gpio.c | 3 * 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 D | spi.c | 2 // 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 D | ili922x.c | 7 * 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 D | l4f00242t03.c | 21 #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 D | slic_ds26522.c | 16 #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 D | mediatek,spi-mt65xx.yaml | 4 $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 D | brcm,spi-bcm-qspi.yaml | 4 $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 D | spi-rockchip.yaml | 4 $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 D | snps,dw-apb-ssi.yaml | 4 $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 D | brcm,bcm63xx-spi.yaml | 4 $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 D | nvidia,tegra114-spi.yaml | 4 $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 D | mcp251x.c | 2 /* 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 D | hi311x.c | 2 /* 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 D | cxd2880_spi_device.c | 5 * 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 D | panel-lgphilips-lb035q02.c | 12 #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 D | st_sensors_spi.c | 3 * 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 D | v4l2-spi.c | 3 * 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 D | b53_spi.c | 2 * 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 D | bme680_spi.c | 3 * 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 D | epson,rx6110.yaml | 10 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 D | sc16is7xx_spi.c | 2 /* 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 D | xfrm6_tunnel.c | 31 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 D | lattice-sysconfig-spi.c | 3 * 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 …]
|