Lines Matching refs:pt_gpio
32 struct pt_gpio_chip *pt_gpio = gpiochip_get_data(gc); in pt_gpio_request() local
40 using_pins = readl(pt_gpio->reg_base + PT_SYNC_REG); in pt_gpio_request()
48 writel(using_pins | BIT(offset), pt_gpio->reg_base + PT_SYNC_REG); in pt_gpio_request()
57 struct pt_gpio_chip *pt_gpio = gpiochip_get_data(gc); in pt_gpio_free() local
63 using_pins = readl(pt_gpio->reg_base + PT_SYNC_REG); in pt_gpio_free()
65 writel(using_pins, pt_gpio->reg_base + PT_SYNC_REG); in pt_gpio_free()
77 struct pt_gpio_chip *pt_gpio; in pt_gpio_probe() local
85 pt_gpio = devm_kzalloc(dev, sizeof(struct pt_gpio_chip), GFP_KERNEL); in pt_gpio_probe()
86 if (!pt_gpio) in pt_gpio_probe()
89 pt_gpio->reg_base = devm_platform_ioremap_resource(pdev, 0); in pt_gpio_probe()
90 if (IS_ERR(pt_gpio->reg_base)) { in pt_gpio_probe()
92 return PTR_ERR(pt_gpio->reg_base); in pt_gpio_probe()
95 ret = bgpio_init(&pt_gpio->gc, dev, 4, in pt_gpio_probe()
96 pt_gpio->reg_base + PT_INPUTDATA_REG, in pt_gpio_probe()
97 pt_gpio->reg_base + PT_OUTPUTDATA_REG, NULL, in pt_gpio_probe()
98 pt_gpio->reg_base + PT_DIRECTION_REG, NULL, in pt_gpio_probe()
105 pt_gpio->gc.owner = THIS_MODULE; in pt_gpio_probe()
106 pt_gpio->gc.request = pt_gpio_request; in pt_gpio_probe()
107 pt_gpio->gc.free = pt_gpio_free; in pt_gpio_probe()
108 pt_gpio->gc.ngpio = PT_TOTAL_GPIO; in pt_gpio_probe()
110 pt_gpio->gc.of_node = dev->of_node; in pt_gpio_probe()
112 ret = gpiochip_add_data(&pt_gpio->gc, pt_gpio); in pt_gpio_probe()
118 platform_set_drvdata(pdev, pt_gpio); in pt_gpio_probe()
121 writel(0, pt_gpio->reg_base + PT_SYNC_REG); in pt_gpio_probe()
122 writel(0, pt_gpio->reg_base + PT_CLOCKRATE_REG); in pt_gpio_probe()
130 struct pt_gpio_chip *pt_gpio = platform_get_drvdata(pdev); in pt_gpio_remove() local
132 gpiochip_remove(&pt_gpio->gc); in pt_gpio_remove()