Home
last modified time | relevance | path

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

12345678910>>...186

/kernel/linux/linux-6.6/drivers/spi/
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 …]
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 …]
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 …]
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 …]
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 …]
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 …]
/kernel/linux/linux-5.10/drivers/spi/
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.o
18 obj-$(CONFIG_SPI_AR934X) += spi-ar934x.o
19 obj-$(CONFIG_SPI_ARMADA_3700) += spi-armada-3700.o
20 obj-$(CONFIG_SPI_ATMEL) += spi-atmel.o
[all …]
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 …]
Dspi-stm32.c3 // STMicroelectronics STM32 SPI Controller driver (master mode only)
19 #include <linux/spi/spi.h>
23 /* STM32F4 SPI registers */
72 /* STM32F4 SPI Baud Rate min/max divisor */
76 /* STM32H7 SPI registers */
153 /* STM32H7 SPI Master Baud Rate min/max divisor */
157 /* STM32H7 SPI Communication mode */
163 /* SPI Communication type */
179 * struct stm32_spi_reg - stm32 SPI register & bitfield desc
192 * @en: enable register and SPI enable bit
[all …]
Dspi-lantiq-ssc.c19 #include <linux/spi/spi.h>
155 int (*cfg_irq)(struct platform_device *pdev, struct lantiq_ssc_spi *spi);
188 static u32 lantiq_ssc_readl(const struct lantiq_ssc_spi *spi, u32 reg) in lantiq_ssc_readl() argument
190 return __raw_readl(spi->regbase + reg); in lantiq_ssc_readl()
193 static void lantiq_ssc_writel(const struct lantiq_ssc_spi *spi, u32 val, in lantiq_ssc_writel() argument
196 __raw_writel(val, spi->regbase + reg); in lantiq_ssc_writel()
199 static void lantiq_ssc_maskl(const struct lantiq_ssc_spi *spi, u32 clr, in lantiq_ssc_maskl() argument
202 u32 val = __raw_readl(spi->regbase + reg); in lantiq_ssc_maskl()
206 __raw_writel(val, spi->regbase + reg); in lantiq_ssc_maskl()
209 static unsigned int tx_fifo_level(const struct lantiq_ssc_spi *spi) in tx_fifo_level() argument
[all …]
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 …]
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 …]
/kernel/linux/linux-5.10/drivers/staging/pi433/
Drf69.c3 * abstraction of the spi interface of HopeRf rf69 radio module
17 #include <linux/spi/spi.h>
27 static u8 rf69_read_reg(struct spi_device *spi, u8 addr) in rf69_read_reg() argument
31 retval = spi_w8r8(spi, addr); in rf69_read_reg()
40 dev_dbg(&spi->dev, "read 0x%x FAILED\n", addr); in rf69_read_reg()
42 dev_dbg(&spi->dev, "read 0x%x from reg 0x%x\n", retval, addr); in rf69_read_reg()
48 static int rf69_write_reg(struct spi_device *spi, u8 addr, u8 value) in rf69_write_reg() argument
56 retval = spi_write(spi, &buffer, 2); in rf69_write_reg()
65 dev_dbg(&spi->dev, "write 0x%x to 0x%x FAILED\n", value, addr); in rf69_write_reg()
67 dev_dbg(&spi->dev, "wrote 0x%x to reg 0x%x\n", value, addr); in rf69_write_reg()
[all …]
Drf69.h20 int rf69_set_mode(struct spi_device *spi, enum mode mode);
21 int rf69_set_data_mode(struct spi_device *spi, u8 data_mode);
22 int rf69_set_modulation(struct spi_device *spi, enum modulation modulation);
23 int rf69_set_modulation_shaping(struct spi_device *spi,
25 int rf69_set_bit_rate(struct spi_device *spi, u16 bit_rate);
26 int rf69_set_deviation(struct spi_device *spi, u32 deviation);
27 int rf69_set_frequency(struct spi_device *spi, u32 frequency);
28 int rf69_enable_amplifier(struct spi_device *spi, u8 amplifier_mask);
29 int rf69_disable_amplifier(struct spi_device *spi, u8 amplifier_mask);
30 int rf69_set_output_power_level(struct spi_device *spi, u8 power_level);
[all …]
/kernel/linux/linux-6.6/drivers/staging/pi433/
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 …]
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 …]
/kernel/linux/linux-5.10/drivers/staging/greybus/
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 …]
/kernel/linux/linux-6.6/drivers/staging/greybus/
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 …]
/kernel/linux/linux-5.10/drivers/video/backlight/
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 …]
/kernel/linux/linux-6.6/drivers/video/backlight/
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 …]
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/spi/
Dbrcm,spi-bcm-qspi.txt1 Broadcom SPI controller
3 The Broadcom SPI controller is a SPI master found on various SOCs, including
4 BRCMSTB (BCM7XXX), Cygnus, NSP and NS2. The Broadcom Master SPI hw IP consits
6 MSPI : SPI master controller can read and write to a SPI slave device
7 BSPI : Broadcom SPI in combination with the MSPI hw IP provides acceleration
14 use SPI protocol.
19 Must be <1>, as required by generic SPI binding.
22 Must be <0>, also as required by generic SPI binding.
26 "brcm,spi-brcmstb-qspi", "brcm,spi-bcm-qspi" : MSPI+BSPI on BRCMSTB SoCs
27 "brcm,spi-brcmstb-mspi", "brcm,spi-bcm-qspi" : Second Instance of MSPI
[all …]
/kernel/linux/linux-5.10/drivers/net/wan/
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 …]
/kernel/linux/linux-6.6/drivers/net/wan/
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 …]
/kernel/linux/linux-6.6/drivers/media/pci/netup_unidvb/
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 …]
/kernel/linux/linux-5.10/drivers/media/pci/netup_unidvb/
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 …]

12345678910>>...186