Lines Matching full:controller
3 * GPIO controller in LSI ZEVIO SoCs.
80 struct zevio_gpio *controller = gpiochip_get_data(chip); in zevio_gpio_get() local
83 spin_lock(&controller->lock); in zevio_gpio_get()
84 dir = zevio_gpio_port_get(controller, pin, ZEVIO_GPIO_DIRECTION); in zevio_gpio_get()
86 val = zevio_gpio_port_get(controller, pin, ZEVIO_GPIO_INPUT); in zevio_gpio_get()
88 val = zevio_gpio_port_get(controller, pin, ZEVIO_GPIO_OUTPUT); in zevio_gpio_get()
89 spin_unlock(&controller->lock); in zevio_gpio_get()
96 struct zevio_gpio *controller = gpiochip_get_data(chip); in zevio_gpio_set() local
99 spin_lock(&controller->lock); in zevio_gpio_set()
100 val = zevio_gpio_port_get(controller, pin, ZEVIO_GPIO_OUTPUT); in zevio_gpio_set()
106 zevio_gpio_port_set(controller, pin, ZEVIO_GPIO_OUTPUT, val); in zevio_gpio_set()
107 spin_unlock(&controller->lock); in zevio_gpio_set()
112 struct zevio_gpio *controller = gpiochip_get_data(chip); in zevio_gpio_direction_input() local
115 spin_lock(&controller->lock); in zevio_gpio_direction_input()
117 val = zevio_gpio_port_get(controller, pin, ZEVIO_GPIO_DIRECTION); in zevio_gpio_direction_input()
119 zevio_gpio_port_set(controller, pin, ZEVIO_GPIO_DIRECTION, val); in zevio_gpio_direction_input()
121 spin_unlock(&controller->lock); in zevio_gpio_direction_input()
129 struct zevio_gpio *controller = gpiochip_get_data(chip); in zevio_gpio_direction_output() local
132 spin_lock(&controller->lock); in zevio_gpio_direction_output()
133 val = zevio_gpio_port_get(controller, pin, ZEVIO_GPIO_OUTPUT); in zevio_gpio_direction_output()
139 zevio_gpio_port_set(controller, pin, ZEVIO_GPIO_OUTPUT, val); in zevio_gpio_direction_output()
140 val = zevio_gpio_port_get(controller, pin, ZEVIO_GPIO_DIRECTION); in zevio_gpio_direction_output()
142 zevio_gpio_port_set(controller, pin, ZEVIO_GPIO_DIRECTION, val); in zevio_gpio_direction_output()
144 spin_unlock(&controller->lock); in zevio_gpio_direction_output()
174 struct zevio_gpio *controller; in zevio_gpio_probe() local
177 controller = devm_kzalloc(&pdev->dev, sizeof(*controller), GFP_KERNEL); in zevio_gpio_probe()
178 if (!controller) in zevio_gpio_probe()
182 controller->chip = zevio_gpio_chip; in zevio_gpio_probe()
183 controller->chip.parent = &pdev->dev; in zevio_gpio_probe()
185 controller->chip.label = devm_kasprintf(dev, GFP_KERNEL, "%pfw", dev_fwnode(dev)); in zevio_gpio_probe()
186 if (!controller->chip.label) in zevio_gpio_probe()
189 controller->regs = devm_platform_ioremap_resource(pdev, 0); in zevio_gpio_probe()
190 if (IS_ERR(controller->regs)) in zevio_gpio_probe()
191 return dev_err_probe(&pdev->dev, PTR_ERR(controller->regs), in zevio_gpio_probe()
194 status = devm_gpiochip_add_data(&pdev->dev, &controller->chip, controller); in zevio_gpio_probe()
200 spin_lock_init(&controller->lock); in zevio_gpio_probe()
203 for (i = 0; i < controller->chip.ngpio; i += 8) in zevio_gpio_probe()
204 zevio_gpio_port_set(controller, i, ZEVIO_GPIO_INT_MASK, 0xFF); in zevio_gpio_probe()
206 dev_dbg(controller->chip.parent, "ZEVIO GPIO controller set up!\n"); in zevio_gpio_probe()