/openbmc/linux/drivers/spi/ |
H A D | Makefile | 1 # 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 …]
|
H A D | spi-stm32.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // STMicroelectronics STM32 SPI Controller driver 5 // Copyright (C) 2017, STMicroelectronics - All Rights Reserved 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 */ [all …]
|
H A D | Kconfig | 1 # 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 …]
|
H A D | spi-lantiq-ssc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2011-2015 Daniel Schwierzeck <daniel.schwierzeck@gmail.com> 4 * Copyright (C) 2016 Hauke Mehrtens <hauke@hauke-m.de> 20 #include <linux/spi/spi.h> 142 #define LTQ_SPI_RXCNT_TODO_M 0xFFFF /* Recevie to-do value */ 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() [all …]
|
H A D | spi-microchip-core.c | 1 // SPDX-License-Identifier: (GPL-2.0) 3 * Microchip CoreSPI SPI controller driver 5 * Copyright (c) 2018-2022 Microchip Technology Inc. and its subsidiaries 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 [all …]
|
H A D | spi-mux.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // General Purpose SPI multiplexer 10 #include <linux/spi/spi.h> 12 #define SPI_MUX_NO_CS ((unsigned int)-1) 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 26 * struct spi_mux_priv - the basic spi_mux structure 27 * @spi: pointer to the device struct attached to the parent 28 * spi controller 36 * downstream spi devices [all …]
|
H A D | spi-sifive.c | 1 // SPDX-License-Identifier: GPL-2.0 5 // 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 */ 96 struct completion done; /* wake-up from interrupt */ 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() [all …]
|
H A D | spi-gpio.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 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> 20 * This bitbanging SPI host driver should help make systems usable 21 * when a native hardware SPI engine is not available, perhaps because 25 * platform_device->driver_data ... points to spi_gpio 27 * spi->controller_state ... reserved for bitbang framework code 29 * spi->controller->dev.driver_data ... points to spi_gpio->bitbang [all …]
|
/openbmc/u-boot/drivers/video/ |
H A D | formike.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * LCD: Formike, TFT 4.3", 480x800, RGB24, KWH043ST20-F01, DriverIC NT35510-16 4 * 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 [all …]
|
/openbmc/u-boot/drivers/spi/ |
H A D | Kconfig | 1 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 16 typically use driver-private data instead of extending the 20 bool "SPI memory extension" 22 Enable this option if you want to enable the SPI memory extension. [all …]
|
/openbmc/linux/drivers/staging/pi433/ |
H A D | rf69.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * abstraction of the spi interface of HopeRf rf69 radio module 5 * Copyright (C) 2016 Wolf-Entwicklungen 6 * Marcus Wolf <linux@wolf-entwicklungen.de> 10 #include <linux/spi/spi.h> 18 /*-------------------------------------------------------------------------*/ 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() [all …]
|
H A D | rf69.h | 1 /* SPDX-License-Identifier: GPL-2.0+ */ 5 * Copyright (C) 2016 Wolf-Entwicklungen 6 * Marcus Wolf <linux@wolf-entwicklungen.de> 20 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); [all …]
|
/openbmc/linux/drivers/staging/greybus/ |
H A D | spilib.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Greybus SPI library 5 * Copyright 2014-2016 Google Inc. 6 * Copyright 2014-2016 Linaro Ltd. 14 #include <linux/spi/spi.h> 41 #define GB_SPI_STATE_MSG_ERROR ((void *)-1) 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() 54 data_max -= sizeof(struct gb_spi_transfer_request); in tx_header_fit_operation() 65 data_max -= sizeof(struct gb_spi_transfer_response); in calc_rx_xfer_size() [all …]
|
/openbmc/linux/drivers/video/backlight/ |
H A D | ili922x.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 7 * controller. The interface to the display is SPI and the display's 20 #include <linux/spi/spi.h> 89 * ---------------------------------- 91 * ---------------------------------- 94 * - START_RS_INDEX set the index register 95 * - START_RS_REG write/read registers/GRAM 97 * - START_RW_WRITE write 98 * - START_RW_READ read 104 * CHECK_FREQ_REG(spi_device s, spi_transfer x) - Check the frequency [all …]
|
H A D | l4f00242t03.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * l4f00242t03.c -- support for Epson L4F00242T03 LCD 5 * Copyright 2007-2009 Freescale Semiconductor, Inc. All Rights Reserved. 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() 54 ret = regulator_set_voltage(priv->io_reg, 1800000, 1800000); in l4f00242t03_lcd_init() 56 dev_err(&spi->dev, "failed to set the IO regulator voltage.\n"); in l4f00242t03_lcd_init() [all …]
|
/openbmc/linux/drivers/media/pci/netup_unidvb/ |
H A D | netup_unidvb_spi.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 5 * Internal SPI driver for NetUP Universal Dual DVB-CI 13 #include <linux/spi/spi.h> 14 #include <linux/spi/flash.h> 16 #include <mtd/mtd-abi.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() [all …]
|
/openbmc/u-boot/doc/device-tree-bindings/spi/ |
H A D | spi-bus.txt | 1 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: 10 - #address-cells - number of cells required to define a chip select 11 address on the SPI bus. 12 - #size-cells - should be zero. 13 - compatible - name of SPI bus controller following generic names [all …]
|
/openbmc/u-boot/drivers/mtd/spi/ |
H A D | Kconfig | 1 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 11 supported by U-Boot. The uclass interface is defined in 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 [all …]
|
/openbmc/linux/drivers/net/wan/ |
H A D | slic_ds26522.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 16 #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 [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/spi/ |
H A D | brcm,spi-bcm-qspi.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 3 --- 4 $id: http://devicetree.org/schemas/spi/brcm,spi-bcm-qspi.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Broadcom SPI controller 10 - Kamal Dasu <kdasu.kdev@gmail.com> 11 - Rafał Miłecki <rafal@milecki.pl> 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 [all …]
|
H A D | mediatek,spi-mt65xx.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/spi/mediatek,spi-mt65xx.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: SPI Bus controller for MediaTek ARM SoCs 10 - Leilk Liu <leilk.liu@mediatek.com> 13 - $ref: /schemas/spi/spi-controller.yaml# 18 - items: 19 - enum: 20 - mediatek,mt7629-spi [all …]
|
/openbmc/linux/drivers/net/can/spi/ |
H A D | mcp251x.c | 1 // SPDX-License-Identifier: GPL-2.0-only 2 /* CAN bus driver for Microchip 251x/25625 CAN Controller with SPI Interface 17 * - Sascha Hauer, Marc Kleine-Budde, Pengutronix 18 * - Simon Kallweit, intefo AG 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) \ [all …]
|
H A D | hi311x.c | 1 // SPDX-License-Identifier: GPL-2.0-only 2 /* CAN bus driver for Holt HI3110 CAN Controller with SPI Interface 12 * - Sascha Hauer, Marc Kleine-Budde, Pengutronix 13 * - Simon Kallweit, intefo AG 35 #include <linux/spi/spi.h> 147 struct spi_device *spi; member 150 struct mutex hi3110_lock; /* SPI device lock */ 179 if (priv->tx_skb || priv->tx_busy) in hi3110_clean() 180 net->stats.tx_errors++; in hi3110_clean() 181 dev_kfree_skb(priv->tx_skb); in hi3110_clean() [all …]
|
/openbmc/linux/drivers/misc/ |
H A D | gehc-achc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * datasheet: https://www.nxp.com/docs/en/data-sheet/K20P144M120SF3.pdf 5 * Copyright (C) 2018-2021 Collabora 6 * Copyright (C) 2018-2021 GE Healthcare 15 #include <linux/spi/spi.h> 42 #define EZPORT_SECTOR_MASK (EZPORT_SECTOR_SIZE - 1) 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() [all …]
|
/openbmc/linux/drivers/media/dvb-frontends/cxd2880/ |
H A D | cxd2880_spi_device.c | 1 // SPDX-License-Identifier: GPL-2.0 4 * Sony CXD2880 DVB-T2/T tuner + demodulator driver 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() 23 return -EINVAL; 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() 36 return -EIO; in cxd2880_spi_device_write() [all …]
|