Lines Matching defs:hisi_gpio

35 struct hisi_gpio {
46 struct hisi_gpio *hisi_gpio =
47 container_of(chip, struct hisi_gpio, chip);
48 void __iomem *reg = hisi_gpio->reg_base + off;
56 struct hisi_gpio *hisi_gpio =
57 container_of(chip, struct hisi_gpio, chip);
58 void __iomem *reg = hisi_gpio->reg_base + off;
182 struct hisi_gpio *hisi_gpio = irq_desc_get_handler_data(desc);
183 unsigned long irq_msk = hisi_gpio_read_reg(&hisi_gpio->chip,
190 generic_handle_domain_irq(hisi_gpio->chip.irq.domain,
207 static void hisi_gpio_init_irq(struct hisi_gpio *hisi_gpio)
209 struct gpio_chip *chip = &hisi_gpio->chip;
215 girq_chip->parents = &hisi_gpio->irq;
217 girq_chip->parent_handler_data = hisi_gpio;
236 struct hisi_gpio *hisi_gpio)
245 &hisi_gpio->line_num)) {
249 hisi_gpio->line_num = HISI_GPIO_LINE_NUM_MAX;
252 if (WARN_ON(hisi_gpio->line_num > HISI_GPIO_LINE_NUM_MAX))
253 hisi_gpio->line_num = HISI_GPIO_LINE_NUM_MAX;
255 hisi_gpio->irq = platform_get_irq(pdev, idx);
258 "get hisi_gpio[%d] with %d lines\n", idx,
259 hisi_gpio->line_num);
268 struct hisi_gpio *hisi_gpio;
280 hisi_gpio = devm_kzalloc(dev, sizeof(*hisi_gpio), GFP_KERNEL);
281 if (!hisi_gpio)
284 hisi_gpio->reg_base = devm_platform_ioremap_resource(pdev, 0);
285 if (IS_ERR(hisi_gpio->reg_base))
286 return PTR_ERR(hisi_gpio->reg_base);
288 hisi_gpio_get_pdata(dev, hisi_gpio);
290 hisi_gpio->dev = dev;
292 ret = bgpio_init(&hisi_gpio->chip, hisi_gpio->dev, 0x4,
293 hisi_gpio->reg_base + HISI_GPIO_EXT_PORT_WX,
294 hisi_gpio->reg_base + HISI_GPIO_SWPORT_DR_SET_WX,
295 hisi_gpio->reg_base + HISI_GPIO_SWPORT_DR_CLR_WX,
296 hisi_gpio->reg_base + HISI_GPIO_SWPORT_DDR_SET_WX,
297 hisi_gpio->reg_base + HISI_GPIO_SWPORT_DDR_CLR_WX,
304 hisi_gpio->chip.set_config = hisi_gpio_set_config;
305 hisi_gpio->chip.ngpio = hisi_gpio->line_num;
306 hisi_gpio->chip.bgpio_dir_unreadable = 1;
307 hisi_gpio->chip.base = -1;
309 if (hisi_gpio->irq > 0)
310 hisi_gpio_init_irq(hisi_gpio);
312 ret = devm_gpiochip_add_data(dev, &hisi_gpio->chip, hisi_gpio);