/openbmc/linux/Documentation/devicetree/bindings/i2c/ |
H A D | i2c-arb-gpio-challenge.yaml | 1 # 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> 17 In many cases using GPIOs to arbitrate is not needed and a design can use the 18 standard I2C multi-master rules. Using GPIOs is generally useful in the case 29 All masters on the bus have a 'bus claim' line which is an output that the [all …]
|
/openbmc/linux/drivers/i2c/muxes/ |
H A D | i2c-arb-gpio-challenge.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * GPIO-based I2C Arbitration Using a Challenge & Response Mechanism 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. 24 * @wait_retry_us: we'll attempt another claim after this many microseconds. 38 * i2c_arbitrator_select - claim the I2C bus 40 * Use the GPIO-based signalling protocol; return -EBUSY if we fail. 47 /* Start a round of trying to claim the bus */ in i2c_arbitrator_select() [all …]
|
/openbmc/u-boot/doc/ |
H A D | README.i2c | 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 23 i2c-arb-gpio-challenge for the implementation. 26 each have a 'bus claim' line, which is an output that the other can see. 28 - AP_CLAIM: output from AP, signalling to the EC that the AP wants the bus 29 - EC_CLAIM: output from EC, signalling to the AP that the EC wants the bus [all …]
|
/openbmc/u-boot/drivers/i2c/muxes/ |
H A D | i2c-arb-gpio-challenge.c | 1 // SPDX-License-Identifier: GPL-2.0+ 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() 44 /* Start a round of trying to claim the bus */ in i2c_arbitrator_select() 50 /* Indicate that we want to claim the bus */ 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/linux/arch/arm/boot/dts/samsung/ |
H A D | exynos5250-snow-common.dtsi | 1 // 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/linux/Documentation/driver-api/gpio/ |
H A D | legacy.rst | 13 A "General Purpose Input/Output" (GPIO) is a flexible software-controlled 18 which GPIOs. Drivers can be written generically, so that board setup code 21 System-on-Chip (SOC) processors heavily rely on GPIOs. In some cases, every 22 non-dedicated pin can be configured as a GPIO; and most chips have at least 24 provide GPIOs; multifunction chips like power managers, and audio codecs 27 Most PC southbridges have a few dozen GPIO-capable pins (with only the BIOS 30 The exact capabilities of GPIOs vary between systems. Common options: 32 - Output values are writable (high=1, low=0). Some chips also have 34 value might be driven ... supporting "wire-OR" and similar schemes 37 - Input values are likewise readable (1, 0). Some chips support readback [all …]
|
/openbmc/u-boot/arch/arm/dts/ |
H A D | imx6q-cm-fx6.dts | 6 * This file is dual-licensed: you can use it either under the terms 38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 44 /dts-v1/; 45 #include <dt-bindings/gpio/gpio.h> 49 model = "CompuLab CM-FX6"; 50 compatible = "compulab,cm-fx6", "fsl,imx6q"; 57 compatible = "gpio-leds"; 59 heartbeat-led { 61 gpios = <&gpio2 31 0>; 62 linux,default-trigger = "heartbeat"; [all …]
|
H A D | exynos5250-snow.dts | 12 /dts-v1/; 13 #include <dt-bindings/gpio/gpio.h> 14 #include <dt-bindings/interrupt-controller/irq.h> 15 #include <dt-bindings/input/input.h> 51 stdout-path = "serial3:115200n8"; 59 samsung,bl1-offset = <0x1400>; 60 samsung,bl2-offset = <0x3400>; 61 u-boot-memory = "/memory"; 62 u-boot-offset = <0x3e00000 0x100000>; 67 #address-cells = <1>; [all …]
|
/openbmc/linux/arch/arm/boot/dts/nxp/imx/ |
H A D | imx6q-cm-fx6.dts | 6 * This file is dual-licensed: you can use it either under the terms 38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 44 /dts-v1/; 45 #include <dt-bindings/gpio/gpio.h> 46 #include <dt-bindings/sound/fsl-imx-audmux.h> 50 model = "CompuLab CM-FX6"; 51 compatible = "compulab,cm-fx6", "fsl,imx6q"; 59 compatible = "gpio-leds"; 61 heartbeat-led { 63 gpios = <&gpio2 31 0>; [all …]
|
/openbmc/linux/drivers/gpu/drm/i915/display/ |
H A D | intel_bios.h | 2 * Copyright © 2016-2019 Intel Corporation 18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 64 * Note the VBT spec has AssertReset / DeassertReset swapped from their 216 /* GPIOs */
|
H A D | vlv_dsi.c | 18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 87 struct drm_encoder *encoder = &intel_dsi->base.base; in vlv_dsi_wait_for_fifo_empty() 88 struct drm_device *dev = encoder->dev; in vlv_dsi_wait_for_fifo_empty() 97 drm_err(&dev_priv->drm, "DPI FIFOs are not empty\n"); in vlv_dsi_wait_for_fifo_empty() 109 for (j = 0; j < min_t(u32, len - i, 4); j++) in write_data() 125 for (j = 0; j < min_t(u32, len - i, 4); j++) in read_data() 134 struct drm_device *dev = intel_dsi_host->intel_dsi->base.base.dev; in intel_dsi_host_transfer() 136 enum port port = intel_dsi_host->port; in intel_dsi_host_transfer() 149 if (msg->flags & MIPI_DSI_MSG_USE_LPM) { in intel_dsi_host_transfer() 165 drm_err(&dev_priv->drm, in intel_dsi_host_transfer() [all …]
|
/openbmc/linux/drivers/hsi/ |
H A D | hsi_core.c | 1 // SPDX-License-Identifier: GPL-2.0-only 45 if (strcmp(dev_name(dev), driver->name) == 0) in hsi_bus_match() 62 kfree(cl->tx_cfg.channels); in hsi_client_release() 63 kfree(cl->rx_cfg.channels); in hsi_client_release() 77 cl->tx_cfg = info->tx_cfg; in hsi_new_client() 78 if (cl->tx_cfg.channels) { in hsi_new_client() 79 size = cl->tx_cfg.num_channels * sizeof(*cl->tx_cfg.channels); in hsi_new_client() 80 cl->tx_cfg.channels = kmemdup(info->tx_cfg.channels, size, in hsi_new_client() 82 if (!cl->tx_cfg.channels) in hsi_new_client() 86 cl->rx_cfg = info->rx_cfg; in hsi_new_client() [all …]
|
/openbmc/linux/drivers/input/misc/ |
H A D | soc_button_array.c | 1 // SPDX-License-Identifier: GPL-2.0-only 23 MODULE_PARM_DESC(use_low_level_irq, "Use low-level triggered IRQ instead of edge triggered"); 52 * Some 2-in-1s which use the soc_button_array driver have this ugly issue in 53 * their DSDT where the _LID method modifies the irq-type settings of the GPIOs 57 * problematic because when re-enabling the irq, which happens whenever _LID 59 * irq-type to IRQ_TYPE_LEVEL_LOW. Where as the gpio-keys driver programs the 61 * To work around this we don't set gpio_keys_button.gpio on these 2-in-1s, 69 * Acer Switch 10 SW5-012. _LID method messes with home- and 70 * power-button GPIO IRQ settings. When (re-)enabling the irq 72 * ones, leading to an irq-type of IRQ_TYPE_LEVEL_LOW | [all …]
|
H A D | iqs7222.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 116 [IQS7222_REG_GRP_CYCLE] = "cycle-%d", 117 [IQS7222_REG_GRP_CHAN] = "channel-%d", 118 [IQS7222_REG_GRP_SLDR] = "slider-%d", 120 [IQS7222_REG_GRP_GPIO] = "gpio-%d", 150 .name = "event-pro [all...] |
/openbmc/qemu/hw/misc/macio/ |
H A D | macio.c | 4 * Copyright (c) 2005-2007 Fabrice Bellard 20 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 32 #include "hw/qdev-properties.h" 44 * The mac-io has two interfaces to the ESCC. One is called "escc-legacy", 47 * The magic below creates memory aliases to spawn the escc-legacy device 50 * register layout, not their semantics. 56 SysBusDevice *sbd = SYS_BUS_DEVICE(&s->escc); in macio_escc_legacy_setup() 72 memory_region_init(escc_legacy, OBJECT(s), "escc-legacy", 256); in macio_escc_legacy_setup() 75 memory_region_init_alias(port, OBJECT(s), "escc-legacy-port", in macio_escc_legacy_setup() 81 memory_region_add_subregion(&s->bar, 0x12000, escc_legacy); in macio_escc_legacy_setup() [all …]
|
/openbmc/linux/drivers/pinctrl/ |
H A D | core.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Copyright (C) 2011-2012 ST-Ericsson SA 6 * Written on behalf of Linaro for ST-Ericsson 62 * pinctrl_provide_dummies() - indicate if pinctrl provides dummy state support 77 return pctldev->desc->name; in pinctrl_dev_get_name() 83 return dev_name(pctldev->dev); in pinctrl_dev_get_devname() 89 return pctldev->driver_data; in pinctrl_dev_get_drvdata() 94 * get_pinctrl_dev_from_devname() - look up pin controller device 110 if (!strcmp(dev_name(pctldev->dev), devname)) { in get_pinctrl_dev_from_devname() 129 if (device_match_of_node(pctldev->dev, np)) { in get_pinctrl_dev_from_of_node() [all …]
|
/openbmc/linux/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ |
H A D | ramgk104.c | 17 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 99 struct ramfuc_reg r_mr[16]; /* MR0 - MR8, MR15 */ 149 for (i = 0; (data & 0x80000000) && i < ram->parts; addr += 0x1000, i++) { in gk104_ram_train() 150 if (ram->pmask & (1 << i)) in gk104_ram_train() 160 const u32 mcoef = ((--ram->P2 << 28) | (ram->N2 << 8) | ram->M2); in r1373f4_init() 161 const u32 rcoef = (( ram->P1 << 16) | (ram->N1 << 8) | ram->M1); in r1373f4_init() 162 const u32 runk0 = ram->fN1 << 16; in r1373f4_init() 163 const u32 runk1 = ram->fN1; in r1373f4_init() 165 if (ram->from == 2) { in r1373f4_init() 191 if (ram->mode == 2) { in r1373f4_init() [all …]
|