Home
last modified time | relevance | path

Searched +full:spi +full:- +full:slave (Results 1 – 25 of 293) sorted by relevance

12345678910>>...12

/linux-6.8/Documentation/spi/
Dspi-summary.rst2 Overview of Linux kernel SPI support
5 02-Feb-2012
7 What is SPI?
8 ------------
9 The "Serial Peripheral Interface" (SPI) is a synchronous four wire serial
12 standardization body. SPI uses a master/slave configuration.
15 and parallel data lines with "Master Out, Slave In" (MOSI) or "Master In,
16 Slave Out" (MISO) signals. (Other names are also used.) There are four
17 clocking modes through which data is exchanged; mode-0 and mode-3 are most
22 SPI masters use a fourth "chip select" line to activate a given SPI slave
[all …]
/linux-6.8/Documentation/devicetree/bindings/spi/
Dmediatek,spi-slave-mt27xx.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/spi/mediatek,spi-slave-mt27xx.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: SPI Slave controller for MediaTek ARM SoCs
10 - Leilk Liu <leilk.liu@mediatek.com>
13 - $ref: /schemas/spi/spi-controller.yaml#
18 - mediatek,mt2712-spi-slave
19 - mediatek,mt8195-spi-slave
30 clock-names:
[all …]
Dspi-controller.yaml1 # SPDX-License-Identifier: GPL-2.0
3 ---
4 $id: http://devicetree.org/schemas/spi/spi-controller.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: SPI Controller Common Properties
10 - Mark Brown <broonie@kernel.org>
13 SPI busses can be described with a node for the SPI controller device
14 and a set of child nodes for each SPI slave on the bus. The system SPI
15 controller may be described for use in SPI master mode or in SPI slave mode,
20 pattern: "^spi(@.*|-([0-9]|[1-9][0-9]+))?$"
[all …]
Dicpdas-lp8841-spi-rtc.txt1 * ICP DAS LP-8841 SPI Controller for RTC
3 ICP DAS LP-8841 contains a DS-1302 RTC. RTC is connected to an IO
4 memory register, which acts as an SPI master device.
6 The device uses the standard MicroWire half-duplex transfer timing.
13 - #address-cells: should be 1
15 - #size-cells: should be 0
17 - compatible: should be "icpdas,lp8841-spi-rtc"
19 - reg: should provide IO memory address
21 Requirements to SPI slave nodes:
23 - There can be only one slave device.
[all …]
Dspi-sunplus-sp7021.yaml1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
4 ---
5 $id: http://devicetree.org/schemas/spi/spi-sunplus-sp7021.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
8 title: Sunplus sp7021 SPI controller
11 - $ref: spi-controller.yaml
14 - Li-hao Kuo <lhjeff911@gmail.com>
19 - sunplus,sp7021-spi
23 - description: the SPI master registers
24 - description: the SPI slave registers
[all …]
Dspi-davinci.txt1 Davinci SPI controller device bindings
4 Keystone 2 - https://www.ti.com/lit/ug/sprugp2a/sprugp2a.pdf
5 dm644x - https://www.ti.com/lit/ug/sprue32a/sprue32a.pdf
6 OMAP-L138/da830 - http://www.ti.com/lit/ug/spruh77a/spruh77a.pdf
9 - #address-cells: number of cells required to define a chip select
10 address on the SPI bus. Should be set to 1.
11 - #size-cells: should be zero.
12 - compatible:
13 - "ti,dm6441-spi" for SPI used similar to that on DM644x SoC family
14 - "ti,da830-spi" for SPI used similar to that on DA8xx SoC family
[all …]
/linux-6.8/Documentation/devicetree/bindings/fpga/
Dxlnx,fpga-slave-serial.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/fpga/xlnx,fpga-slave-serial.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Xilinx Slave Serial SPI FPGA
10 - Nava kishore Manne <nava.kishore.manne@amd.com>
13 Xilinx Spartan-6 and 7 Series FPGAs support a method of loading the bitstream
14 over what is referred to as slave serial interface.The slave serial link is
15 not technically SPI, and might require extra circuits in order to play nicely
16 with other SPI slaves on the same bus.
[all …]
Dlattice-machxo2-spi.txt1 Lattice MachXO2 Slave SPI FPGA Manager
4 'slave SPI' interface.
9 - compatible: should contain "lattice,machxo2-slave-spi"
10 - reg: spi chip select of the FPGA
14 fpga-region0 {
15 compatible = "fpga-region";
16 fpga-mgr = <&fpga_mgr_spi>;
17 #address-cells = <0x1>;
18 #size-cells = <0x1>;
21 spi1: spi@2000 {
[all …]
/linux-6.8/drivers/base/regmap/
Dregmap-spi-avmm.c1 // SPDX-License-Identifier: GPL-2.0
3 // Register map access API - SPI AVMM support
5 // Copyright (C) 2018-2020 Intel Corporation. All rights reserved.
9 #include <linux/spi/spi.h>
13 * This driver implements the regmap operations for a generic SPI
14 * master to access the registers of the spi slave chip which has an
17 * The "SPI slave to Avalon Master Bridge" (spi-avmm) IP should be integrated
18 * in the spi slave chip. The IP acts as a bridge to convert encoded streams of
20 * order to issue register access requests to the slave chip, the host should
28 * Chapter "SPI Slave/JTAG to Avalon Master Bridge Cores" is a general
[all …]
/linux-6.8/drivers/spi/
Dspi-bitbang-txrx.h1 /* SPDX-License-Identifier: GPL-2.0 */
4 * simple SPI master driver. Two do polled word-at-a-time I/O:
6 * - GPIO/parport bitbangers. Provide chipselect() and txrx_word[](),
7 * expanding the per-word routines from the inline templates below.
9 * - Drivers for controllers resembling bare shift registers. Provide
15 * - Drivers leveraging smarter hardware, with fifos or DMA; or for half
36 * A non-inlined routine would call bitbang_txrx_*() routines. The
49 bitbang_txrx_be_cpha0(struct spi_device *spi, in bitbang_txrx_be_cpha0() argument
55 u32 oldbit = (!(word & (1<<(bits-1)))) << 31; in bitbang_txrx_be_cpha0()
57 for (word <<= (32 - bits); likely(bits); bits--) { in bitbang_txrx_be_cpha0()
[all …]
DKconfig1 # SPDX-License-Identifier: GPL-2.0-only
3 # 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
13 dynamic device discovery; some are even write-only or read-only.
15 SPI is widely used by microcontrollers to talk with sensors,
17 chips, analog to digital (and d-to-a) converters, and more.
18 MMC and SD cards can be accessed using SPI protocol; and for
[all …]
Dspi-slave-time.c2 * SPI slave handler reporting uptime at reception of previous SPI message
4 * This SPI slave handler sends the time of reception of the last SPI message
5 * as two 32-bit unsigned integers in binary format and in network byte order,
9 * Copyright (C) 2016-2017 Glider bvba
15 * Usage (assuming /dev/spidev2.0 corresponds to the SPI master on the remote
18 * # spidev_test -D /dev/spidev2.0 -p dummy-8B
19 * spi mode: 0x0
30 #include <linux/spi/spi.h>
34 struct spi_device *spi; member
48 ret = priv->msg.status; in spi_slave_time_complete()
[all …]
Dspi-slave-system-control.c2 * SPI slave handler controlling system state
4 * This SPI slave handler allows remote control of system reboot, power off,
7 * Copyright (C) 2016-2017 Glider bvba
13 * Usage (assuming /dev/spidev2.0 corresponds to the SPI master on the remote
20 * # spidev_test -D /dev/spidev2.0 -p $suspend # or $reboot, $poweroff, $halt
27 #include <linux/spi/spi.h>
30 * The numbers are chosen to display something human-readable on two 7-segment
39 struct spi_device *spi; member
55 if (priv->msg.status) in spi_slave_system_control_complete()
58 cmd = be16_to_cpu(priv->cmd); in spi_slave_system_control_complete()
[all …]
DMakefile1 # SPDX-License-Identifier: GPL-2.0
3 # Makefile for kernel SPI drivers.
6 ccflags-$(CONFIG_SPI_DEBUG) := -DDEBUG
8 # small core, mostly translating board-specific
10 obj-$(CONFIG_SPI_MASTER) += spi.o
11 obj-$(CONFIG_SPI_MEM) += spi-mem.o
12 obj-$(CONFIG_SPI_MUX) += spi-mux.o
13 obj-$(CONFIG_SPI_SPIDEV) += spidev.o
14 obj-$(CONFIG_SPI_LOOPBACK_TEST) += spi-loopback-test.o
16 # SPI master controller drivers (bus)
[all …]
Dspi-slave-mt27xx.c1 // SPDX-License-Identifier: GPL-2.0+
6 #include <linux/dma-mapping.h>
12 #include <linux/spi/spi.h>
90 { .compatible = "mediatek,mt2712-spi-slave",
92 { .compatible = "mediatek,mt8195-spi-slave",
102 reg_val = readl(mdata->base + SPIS_DMA_CFG_REG); in mtk_spi_slave_disable_dma()
105 writel(reg_val, mdata->base + SPIS_DMA_CFG_REG); in mtk_spi_slave_disable_dma()
112 reg_val = readl(mdata->base + SPIS_CFG_REG); in mtk_spi_slave_disable_xfer()
115 writel(reg_val, mdata->base + SPIS_CFG_REG); in mtk_spi_slave_disable_xfer()
120 if (wait_for_completion_interruptible(&mdata->xfer_done) || in mtk_spi_slave_wait_for_completion()
[all …]
/linux-6.8/drivers/fpga/
DKconfig1 # SPDX-License-Identifier: GPL-2.0-only
41 tristate "Altera FPGA Passive Serial over SPI"
42 depends on SPI
46 using the passive serial interface over SPI.
52 FPGA manager driver support for Arria-V, Cyclone-V, Stratix-V,
68 tristate "Xilinx Configuration over Slave Serial (SPI)"
69 depends on SPI
72 over slave serial interface.
75 tristate "Lattice iCE40 SPI"
76 depends on OF && SPI
[all …]
Dxilinx-spi.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * Xilinx Spartan6 and 7 Series Slave Serial SPI Driver
9 * Manage Xilinx FPGA firmware that is loaded over SPI using
10 * the slave serial configuration interface.
15 #include <linux/fpga/fpga-mgr.h>
20 #include <linux/spi/spi.h>
24 struct spi_device *spi; member
32 struct xilinx_spi_conf *conf = mgr->priv; in get_done_gpio()
35 ret = gpiod_get_value(conf->done); in get_done_gpio()
38 dev_err(&mgr->dev, "Error reading DONE (%d)\n", ret); in get_done_gpio()
[all …]
Dmachxo2-spi.c1 // SPDX-License-Identifier: GPL-2.0
3 * Lattice MachXO2 Slave SPI Driver
5 * Manage Lattice FPGA firmware that is loaded over SPI using
6 * the slave serial configuration interface.
12 #include <linux/fpga/fpga-mgr.h>
16 #include <linux/spi/spi.h>
18 /* MachXO2 Programming Guide - sysCONFIG Programming Commands */
29 * Max CCLK in Slave SPI mode according to 'MachXO2 Family Data
30 * Sheet' sysCONFIG Port Timing Specifications (3-36)
66 static int get_status(struct spi_device *spi, unsigned long *status) in get_status() argument
[all …]
/linux-6.8/Documentation/devicetree/bindings/input/touchscreen/
Dad7879.txt1 * Analog Devices AD7879(-1)/AD7889(-1) touchscreen interface (SPI/I2C)
4 - compatible : for SPI slave, use "adi,ad7879"
5 for I2C slave, use "adi,ad7879-1"
6 - reg : SPI chipselect/I2C slave address
7 See spi-bus.txt for more SPI slave properties
8 - interrupts : touch controller interrupt
9 - touchscreen-max-pressure : maximum reported pressure
10 - adi,resistance-plate-x : total resistance of X-plate (for pressure
13 - touchscreen-swapped-x-y : X and Y axis are swapped (boolean)
14 - adi,first-conversion-delay : 0-12: In 128us steps (starting with 128us)
[all …]
/linux-6.8/include/linux/amba/
Dpl022.h1 /* SPDX-License-Identifier: GPL-2.0-or-later */
5 * Copyright (C) 2008-2009 ST-Ericsson AB
11 * linux-2.6.17-rc3-mm1/drivers/spi/pxa2xx_spi.c
30 * enum ssp_interface - interfaces allowed for this SSP Controller
47 * enum ssp_hierarchy - whether SSP is configured as Master or Slave
55 * enum ssp_clock_params - clock parameters, to set SSP clock at a
64 * enum ssp_rx_endian - endianess of Rx FIFO Data
73 * enum ssp_tx_endian - endianess of Tx FIFO Data
81 * enum ssp_data_size - number of bits in one data element
97 * enum ssp_mode - SSP mode of operation (Communication modes)
[all …]
/linux-6.8/drivers/nfc/nfcmrvl/
Dspi.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * Marvell NFC-over-SPI driver: SPI interface related functions
14 #include <linux/spi/spi.h>
21 struct spi_device *spi; member
36 if (test_and_clear_bit(SPI_WAIT_HANDSHAKE, &drv_data->flags)) { in nfcmrvl_spi_int_irq_thread_fn()
37 complete(&drv_data->handshake_completion); in nfcmrvl_spi_int_irq_thread_fn()
41 /* Normal case, SPI_INT deasserted by slave to trigger a master read */ in nfcmrvl_spi_int_irq_thread_fn()
43 skb = nci_spi_read(drv_data->nci_spi); in nfcmrvl_spi_int_irq_thread_fn()
45 nfc_err(&drv_data->spi->dev, "failed to read spi packet"); in nfcmrvl_spi_int_irq_thread_fn()
49 if (nfcmrvl_nci_recv_frame(drv_data->priv, skb) < 0) in nfcmrvl_spi_int_irq_thread_fn()
[all …]
/linux-6.8/drivers/net/wireless/microchip/wilc1000/
DKconfig1 # SPDX-License-Identifier: GPL-2.0
6 This provides Wi-FI over an SDIO or SPI interface, and
19 the 1-bit/4-bit SD transfer mode at the clock range of 0-50 MHz.
26 tristate "Atmel WILC1000 SPI (WiFi only)"
27 depends on CFG80211 && INET && SPI
32 This module adds support for the SPI interface of adapters using
34 Interface (SPI) that operates as a SPI slave. This SPI interface can
35 be used for control and for serial I/O of 802.11 data. The SPI is a
36 full-duplex slave synchronous serial interface that is available
38 VDDIO. Select this if your platform is using the SPI bus.
[all …]
/linux-6.8/include/linux/platform_data/
Dspi-s3c64xx.h1 /* SPDX-License-Identifier: GPL-2.0 */
16 * struct s3c64xx_spi_csinfo - ChipSelect description
17 * @fb_delay: Slave specific feedback delay.
18 * Refer to FB_CLK_SEL register definition in SPI chapter.
20 * This is per SPI-Slave Chipselect information.
29 * struct s3c64xx_spi_info - SPI Controller defining structure
33 * @cfg_gpio: Configure pins for this SPI controller.
44 * s3c64xx_spi_set_platdata - SPI Controller configure callback by the board
46 * @src_clk_nr: Clock the SPI controller is to use to generate SPI clocks.
49 * Call this from machine init code for each SPI Controller that
/linux-6.8/include/linux/spi/
Dspi.h1 /* SPDX-License-Identifier: GPL-2.0-or-later
21 #include <uapi/linux/spi/spi.h>
23 /* Max no. of CS supported per spi device */
36 * INTERFACES between SPI master-side drivers and SPI slave protocol handlers,
37 * and SPI infrastructure.
42 * struct spi_statistics - statistics for spi transfers
43 * @syncp: seqcount to protect members in this struct for per-cpu update
44 * on 32-bit systems
46 * @messages: number of spi-messages handled
95 u64_stats_update_begin(&__lstats->syncp); \
[all …]
/linux-6.8/drivers/iio/accel/
Dadxl367_spi.c1 // SPDX-License-Identifier: GPL-2.0+
10 #include <linux/spi/spi.h>
21 struct spi_device *spi; member
46 st->fifo_xfer[1].rx_buf = fifo_buf; in adxl367_read_fifo()
47 st->fifo_xfer[1].len = fifo_entries * sizeof(*fifo_buf); in adxl367_read_fifo()
49 return spi_sync(st->spi, &st->fifo_msg); in adxl367_read_fifo()
58 st->reg_read_tx_buf[1] = reg; in adxl367_read()
59 st->reg_read_xfer[1].rx_buf = val_buf; in adxl367_read()
60 st->reg_read_xfer[1].len = val_size; in adxl367_read()
62 return spi_sync(st->spi, &st->reg_read_msg); in adxl367_read()
[all …]

12345678910>>...12