Home
last modified time | relevance | path

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

12345678910>>...140

/openbmc/u-boot/drivers/video/
H A Dformike.c4 * LCD initialization via SPI
10 #include <spi.h>
21 static int spi_write_tag_val(struct spi_slave *spi, unsigned char tag, in spi_write_tag_val() argument
29 ret = spi_xfer(spi, 8, buf, NULL, flags); in spi_write_tag_val()
32 ret = spi_xfer(spi, 8, buf, NULL, flags); in spi_write_tag_val()
44 static void spi_write_dat(struct spi_slave *spi, unsigned int val) in spi_write_dat() argument
46 spi_write_tag_val(spi, TAG_WRITE|TAG_DATA, val); in spi_write_dat()
49 static void spi_write_com(struct spi_slave *spi, unsigned int addr) in spi_write_com() argument
51 spi_write_tag_val(spi, TAG_WRITE|TAG_COMMAND|TAG_ADDR_H, in spi_write_com()
53 spi_write_tag_val(spi, TAG_WRITE|TAG_COMMAND|TAG_ADDR_L, in spi_write_com()
[all …]
/openbmc/linux/drivers/spi/
H A DMakefile3 # Makefile for kernel SPI drivers.
10 obj-$(CONFIG_SPI_MASTER) += spi.o
11 obj-$(CONFIG_SPI_MEM) += spi-mem.o
12 obj-$(CONFIG_SPI_MUX) += spi-mux.o
14 obj-$(CONFIG_SPI_LOOPBACK_TEST) += spi-loopback-test.o
16 # SPI master controller drivers (bus)
17 obj-$(CONFIG_SPI_ALTERA) += spi-altera-platform.o
18 obj-$(CONFIG_SPI_ALTERA_CORE) += spi-altera-core.o
19 obj-$(CONFIG_SPI_ALTERA_DFL) += spi-altera-dfl.o
20 obj-$(CONFIG_SPI_AMLOGIC_SPIFC_A1) += spi-amlogic-spifc-a1.o
[all …]
H A Dspi-stm32.c3 // STMicroelectronics STM32 SPI Controller driver
20 #include <linux/spi/spi.h>
24 /* STM32F4 SPI registers */
73 /* STM32F4 SPI Baud Rate min/max divisor */
77 /* STM32H7 SPI registers */
149 /* STM32H7 SPI Master Baud Rate min/max divisor */
153 /* STM32H7 SPI Communication mode */
159 /* SPI Communication type */
174 /* STM32 SPI driver helpers */
179 * struct stm32_spi_reg - stm32 SPI register & bitfield desc
[all …]
H A DKconfig3 # SPI driver configuration
5 menuconfig SPI config
6 bool "SPI support"
10 protocol. Chips that support SPI can have data transfer rates
12 controller and a chipselect. Most SPI slaves don't support
15 SPI is widely used by microcontrollers to talk with sensors,
18 MMC and SD cards can be accessed using SPI protocol; and for
19 DataFlash cards used in MMC sockets, SPI must always be used.
21 SPI is one of a family of similar protocols using a four wire
26 if SPI
[all …]
H A Dspi-lantiq-ssc.c20 #include <linux/spi/spi.h>
156 int (*cfg_irq)(struct platform_device *pdev, struct lantiq_ssc_spi *spi);
189 static u32 lantiq_ssc_readl(const struct lantiq_ssc_spi *spi, u32 reg) in lantiq_ssc_readl() argument
191 return __raw_readl(spi->regbase + reg); in lantiq_ssc_readl()
194 static void lantiq_ssc_writel(const struct lantiq_ssc_spi *spi, u32 val, in lantiq_ssc_writel() argument
197 __raw_writel(val, spi->regbase + reg); in lantiq_ssc_writel()
200 static void lantiq_ssc_maskl(const struct lantiq_ssc_spi *spi, u32 clr, in lantiq_ssc_maskl() argument
203 u32 val = __raw_readl(spi->regbase + reg); in lantiq_ssc_maskl()
207 __raw_writel(val, spi->regbase + reg); in lantiq_ssc_maskl()
210 static unsigned int tx_fifo_level(const struct lantiq_ssc_spi *spi) in tx_fifo_level() argument
[all …]
H A Dspi-microchip-core.c3 * Microchip CoreSPI SPI controller driver
21 #include <linux/spi/spi.h>
108 u32 clk_gen; /* divider for spi output clock generated by the controller */
117 static inline u32 mchp_corespi_read(struct mchp_corespi *spi, unsigned int reg) in mchp_corespi_read() argument
119 return readl(spi->regs + reg); in mchp_corespi_read()
122 static inline void mchp_corespi_write(struct mchp_corespi *spi, unsigned int reg, u32 val) in mchp_corespi_write() argument
124 writel(val, spi->regs + reg); in mchp_corespi_write()
127 static inline void mchp_corespi_disable(struct mchp_corespi *spi) in mchp_corespi_disable() argument
129 u32 control = mchp_corespi_read(spi, REG_CONTROL); in mchp_corespi_disable()
133 mchp_corespi_write(spi, REG_CONTROL, control); in mchp_corespi_disable()
[all …]
H A Dspi-mux.c3 // General Purpose SPI multiplexer
10 #include <linux/spi/spi.h>
17 * This driver supports a MUX on an SPI bus. This can be useful when you need
21 * The driver will create an additional SPI controller. Devices added under the
27 * @spi: pointer to the device struct attached to the parent
28 * spi controller
36 * downstream spi devices
39 struct spi_device *spi; member
49 static int spi_mux_select(struct spi_device *spi) in spi_mux_select() argument
51 struct spi_mux_priv *priv = spi_controller_get_devdata(spi->controller); in spi_mux_select()
[all …]
H A Dspi-sifive.c5 // SiFive SPI controller driver (master mode only)
15 #include <linux/spi/spi.h>
38 #define SIFIVE_SPI_REG_FCTRL 0x60 /* SPI flash interface control */
39 #define SIFIVE_SPI_REG_FFMT 0x64 /* SPI flash instruction format */
99 static void sifive_spi_write(struct sifive_spi *spi, int offset, u32 value) in sifive_spi_write() argument
101 iowrite32(value, spi->regs + offset); in sifive_spi_write()
104 static u32 sifive_spi_read(struct sifive_spi *spi, int offset) in sifive_spi_read() argument
106 return ioread32(spi->regs + offset); in sifive_spi_read()
109 static void sifive_spi_init(struct sifive_spi *spi) in sifive_spi_init() argument
112 sifive_spi_write(spi, SIFIVE_SPI_REG_IE, 0); in sifive_spi_init()
[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>
20 * This bitbanging SPI host driver should help make systems usable
21 * when a native hardware SPI engine is not available, perhaps because
27 * spi->controller_state ... reserved for bitbang framework code
29 * spi->controller->dev.driver_data ... points to spi_gpio->bitbang
62 * #include "spi-gpio.c"
75 spi_to_spi_gpio(const struct spi_device *spi) in spi_to_spi_gpio() argument
[all …]
/openbmc/u-boot/drivers/spi/
H A DKconfig1 menuconfig SPI config
2 bool "SPI Support"
4 if SPI
7 bool "Enable Driver Model for SPI drivers"
10 Enable driver model for SPI. The SPI slave interface
12 the SPI uclass. Drivers provide methods to access the SPI
14 include/spi.h. The existing spi_slave structure is attached
20 bool "SPI memory extension"
22 Enable this option if you want to enable the SPI memory extension.
23 This extension is meant to simplify interaction with SPI memories
[all …]
/openbmc/linux/drivers/staging/pi433/
H A Drf69.c3 * abstraction of the spi interface of HopeRf rf69 radio module
10 #include <linux/spi/spi.h>
20 u8 rf69_read_reg(struct spi_device *spi, u8 addr) in rf69_read_reg() argument
22 return spi_w8r8(spi, addr); in rf69_read_reg()
25 static int rf69_write_reg(struct spi_device *spi, u8 addr, u8 value) in rf69_write_reg() argument
32 return spi_write(spi, &buffer, ARRAY_SIZE(buffer)); in rf69_write_reg()
37 static int rf69_set_bit(struct spi_device *spi, u8 reg, u8 mask) in rf69_set_bit() argument
41 tmp = rf69_read_reg(spi, reg); in rf69_set_bit()
43 return rf69_write_reg(spi, reg, tmp); in rf69_set_bit()
46 static int rf69_clear_bit(struct spi_device *spi, u8 reg, u8 mask) in rf69_clear_bit() argument
[all …]
H A Drf69.h20 u8 rf69_read_reg(struct spi_device *spi, u8 addr);
21 int rf69_get_version(struct spi_device *spi);
22 int rf69_set_mode(struct spi_device *spi, enum mode mode);
23 int rf69_set_data_mode(struct spi_device *spi, u8 data_mode);
24 int rf69_set_modulation(struct spi_device *spi, enum modulation modulation);
25 int rf69_set_modulation_shaping(struct spi_device *spi,
27 int rf69_set_bit_rate(struct spi_device *spi, u16 bit_rate);
28 int rf69_set_deviation(struct spi_device *spi, u32 deviation);
29 int rf69_set_frequency(struct spi_device *spi, u32 frequency);
30 int rf69_enable_amplifier(struct spi_device *spi, u8 amplifier_mask);
[all …]
/openbmc/linux/drivers/staging/greybus/
H A Dspilib.c3 * Greybus SPI library
14 #include <linux/spi/spi.h>
45 static struct spi_master *get_master_from_spi(struct gb_spilib *spi) in get_master_from_spi() argument
47 return gb_connection_get_data(spi->connection); in get_master_from_spi()
95 static void clean_xfer_state(struct gb_spilib *spi) in clean_xfer_state() argument
97 spi->first_xfer = NULL; in clean_xfer_state()
98 spi->last_xfer = NULL; in clean_xfer_state()
99 spi->rx_xfer_offset = 0; in clean_xfer_state()
100 spi->tx_xfer_offset = 0; in clean_xfer_state()
101 spi->last_xfer_size = 0; in clean_xfer_state()
[all …]
/openbmc/linux/drivers/video/backlight/
H A Dili922x.c7 * controller. The interface to the display is SPI and the display's
20 #include <linux/spi/spi.h>
105 * for the SPI transfer. According to the datasheet, the controller
110 * @s: pointer to an SPI device
139 struct spi_device *spi; member
146 * @spi: spi device
149 static int ili922x_read_status(struct spi_device *spi, u16 *rs) in ili922x_read_status() argument
162 CHECK_FREQ_REG(spi, &xfer); in ili922x_read_status()
176 ret = spi_sync(spi, &msg); in ili922x_read_status()
178 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 …]
/openbmc/u-boot/drivers/mtd/spi/
H A DKconfig1 menu "SPI Flash Support"
4 bool "Enable Driver Model for SPI flash"
7 Enable driver model for SPI flash. This SPI flash interface
9 implemented by the SPI flash uclass. There is one standard
10 SPI flash driver which knows how to probe most chips
14 during the transition parent. SPI and SPI flash must be
19 bool "Support sandbox SPI flash device"
23 provided instead. Drivers can be connected up to the sandbox SPI
24 bus (see CONFIG_SANDBOX_SPI) and SPI traffic will be routed to this
25 device. Typically the contents of the emulated SPI flash device is
[all …]
/openbmc/linux/drivers/net/wan/
H A Dslic_ds26522.c16 #include <linux/spi/spi.h>
37 static void slic_write(struct spi_device *spi, u16 addr, in slic_write() argument
48 /* write spi addr and value */ in slic_write()
49 spi_write(spi, &temp[0], SLIC_THREE_LEN); in slic_write()
52 static u8 slic_read(struct spi_device *spi, u16 addr) in slic_read() argument
61 spi_write_then_read(spi, &temp[0], SLIC_TWO_LEN, &data, in slic_read()
68 static bool get_slic_product_code(struct spi_device *spi) in get_slic_product_code() argument
72 device_id = slic_read(spi, DS26522_IDR_ADDR); in get_slic_product_code()
79 static void ds26522_e1_spec_config(struct spi_device *spi) in ds26522_e1_spec_config() argument
82 slic_write(spi, DS26522_RMMR_ADDR, DS26522_RMMR_E1); in ds26522_e1_spec_config()
[all …]
/openbmc/linux/drivers/media/pci/netup_unidvb/
H A Dnetup_unidvb_spi.c5 * Internal SPI driver for NetUP Universal Dual DVB-CI
13 #include <linux/spi/spi.h>
14 #include <linux/spi/flash.h>
69 irqreturn_t netup_spi_interrupt(struct netup_spi *spi) in netup_spi_interrupt() argument
74 if (!spi) in netup_spi_interrupt()
77 spin_lock_irqsave(&spi->lock, flags); in netup_spi_interrupt()
78 reg = readw(&spi->regs->control_stat); in netup_spi_interrupt()
80 spin_unlock_irqrestore(&spi->lock, flags); in netup_spi_interrupt()
81 dev_dbg(&spi->master->dev, in netup_spi_interrupt()
85 writew(reg | NETUP_SPI_CTRL_IRQ, &spi->regs->control_stat); in netup_spi_interrupt()
[all …]
/openbmc/u-boot/doc/device-tree-bindings/spi/
H A Dspi-bus.txt1 SPI (Serial Peripheral Interface) busses
3 SPI busses can be described with a node for the SPI master device
4 and a set of child nodes for each SPI slave on the bus. For this
5 discussion, it is assumed that the system's SPI controller is in
6 SPI master mode. This binding does not describe SPI controllers
9 The SPI master node requires the following properties:
11 address on the SPI bus.
13 - compatible - name of SPI bus controller following generic names
16 No other properties are required in the SPI bus node. It is assumed
17 that a driver for an SPI bus device will understand that it is an SPI bus.
[all …]
/openbmc/linux/Documentation/devicetree/bindings/spi/
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 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 …]
/openbmc/linux/drivers/net/can/spi/
H A Dmcp251x.c2 /* CAN bus driver for Microchip 251x/25625 CAN Controller with SPI Interface
43 #include <linux/spi/spi.h>
46 /* SPI interface instruction set */
197 /* Buffer size required for the largest SPI transfer (i.e., reading a
231 struct spi_device *spi; member
234 struct mutex mcp_lock; /* SPI device lock */
264 static inline int mcp251x_is_##_model(struct spi_device *spi) \
266 struct mcp251x_priv *priv = spi_get_drvdata(spi); \
286 * registers via SPI is not really different conceptually than using
297 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
35 #include <linux/spi/spi.h>
147 struct spi_device *spi; member
150 struct mutex hi3110_lock; /* SPI device lock */
189 * registers via SPI is not really different conceptually than using
200 static int hi3110_spi_trans(struct spi_device *spi, int len) in hi3110_spi_trans() argument
202 struct hi3110_priv *priv = spi_get_drvdata(spi); in hi3110_spi_trans()
215 ret = spi_sync(spi, &m); in hi3110_spi_trans()
218 dev_err(&spi->dev, "spi transfer failed: ret = %d\n", ret); in hi3110_spi_trans()
222 static int hi3110_cmd(struct spi_device *spi, u8 command) in hi3110_cmd() argument
[all …]
/openbmc/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 …]
/openbmc/linux/drivers/misc/
H A Dgehc-achc.c15 #include <linux/spi/spi.h>
59 static int ezport_start_programming(struct spi_device *spi, struct gpio_desc *reset) in ezport_start_programming() argument
68 spi_bus_lock(spi->master); in ezport_start_programming()
73 ret = spi_sync_locked(spi, &msg); in ezport_start_programming()
85 ret = spi_sync_locked(spi, &msg); in ezport_start_programming()
88 spi_bus_unlock(spi->master); in ezport_start_programming()
92 static void ezport_stop_programming(struct spi_device *spi, struct gpio_desc *reset) in ezport_stop_programming() argument
95 spi_bus_lock(spi->master); in ezport_stop_programming()
97 spi_bus_unlock(spi->master); in ezport_stop_programming()
100 static int ezport_get_status_register(struct spi_device *spi) in ezport_get_status_register() argument
[all …]

12345678910>>...140