| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/i2c/ |
| 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 …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/i2c/ |
| D | i2c-arb-gpio-challenge.txt | 1 GPIO-based I2C Arbitration Using a Challenge & Response Mechanism 6 In many cases using GPIOs to arbitrate is not needed and a design can use 7 the standard I2C multi-master rules. Using GPIOs is generally useful in 20 All masters on the bus have a 'bus claim' line which is an output that the 21 others can see. These are all active low with pull-ups enabled. We'll 24 - OUR_CLAIM: output from us signaling to other hosts that we want the bus 25 - THEIR_CLAIMS: output from others signaling that they want the bus 31 Let's say we want to claim the bus. We: 38 5. If not, back off, release the claim and wait for a few more milliseconds. 43 - compatible: i2c-arb-gpio-challenge [all …]
|
| /kernel/linux/linux-6.6/drivers/i2c/muxes/ |
| 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 …]
|
| /kernel/linux/linux-5.10/drivers/i2c/muxes/ |
| 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 …]
|
| /kernel/linux/linux-6.6/arch/arm/boot/dts/samsung/ |
| 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 …]
|
| /kernel/linux/linux-5.10/arch/arm/boot/dts/ |
| 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> 27 stdout-path = "serial3:115200n8"; 30 gpio-keys { 31 compatible = "gpio-keys"; 32 pinctrl-names = "default"; [all …]
|
| 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 …]
|
| /kernel/linux/linux-5.10/Documentation/driver-api/gpio/ |
| 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 …]
|
| /kernel/linux/linux-6.6/Documentation/driver-api/gpio/ |
| 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 …]
|
| /kernel/linux/linux-6.6/arch/arm/boot/dts/nxp/imx/ |
| 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 …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/i915/display/ |
| D | intel_bios.h | 2 * Copyright © 2016-2019 Intel Corporation 18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 60 * Note the VBT spec has AssertReset / DeassertReset swapped from their 212 /* GPIOs */
|
| D | vlv_dsi.c | 18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 78 struct drm_encoder *encoder = &intel_dsi->base.base; in vlv_dsi_wait_for_fifo_empty() 79 struct drm_device *dev = encoder->dev; in vlv_dsi_wait_for_fifo_empty() 88 drm_err(&dev_priv->drm, "DPI FIFOs are not empty\n"); in vlv_dsi_wait_for_fifo_empty() 100 for (j = 0; j < min_t(u32, len - i, 4); j++) in write_data() 116 for (j = 0; j < min_t(u32, len - i, 4); j++) in read_data() 125 struct drm_device *dev = intel_dsi_host->intel_dsi->base.base.dev; in intel_dsi_host_transfer() 127 enum port port = intel_dsi_host->port; in intel_dsi_host_transfer() 141 if (msg->flags & MIPI_DSI_MSG_USE_LPM) { in intel_dsi_host_transfer() 157 drm_err(&dev_priv->drm, in intel_dsi_host_transfer() [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/i915/display/ |
| 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 */
|
| 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 …]
|
| /kernel/linux/linux-6.6/drivers/hsi/ |
| 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 …]
|
| /kernel/linux/linux-5.10/drivers/hsi/ |
| 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 …]
|
| /kernel/linux/linux-5.10/sound/soc/samsung/ |
| D | s3c24xx_simtec.c | 1 // SPDX-License-Identifier: GPL-2.0 11 #include <linux/platform_data/asoc-s3c24xx_simtec.h> 13 #include "s3c24xx-i2s.h" 23 * speaker_gain_get - read the speaker gain setting. 32 ucontrol->value.integer.value[0] = spk_gain; in speaker_gain_get() 37 * speaker_gain_set - set the value of the speaker amp gain 42 gpio_set_value_cansleep(pdata->amp_gain[0], value & 1); in speaker_gain_set() 43 gpio_set_value_cansleep(pdata->amp_gain[1], value >> 1); in speaker_gain_set() 47 * speaker_gain_put - set the speaker gain setting. 55 * as at-least one of the ICs that is fitted will try and power up even [all …]
|
| /kernel/linux/linux-6.6/drivers/input/misc/ |
| 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 …]
|
| 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-prox", 155 .name = "event-touch", 162 { .name = "event-press", }, 164 .name = "event-tap", 171 .name = "event-swipe-pos", [all …]
|
| /kernel/linux/linux-5.10/drivers/input/misc/ |
| 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 …]
|
| /kernel/linux/linux-6.6/drivers/pinctrl/ |
| 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 …]
|
| /kernel/linux/linux-5.10/drivers/pinctrl/ |
| 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 31 #include <asm-generic/gpio.h> 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() [all …]
|
| /kernel/linux/linux-5.10/drivers/mfd/ |
| D | tps65010.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * tps65010 - driver for tps6501x power management chips 6 * Copyright (C) 2004-2005 David Brownell 27 /*-------------------------------------------------------------------------*/ 37 /*-------------------------------------------------------------------------*/ 40 * voltage regulators, lithium ion/polymer battery charging, GPIOs, LEDs, 47 * battery-insert != device-on. 84 /*-------------------------------------------------------------------------*/ 184 struct tps65010 *tps = s->private; in dbg_show() 190 switch (tps->model) { in dbg_show() [all …]
|
| /kernel/linux/linux-6.6/drivers/mfd/ |
| D | tps65010.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * tps65010 - driver for tps6501x power management chips 6 * Copyright (C) 2004-2005 David Brownell 27 /*-------------------------------------------------------------------------*/ 37 /*-------------------------------------------------------------------------*/ 40 * voltage regulators, lithium ion/polymer battery charging, GPIOs, LEDs, 47 * battery-insert != device-on. 84 /*-------------------------------------------------------------------------*/ 184 struct tps65010 *tps = s->private; in dbg_show() 190 switch (tps->model) { in dbg_show() [all …]
|
| /kernel/linux/patches/linux-5.10/imx8mm_patch/patches/drivers/ |
| D | 0022_linux_drivers_i2c.patch | 7 Change-Id: I4a66d5b97f61e6f70ee3a088441bee616aff2012 9 diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig 11 --- a/drivers/i2c/busses/Kconfig 13 @@ -692,6 +692,14 @@ config I2C_IMX_LPI2C 15 will be called i2c-imx-lpi2c. 26 tristate "Intel IOPx3xx and IXP4xx on-chip I2C interface" 28 @@ -954,6 +962,12 @@ config I2C_RK3X 30 be called i2c-rk3x. 36 + This driver can support virtual i2c-rpmsg function. 41 @@ -1420,4 +1434,14 @@ config I2C_FSI [all …]
|