Home
last modified time | relevance | path

Searched +full:i2c +full:- +full:arb +full:- +full:gpio +full:- +full:challenge (Results 1 – 12 of 12) sorted by relevance

/openbmc/linux/drivers/i2c/muxes/
H A Di2c-arb-gpio-challenge.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * GPIO-based I2C Arbitration Using a Challenge & Response Mechanism
9 #include <linux/gpio/consumer.h>
11 #include <linux/i2c.h>
12 #include <linux/i2c-mux.h>
19 * struct i2c_arbitrator_data - Driver data for I2C arbitrator
21 * @our_gpio: GPIO descriptor we'll use to claim.
22 * @their_gpio: GPIO descriptor that the other side will use to claim.
23 * @slew_delay_us: microseconds to wait for a GPIO to go high.
38 * i2c_arbitrator_select - claim the I2C bus
[all …]
H A DMakefile1 # SPDX-License-Identifier: GPL-2.0
3 # Makefile for multiplexer I2C chip drivers.
5 obj-$(CONFIG_I2C_ARB_GPIO_CHALLENGE) += i2c-arb-gpio-challenge.o
7 obj-$(CONFIG_I2C_DEMUX_PINCTRL) += i2c-demux-pinctrl.o
9 obj-$(CONFIG_I2C_MUX_GPIO) += i2c-mux-gpio.o
10 obj-$(CONFIG_I2C_MUX_GPMUX) += i2c-mux-gpmux.o
11 obj-$(CONFIG_I2C_MUX_LTC4306) += i2c-mux-ltc4306.o
12 obj-$(CONFIG_I2C_MUX_MLXCPLD) += i2c-mux-mlxcpld.o
13 obj-$(CONFIG_I2C_MUX_PCA9541) += i2c-mux-pca9541.o
14 obj-$(CONFIG_I2C_MUX_PCA954x) += i2c-mux-pca954x.o
[all …]
H A DKconfig1 # SPDX-License-Identifier: GPL-2.0-only
3 # Multiplexer I2C chip drivers configuration
6 menu "Multiplexer I2C Chip support"
10 tristate "GPIO-based I2C arbitration"
15 I2C multimaster arbitration scheme using GPIOs and a challenge &
17 a GPIO.
20 will be called i2c-arb-gpio-challenge.
23 tristate "GPIO-based I2C multiplexer"
27 GPIO based I2C multiplexer. This driver provides access to
28 I2C busses connected through a MUX, which is controlled
[all …]
/openbmc/linux/Documentation/devicetree/bindings/i2c/
H A Di2c-arb-gpio-challenge.yaml1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
3 ---
4 $id: http://devicetree.org/schemas/i2c/i2c-arb-gpio-challenge.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: GPIO-based I2C Arbitration Using a Challenge & Response Mechanism
10 - Doug Anderson <dianders@chromium.org>
11 - Peter Rosin <peda@axentia.se>
14 This uses GPIO lines and a challenge & response mechanism to arbitrate who is
15 the master of an I2C bus in a multimaster situation.
18 standard I2C multi-master rules. Using GPIOs is generally useful in the case
[all …]
/openbmc/u-boot/drivers/i2c/muxes/
H A DMakefile1 # SPDX-License-Identifier: GPL-2.0+
4 obj-$(CONFIG_I2C_ARB_GPIO_CHALLENGE) += i2c-arb-gpio-challenge.o
5 obj-$(CONFIG_$(SPL_)I2C_MUX) += i2c-mux-uclass.o
6 obj-$(CONFIG_I2C_MUX_PCA954x) += pca954x.o
7 obj-$(CONFIG_I2C_MUX_GPIO) += i2c-mux-gpio.o
H A Di2c-arb-gpio-challenge.c1 // SPDX-License-Identifier: GPL-2.0+
10 #include <i2c.h>
11 #include <asm/gpio.h>
29 debug("%s: %s\n", __func__, mux->name); in i2c_arbitrator_deselect()
30 ret = dm_gpio_set_value(&priv->ap_claim, 0); in i2c_arbitrator_deselect()
31 udelay(priv->slew_delay_us); in i2c_arbitrator_deselect()
43 debug("%s: %s\n", __func__, mux->name); in i2c_arbitrator_select()
51 ret = dm_gpio_set_value(&priv->ap_claim, 1); in i2c_arbitrator_select()
54 udelay(priv->slew_delay_us); in i2c_arbitrator_select()
58 while (get_timer(start_retry) < priv->wait_retry_ms) { in i2c_arbitrator_select()
[all …]
/openbmc/u-boot/doc/
H A DREADME.i2c1 I2C Bus Arbitration
4 While I2C supports multi-master buses this is difficult to get right.
6 Clock-stretching and the arbitrary time that an I2C transaction can take
8 When one or more masters can be reset independently part-way through a
11 U-Boot provides a scheme based on two 'claim' GPIOs, one driven by the
18 Since U-Boot runs on the AP, the terminology used is 'our' claim GPIO,
19 meaning the AP's, and 'their' claim GPIO, meaning the EC's. This terminology
22 The driver is implemented as an I2C mux, as it is in Linux. See
23 i2c-arb-gpio-challenge for the implementation.
25 GPIO lines are shared between the AP and EC to manage the bus. The AP and EC
[all …]
/openbmc/linux/arch/arm/boot/dts/samsung/
H A Dexynos5250-snow-common.dtsi1 // SPDX-License-Identifier: GPL-2.0
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/clock/maxim,max77686.h>
10 #include <dt-bindings/interrupt-controller/irq.h>
11 #include <dt-bindings/input/input.h>
12 #include <dt-bindings/sound/samsung-i2s.h>
30 stdout-path = "serial3:115200n8";
33 gpio-keys {
34 compatible = "gpio-keys";
35 pinctrl-names = "default";
[all …]
/openbmc/u-boot/arch/arm/dts/
H A Dexynos5250-snow.dts12 /dts-v1/;
13 #include <dt-bindings/gpio/gpio.h>
14 #include <dt-bindings/interrupt-controller/irq.h>
15 #include <dt-bindings/input/input.h>
23 i2c0 = "/i2c@12C60000";
24 i2c1 = "/i2c@12C70000";
25 i2c2 = "/i2c@12C80000";
26 i2c3 = "/i2c@12C90000";
27 i2c4 = "/i2c@12CA0000";
29 i2c5 = "/i2c@12CB0000";
[all …]
/openbmc/linux/Documentation/i2c/
H A Di2c-topology.rst2 I2C muxes and complex topologies
5 There are a couple of reasons for building more complex I2C topologies
6 than a straight-forward I2C bus with one adapter and one or more devices.
16 from the I2C bus, at least most of the time, and sits behind a gate
19 Several types of hardware components such as I2C muxes, I2C gates and I2C
22 These components are represented as I2C adapter trees by Linux, where
25 I2C transfers, and all adapters with a parent are part of an "i2c-mux"
29 an I2C transfer on one of its child adapters. The mux driver can
39 There are two variants of locking available to I2C muxes, they can be
40 mux-locked or parent-locked muxes.
[all …]
/openbmc/linux/
H A Dopengrok0.0.log1 2024-12-28 20:09:05.996-0600 FINEST t1171 PendingFileCompleter.doRename: Moved pending as file: '/opengrok/data/xref/openbmc/linux/drivers/staging/media/av7110/video-continue.rst.gz'
2 2024-12-28 20:09:05.942-0600 FINEST t1149 PendingFileCompleter.doRename: Moved pending as file: '/opengrok/data/xref/openbmc/u-boot/arch/sh/config.mk.gz'
3 2024-12-2
[all...]
H A Dopengrok2.0.log1 2024-12-28 20:05:26.116-0600 FINEST t586 Statistics.logIt: Added: '/openbmc/linux/tools/testing/selftests/drivers/net/mlxsw/rtnetlink.sh' (ShAnalyzer) (took 79 ms)
2 2024-12-28 20:05:26.112-0600 FINER t592 IndexDatabase.createAnnotationCache: failed to create annotation: repository {dir='/opengrok/src/openbmc/qemu',type=git,historyCache=on,renamed=false,merge=true,annotationCache=off} does not allow to create annotation cache for '/opengrok/src/openbmc/qemu/chardev/spice.c'
3 2024-12-28 20:05:26.116-0600 FINEST t592 Statistics.logIt: Added: '/openbmc/qemu/chardev/spice.c' (CAnalyzer) (took 33 ms)
4 2024-1
[all...]