Lines Matching refs:pt_gpio
35 struct pt_gpio_chip *pt_gpio = gpiochip_get_data(gc); in pt_gpio_request() local
43 using_pins = readl(pt_gpio->reg_base + PT_SYNC_REG); in pt_gpio_request()
51 writel(using_pins | BIT(offset), pt_gpio->reg_base + PT_SYNC_REG); in pt_gpio_request()
60 struct pt_gpio_chip *pt_gpio = gpiochip_get_data(gc); in pt_gpio_free() local
66 using_pins = readl(pt_gpio->reg_base + PT_SYNC_REG); in pt_gpio_free()
68 writel(using_pins, pt_gpio->reg_base + PT_SYNC_REG); in pt_gpio_free()
80 struct pt_gpio_chip *pt_gpio; in pt_gpio_probe() local
89 pt_gpio = devm_kzalloc(dev, sizeof(struct pt_gpio_chip), GFP_KERNEL); in pt_gpio_probe()
90 if (!pt_gpio) in pt_gpio_probe()
98 pt_gpio->reg_base = devm_ioremap_resource(dev, res_mem); in pt_gpio_probe()
99 if (IS_ERR(pt_gpio->reg_base)) { in pt_gpio_probe()
101 return PTR_ERR(pt_gpio->reg_base); in pt_gpio_probe()
104 ret = bgpio_init(&pt_gpio->gc, dev, 4, in pt_gpio_probe()
105 pt_gpio->reg_base + PT_INPUTDATA_REG, in pt_gpio_probe()
106 pt_gpio->reg_base + PT_OUTPUTDATA_REG, NULL, in pt_gpio_probe()
107 pt_gpio->reg_base + PT_DIRECTION_REG, NULL, in pt_gpio_probe()
114 pt_gpio->gc.owner = THIS_MODULE; in pt_gpio_probe()
115 pt_gpio->gc.request = pt_gpio_request; in pt_gpio_probe()
116 pt_gpio->gc.free = pt_gpio_free; in pt_gpio_probe()
117 pt_gpio->gc.ngpio = PT_TOTAL_GPIO; in pt_gpio_probe()
119 pt_gpio->gc.of_node = pdev->dev.of_node; in pt_gpio_probe()
121 ret = gpiochip_add_data(&pt_gpio->gc, pt_gpio); in pt_gpio_probe()
127 platform_set_drvdata(pdev, pt_gpio); in pt_gpio_probe()
130 writel(0, pt_gpio->reg_base + PT_SYNC_REG); in pt_gpio_probe()
131 writel(0, pt_gpio->reg_base + PT_CLOCKRATE_REG); in pt_gpio_probe()
139 struct pt_gpio_chip *pt_gpio = platform_get_drvdata(pdev); in pt_gpio_remove() local
141 gpiochip_remove(&pt_gpio->gc); in pt_gpio_remove()