/kernel/linux/linux-5.10/drivers/media/rc/ |
D | gpio-ir-tx.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 13 #include <media/rc-core.h> 15 #define DRIVER_NAME "gpio-ir-tx" 16 #define DEVICE_NAME "GPIO IR Bit Banging Transmitter" 25 { .compatible = "gpio-ir-tx", }, 32 struct gpio_ir *gpio_ir = dev->priv; in gpio_ir_tx_set_duty_cycle() 34 gpio_ir->duty_cycle = duty_cycle; in gpio_ir_tx_set_duty_cycle() 41 struct gpio_ir *gpio_ir = dev->priv; in gpio_ir_tx_set_carrier() 44 return -EINVAL; in gpio_ir_tx_set_carrier() 46 gpio_ir->carrier = carrier; in gpio_ir_tx_set_carrier() [all …]
|
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 57 tristate "Enable IR raw decoder for the RC-5 protocol" 62 Enable this option if you have IR with RC-5 protocol, and 138 tristate "Enable IR raw decoder for the RC-MM protocol" 141 Enable this option when you have IR with RC-MM protocol, and 143 24 and 32 bits RC-MM variants. You can enable or disable the 145 'rc-mm-12', 'rc-mm-24' and 'rc-mm-32'. 148 will be called ir-rcmm-decoder. 168 All-In-Wonder video cards, the X10 "Lola" remote, NVIDIA RF remote, 198 called ir-hix5hd2. [all …]
|
/kernel/linux/linux-5.10/drivers/i2c/algos/ |
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 10 tristate "I2C bit-banging interfaces"
|
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/iio/adc/ |
D | avia-hx711.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: "http://devicetree.org/schemas/iio/adc/avia-hx711.yaml#" 5 $schema: "http://devicetree.org/meta-schemas/core.yaml#" 10 - Andreas Klinger <ak@it-klinger.de> 13 Bit-banging driver using two GPIOs: 14 - sck-gpio gives a clock to the sensor with 24 cycles for data retrieval 17 - dout-gpio is the sensor data the sensor responds to the clock 25 - avia,hx711 27 sck-gpios: [all …]
|
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/iio/proximity/ |
D | parallax-ping.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/iio/proximity/parallax-ping.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Andreas Klinger <ak@it-klinger.de> 13 Bit-banging driver using one GPIO: 14 - ping-gpios is raised by the driver to start measurement 15 - direction of ping-gpio is then switched into input with an interrupt 19 http://parallax.com/sites/default/files/downloads/28041-LaserPING-2m-Rangefinder-Guide.pdf 20 http://parallax.com/sites/default/files/downloads/28015-PING-Documentation-v1.6.pdf [all …]
|
D | devantech-srf04.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/iio/proximity/devantech-srf04.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Andreas Klinger <ak@it-klinger.de> 13 Bit-banging driver using two GPIOs: 14 - trigger-gpio is raised by the driver to start sending out an ultrasonic 16 - echo-gpio is held high by the sensor after sending ultrasonic burst 20 https://www.robot-electronics.co.uk/htm/srf04tech.htm 22 https://www.maxbotix.com/documents/LV-MaxSonar-EZ_Datasheet.pdf [all …]
|
/kernel/linux/linux-5.10/drivers/gpu/drm/i915/display/ |
D | intel_gmbus.c | 3 * Copyright © 2006-2008,2010 Intel Corporation 27 * Chris Wilson <chris@chris-wilson.co.uk> 31 #include <linux/i2c-algo-bit.h> 129 return pin < size && get_gmbus_pin(dev_priv, pin)->name; in intel_gmbus_is_valid_pin() 154 /* When using bit bashing for I2C, this bit needs to be set to 1 */ in pnv_gmbus_clock_gating() 191 struct drm_i915_private *i915 = bus->dev_priv; in get_reserved() 192 struct intel_uncore *uncore = &i915->uncore; in get_reserved() 197 reserved = intel_uncore_read_notrace(uncore, bus->gpio_reg) & in get_reserved() 207 struct intel_uncore *uncore = &bus->dev_priv->uncore; in get_clock() 211 bus->gpio_reg, in get_clock() [all …]
|
D | intel_dvo.c | 3 * Copyright © 2006-2007 Intel Corporation 135 struct drm_device *dev = connector->base.dev; in intel_dvo_connector_get_hw_state() 140 tmp = intel_de_read(dev_priv, intel_dvo->dev.dvo_reg); in intel_dvo_connector_get_hw_state() 145 return intel_dvo->dev.dev_ops->get_hw_state(&intel_dvo->dev); in intel_dvo_connector_get_hw_state() 151 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_dvo_get_hw_state() 155 tmp = intel_de_read(dev_priv, intel_dvo->dev.dvo_reg); in intel_dvo_get_hw_state() 165 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_dvo_get_config() 169 pipe_config->output_types |= BIT(INTEL_OUTPUT_DVO); in intel_dvo_get_config() 171 tmp = intel_de_read(dev_priv, intel_dvo->dev.dvo_reg); in intel_dvo_get_config() 181 pipe_config->hw.adjusted_mode.flags |= flags; in intel_dvo_get_config() [all …]
|
/kernel/linux/linux-5.10/drivers/staging/gs_fpgaboot/ |
D | README | 16 - Download Xilinx FPGA firmware 17 - This module downloads Xilinx FPGA firmware using gpio pins. 28 - load Xilinx FPGA bitstream format[1] firmware image file using 30 - program the Xilinx FPGA using SelectMAP (parallel) mode [2] 31 - FPGA prgram is done by gpio based bit-banging, as an example 32 - platform independent file: gs_fpgaboot.c 33 - platform dependent file: io.c 37 $ insmod gs_fpga.ko file="xlinx_fpga_top_bitstream.bit" 68 https://www.xilinx.com/support/documentation/application_notes/xapp583-fpga-configuration.pdf
|
/kernel/linux/linux-5.10/drivers/input/serio/ |
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 113 This driver provides support for the PS/2 ports on PA-RISC machines 131 of delivering interrupts on a periodic and one-shot basis. 132 The SDC may also be connected to a battery-backed real-time 133 clock, a basic audio waveform generator, and an HP-HIL Master 198 echo -n "serio_raw" > /sys/bus/serio/devices/serioX/drvctl 230 When used for the E3 mailboard, a non-standard key table 267 tristate "OLPC AP-SP input support" 271 in the OLPC XO-1.75 and XO-4 laptops. 281 Select this option to enable the Hyper-V Keyboard driver. [all …]
|
D | olpc_apsp.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 5 * Copyright (C) 2011-2013 One Laptop Per Child 19 * The OLPC XO-1.75 and XO-4 laptops do not have a hardware PS/2 controller. 20 * Instead, the OLPC firmware runs a bit-banging PS/2 implementation on an 21 * otherwise-unused slow processor which is included in the Marvell MMP2/MMP3 74 struct olpc_apsp *priv = port->port_data; in olpc_apsp_write() 78 if (port == priv->padio) in olpc_apsp_write() 83 dev_dbg(priv->dev, "olpc_apsp_write which=%x val=%x\n", which, val); in olpc_apsp_write() 85 u32 sts = readl(priv->base + COMMAND_FIFO_STATUS); in olpc_apsp_write() 88 priv->base + SECURE_PROCESSOR_COMMAND); in olpc_apsp_write() [all …]
|
D | ps2-gpio.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * GPIO based serio bus driver for bit banging the PS/2 protocol 5 * Author: Danilo Krummrich <danilokrummrich@dk-develop.de> 23 #define DRIVER_NAME "ps2-gpio" 66 struct ps2_gpio_data *drvdata = serio->port_data; in ps2_gpio_open() 68 enable_irq(drvdata->irq); in ps2_gpio_open() 74 struct ps2_gpio_data *drvdata = serio->port_data; in ps2_gpio_close() 76 flush_delayed_work(&drvdata->tx_work); in ps2_gpio_close() 77 disable_irq(drvdata->irq); in ps2_gpio_close() 82 struct ps2_gpio_data *drvdata = serio->port_data; in __ps2_gpio_write() [all …]
|
/kernel/linux/linux-5.10/Documentation/misc-devices/ |
D | c2port.rst | 1 .. SPDX-License-Identifier: GPL-2.0 23 -------- 26 C2 Interface used for in-system programming of micro controllers. 28 By using this driver you can reprogram the in-system flash without EC2 33 ---------- 38 - AN127: FLASH Programming via the C2 Interface at 41 - C2 Specification at 44 however it implements a two wire serial communication protocol (bit 45 banging) designed to enable in-system programming, debugging, and 46 boundary-scan testing on low pin-count Silicon Labs devices. Currently [all …]
|
/kernel/linux/linux-5.10/sound/soc/codecs/ |
D | l3.c | 1 // SPDX-License-Identifier: GPL-2.0-only 31 adap->setclk(adap, 0); in sendbyte() 32 udelay(adap->data_hold); in sendbyte() 33 adap->setdat(adap, byte & 1); in sendbyte() 34 udelay(adap->data_setup); in sendbyte() 35 adap->setclk(adap, 1); in sendbyte() 36 udelay(adap->clock_high); in sendbyte() 53 udelay(adap->mode_hold); in sendbytes() 54 adap->setmode(adap, 0); in sendbytes() 55 udelay(adap->mode); in sendbytes() [all …]
|
/kernel/linux/linux-5.10/drivers/gpu/drm/gma500/ |
D | intel_gmbus.c | 3 * Copyright © 2006-2008,2010 Intel Corporation 27 * Chris Wilson <chris@chris-wilson.co.uk> 31 #include <linux/i2c-algo-bit.h> 44 ret__ = -ETIMEDOUT; \ 55 #define GMBUS_REG_READ(reg) ioread32(dev_priv->gmbus_reg + (reg)) 56 #define GMBUS_REG_WRITE(reg, val) iowrite32((val), dev_priv->gmbus_reg + (reg)) 78 struct drm_psb_private *dev_priv = dev->dev_private; in gma_intel_i2c_reset() 84 /* When using bit bashing for I2C, this bit needs to be set to 1 */ in intel_i2c_quirk_set() 89 if (!IS_PINEVIEW(dev_priv->dev)) in intel_i2c_quirk_set() 105 struct drm_psb_private *dev_priv = gpio->dev_priv; in get_reserved() [all …]
|
/kernel/linux/linux-5.10/drivers/i2c/busses/ |
D | i2c-ibm_iic.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * drivers/i2c/busses/i2c-ibm_iic.c 18 * Copyright 2000-2003 MontaVista Software Inc. 20 * Original driver version was highly leveraged from i2c-elektor.c 22 * Copyright 1995-97 Simon G. Vogl 23 * 1998-99 Hans Berglund 44 #include "i2c-ibm_iic.h" 70 # define DBG(f,x...) printk(KERN_DEBUG "ibm-iic" f, ##x) 82 volatile struct iic_regs __iomem *iic = dev->vaddr; in dump_iic_regs() 83 printk(KERN_DEBUG "ibm-iic%d: %s\n", dev->idx, header); in dump_iic_regs() [all …]
|
/kernel/linux/linux-5.10/Documentation/driver-api/gpio/ |
D | intro.rst | 16 - The descriptor-based interface is the preferred way to manipulate GPIOs, 17 and is described by all the files in this directory excepted gpio-legacy.txt. 18 - The legacy integer-based interface which is considered deprecated (but still 19 usable for compatibility reasons) is documented in gpio-legacy.txt. 21 The remainder of this document applies to the new descriptor-based interface. 22 gpio-legacy.txt contains the same information applied to the legacy 23 integer-based interface. 29 A "General Purpose Input/Output" (GPIO) is a flexible software-controlled 32 represents a bit connected to a particular pin, or "ball" on Ball Grid Array 37 System-on-Chip (SOC) processors heavily rely on GPIOs. In some cases, every [all …]
|
D | drivers-on-gpio.rst | 6 the right in-kernel and userspace APIs/ABIs for the job, and that these 10 - leds-gpio: drivers/leds/leds-gpio.c will handle LEDs connected to GPIO 13 - ledtrig-gpio: drivers/leds/trigger/ledtrig-gpio.c will provide a LED trigger, 15 (and that LED may in turn use the leds-gpio as per above). 17 - gpio-keys: drivers/input/keyboard/gpio_keys.c is used when your GPIO line 20 - gpio-keys-polled: drivers/input/keyboard/gpio_keys_polled.c is used when your 24 - gpio_mouse: drivers/input/mouse/gpio_mouse.c is used to provide a mouse with 29 - gpio-beeper: drivers/input/misc/gpio-beeper.c is used to provide a beep from 32 - extcon-gpio: drivers/extcon/extcon-gpio.c is used when you need to read an 36 - restart-gpio: drivers/power/reset/gpio-restart.c is used to restart/reboot [all …]
|
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/ |
D | bus.c | 30 * i2c-algo-bit 50 bus->func->drive_scl(bus, state); in nvkm_i2c_bus_setscl() 57 bus->func->drive_sda(bus, state); in nvkm_i2c_bus_setsda() 64 return bus->func->sense_scl(bus); in nvkm_i2c_bus_getscl() 71 return bus->func->sense_sda(bus); in nvkm_i2c_bus_getsda() 75 * !i2c-algo-bit (off-chip i2c bus / hw i2c / internal bit-banging algo) 87 ret = bus->func->xfer(bus, msgs, num); in nvkm_i2c_bus_xfer() 111 if (bus->func->init) in nvkm_i2c_bus_init() 112 bus->func->init(bus); in nvkm_i2c_bus_init() 114 mutex_lock(&bus->mutex); in nvkm_i2c_bus_init() [all …]
|
/kernel/linux/linux-5.10/drivers/media/pci/pt3/ |
D | pt3_i2c.c | 1 // SPDX-License-Identifier: GPL-2.0 49 if ((cbuf->num_cmds % 2) == 0) in cmdbuf_add() 50 cbuf->tmp = cmd; in cmdbuf_add() 52 cbuf->tmp |= cmd << 4; in cmdbuf_add() 53 buf_idx = cbuf->num_cmds / 2; in cmdbuf_add() 54 if (buf_idx < ARRAY_SIZE(cbuf->data)) in cmdbuf_add() 55 cbuf->data[buf_idx] = cbuf->tmp; in cmdbuf_add() 57 cbuf->num_cmds++; in cmdbuf_add() 63 if (cbuf->num_cmds % 2) in put_end() 91 cmdbuf_add(cbuf, (i == size - 1) ? I_DATA_H_NOP : I_DATA_L_NOP); in put_byte_read() [all …]
|
/kernel/linux/linux-5.10/drivers/iio/humidity/ |
D | dht11.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * DHT11/DHT22 bit banging GPIO driver 46 * 0-bit: 22-30uS -- typically 26uS (AM2302) 47 * 1-bit: 68-75uS -- typically 70uS (AM2302) 52 * timeres > 34uS ... don't know what a 1-tick pulse is 54 * 30uS > timeres > 23uS ... don't know what a 2-tick pulse is 57 * Luckily clocks in the 33-44kHz range are quite uncommon, so we can 58 * support most systems if the threshold for decoding a pulse as 1-bit 85 /* num_edges: -1 means "no transmission in progress" */ 99 dev_dbg(dht11->dev, "%d edges detected:\n", dht11->num_edges); in dht11_edges_print() [all …]
|
/kernel/linux/linux-5.10/drivers/gpu/drm/amd/amdgpu/ |
D | amdgpu_i2c.c | 2 * Copyright 2007-8 Advanced Micro Devices, Inc. 39 /* bit banging i2c */ 43 struct amdgpu_device *adev = drm_to_adev(i2c->dev); in amdgpu_i2c_pre_xfer() 44 struct amdgpu_i2c_bus_rec *rec = &i2c->rec; in amdgpu_i2c_pre_xfer() 47 mutex_lock(&i2c->mutex); in amdgpu_i2c_pre_xfer() 50 if (rec->hw_capable) { in amdgpu_i2c_pre_xfer() 51 temp = RREG32(rec->mask_clk_reg); in amdgpu_i2c_pre_xfer() 53 WREG32(rec->mask_clk_reg, temp); in amdgpu_i2c_pre_xfer() 57 temp = RREG32(rec->a_clk_reg) & ~rec->a_clk_mask; in amdgpu_i2c_pre_xfer() 58 WREG32(rec->a_clk_reg, temp); in amdgpu_i2c_pre_xfer() [all …]
|
/kernel/linux/linux-5.10/drivers/net/can/sja1000/ |
D | peak_pci.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * Copyright (C) 2012 Stephane Grosjean <s.grosjean@peak-system.com> 8 * Copyright (C) 2001-2006 PEAK System-Technik GmbH 19 #include <linux/i2c-algo-bit.h> 25 MODULE_AUTHOR("Stephane Grosjean <s.grosjean@peak-system.com>"); 26 MODULE_DESCRIPTION("Socket-CAN driver for PEAK PCAN PCI family cards"); 62 #define PEAK_PC_104P_DEVICE_ID 0x0006 /* PCAN-PC/104+ cards */ 63 #define PEAK_PCI_104E_DEVICE_ID 0x0007 /* PCAN-PCI/104 Express cards */ 65 #define PEAK_PCIE_OEM_ID 0x0009 /* PCAN-PCI Express OEM */ 66 #define PEAK_PCIEC34_DEVICE_ID 0x000A /* PCAN-PCI Express 34 (one channel) */ [all …]
|
/kernel/linux/linux-5.10/drivers/spi/ |
D | spi-gpio.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 26 * platform_device->driver_data ... points to spi_gpio 28 * spi->controller_state ... reserved for bitbang framework code 30 * spi->master->dev.driver_data ... points to spi_gpio->bitbang 41 /*----------------------------------------------------------------------*/ 45 * per transferred bit can make performance a problem, this code 48 * - The slow generic way: set up platform_data to hold the GPIO 52 * - The quicker inlined way: only helps with platform GPIO code 63 * #include "spi-gpio.c" 73 /*----------------------------------------------------------------------*/ [all …]
|
/kernel/linux/linux-5.10/drivers/net/ethernet/sfc/falcon/ |
D | nic.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 4 * Copyright 2005-2006 Fen Systems Ltd. 5 * Copyright 2006-2013 Solarflare Communications Inc. 12 #include <linux/i2c-algo-bit.h> 24 return efx->type->revision; in ef4_nic_rev() 39 return ((ef4_qword_t *) (channel->eventq.buf.addr)) + in ef4_event() 40 (index & channel->eventq_mask); in ef4_event() 50 * Note that using a single 64-bit comparison is incorrect; even 55 return !(EF4_DWORD_IS_ALL_ONES(event->dword[0]) | in ef4_event_present() 56 EF4_DWORD_IS_ALL_ONES(event->dword[1])); in ef4_event_present() [all …]
|