Home
last modified time | relevance | path

Searched +full:bit +full:- +full:banging (Results 1 – 25 of 48) sorted by relevance

12

/kernel/linux/linux-5.10/drivers/media/rc/
Dgpio-ir-tx.c1 // 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 …]
DKconfig1 # 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/
DKconfig1 # SPDX-License-Identifier: GPL-2.0-only
10 tristate "I2C bit-banging interfaces"
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/iio/adc/
Davia-hx711.yaml1 # 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/
Dparallax-ping.yaml1 # 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 …]
Ddevantech-srf04.yaml1 # 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/
Dintel_gmbus.c3 * 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 …]
Dintel_dvo.c3 * 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/
DREADME16 - 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/
DKconfig1 # 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 …]
Dolpc_apsp.c1 // 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 …]
Dps2-gpio.c1 // 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/
Dc2port.rst1 .. 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/
Dl3.c1 // 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/
Dintel_gmbus.c3 * 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/
Di2c-ibm_iic.c1 // 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/
Dintro.rst16 - 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 …]
Ddrivers-on-gpio.rst6 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/
Dbus.c30 * 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/
Dpt3_i2c.c1 // 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/
Ddht11.c1 // 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/
Damdgpu_i2c.c2 * 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/
Dpeak_pci.c1 // 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/
Dspi-gpio.c1 // 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/
Dnic.h1 /* 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 …]

12