Lines Matching refs:gs
118 static int mlxbf2_gpio_lock_acquire(struct mlxbf2_gpio_context *gs) in mlxbf2_gpio_lock_acquire() argument
123 spin_lock(&gs->gc.bgpio_lock); in mlxbf2_gpio_lock_acquire()
131 spin_unlock(&gs->gc.bgpio_lock); in mlxbf2_gpio_lock_acquire()
144 static void mlxbf2_gpio_lock_release(struct mlxbf2_gpio_context *gs) in mlxbf2_gpio_lock_release() argument
145 __releases(&gs->gc.bgpio_lock) in mlxbf2_gpio_lock_release()
149 spin_unlock(&gs->gc.bgpio_lock); in mlxbf2_gpio_lock_release()
174 struct mlxbf2_gpio_context *gs = gpiochip_get_data(chip); in mlxbf2_gpio_direction_input() local
181 ret = mlxbf2_gpio_lock_acquire(gs); in mlxbf2_gpio_direction_input()
185 writel(BIT(offset), gs->gpio_io + YU_GPIO_MODE0_CLEAR); in mlxbf2_gpio_direction_input()
186 writel(BIT(offset), gs->gpio_io + YU_GPIO_MODE1_CLEAR); in mlxbf2_gpio_direction_input()
188 mlxbf2_gpio_lock_release(gs); in mlxbf2_gpio_direction_input()
201 struct mlxbf2_gpio_context *gs = gpiochip_get_data(chip); in mlxbf2_gpio_direction_output() local
209 ret = mlxbf2_gpio_lock_acquire(gs); in mlxbf2_gpio_direction_output()
213 writel(BIT(offset), gs->gpio_io + YU_GPIO_MODE1_CLEAR); in mlxbf2_gpio_direction_output()
214 writel(BIT(offset), gs->gpio_io + YU_GPIO_MODE0_SET); in mlxbf2_gpio_direction_output()
216 mlxbf2_gpio_lock_release(gs); in mlxbf2_gpio_direction_output()
225 struct mlxbf2_gpio_context *gs; in mlxbf2_gpio_probe() local
231 gs = devm_kzalloc(dev, sizeof(*gs), GFP_KERNEL); in mlxbf2_gpio_probe()
232 if (!gs) in mlxbf2_gpio_probe()
236 gs->gpio_io = devm_platform_ioremap_resource(pdev, 0); in mlxbf2_gpio_probe()
237 if (IS_ERR(gs->gpio_io)) in mlxbf2_gpio_probe()
238 return PTR_ERR(gs->gpio_io); in mlxbf2_gpio_probe()
249 gc = &gs->gc; in mlxbf2_gpio_probe()
252 gs->gpio_io + YU_GPIO_DATAIN, in mlxbf2_gpio_probe()
253 gs->gpio_io + YU_GPIO_DATASET, in mlxbf2_gpio_probe()
254 gs->gpio_io + YU_GPIO_DATACLEAR, in mlxbf2_gpio_probe()
269 platform_set_drvdata(pdev, gs); in mlxbf2_gpio_probe()
271 ret = devm_gpiochip_add_data(dev, &gs->gc, gs); in mlxbf2_gpio_probe()
282 struct mlxbf2_gpio_context *gs = dev_get_drvdata(dev); in mlxbf2_gpio_suspend() local
284 gs->csave_regs->gpio_mode0 = readl(gs->gpio_io + in mlxbf2_gpio_suspend()
286 gs->csave_regs->gpio_mode1 = readl(gs->gpio_io + in mlxbf2_gpio_suspend()
294 struct mlxbf2_gpio_context *gs = dev_get_drvdata(dev); in mlxbf2_gpio_resume() local
296 writel(gs->csave_regs->gpio_mode0, gs->gpio_io + in mlxbf2_gpio_resume()
298 writel(gs->csave_regs->gpio_mode1, gs->gpio_io + in mlxbf2_gpio_resume()