| /kernel/linux/linux-4.19/drivers/i2c/muxes/ |
| D | i2c-mux-gpio.c | 2 * I2C multiplexer using GPIO API 12 #include <linux/i2c-mux.h> 13 #include <linux/platform_data/i2c-mux-gpio.h> 17 #include <linux/gpio.h> 18 #include "../../gpio/gpiolib.h" 28 static void i2c_mux_gpio_set(const struct gpiomux *mux, unsigned val) in i2c_mux_gpio_set() argument 32 for (i = 0; i < mux->data.n_gpios; i++) in i2c_mux_gpio_set() 33 mux->values[i] = (val >> i) & 1; in i2c_mux_gpio_set() 35 gpiod_set_array_value_cansleep(mux->data.n_gpios, in i2c_mux_gpio_set() 36 mux->gpios, mux->values); in i2c_mux_gpio_set() [all …]
|
| D | Kconfig | 9 tristate "GPIO-based I2C arbitration" 16 a GPIO. 19 will be called i2c-arb-gpio-challenge. 22 tristate "GPIO-based I2C multiplexer" 26 GPIO based I2C multiplexer. This driver provides access to 27 I2C busses connected through a MUX, which is controlled 28 through GPIO pins. 31 will be called i2c-mux-gpio. 40 I2C busses connected through a MUX, which in turn is controlled 41 by a MUX-controller from the MUX subsystem. [all …]
|
| /kernel/linux/linux-4.19/Documentation/i2c/muxes/ |
| D | i2c-mux-gpio | 1 Kernel driver i2c-mux-gpio 6 ----------- 8 i2c-mux-gpio is an i2c mux driver providing access to I2C bus segments 9 from a master I2C bus and a hardware MUX controlled through GPIO pins. 13 ---------- ---------- Bus segment 1 - - - - - 14 | | SCL/SDA | |-------------- | | 15 | |------------| | 17 | Linux | GPIO 1..N | MUX |--------------- Devices 18 | |------------| | | | 20 | | | |---------------| | [all …]
|
| /kernel/linux/linux-5.10/Documentation/i2c/muxes/ |
| D | i2c-mux-gpio.rst | 2 Kernel driver i2c-mux-gpio 8 ----------- 10 i2c-mux-gpio is an i2c mux driver providing access to I2C bus segments 11 from a master I2C bus and a hardware MUX controlled through GPIO pins. 15 ---------- ---------- Bus segment 1 - - - - - 16 | | SCL/SDA | |-------------- | | 17 | |------------| | 19 | Linux | GPIO 1..N | MUX |--------------- Devices 20 | |------------| | | | 22 | | | |---------------| | [all …]
|
| /kernel/linux/linux-5.10/drivers/i2c/muxes/ |
| D | i2c-mux-gpio.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * I2C multiplexer using GPIO API 9 #include <linux/i2c-mux.h> 10 #include <linux/platform_data/i2c-mux-gpio.h> 15 #include <linux/gpio/consumer.h> 17 #include "../../gpio/gpiolib.h" 25 static void i2c_mux_gpio_set(const struct gpiomux *mux, unsigned val) in i2c_mux_gpio_set() argument 31 gpiod_set_array_value_cansleep(mux->ngpios, mux->gpios, NULL, values); in i2c_mux_gpio_set() 36 struct gpiomux *mux = i2c_mux_priv(muxc); in i2c_mux_gpio_select() local 38 i2c_mux_gpio_set(mux, chan); in i2c_mux_gpio_select() [all …]
|
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 10 tristate "GPIO-based I2C arbitration" 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 29 through GPIO pins. 32 will be called i2c-mux-gpio. 41 I2C busses connected through a MUX, which in turn is controlled [all …]
|
| /kernel/linux/linux-5.10/arch/arm64/boot/dts/qcom/ |
| D | msm8996-pins.dtsi | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. 10 mux { 12 function = "gpio"; 17 drive-strength = <2>; /* 2 mA */ 18 bias-pull-down; /* pull down */ 19 input-enable; 26 mux { 28 function = "gpio"; 32 drive-strength = <16>; [all …]
|
| /kernel/linux/linux-4.19/Documentation/devicetree/bindings/mux/ |
| D | gpio-mux.txt | 1 GPIO-based multiplexer controller bindings 3 Define what GPIO pins are used to control a multiplexer. Or several 7 - compatible : "gpio-mux" 8 - mux-gpios : list of gpios used to control the multiplexer, least 10 - #mux-control-cells : <0> 11 * Standard mux-controller bindings as decribed in mux-controller.txt 14 - idle-state : if present, the state the mux will have when idle. The 18 multiplexer GPIO pins, where the first pin is the least significant 23 mux: mux-controller { 24 compatible = "gpio-mux"; [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/mux/ |
| D | gpio-mux.txt | 1 GPIO-based multiplexer controller bindings 3 Define what GPIO pins are used to control a multiplexer. Or several 7 - compatible : "gpio-mux" 8 - mux-gpios : list of gpios used to control the multiplexer, least 10 - #mux-control-cells : <0> 11 * Standard mux-controller bindings as decribed in mux-controller.txt 14 - idle-state : if present, the state the mux will have when idle. The 18 multiplexer GPIO pins, where the first pin is the least significant 23 mux: mux-controller { 24 compatible = "gpio-mux"; [all …]
|
| /kernel/linux/linux-4.19/arch/arm/boot/dts/ |
| D | qcom-apq8064-pins.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 4 sdc4_gpios: sdc4-gpios { 11 sdcc1_pins: sdcc1-pin-active { 14 drive-strengh = <16>; 15 bias-disable; 20 drive-strengh = <10>; 21 bias-pull-up; 26 drive-strengh = <10>; 27 bias-pull-up; 31 sdcc3_pins: sdcc3-pin-active { [all …]
|
| D | mmp2.dtsi | 11 #include <dt-bindings/clock/marvell,mmp2.h> 24 #address-cells = <1>; 25 #size-cells = <1>; 26 compatible = "simple-bus"; 27 interrupt-parent = <&intc>; 30 L2: l2-cache { 31 compatible = "marvell,tauros2-cache"; 32 marvell,tauros2-cache-features = <0x3>; 36 compatible = "mrvl,axi-bus", "simple-bus"; 37 #address-cells = <1>; [all …]
|
| /kernel/linux/linux-5.10/arch/arm/boot/dts/ |
| D | qcom-apq8064-pins.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 4 sdc4_gpios: sdc4-gpios { 11 sdcc1_pins: sdcc1-pin-active { 14 drive-strengh = <16>; 15 bias-disable; 20 drive-strengh = <10>; 21 bias-pull-up; 26 drive-strengh = <10>; 27 bias-pull-up; 31 sdcc3_pins: sdcc3-pin-active { [all …]
|
| /kernel/linux/linux-4.19/arch/arm64/boot/dts/amlogic/ |
| D | meson-gxl.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 7 #include "meson-gx.dtsi" 8 #include <dt-bindings/clock/gxbb-clkc.h> 9 #include <dt-bindings/clock/gxbb-aoclkc.h> 10 #include <dt-bindings/gpio/meson-gxl-gpio.h> 11 #include <dt-bindings/reset/amlogic,meson-gxbb-reset.h> 14 compatible = "amlogic,meson-gxl"; 19 compatible = "amlogic,meson-gxl-dwc3"; 20 #address-cells = <2>; 21 #size-cells = <2>; [all …]
|
| D | meson-gxbb.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 6 #include "meson-gx.dtsi" 7 #include <dt-bindings/gpio/meson-gxbb-gpio.h> 8 #include <dt-bindings/reset/amlogic,meson-gxbb-reset.h> 9 #include <dt-bindings/clock/gxbb-clkc.h> 10 #include <dt-bindings/clock/gxbb-aoclkc.h> 11 #include <dt-bindings/reset/gxbb-aoclkc.h> 14 compatible = "amlogic,meson-gxbb"; 18 compatible = "amlogic,meson-gxbb-usb2-phy"; 19 #phy-cells = <0>; [all …]
|
| /kernel/linux/linux-4.19/arch/arm64/boot/dts/qcom/ |
| D | msm8996-pins.dtsi | 2 * Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. 22 function = "gpio"; 27 drive-strength = <12>; 28 bias-disable; 32 drive-strength = <16>; 33 bias-disable; 34 output-high; 40 function = "gpio"; 45 drive-strength = <2>; 46 bias-pull-down; [all …]
|
| /kernel/linux/linux-5.10/arch/arm64/boot/dts/amlogic/ |
| D | meson-gxbb.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 6 #include "meson-gx.dtsi" 7 #include "meson-gx-mali450.dtsi" 8 #include <dt-bindings/gpio/meson-gxbb-gpio.h> 9 #include <dt-bindings/reset/amlogic,meson-gxbb-reset.h> 10 #include <dt-bindings/clock/gxbb-clkc.h> 11 #include <dt-bindings/clock/gxbb-aoclkc.h> 12 #include <dt-bindings/reset/gxbb-aoclkc.h> 15 compatible = "amlogic,meson-gxbb"; 19 compatible = "amlogic,meson-gxbb-usb2-phy"; [all …]
|
| D | meson-gxl.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 7 #include "meson-gx.dtsi" 8 #include <dt-bindings/clock/gxbb-clkc.h> 9 #include <dt-bindings/clock/gxbb-aoclkc.h> 10 #include <dt-bindings/gpio/meson-gxl-gpio.h> 11 #include <dt-bindings/reset/amlogic,meson-gxbb-reset.h> 14 compatible = "amlogic,meson-gxl"; 18 compatible = "amlogic,meson-gxl-usb-ctrl"; 21 #address-cells = <2>; 22 #size-cells = <2>; [all …]
|
| /kernel/linux/linux-4.19/include/linux/platform_data/ |
| D | i2c-mux-gpio.h | 2 * i2c-mux-gpio interface to platform code 14 /* MUX has no specific idle mode */ 15 #define I2C_MUX_GPIO_NO_IDLE ((unsigned)-1) 18 * struct i2c_mux_gpio_platform_data - Platform-dependent data for i2c-mux-gpio 21 * @values: Array of bitmasks of GPIO settings (low/high) for each 24 * @classes: Optional I2C auto-detection classes 25 * @gpio_chip: Optional GPIO chip name; if set, GPIO pin numbers are given 26 * relative to the base GPIO number of that chip 27 * @gpios: Array of GPIO numbers used to control MUX 28 * @n_gpios: Number of GPIOs used to control MUX [all …]
|
| /kernel/linux/linux-4.19/Documentation/devicetree/bindings/i2c/ |
| D | i2c-mux-gpio.txt | 1 GPIO-based I2C Bus Mux 6 +-----+ +-----+ 8 +------------+ +-----+ +-----+ 10 | | /--------+--------+ 11 | +------+ | +------+ child bus A, on GPIO value set to 0 12 | | I2C |-|--| Mux | 13 | +------+ | +--+---+ child bus B, on GPIO value set to 1 14 | | | \----------+--------+--------+ 15 | +------+ | | | | | 16 | | GPIO |-|-----+ +-----+ +-----+ +-----+ [all …]
|
| D | i2c-mux-ltc4306.txt | 5 - compatible: Must contain one of the following. 7 - reg: The I2C address of the device. 11 - Standard I2C mux properties. See i2c-mux.txt in this directory. 12 - I2C child bus nodes. See i2c-mux.txt in this directory. 16 - enable-gpios: Reference to the GPIO connected to the enable input. 17 - i2c-mux-idle-disconnect: Boolean; if defined, forces mux to disconnect all 20 - gpio-controller: Marks the device node as a GPIO Controller. 21 - #gpio-cells: Should be two. The first cell is the pin number and 23 See ../gpio/gpio.txt for more information. 24 - ltc,downstream-accelerators-enable: Enables the rise time accelerators [all …]
|
| D | i2c-mux.txt | 8 - #address-cells = <1>; 9 This property is required if the i2c-mux child node does not exist. 11 - #size-cells = <0>; 12 This property is required if the i2c-mux child node does not exist. 14 - i2c-mux 16 of both i2c child busses and other child nodes, the 'i2c-mux' subnode 17 can be used for populating the i2c child busses. If an 'i2c-mux' 21 Required properties for the i2c-mux child node: 22 - #address-cells = <1>; 23 - #size-cells = <0>; [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/i2c/ |
| D | i2c-mux-gpio.txt | 1 GPIO-based I2C Bus Mux 6 +-----+ +-----+ 8 +------------+ +-----+ +-----+ 10 | | /--------+--------+ 11 | +------+ | +------+ child bus A, on GPIO value set to 0 12 | | I2C |-|--| Mux | 13 | +------+ | +--+---+ child bus B, on GPIO value set to 1 14 | | | \----------+--------+--------+ 15 | +------+ | | | | | 16 | | GPIO |-|-----+ +-----+ +-----+ +-----+ [all …]
|
| D | i2c-mux-ltc4306.txt | 5 - compatible: Must contain one of the following. 7 - reg: The I2C address of the device. 11 - Standard I2C mux properties. See i2c-mux.txt in this directory. 12 - I2C child bus nodes. See i2c-mux.txt in this directory. 16 - enable-gpios: Reference to the GPIO connected to the enable input. 17 - i2c-mux-idle-disconnect: Boolean; if defined, forces mux to disconnect all 20 - gpio-controller: Marks the device node as a GPIO Controller. 21 - #gpio-cells: Should be two. The first cell is the pin number and 23 See ../gpio/gpio.txt for more information. 24 - ltc,downstream-accelerators-enable: Enables the rise time accelerators [all …]
|
| D | i2c-mux.txt | 8 - #address-cells = <1>; 9 This property is required if the i2c-mux child node does not exist. 11 - #size-cells = <0>; 12 This property is required if the i2c-mux child node does not exist. 14 - i2c-mux 16 of both i2c child busses and other child nodes, the 'i2c-mux' subnode 17 can be used for populating the i2c child busses. If an 'i2c-mux' 21 Required properties for the i2c-mux child node: 22 - #address-cells = <1>; 23 - #size-cells = <0>; [all …]
|
| /kernel/linux/linux-5.10/drivers/mux/ |
| D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0 6 mux-core-objs := core.o 7 mux-adg792a-objs := adg792a.o 8 mux-adgs1408-objs := adgs1408.o 9 mux-gpio-objs := gpio.o 10 mux-mmio-objs := mmio.o 12 obj-$(CONFIG_MULTIPLEXER) += mux-core.o 13 obj-$(CONFIG_MUX_ADG792A) += mux-adg792a.o 14 obj-$(CONFIG_MUX_ADGS1408) += mux-adgs1408.o 15 obj-$(CONFIG_MUX_GPIO) += mux-gpio.o [all …]
|