/linux/drivers/gpio/ |
H A D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0 2 # generic gpio support: platform drivers, dedicated expander chips, etc 4 ccflags-$(CONFIG_DEBUG_GPIO) += -DDEBUG 6 obj-$(CONFIG_GPIOLIB) += gpiolib.o 7 obj-$(CONFIG_GPIOLIB) += gpiolib-devres.o 8 obj-$(CONFIG_GPIOLIB) += gpiolib-legacy.o 9 obj-$(CONFIG_OF_GPIO) += gpiolib-of.o 10 obj-$(CONFIG_GPIO_CDEV) += gpiolib-cdev.o 11 obj-$(CONFIG_GPIO_SYSFS) += gpiolib-sysfs.o 12 obj-$(CONFIG_GPIO_ACPI) += gpiolib-acpi.o [all …]
|
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 3 # GPIO infrastructure and drivers 7 bool "GPIO Support" 9 This enables GPIO support through the generic GPIO library. 11 one or more of the GPIO drivers below. 47 this symbol, but new drivers should use the generic gpio-regmap 51 bool "Debug GPIO calls" 54 Say Y here to add some extra checks and diagnostics to GPIO calls. 57 non-sleeping contexts. They can make bitbanged serial protocols 62 bool "/sys/class/gpio/... (sysfs interface)" if EXPERT [all …]
|
H A D | gpio-regmap.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * regmap based generic GPIO driver 17 #include <linux/gpio/driver.h> 18 #include <linux/gpio/regmap.h> 33 int (*reg_mask_xlate)(struct gpio_regmap *gpio, unsigned int base, 48 static int gpio_regmap_simple_xlate(struct gpio_regmap *gpio, in gpio_regmap_simple_xlate() argument 52 unsigned int line = offset % gpio->ngpio_per_reg; in gpio_regmap_simple_xlate() 53 unsigned int stride = offset / gpio->ngpio_per_reg; in gpio_regmap_simple_xlate() 55 *reg = base + stride * gpio->reg_stride; in gpio_regmap_simple_xlate() 63 struct gpio_regmap *gpio = gpiochip_get_data(chip); in gpio_regmap_get() local [all …]
|
H A D | gpio-aspeed.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 9 #include <linux/gpio/aspeed.h> 10 #include <linux/gpio/driver.h> 25 * These two headers aren't meant to be used by GPIO drivers. We need 30 #include <linux/gpio/consumer.h> 50 * represents disabled debouncing for the GPIO. Any other value for an element 85 * line even when the GPIO is configured as an output. Since 210 static inline void __iomem *bank_reg(struct aspeed_gpio *gpio, in bank_reg() argument 216 return gpio->base + bank->val_regs + GPIO_VAL_VALUE; in bank_reg() 218 return gpio->base + bank->rdata_reg; in bank_reg() [all …]
|
H A D | gpio-dwapb.c | 1 // SPDX-License-Identifier: GPL-2.0-only 10 #include <linux/gpio/driver.h> 24 #include "gpiolib-acpi.h" 46 #define DWAPB_DRIVER_NAME "gpio-dwapb" 82 /* Store GPIO context across system-wide suspend/resume transitions */ 104 struct dwapb_gpio *gpio; member 111 (container_of(_gc, struct dwapb_gpio_port, gc)->gpio) 141 static inline u32 gpio_reg_convert(struct dwapb_gpio *gpio, unsigned int offset) in gpio_reg_convert() argument 143 if ((gpio->flags & GPIO_REG_OFFSET_MASK) == GPIO_REG_OFFSET_V2) in gpio_reg_convert() 149 static inline u32 dwapb_read(struct dwapb_gpio *gpio, unsigned int offset) in dwapb_read() argument [all …]
|
H A D | gpio-zynq.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Xilinx Zynq GPIO device driver 5 * Copyright (C) 2009 - 2014 Xilinx, Inc. 10 #include <linux/gpio/driver.h> 20 #define DRIVER_NAME "zynq-gpio" 46 ZYNQ##str##_GPIO_BANK0_NGPIO - 1) 49 ZYNQ##str##_GPIO_BANK1_NGPIO - 1) 52 ZYNQ##str##_GPIO_BANK2_NGPIO - 1) 55 ZYNQ##str##_GPIO_BANK3_NGPIO - 1) 58 ZYNQ##str##_GPIO_BANK4_NGPIO - 1) [all …]
|
H A D | gpio-tegra186.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (c) 2016-2022 NVIDIA Corporation 9 #include <linux/gpio/driver.h> 19 #include <dt-bindings/gpio/tegra186-gpio.h> 20 #include <dt-bindings/gpio/tegra194-gpio.h> 21 #include <dt-bindings/gpio/tegra234-gpio.h> 22 #include <dt-bindings/gpio/tegra241-gpio.h> 99 struct gpio_chip gpio; member 112 tegra186_gpio_get_port(struct tegra_gpio *gpio, unsigned int *pin) in tegra186_gpio_get_port() argument 116 for (i = 0; i < gpio->soc->num_ports; i++) { in tegra186_gpio_get_port() [all …]
|
/linux/Documentation/devicetree/bindings/pinctrl/ |
H A D | qcom,pmic-gpio.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/pinctrl/qcom,pmic-gpio.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Qualcomm PMIC GPIO block 10 - Bjorn Andersson <bjorn.andersson@linaro.org> 13 This binding describes the GPIO block(s) found in the 8xxx series of 19 - enum: 20 - qcom,pm2250-gpio 21 - qcom,pm660-gpio [all …]
|
H A D | marvell,kirkwood-pinctrl.txt | 3 Please refer to marvell,mvebu-pinctrl.txt in this directory for common binding 7 - compatible: "marvell,88f6180-pinctrl", 8 "marvell,88f6190-pinctrl", "marvell,88f6192-pinctrl", 9 "marvell,88f6281-pinctrl", "marvell,88f6282-pinctrl", 10 "marvell,98dx4122-pinctrl", "marvell,98dx1135-pinctrl" 11 - reg: register specifier of MPP registers 14 It also support the 88f6281-based variant in the 98dx412x Bobcat SoCs. 24 mpp0 0 gpio, nand(io2), spi(cs) 28 mpp4 4 gpio, nand(io6), uart0(rxd), ptp(clk) 32 mpp8 8 gpio, twsi0(sda), uart0(rts), uart1(rts), ptp(clk), [all …]
|
H A D | marvell,armada-37xx-pinctrl.txt | 1 * Marvell Armada 37xx SoC pin and gpio controller 3 Each Armada 37xx SoC come with two pin and gpio controller one for the 6 Inside this set of register the gpio latch allows exposing some 11 GPIO and pin controller: 12 ------------------------ 16 Refer to pinctrl-bindings.txt in this directory for details of the 22 - compatible: "marvell,armada3710-sb-pinctrl", "syscon, "simple-mfd" 24 "marvell,armada3710-nb-pinctrl", "syscon, "simple-mfd" 26 - reg: The first set of register are for pinctrl/gpio and the second 28 - interrupts: list of the interrupt use by the gpio [all …]
|
H A D | marvell,armada-xp-pinctrl.txt | 3 Please refer to marvell,mvebu-pinctrl.txt in this directory for common binding 7 - compatible: "marvell,mv78230-pinctrl", "marvell,mv78260-pinctrl", 8 "marvell,mv78460-pinctrl" 9 - reg: register specifier of MPP registers 21 mpp0 0 gpio, ge0(txclkout), lcd(d0) 22 mpp1 1 gpio, ge0(txd0), lcd(d1) 23 mpp2 2 gpio, ge0(txd1), lcd(d2) 24 mpp3 3 gpio, ge0(txd2), lcd(d3) 25 mpp4 4 gpio, ge0(txd3), lcd(d4) 26 mpp5 5 gpio, ge0(txctl), lcd(d5) [all …]
|
H A D | marvell,armada-375-pinctrl.txt | 3 Please refer to marvell,mvebu-pinctrl.txt in this directory for common binding 7 - compatible: "marvell,88f6720-pinctrl" 8 - reg: register specifier of MPP registers 16 mpp0 0 gpio, dev(ad2), spi0(cs1), spi1(cs1) 17 mpp1 1 gpio, dev(ad3), spi0(mosi), spi1(mosi) 18 mpp2 2 gpio, dev(ad4), ptp(evreq), led(c0), audio(sdi) 19 mpp3 3 gpio, dev(ad5), ptp(trig), led(p3), audio(mclk) 20 mpp4 4 gpio, dev(ad6), spi0(miso), spi1(miso) 21 mpp5 5 gpio, dev(ad7), spi0(cs2), spi1(cs2) 22 mpp6 6 gpio, dev(ad0), led(p1), audio(lrclk) [all …]
|
/linux/drivers/gpu/drm/amd/display/dc/gpio/ |
H A D | gpio_base.c | 2 * Copyright 2012-15 Advanced Micro Devices, Inc. 27 * Pre-requisites: headers required by header of this unit 40 * Post-requisites: headers required by this unit 53 struct gpio *gpio, in dal_gpio_open() argument 56 return dal_gpio_open_ex(gpio, mode); in dal_gpio_open() 60 struct gpio *gpio, in dal_gpio_open_ex() argument 63 if (gpio->pin) { in dal_gpio_open_ex() 68 // No action if allocation failed during gpio construct in dal_gpio_open_ex() 69 if (!gpio->hw_container.ddc) { in dal_gpio_open_ex() 73 gpio->mode = mode; in dal_gpio_open_ex() [all …]
|
/linux/arch/arm/boot/dts/samsung/ |
H A D | exynos5410-pinctrl.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 3 * Exynos5410 SoC pin-mux and pin-config device tree source 9 #include "exynos-pinctrl.h" 12 gpa0: gpa0-gpio-bank { 13 gpio-controller; 14 #gpio-cells = <2>; 16 interrupt-controller; 17 #interrupt-cells = <2>; 20 gpa1: gpa1-gpio-bank { 21 gpio-controller; [all …]
|
/linux/arch/arc/boot/dts/ |
H A D | abilis_tb101.dtsi | 1 // SPDX-License-Identifier: GPL-2.0-only 15 bus-frequency = <166666666>; 18 clock-frequency = <1000000000>; 21 clock-mult = <1>; 22 clock-div = <2>; 25 clock-mult = <1>; 26 clock-div = <6>; 31 pctl_tsin_s0: pctl-tsin-s0 { /* Serial TS-in 0 */ 34 pctl_tsin_s1: pctl-tsin-s1 { /* Serial TS-in 1 */ 37 pctl_gpio_a: pctl-gpio-a { /* GPIO bank A */ [all …]
|
H A D | abilis_tb100.dtsi | 1 // SPDX-License-Identifier: GPL-2.0-only 15 bus-frequency = <166666666>; 18 clock-frequency = <1000000000>; 21 clock-mult = <1>; 22 clock-div = <2>; 25 clock-mult = <1>; 26 clock-div = <6>; 31 pctl_tsin_s0: pctl-tsin-s0 { /* Serial TS-in 0 */ 34 pctl_tsin_s1: pctl-tsin-s1 { /* Serial TS-in 1 */ 37 pctl_gpio_a: pctl-gpio-a { /* GPIO bank A */ [all …]
|
/linux/include/linux/ |
H A D | gpio.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 5 * This is the LEGACY GPIO bulk include file, including legacy APIs. It is 6 * used for GPIO drivers still referencing the global GPIO numberspace, 9 * If you're implementing a GPIO driver, only include <linux/gpio/driver.h> 10 * If you're implementing a GPIO consumer, only include <linux/gpio/consumer.h> 19 /* make these flag values available regardless of GPIO kconfig options */ 24 /* Gpio pin is active-low */ 28 * struct gpio - a structure describing a GPIO with configuration 29 * @gpio: the GPIO number 30 * @flags: GPIO configuration as specified by GPIOF_* [all …]
|
/linux/Documentation/devicetree/bindings/gpio/ |
H A D | fsl-imx-gpio.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/gpio/fsl-imx-gpio.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Freescale i.MX/MXC GPIO controller 10 - Shawn Guo <shawnguo@kernel.org> 11 - Sascha Hauer <s.hauer@pengutronix.de> 12 - Fabio Estevam <festevam@gmail.com> 17 - enum: 18 - fsl,imx1-gpio [all …]
|
H A D | renesas,rcar-gpio.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/gpio/renesas,rcar-gpio.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Renesas R-Car General-Purpose Input/Output Ports (GPIO) 10 - Geert Uytterhoeven <geert+renesas@glider.be> 15 - items: 16 - enum: 17 - renesas,gpio-r8a7778 # R-Car M1 18 - renesas,gpio-r8a7779 # R-Car H1 [all …]
|
H A D | gpio.txt | 1 Specifying GPIO information for devices 5 ----------------- 7 GPIO properties should be named "[<name>-]gpios", with <name> being the purpose 8 of this GPIO for the device. While a non-existent <name> is considered valid 10 for new bindings. Also, GPIO properties named "[<name>-]gpio" are valid and old 14 GPIO properties can contain one or more GPIO phandles, but only in exceptional 23 The following example could be used to describe GPIO pins used as device enable 24 and bit-banged data signals: 27 gpio-controller; 28 #gpio-cells = <2>; [all …]
|
/linux/Documentation/admin-guide/gpio/ |
H A D | gpio-sim.rst | 1 .. SPDX-License-Identifier: GPL-2.0-or-later 3 Configfs GPIO Simulator 6 The configfs GPIO Simulator (gpio-sim) provides a way to create simulated GPIO 8 using the standard GPIO character device interface as well as manipulated 12 ------------------------ 14 The gpio-sim module registers a configfs subsystem called ``'gpio-sim'``. For 21 **Group:** ``/config/gpio-sim`` 23 This is the top directory of the gpio-sim configfs tree. 25 **Group:** ``/config/gpio-sim/gpio-device`` 27 **Attribute:** ``/config/gpio-sim/gpio-device/dev_name`` [all …]
|
/linux/Documentation/driver-api/gpio/ |
H A D | drivers-on-gpio.rst | 2 Subsystem drivers using GPIO 5 Note that standard kernel drivers exist for common GPIO tasks and will provide 6 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, 14 i.e. a LED will turn on/off in response to a GPIO line going high or low 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 21 GPIO line cannot generate interrupts, so it needs to be periodically polled [all …]
|
/linux/arch/m68k/include/asm/ |
H A D | mcfgpio.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * Coldfire generic GPIO support. 11 int __mcfgpio_get_value(unsigned gpio); 12 void __mcfgpio_set_value(unsigned gpio, int value); 13 int __mcfgpio_direction_input(unsigned gpio); 14 int __mcfgpio_direction_output(unsigned gpio, int value); 15 int __mcfgpio_request(unsigned gpio); 16 void __mcfgpio_free(unsigned gpio); 19 #include <linux/gpio.h> 23 static inline int __gpio_get_value(unsigned gpio) in __gpio_get_value() argument [all …]
|
/linux/arch/mips/include/asm/mach-au1x00/ |
H A D | gpio-au1000.h | 2 * GPIO functions for Au1000, Au1500, Au1100, Au1550, Au1200 12 #include <asm/mach-au1x00/au1000.h> 14 /* The default GPIO numberspace as documented in the Alchemy manuals. 15 * GPIO0-31 from GPIO1 block, GPIO200-215 from GPIO2 block. 22 #define ALCHEMY_GPIO1_MAX (ALCHEMY_GPIO1_BASE + ALCHEMY_GPIO1_NUM - 1) 23 #define ALCHEMY_GPIO2_MAX (ALCHEMY_GPIO2_BASE + ALCHEMY_GPIO2_NUM - 1) 43 struct gpio; 45 static inline int au1000_gpio1_to_irq(int gpio) in au1000_gpio1_to_irq() argument 47 return MAKE_IRQ(1, gpio - ALCHEMY_GPIO1_BASE); in au1000_gpio1_to_irq() 50 static inline int au1000_gpio2_to_irq(int gpio) in au1000_gpio2_to_irq() argument [all …]
|
/linux/arch/arm64/boot/dts/tesla/ |
H A D | fsd-pinctrl.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 3 * Tesla Full Self-Driving SoC device tree source 5 * Copyright (c) 2017-2021 Samsung Electronics Co., Ltd. 7 * Copyright (c) 2017-2021 Tesla, Inc. 11 #include "fsd-pinctrl.h" 14 gpf0: gpf0-gpio-bank { 15 gpio-controller; 16 #gpio-cells = <2>; 18 interrupt-controller; 19 #interrupt-cells = <2>; [all …]
|