Lines Matching refs:gpio

11 #include <linux/gpio/driver.h>
151 * sfp->gpio.pin_base = PAD_INVALID_GPIO then
161 * | dout | doen | din | dout rev | doen rev | gpio nr |
223 unsigned int gpio)
225 return sfp->gpios.pin_base + gpio;
457 unsigned int gpio = starfive_pin_to_gpio(sfp, pin);
461 if (gpio >= NR_GPIOS)
464 reg = sfp->base + GPON_DOUT_CFG + 8 * gpio;
560 unsigned int gpio = starfive_pinmux_to_gpio(pinmux[i]);
562 pins[i] = starfive_gpio_to_pin(sfp, gpio);
659 unsigned int gpio = starfive_pinmux_to_gpio(v);
669 gpio, dout, doen, din);
671 reg_dout = sfp->base + GPON_DOUT_CFG + 8 * gpio;
672 reg_doen = sfp->base + GPON_DOEN_CFG + 8 * gpio;
682 writel_relaxed(gpio + 2, reg_din);
919 static int starfive_gpio_get_direction(struct gpio_chip *gc, unsigned int gpio)
922 void __iomem *doen = sfp->base + GPON_DOEN_CFG + 8 * gpio;
931 unsigned int gpio)
934 void __iomem *doen = sfp->base + GPON_DOEN_CFG + 8 * gpio;
938 starfive_padctl_rmw(sfp, starfive_gpio_to_pin(sfp, gpio),
949 unsigned int gpio, int value)
952 void __iomem *dout = sfp->base + GPON_DOUT_CFG + 8 * gpio;
953 void __iomem *doen = sfp->base + GPON_DOEN_CFG + 8 * gpio;
962 starfive_padctl_rmw(sfp, starfive_gpio_to_pin(sfp, gpio),
969 static int starfive_gpio_get(struct gpio_chip *gc, unsigned int gpio)
972 void __iomem *din = sfp->base + GPIODIN + 4 * (gpio / 32);
974 return !!(readl_relaxed(din) & BIT(gpio % 32));
977 static void starfive_gpio_set(struct gpio_chip *gc, unsigned int gpio,
981 void __iomem *dout = sfp->base + GPON_DOUT_CFG + 8 * gpio;
989 static int starfive_gpio_set_config(struct gpio_chip *gc, unsigned int gpio,
1028 starfive_padctl_rmw(sfp, starfive_gpio_to_pin(sfp, gpio), mask, value);
1051 irq_hw_number_t gpio = irqd_to_hwirq(d);
1052 void __iomem *ic = sfp->base + GPIOIC + 4 * (gpio / 32);
1053 u32 mask = BIT(gpio % 32);
1064 irq_hw_number_t gpio = irqd_to_hwirq(d);
1065 void __iomem *ie = sfp->base + GPIOIE + 4 * (gpio / 32);
1066 u32 mask = BIT(gpio % 32);
1075 gpiochip_disable_irq(&sfp->gc, gpio);
1081 irq_hw_number_t gpio = irqd_to_hwirq(d);
1082 void __iomem *ie = sfp->base + GPIOIE + 4 * (gpio / 32);
1083 void __iomem *ic = sfp->base + GPIOIC + 4 * (gpio / 32);
1084 u32 mask = BIT(gpio % 32);
1098 irq_hw_number_t gpio = irqd_to_hwirq(d);
1099 void __iomem *ie = sfp->base + GPIOIE + 4 * (gpio / 32);
1100 u32 mask = BIT(gpio % 32);
1104 gpiochip_enable_irq(&sfp->gc, gpio);
1115 irq_hw_number_t gpio = irqd_to_hwirq(d);
1116 void __iomem *base = sfp->base + 4 * (gpio / 32);
1117 u32 mask = BIT(gpio % 32);
1231 sfp->base = devm_platform_ioremap_resource_byname(pdev, "gpio");