Lines Matching refs:gctrl
28 struct eqbr_gpio_ctrl *gctrl = gpiochip_get_data(gc); in eqbr_gpio_disable_irq() local
32 raw_spin_lock_irqsave(&gctrl->lock, flags); in eqbr_gpio_disable_irq()
33 writel(BIT(offset), gctrl->membase + GPIO_IRNENCLR); in eqbr_gpio_disable_irq()
34 raw_spin_unlock_irqrestore(&gctrl->lock, flags); in eqbr_gpio_disable_irq()
40 struct eqbr_gpio_ctrl *gctrl = gpiochip_get_data(gc); in eqbr_gpio_enable_irq() local
45 raw_spin_lock_irqsave(&gctrl->lock, flags); in eqbr_gpio_enable_irq()
46 writel(BIT(offset), gctrl->membase + GPIO_IRNRNSET); in eqbr_gpio_enable_irq()
47 raw_spin_unlock_irqrestore(&gctrl->lock, flags); in eqbr_gpio_enable_irq()
53 struct eqbr_gpio_ctrl *gctrl = gpiochip_get_data(gc); in eqbr_gpio_ack_irq() local
57 raw_spin_lock_irqsave(&gctrl->lock, flags); in eqbr_gpio_ack_irq()
58 writel(BIT(offset), gctrl->membase + GPIO_IRNCR); in eqbr_gpio_ack_irq()
59 raw_spin_unlock_irqrestore(&gctrl->lock, flags); in eqbr_gpio_ack_irq()
78 struct eqbr_gpio_ctrl *gctrl, in eqbr_irq_type_cfg() argument
83 raw_spin_lock_irqsave(&gctrl->lock, flags); in eqbr_irq_type_cfg()
84 eqbr_cfg_bit(gctrl->membase + GPIO_IRNCFG, offset, type->trig_type); in eqbr_irq_type_cfg()
85 eqbr_cfg_bit(gctrl->membase + GPIO_EXINTCR1, offset, type->trig_type); in eqbr_irq_type_cfg()
86 eqbr_cfg_bit(gctrl->membase + GPIO_EXINTCR0, offset, type->logic_type); in eqbr_irq_type_cfg()
87 raw_spin_unlock_irqrestore(&gctrl->lock, flags); in eqbr_irq_type_cfg()
95 struct eqbr_gpio_ctrl *gctrl = gpiochip_get_data(gc); in eqbr_gpio_set_irq_type() local
139 eqbr_irq_type_cfg(&it, gctrl, offset); in eqbr_gpio_set_irq_type()
151 struct eqbr_gpio_ctrl *gctrl = gpiochip_get_data(gc); in eqbr_irq_handler() local
156 pins = readl(gctrl->membase + GPIO_IRNCR); in eqbr_irq_handler()
164 static int gpiochip_setup(struct device *dev, struct eqbr_gpio_ctrl *gctrl) in gpiochip_setup() argument
169 gc = &gctrl->chip; in gpiochip_setup()
170 gc->label = gctrl->name; in gpiochip_setup()
171 gc->fwnode = gctrl->fwnode; in gpiochip_setup()
173 if (!fwnode_property_read_bool(gctrl->fwnode, "interrupt-controller")) { in gpiochip_setup()
175 gctrl->name); in gpiochip_setup()
179 gctrl->ic.name = "gpio_irq"; in gpiochip_setup()
180 gctrl->ic.irq_mask = eqbr_gpio_disable_irq; in gpiochip_setup()
181 gctrl->ic.irq_unmask = eqbr_gpio_enable_irq; in gpiochip_setup()
182 gctrl->ic.irq_ack = eqbr_gpio_ack_irq; in gpiochip_setup()
183 gctrl->ic.irq_mask_ack = eqbr_gpio_mask_ack_irq; in gpiochip_setup()
184 gctrl->ic.irq_set_type = eqbr_gpio_set_irq_type; in gpiochip_setup()
186 girq = &gctrl->chip.irq; in gpiochip_setup()
187 girq->chip = &gctrl->ic; in gpiochip_setup()
196 girq->parents[0] = gctrl->virq; in gpiochip_setup()
204 struct eqbr_gpio_ctrl *gctrl; in gpiolib_reg() local
210 gctrl = drvdata->gpio_ctrls + i; in gpiolib_reg()
211 np = to_of_node(gctrl->fwnode); in gpiolib_reg()
213 gctrl->name = devm_kasprintf(dev, GFP_KERNEL, "gpiochip%d", i); in gpiolib_reg()
214 if (!gctrl->name) in gpiolib_reg()
222 gctrl->membase = devm_ioremap_resource(dev, &res); in gpiolib_reg()
223 if (IS_ERR(gctrl->membase)) in gpiolib_reg()
224 return PTR_ERR(gctrl->membase); in gpiolib_reg()
226 gctrl->virq = irq_of_parse_and_map(np, 0); in gpiolib_reg()
227 if (!gctrl->virq) { in gpiolib_reg()
229 gctrl->name); in gpiolib_reg()
232 raw_spin_lock_init(&gctrl->lock); in gpiolib_reg()
234 ret = bgpio_init(&gctrl->chip, dev, gctrl->bank->nr_pins / 8, in gpiolib_reg()
235 gctrl->membase + GPIO_IN, in gpiolib_reg()
236 gctrl->membase + GPIO_OUTSET, in gpiolib_reg()
237 gctrl->membase + GPIO_OUTCLR, in gpiolib_reg()
238 gctrl->membase + GPIO_DIR, in gpiolib_reg()
245 ret = gpiochip_setup(dev, gctrl); in gpiolib_reg()
249 ret = devm_gpiochip_add_data(dev, &gctrl->chip, gctrl); in gpiolib_reg()
379 struct eqbr_gpio_ctrl *gctrl; in eqbr_pinconf_get() local
419 gctrl = get_gpio_ctrls_via_bank(pctl, bank); in eqbr_pinconf_get()
420 if (!gctrl) { in eqbr_pinconf_get()
426 val = !!(readl(gctrl->membase + GPIO_DIR) & BIT(offset)); in eqbr_pinconf_get()
442 struct eqbr_gpio_ctrl *gctrl; in eqbr_pinconf_set() local
488 gctrl = get_gpio_ctrls_via_bank(pctl, bank); in eqbr_pinconf_set()
489 if (!gctrl) { in eqbr_pinconf_set()
494 gc = &gctrl->chip; in eqbr_pinconf_set()